控制系统数字仿真大作业.docx
《控制系统数字仿真大作业.docx》由会员分享,可在线阅读,更多相关《控制系统数字仿真大作业.docx(19页珍藏版)》请在冰豆网上搜索。
控制系统数字仿真大作业
《控制系统数字仿真》课程
大作业
姓名:
学号:
班级:
日期:
同组人员:
一、引言
MATLAB语言是当今国际控制界最为流行的控制系统计算机辅助设计语言,它的出现为控制系统的计算机辅助分析和设计带来了全新的手段。
其中图形交互式的模型输入计算机仿真环境SIMULINK,为MATLAB应用的进一步推广起到了积极的推动作用。
现在,MATLAB语言已经风靡全世界,成为控制系统CAD领域最普和、也是最受欢迎的软件环境。
随着计算机技术的发展和应用,自动控制理论和技术在宇航、机器人控制、导弹制导和核动力等高新技术领域中的应用也愈来愈深入广泛。
不仅如此,自动控制技术的应用范围现在已发展到生物、医学、环境、经济管理和其它许多社会领域中,成为现代社会生活中不可或缺的一部分。
随着时代进步和人们生活水平的提高,在人类探知未来,认识和改造自然,建设高度文明和发达社会的活动中,控制理论和技术必将进一步发挥更加重要的作用。
作为一个自动化专业的学生,了解和掌握自动控制的有关知识是十分必要的。
利用MATLAB软件和其SIMULINK仿真工具来实现对自动控制系统建模、分析与设计、仿真,能够直观、快速地分析系统的动态性能和稳态性能,并且能够灵活的改变系统的结构和参数,通过快速、直观的仿真达到系统的优化设计,以满足特定的设计指标。
二、设计方法
1、系统数学模型
美国卡耐尔基-梅隆大学机器人研究所开发研制了一套用于星际探索的系统,其目标机器人是一个六足步行机器人,如图(a)所示。
该机器人单足控制系统结构图如图(b)所示。
要求:
(1)建立系统数学模型;
(2)绘制系统阶跃响应曲线、根轨迹图、频率特性;
(3)分析系统的稳定性,和性能指标;
(4)设计控制器Gc(s),使系统指标满足:
ts<10s,ess=0,,超调量小于5%。
在不加入任何控制器的情况下,由控制系统结构图可得其开环传递函数为
Simulink仿真得
在单位阶跃信号作用下系统响应曲线为
2、系统性能指标
2.1绘制系统阶跃响应曲线、根轨迹图、频率特性
编写M文件如下:
%setupsystemmathmodle
num=[1];
den=[12100];
G0=tf(num,den)
G=feedback(G0,1)
figure
(1);
t=0:
100;
step(G,t);
grid;
title('单位阶跃响应曲线')
[yt]=step(G,t);
[Yk]=max(y);
MATLAB命令窗口中运行后得到结果为:
Transferfunction:
1
----------------------
s^3+2s^2+10s
Transferfunction:
1
---------------------------
s^3+2s^2+10s+1
ans=
RiseTime:
21.5386
SettlingTime:
38.5480
SettlingMin:
0.9001
SettlingMax:
0.9997
Overshoot:
0
Undershoot:
0
PeakTime:
79.1536
tp=t(k)
ess=1-y;
figure
(2);
plot(t,ess);
grid;
title('单位阶跃响应误差曲线')
figure(3);
pzmap(G0);
title('零极点分布图')
figure(4);
margin(G0);
title('系统开环对数特性曲线')
grid;
figure(5);
nyquist(G0);
title('nyquist曲线')
figure(6);
rlocus(G0)
title('系统根轨迹特性曲线')
sgrid
stepinfo(G)
以上各图依次为系统单位阶跃响应曲线、单位阶跃响应误差曲线、零极点分布图、系统开环对数特性曲线、系统根轨迹特性曲线、奈奎斯特曲线。
2.2稳定性分析
由闭环零极点分布图可知,系统闭环传递函数的极点全部位于s左半平面,因此系统闭环稳定。
2.3性能指标分析
(1)系统稳态误差=0。
由以上分析可知在加入控制器之前,=0,符合设计要求。
(2)系统调节时间<10s。
在加入控制器之前,调节时间=38s,不满足设计要求,因此需要加入控制器来缩短调节时间,以提高系统响应速度。
(3)系统阶跃响应的超调量σ%<5%。
在加入控制器之前,超调量σ%=0,符合设计要求。
3、控制器设计
由以上分析可知,要减小系统的调节时间,使其快速性能得到改善,同时不影响系统的稳态误差和超调量,因此,可以利用比例控制器来实现这一目的。
P控制方式只是在前向通道上加上比例环节,相当于增大了系统的开环增益,减小了系统的稳态误差,减小了系统的阻尼,从而增大了系统的超调量和振荡性。
P控制方式的系统结构图如下:
P控制器的传递函数为:
加上P控制后的系统开环传递函数为:
取Kp=1至15,步长为1,进行循环测试系统,将不同Kp下的阶跃响应曲线绘制在一张坐标图下:
MATLAB源程序:
%对于P控制的编程实现
num=[1];
den=[12100];
t=0:
0.01:
30;
forKp=1:
1:
15
num1=Kp*num;
G0=tf(num1,den)
G=feedback(G0,1)
y=step(G,t);
plot(t,y)
Ifishold~=1,holdon,end
end
grid;
下面通过列表的方式给出在不同Kp值作用下系统的调节时间、稳态误差以和超调量:
Kp
1
2
3
4
5
6
7
8
9
10
Ts
29.56
14.58
9.60
7.13
5.57
4.91
3.48
3.26
3.15
4.730
Ess
0.048
0.002
7.788*e-5
2.725*e-6
8.913*e-8
2.854*e-9
1.239*e-4
0.006
0.028
0.055
Pos
4.782
0.204
0.008
2.725*e-4
8.913*e-6
2.854*e-7
0.012
0.604
2.840
5.541
从上表可以看出,随着Kp值的增大,系统的调节时间、超调量和稳态误差都逐渐减小,但是,当Kp增大到一定值后,系统的调节时间、超调量和稳态误差又都随Kp增大而增大,稳定性下降。
当Kp=6时,调节时间=4.96s,稳态误差近似为0,超调量σ%近似为0,满足设计要求。
此时系统的阶跃响应曲线如图所示:
MATLAB源程序:
%对于P控制的编程实现%(Kp=6)
clear
num0=[1];
den=[12100];
t=0:
0.01:
50;
Kp=6;
num=Kp*num0;
G0=tf(num0,den);
G=feedback(G0,1);
G1=tf(num,den);
G2=feedback(G1,1);
step(G,G2,t)
grid;
gtext('\leftarrowKp=1')
gtext('\leftarrowKp=6')
综上所述,采用比例控制器时,满足设计要求的最合理的Kp值为6,此时系统的超调量为0,调节时间为4.96秒,稳态误差为0。
由上图可看出加入比例控制器后,系统的调节时间大幅度减小,快速性得到了很大的提高,同时系统的稳定性和准确性并没有受到明显影响。
此时,加入比例控制器后,系统开环传递函数为:
性能比较:
加入P之前加入P之后
三、深入探讨
通过以上讨论,单独使用比例控制器就已经满足各项要求,接下来将深入探讨是否还有其他控制器,能更好的满足各项性能指标。
1、比例-微分控制器(PD)
PD控制方式是在P控制的基础上增加了微分环节,系统的输出量同时受到误差信号和其速率的双重作用。
因而,比例—微分控制是一种早期控制,可在出现误差位置前,提前产生修正作用,从而达到改善系统性能的目的。
PD控制方式的系统结构图如下:
PD控制器的传递函数为:
加上PD控制后的系统开环传递函数为:
保持Kp=6不变,调试取Kd=0.1、0.3、0.5、0.7、0.9时的系统阶跃响应曲线,并与P控制做比较:
MATLAB源程序为:
%编程实现PD控制与P控制的比较
clear
num0=[6];
den=[12100];
t=0:
0.01:
40;
S0=tf(num0,den);
S=feedback(S0,1);
k=step(S,t);
plot(t,k);
grid;
Kp=6;
ifishold~=1,holdon,
end
forKd=0.1:
0.2:
1
num=[Kd*Kp,Kp];
G0=tf(num,den);
G=feedback(G0,1);
y=step(G,t);
plot(t,y);
ifishold~=1,holdon,
end
end
grid;
下面通过列表的方式给出在不同Kd值作用下系统的调节时间、稳态误差以和超调量:
Kd
0.1
0.3
0.5
0.7
0.9
ts
4.95
5.07
5.77
5.93
6.28
ess
4.2549e-6
1.6192e-5
4.4234e-5
9.9189e-5
1.9222e-4
pos
4.2549e-4
0.0016
0.0044
0.0099
0.0192
由实验曲线以和上表可以看出,在比例控制的基础上增加微分控制,对系统的稳态误差影响并不明显,而增大微分常数Kd可以有效的减小系统的超调量和调节时间,在不影响系统的稳态性能的基础上改善了系统的动态性能。
微分控制部分相当于增大了系统的阻尼,所以可以选用较大的开环增益来改善系统的动态性能和系统的稳态精度。
此时系统的阶跃响应曲线如图所示:
MATLAB源程序为:
%对于PD控制的编程实现%(Kd=0.1)
clear
num0=[1];
den=[12100];
t=0:
0.01:
50;
Kp=6;
Kd=0.1;
num=[Kd*Kp,Kp];
G0=tf(num0,den);
G=feedback(G0,1);
G1=tf(num,den);
G2=feedback(G1,1);
step(G,G2,t)
grid;
gtext('\leftarrowKp=1')
gtext('\leftarrowKp=6,Kd=0.1')
综上所述,当Kp=6,Kd=0.1时,引入比例-微分控制器,同样可以在保证系统稳态误差和超调量不发生明显变化的前提下,改善系统的动态性能,使系统的调节时间减小到10秒以下,从而满足设计要求。
此时系统的开环传递函数为:
MATLAB命令窗口运行结果
ans=
RiseTime:
21.5386
SettlingTime:
38.5480
SettlingMin:
0.9001
SettlingMax:
0.9997
Overshoot:
0
Undershoot:
0
PeakTime:
79.1536
系统性能验证:
MATLAB源程序:
%加入PD控制器之前系统性能
num0=[1];
den=[12100];