利用matlab由开环传递函数求闭环传递函数并求其单位冲击和阶跃响应

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用matlab由开环传递函数求闭环传递函数并求其单位冲击和阶跃响应例:设有一个系统的开环传递函数如下函数,

并绘制输出阶跃响应曲线和脉冲响应曲线

解:

编程(见:\work\CT_tch\resp_2_)

clearall;

closeall;

%%%%%%%%%%%%%%

a0=[0000];%a0:开环传递函数分子多项式系数

b1=[10];%s

b2=[1];%

b3=[1];%s2++1)

b0=conv(b1,conv(b2,b3));%b0:开环传递函数分母多项式系数

%%%%闭环传递函数

aa=a0;%aa:闭环传递函数分子多项式系数

bb=b0+a0;%bb:闭环传递函数分子多项式系数

disp('SystemClosedLoopTransferFunctionis:')

aa

bb

%%%%计算:阶跃响应

t=0::20

y=step(aa,bb,t);%阶跃响应

%%%%绘制:阶跃响应

figure(1)

plot(t,y);

title('阶跃响应');%标题:阶跃响应

xlabel('时间/s');%横坐标

ylabel('幅值');%纵坐标

grid;%í

%%%%计算:脉冲响应

figure(2)

yy=impulse(aa,bb,t);%标题:脉冲响应

plot(t,yy);

title('脉冲响应');

xlabel('时间/s');

ylabel('幅值');

grid;%网格

%%%%绘制:脉冲响应

wt=logspace(-1,1);%对数空间(¨,10)

[mag,phase]=bode(a0,b0,wt);%计算:Bode中的幅值和相位[Gm,Pm,Wcg,Wcm]=margin(a0,b0);%计算:稳定裕度

disp('SystemGainMarginanditsassociatedfrequencyare:'); Gm%模值稳定裕度

Wcg%幅值穿越频率,剪切频率,1/s

disp('SystemPhaseMarginanditsassociatedfrequencyare:'); Pm%相位稳定裕度

Wcm%-π相位穿越频率,1/s

%%%%绘制:Bode图

figure(3)

Subplot(211);%对数幅值-频率图

amp=20*log10(mag);%20*log(mag),dB

semilogx(wt,amp);

title('对数幅值-频率图');

xlabel('频率/rad');

ylabel('幅值/dB');

grid;

subplot(212);%相位-频率图

semilogx(wt,phase);

title('相位-频率图');

xlabel('频率/rad');

ylabel('相位/degree');

grid;

运行该程序可得系统的单位阶跃和脉冲响应曲线如下,

图1系统的单位阶跃响应曲线

图2系统的脉冲响应曲线系统的Bode图如下,

图3系统的Bode图

相关文档
最新文档