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

 我来答
tianxiawulang
推荐于2017-12-15 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2780万
展开全部

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

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),而脉冲函数绘图时是体现不出来的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式