对于正常的系统传函,求阶跃响应很简单,一般可以用类似下面的代码:
s=tf('s')Gc=2*(0.2*s+1)*(0.1*s+1)/(0.2*s)
step(Gc)
但上述代码会出错:
??? Error using ==> lti.step at 86Cannot simulate the time response of LTI models with more zeros than poles.
这是因为,传递函数分子阶次高于分母阶次,从物理概念上说态核或违反了因果律,而从数字仿真的角度来说,也是算法不允许的。
可以变通一下,借助于符号运算来求:
syms sGc=2*(0.2*s+1)*(0.1*s+1)/(0.2*s)
g=ilaplace(Gc/s)
ezplot(g,[0 10])
得到阶跃响应图形如下(由于传函包含积分环节,其帆伍阶跃响应必然是随时间一直增长的,没有稳态值):
应该指出,在上述阶跃响应的表达式中,包括了一个脉冲氏陵函数项(dirac),而脉冲函数绘图时是体现不出来的。
>> G=zpk([],[-1 -1 -6 -6],1)
Zero/pole/gain:
1
---------------
(s+1)^2 (s+6)^2
悉厅
>> step(G) >> G=tf([1 2 1],[1 10 5 1 1])
Transfer function:
s^2 + 2 s + 1
----------------------------
s^4 + 10 s^3 + 5 睁贺隐s^2 + s + 1
>> step(G)
第2个系统不稳定,求出极点来可以很清楚地拍困看到:
>> eig(G)ans =
-9.4827
-0.6321
0.0574 + 0.4044i
0.0574 - 0.4044i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)