控制系统仿真与CAD课程设计报告.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制系统仿真与CAD 课程设计
学院:物流工程学院
专业:测控技术与仪器
班级:测控102
姓名:杨红霞
学号:201010233037
指导教师:兰莹
完成日期:2013年7月4日
一、目的和任务
配合《控制系统仿真与CAD》课程的理论教学,通过课程设计教学环节,使学生掌握当前流行的演算式MATLAB语言的基本知识,学会运用MATLAB 语言进行控制系统仿真和辅助设计的基本技能,有效地提高学生实验动手能力。
一、基本要求:
1、利用MATLAB提供的基本工具,灵活地编制和开发程序,开创新的应用;
2、熟练地掌握各种模型之间的转换,系统的时域、频域分析及根轨迹绘制;
3、熟练运用SIMULINK对系统进行仿真;
4、掌握PID控制器参数的设计。
二、设计要求
1、编制相应的程序,并绘制相应的曲线;
2、对设计结果进行分析;
3、撰写和打印设计报告(包括程序、结果分析、仿真结构框图、结果曲线)。
三、设计课题
设计一:二阶弹簧—阻尼系统的PID控制器设计及其参数整定
考虑弹簧-阻尼系统如图1所示,其被控对象为二阶环节,传递函数G(S)如下,参数为M=1kg,b=2N.s/m,k=25N/m,F(S)=1。
设计要求:
(1)控制器为P控制器时,改变比例系数大小,分析其对系统性能的影响并绘制相应曲线。
(2)控制器为PI控制器时,改变积分时间常数大小,分析其对系统性能的影响并绘制相应曲线。
(例如当kp=50时,改变积分时间常数)
(3)设计PID控制器,选定合适的控制器参数,使闭环系统阶跃响应曲线的超调量σ%<20%,过渡过程时间Ts<2s, 并绘制相应曲线。
图1 弹簧-阻尼系统示意图
弹簧-阻尼系统的微分方程和传递函数为:
F kx x b x M =++&&&
25
211)()()(22++=++==
s s k bs Ms s F s X s G
图2 闭环控制系统结构图
附:P 控制器的传递函数为:()P P G s K =
PI 控制器的传递函数为:11()PI P I G s K T s
=+
⋅ PID 控制器的传递函数为:11
()PID P D I G s K T s T s
=+
⋅+⋅
(一)设计P控制器,改变比例系数大小,分析其对系统性能的影响并绘制相应曲线。
以下为所做的设计以及运行结果,KP取了不同的值,通过运用sim函数进行仿真,并得出超调量MP,过渡过程时间Ts的大小,通过分析所得出的结果,多次改变KP 的大小直到符合题目的要求,使稳态误差等都达到要求。
1、仿真运行程序
for Kp=[200,400,800]
t=[0:0.01:6];
[t,x,y]=sim('yhx',6);
hold on
plot(t,y);
N=length(t);
yss=y(N); %yss:稳态值
hold on
[ymax,i]=max(y);
mp=(ymax-yss)*100/yss,%计算超调量mp
i=N;
while abs(y(i)-yss)/yss<=0.02
i=i-1;
end
Ts=t(i), %计算过渡过程时间
gtext(num2str(Kp));
end
2、仿真框图
3、仿真运行结果
改变比例系数kp大小,得如下结果,通过以下数据以及得出的曲线可分析其对系统性能的影响
Kp=200
mp =
75.3359
Ts =
3.7962
Kp=400
mp =
84.7526
Ts =
3.8317
Kp=800
mp =
88.0528
Ts =
4.5685
4、 仿真运行曲线
0123456
0.2
0.4
0.6
0.8
11.2
1.4
1.6
1.8
2
5、运行结果分析
根据实验要求设计了一个P 控制器,与Gs 等构成闭环控制系统结构。
由以上的运行结果以及曲线可以看出随Kp 增大,超调量mp 是逐渐变大的,Ti 也是逐渐变大的,而且总是达不到稳态误差很小很小,因此得出以下结论:随着Kp 值的增大,系统的超调量变大,调节时间变长,振荡次数也增多了。
Kp 值越大,系统的稳态误差就越小,调节应精度越高,但是系统的波动明显变多了,稳定性变差,但是系统响应变快了。
随着比例系数女kp 的增大并不能消除稳态误差,只能减小稳态误差。
(二) 设计PI控制器,改变积分时间常数大小,分析其对系统性能的影响并绘制相应曲线。
以下为设计出的仿真程序等,运用sim函数进行仿真,编写程序使KP=50,改变KI 的大小,来进行分析,直到符合题目的要求,使运行出的结果稳态误差基本很小即可,如果达不到,就要重新设定KI 的大小,进行多次试验,选出如下符合要求的KI的值,程序中都有所体现。
1、仿真运行程序
for Ki=[30,50,80]
t=[0:0.01:10];
[t,x,y]=sim('yhxx',10);
hold on
plot(t,y);
N=length(t); %yss:稳态值
yss=y(N);
hold on
[ymax,i]=max(y);
mp=(ymax-yss)*100/yss,%计算超调量mp
i=N;
while abs(y(i)-yss)/yss<=0.02
i=i-1;
end
Ts=t(i),%计算过渡过程时间
end
2、仿真框图
3、仿真运行结果
当Kp=50时, 改变积分时间常数ki的大小,由以下的结果以及曲线可分析其对系统性能的影响
ki=30
mp =
21.4633
Ts =
6.5686
Ki=50
mp =
26.7424
Ts =
5.1127
Ki=80
mp =
31.0229
Ts =
7.3375
4、仿真运行曲线:
012345678910
0.2
0.4
0.6
0.8
1
1.2
1.4
5、运行结果分析
Kp=50时,随着ki 值的增大,系统的超调量变大,系统响应时间出现了波动。
ki 越大,积分速度越快,积分作用就越强,响应时间变快,但系统振荡次数就较多。
PI 控制可以消除系统的稳态误差,提高系统的误差度。
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
为了消除稳态误差,在控制器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例+积分(PI)控制器,可以使系统在进入稳态后基本无稳态误差。
这是比上一个只有比例控制器的一个进步的地方。
(三)设计一PID控制器,选定合适的控制器参数,使闭环系统阶跃响应曲线的超调量σ%<20%,过渡过程时间Ts<2s, 并绘制相应曲线。
以下为所设计的程序,仿真等,改变kp,ki,kd 的值得出闭环阶跃响应的超调量和过渡过程时间,通过多次试验,得到的kp取20,ki取65,kd取9时运行出的结果是满足题目要求的:
1、仿真运行程序
[t,x,y]=sim('yhxxx');
plot(t,y);
N=length(t);
yss=y(N); %yss:稳态值
[ymax,i]=max(y);
mp=(ymax-yss)*100/yss, %计算超调量mp
i=N;
while abs(y(i)-yss)/yss<=0.02
i=i-1;
end
Ts=t(i), %计算过渡过程时间
2、仿真框图
3、仿真运行结果
经过多次试验,当Kp=20,ki=65,pd=9满足使闭环系统的阶跃响应曲线的超调量σ%<20%,过渡过程时间ts<2s,结果如下:
mp =
1.1367 Ts =
0.8945
从结果可知超调量mp%<20%,过渡过程时间Ts<2s 满足设计要求.
4、仿真运行曲线:
012345678910
0.2
0.4
0.6
0.8
1
1.2
1.4
5、运行结果分析及设计小结
把比例 微分 积分结合起来进行控制能够更好的达到我们想要的结果,PID 参数的整定就是合理的选取PID 三个参数。
从系统的稳定性、响应速度、超调量和稳态误差等方面来考虑问题,每个参数都有自己的作用,比如比例调节的作用是能够成比例地反映系统的偏差信号,系统一旦出现了偏差,比例调节立即产生与其成比例的调节作用,以减小偏差。
随着Kp 增大,系统的稳态误差减小,但是系统容易产生超调,并且加大Kp 只能减小稳态误差,却不能消除稳态误差,显著特点就是有差调节。
然后就是微分调节的作用是消除系统的稳态误差,提高系统的误差度,它的特点就是误差调节。
微分调节作用是改善系统的动态性能,可以减少超调,减少调节时间。
总之比例积分微分控制作用是相互关联的,结合起来用效果会更好。
设计二:二阶系统串联校正装置的设计与分析
设某被控系统的传递函数G(s)如下:
)
2()(+=
s s K
s G
设计要求:
选用合适的方法设计一个串联校正装置K(s),使闭环系统的阶跃响应曲线超调量%20%<σ,过渡过程时间.()s T 15s ≤,开环比例系数)/1(01s K v ≥,并分析串联校正装置中增益、极点和零点对系统性能的影响。
提示:可采用根轨迹校正工具进行串联校正
MATLAB 提供了一个辅助设计闭环系统根轨迹的仿真软件Rltool ,可以用来进行根轨迹校正。
在command window 下键入>> rltool ,进入设计环境。
一、 设计思路方法
根据题目要求采用matlab 中提供的一个辅助设计闭环系统根轨迹的仿真软件Rltool ,来进行根轨迹校正。
打开matlab ,在command window 下键入>> rltool ,进入设计环境。
根据设计要求:开环比例系数)/1(01s K v ≥即 20102)(lim 0≥≥==→k k
s sG k s v 得
取k=40, 传递函数)
2(40
)(+=
s s s G
二、设计步骤
1、打开matlab ,在command window 下键入>> rltool ,进入设计环境。
启动SISO Design Tool
在matlab 中键入num=40;den=conv([1,0],[1,2]); ex_1=tf(num,den), 出现函数 40/(s^2 + 2 s)
得到该系统的LTI 对象模型ex_1。
2、启动SISO Design Tool 窗口后,利用该窗口中File 菜单下的命令Import,打开系统模型输
入对话框窗口。
采用系统默认的结构,输入选中的对象ex_1,将控制对象G 设置为ex_1,控制器C 设为1,其他的环节H,F 均使用默认的取值1.单击OK 在SISO Design Tool 中会自动绘制此负反馈线性系统的根轨迹图,以及系统波特图,如图
10
101010
-90
Frequency (rad/sec)
-500
50
Open-Loop Bode E ditor (C)
-2
-1.5
-1-0.5
Root Locus E ditor (C)
Real Axis
3、点击Analysis 中的other loop response 选择step 得到闭环系统阶跃响应曲线如图可以看到校正前的超调量为60.4%,过渡过程时间为3.66s ,明显不满足要求。
Step Response
Time (sec)
A m p l i t u d e
012
3456
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
4、经过反复试验,得出加入零点-5,加入极点-33,是满足要求的,可得到如下的根轨迹图以及伯德图
10-1
10
10110
2
10
3
-90Frequency (rad/sec)
-50
050
Open-Loop Bode E ditor (C)
-40
-30
-20-10
0-50-40-30-20-1001020
304050Root Locus E ditor (C)
Real Axis
5、得到的阶跃响应曲线如下超调量15.8%<20%,过渡过程时间0.715s<1.5s,满足要求说明加的零极点是正确的
Step Response
Time (sec)
A m p l i t u d e
00.10.20.30.40.50.60.70.80.91
0.2
0.4
0.6
0.8
1
1.2
1.4
6、在使用SISO Design Tool 完成系统的设计之后,在系统实现之前必须对设计好的系统通过Simulink 进行仿真分析,进一步对控制器C 进行验证,以确保系统设计的正确性。
下图为系统相应的Simulink 模型:
7、编写M 文件运行以得出超调量和过渡过程时间,以验证是否正确,程序如下: num0=40;den0=conv([1,0],[1,2]); num1=[0.2,1];den1=[0.03,1];
[num2,den2]=series(num0,den0,num1,den1); [num,den]=cloop(num2,den2); t=0:0.005:5;
y=step(num,den,t);
plot(t,y);
N=length(t);
yss=y(N);
hold on
[ymax,i]=max(y);
mp=(ymax-yss)*100/yss,
i=N;
while abs(y(i)-yss)/yss<=0.02 i=i-1;
end
Ts=t(i),
运行结果:
mp =
15.7500
Ts =
0.7150
运行所得的曲线如下:
00.51 1.52 2.53 3.54 4.55
0.2
0.4
0.6
0.8
1
1.2
1.4
运行结果分析:所得出的结果,超调量15.7500%<20%,过渡过程时间0.7150s<1.5s,满足设计要求,证明设计的没有问题,符合设计要求。
三、串联校正装置中增益、极点和零点对系统性能的影响。
(1)加入增益68,所得到的根轨迹及伯德图:
10
10
1010
10
-90
Frequency (rad/sec)
-500
50
100
Open-Loop Bode E ditor (C)
-20
-15
-10-5
-150-100
-50
50
100
150
Root Locus E ditor (C)
Real Axis
编写M 程序,得出图像及超调量,过渡过程时间等值,来判断加入增益对系统性能的影响,程序如下:
num0=40;den0=conv([1,0],[1,2]); num1=68*[0.2,1];den1=[0.03,1];
[num2,den2]=series(num0,den0,num1,den1); [num,den]=cloop(num2,den2); t=0:0.005:1;
y=step(num,den,t); plot(t,y);
%计算超调量mp N=length(t); yss=y(N);
hold on %yss :稳态值 [ymax,i]=max(y);
mp=(ymax-yss)*100/yss, i=N;
while abs(y(i)-yss)/yss<=0.02 i=i-1; end Ts=t(i),
运行结果为
mp =
69.4107 Ts =
0.2600 运行曲线为:
00.10.20.30.40.50.60.70.80.91
0.20.40.60.811.21.41.6
1.8
由以上结果及图像可以得出以下结论:加入增益之后超调量变大了,过渡过程时间变短了,波动的更加厉害,稳态误差变小了。
说明可以改变开环增益的大小,从而改善稳态误差
(2)加入零点-10,所得到的根轨迹及伯德图:
10-1
10
10110
2
10
3
-90
-45
Frequency (rad/sec)
-40-200
2040
60Open-Loop Bode E ditor (C)
-60
-50
-40
-30-20-10
-3-2
-1
1
2
3
Root Locus E ditor (C)
Real Axis
阶跃响应曲线如下:
Step Response
Time (sec)
A m p l i t u d e
00.5
1 1.5
0.2
0.4
0.6
0.8
1
1.2
1.4
由图可以得出,加入零点后对系统的性能产生了很大的影响,过渡过程时间变长了,超调量变小了,波动次数少了,而且增加开环极点,使得原系统根轨迹的整体走向在S 平面向右
移,使系统稳定性变坏。
(3)加入极点-10后所得到的根轨迹以及伯德图:
10
10
1010
10
-270
-180
-90
Frequency (rad/sec)
-150-100-50
50
Open-Loop Bode E ditor (C)
-100
-50
50-80-60
-40
-20
20
40
6080
Root Locus E ditor (C)
Real Axis
阶跃响应曲线如下:
Step Response
Time (sec)
A m p l i t u d e
00.51 1.5
2 2.5
3 3.5
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
由图可以看出加入零点之后系统的性能发生的变化,过渡过程时间变得更长了,超调量变大了,波动次数变多了,增加开环零点,使得原系统根轨迹的整体走向在S平面向右移,使系统稳定性得到改善。
四、设计小结
这个设计是应用了matlab中新的功能,是辅助设计闭环系统根轨迹的仿真软件Rltool,可以用来进行根轨迹校正的一个软件,在使用的过程中遇到了很多问题,参照着课本,一步一步的进行探索,遇到课本上解决不了的,就向同学和老师询问,或者在网上搜些资料以帮助自己理解一些概念,从而更快的理解课程设计需要做的东西,该如何按照老师的要求做出来,其中需要试一些符合要求的零极点,试了很多次。
还要到最后进行simulink的仿真,并且编写了程序,以验证所设计的是不是符合要求。
通过这次课程设计,我学到了很多东西,通过编写程序,用到了以前学过的知识,对以前所学知识进行了巩固,觉得非常好,把以前学过的东西又重新捡起来,继续用,也为自己的后续的学习之路铺下基础,比如说后面的毕业设计可能就会用到matlab。
我也感受到了matlab强大的功能,对这个软件产生了极大的兴趣,非常实用和好玩。
这次课程设计真的学到了很多很多,深受启发,让我对以后的学习充满了信心,老师也很敬业,对我们学生很负责任,耐心教导。