12春MATLAB仿真期末大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12春MATLAB仿真期末大作业
MATLAB仿真
期末大作业
姓名:班级:学号:指导教师:
2012春期末大作业
题目:设单位负反馈控制系统前向通道传递函数由)()(21s G s G 和串联,其中:
)
1(1)()(21++==s A s G s K
s G A 表示自己学号最后一位数(可以是零),K 为开环增益。要求:
(1)设K=1时,建立控制系统模型,并绘制阶跃响应曲线(用红色虚线,并标注坐标和标题);求取时域性能指标,包括上升时间、超调量、调节时间、峰值时间;
(2)在第(1)问中,如果是在命令窗口绘制阶跃响应曲线,用in1或者from workspace 模块将命令窗口的阶跃响应数据导入Simulink 模型窗口,用示波器显示阶跃响应曲线;如果是在Simulink 模型窗口绘制阶跃响应曲线,用out1或者to workspace 模块将Simulink 模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线。
(3)用编程法或者rltool 法设计串联超前校正网络,要求系统在单位斜坡输入信号作用时,速度误差系数小于等于0.1rad ,开环系统截止频率s rad c /4.4''≥ω,相角裕度大于等于45度,幅值裕度大于等于10dB 。
C=dcgain(S);
[y,t]=step(S);
plot(t,y);
[Y,k]=max(y);
timetopeak=t(k);
percentovershoot=100*(Y-C)/C;
n=1;
while y(n) n=n+1; end ristime=t(n); i=length(t); while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1; end setllingtime=t(i); 运行程序得到如下结果: Zero/pole/gain: 5 ------- s (s+1) C=1(系统终值) timetopeak=1.4365(峰值时间) percentovershoot=8.0778(超调量)ristime=0.8978(上升时间)setllingtime=7.5415(调节时间) (3)建立超前校正子函数如下:function Gc=cqjz_frequency(G,kc,yPm) G=tf(G); [mag,pha,w]=bode(G*kc); Mag=20*log10(mag); [Gm,Pm.Wcg,Wcp]=margin(G*kc); phi=(yPm-getfield(Pm,'Wcg'))*pi/180; alpha=(1+sin(phi))/(1-sin(phi)); Mn=-10*log(alpha); Wcgn=spline(Mag,w,Mn); T=1/Wcgn/sqrt(alpha); Tz=alpha*T; Gc=tf([Tz,1],[T,1]); 主函数如下: num=1; den=conv([1,0],conv([0.3,1],[0.1,1])); G=tf(num,den); kc=6;yPm=45+6; Gc=cqjz_frequency(G,kc,yPm); G=G*kc; GGc=G*Gc; Gy_close=feedback(G,1); Gx_close=feedback(GGc,1); figure(1); step(Gx_close,'b');hold on; step(Gy_close,'r');grid gtext('校正前的');gtext('校正后的'); figure(2); bode(G,'b'); hold on; bode(GGc,'r');grid gtext('校正前的');gtext('校正后的');gtext('校正前的');gtext('校正后的'); figure(3); nyquist(G,'b'); hold on; nyquist(GGc,'r');grid gtext('校正前的');gtext('校正后的'); 绘制校正前后的单位阶跃响应曲线,开环伯德图和开环奈奎斯特曲线: