求这个MATLAB传递函数的单位阶跃响应曲线

求这个MATLAB传递函数的单位阶跃响应曲线,第1张

对于正常的系统传函,求阶跃响应很简单,一般可以用类似下面的代码:

s=tf('s')

Gc=2*(0.2*s+1)*(0.1*s+1)/(0.2*s)

step(Gc)

但上述代码会出错:

??? Error using ==> lti.step at 86

Cannot simulate the time response of LTI models with more zeros than poles.

这是因为,传递函数分子阶次高于分母阶次,从物理概念上说态核或违反了因果律,而从数字仿真的角度来说,也是算法不允许的。

可以变通一下,借助于符号运算来求:

syms s

Gc=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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12541507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存