Комплексный знаменатель в Симулинке - PullRequest
0 голосов
/ 03 января 2019

Я хочу построить ответ шага передаточной функции. Уравнение равно 1 / as ^ 2 + bs + c (извините, я не знаю, как писать дроби здесь). Мне дали два набора значений и соответствующие уравнения для параметров передаточной функции:

a1 = [-2, -1 + 2i] (i - мнимая единица)

a2 = [-3, -1-2i]

a = 1

b = (a1 + a2)

c = (a1 * a2)

Первый набор значений (-2, -3) отлично работает как в Matlab, так и в Simulink. Проблема начинается, когда я хочу ввести мнимые числа в знаменателе Симулинка следующим образом:

Проблема знаменателя

В Matlab я могу сделать это с:

a1 = -1 + 2i;
a2 = -1 - 2i;
a = 1;
b = (a1 + a2);
c = (a1 * a2);

num = 1;
den = [a b c];
s = tf(num, den);
step(s);

И все же в Simulink мне всегда дают эту ошибку. Я знаю, что есть методы 'simout' и 'simin', но мне было интересно, можно ли это сделать вручную?

1 Ответ

0 голосов
/ 04 января 2019

Функция передачи, которую вы реализуете в MATLAB, отличается от функции передачи, которую вы пытаетесь реализовать в Simulink.

В MATLAB у вас есть tf = 1 / (s ^ 2 - 2s + 5),В Simulink вы пытаетесь реализовать tf = 1 / (s ^ 2 -3s + (6-2i)).

Наличие передаточной функции со сложными коэффициентами на самом деле не имеет смысла.Simulink не позволит вам сделать это, в то время как MATLAB выдаст различные предупреждения, которые означают, что он не может обработать то, что вы пытаетесь сделать,

>> den = [1 -3 6-2i]
den =
   1.0000 + 0.0000i  -3.0000 + 0.0000i   6.0000 - 2.0000i
>> s = tf(num, den);
Warning: The numerator or denominator of this transfer function has complex-valued
coefficients. 
> In tf (line 360) 
>> step(s)
Warning: The data cannot be plotted because it is not real valued. 
> In wavepack.waveform/draw (line 65)
  In wrfc.plot/draw (line 17)
  In wrfc.plot/init_listeners>LocalRefreshPlot (line 79)
  In DynamicSystem/stepplot (line 131)
  In DynamicSystem/step (line 92)

Обратите внимание, что нет таких вещей, какsimin и simout методы.Существует блок для импорта сигналов из MATLAB, а другой - для экспорта сигналов обратно в MATLAB, который по умолчанию представляет собой переменные MATLAB для чтения / записи с именем simin / simout соответственно.Но они не методы.

...