Комплексный знаменатель в Симулинке
Я хочу построить ответ шага передаточной функции. Уравнение равно 1/as^2 + bs + c (извините, я не знаю, как писать дроби здесь). Мне дали два набора значений и соответствующие уравнения для параметров передаточной функции:
a1 = [-2, -1 + 2i] (i - мнимая единица)
a2 = [-3, -1 - 2i]
а = 1
б = (а1 + а2)
с = (а1 * а2)
Первый набор значений (-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 ответ
Функция передачи, которую вы реализуете в 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
соответственно. Но они не методы.