春MATLAB仿真期末大作业

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

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 。

仿真结果及分析:

(1)、(2)、将Simulink模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线

通过在Matlab中输入命令:

>> plot(tout,yout,'r*-')

>> title('阶跃响应曲线')

即可得出系统阶跃响应曲线,如下:

求取该控制系统的常用性能指标:超调量、上升时间、调节时间、峰值时间的程序如下:

G=zpk([],[0,-1],5)。

S=feedback(G,1)。

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('校正后的')。

绘制校正前后的单位阶跃响应曲线,开环伯德图和开环奈奎斯特曲线:

相关文档
最新文档