Simulink 中的复值分母
Complex-value denominator in Simulink
我想绘制传递函数的阶跃响应。方程是 1/as^2 + bs + c(抱歉,我不知道这里的分数怎么写)。我得到了两组值,以及传递函数参数的相应方程式:
a1 = [-2, -1 + 2i](i为虚数单位)
a2 = [-3, -1 - 2i]
一=1
b = (a1 + a2)
c = (a1 * a2)
第一组值 (-2, -3) 在 Matlab 和 Simulink 中都能完美运行。当我想像这样在 Simulink 的分母中输入虚数时,问题就开始了:
Denominator problem
在 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' 方法,但我想知道是否可以手动完成?
您在 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,默认情况下 read/write 个 MATLAB 变量分别命名为 simin
/simout
。但它们不是方法。
我想绘制传递函数的阶跃响应。方程是 1/as^2 + bs + c(抱歉,我不知道这里的分数怎么写)。我得到了两组值,以及传递函数参数的相应方程式:
a1 = [-2, -1 + 2i](i为虚数单位)
a2 = [-3, -1 - 2i]
一=1
b = (a1 + a2)
c = (a1 * a2)
第一组值 (-2, -3) 在 Matlab 和 Simulink 中都能完美运行。当我想像这样在 Simulink 的分母中输入虚数时,问题就开始了:
Denominator problem
在 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' 方法,但我想知道是否可以手动完成?
您在 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,默认情况下 read/write 个 MATLAB 变量分别命名为 simin
/simout
。但它们不是方法。