当前位置:文档之家› 春MATLAB仿真期末大作业

春MATLAB仿真期末大作业

1 / 7
MATLAB仿真
期末大作业

姓 名:班 级:学 号:指导教师:
2 / 7

2012春期末大作业
题目:设单位负反馈控制系统前向通道传递函数由)()(21sGsG和串联,其中:
)1(1)()(21sAsGs
K
sG

A表示自己学号最后一位数(可以是零),K为开环增益。要求:
(1)设K=1时,建立控制系统模型,并绘制阶跃响应曲线(用红色虚线,
并标注坐标和标题);求取时域性能指标,包括上升时间、超调量、调节时间、
峰值时间;
(2)在第(1)问中,如果是在命令窗口绘制阶跃响应曲线,用in1或者from
workspace模块将命令窗口的阶跃响应数据导入Simulink模型窗口,用示波器显
示阶跃响应曲线;如果是在Simulink模型窗口绘制阶跃响应曲线,用out1或者
to workspace模块将Simulink模型窗口的阶跃响应数据导入命令窗口并绘制阶跃
响应曲线。
(3)用编程法或者rltool法设计串联超前校正网络,要求系统在单位斜坡输

入信号作用时,速度误差系数小于等于0.1rad,开环系统截止频率sradc/4.4'',
相角裕度大于等于45度,幅值裕度大于等于10dB。
3 / 7

仿真结果及分析:
(1)、(2)、将Simulink模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应
曲线

通过在Matlab中输入命令:
>> plot(tout,yout,'r*-')
>> title('阶跃响应曲线')
即可得出系统阶跃响应曲线,如下:

求取该控制系统的常用性能指标:超调量、上升时间、调节时间、峰值时间的程
序如下:
G=zpk([],[0,-1],5)。
S=feedback(G,1)。
4 / 7

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)。
5 / 7

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

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

相关主题