最少拍控制系统实验报告.docx
《最少拍控制系统实验报告.docx》由会员分享,可在线阅读,更多相关《最少拍控制系统实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
最少拍控制系统实验报告
计算机控制技术
--基于Matlab的最少拍控制系统设计
学院:
计算机科学与技术
班级:
计科0902班
学号:
姓名:
指导老师:
日期:
2012年12月15日
一、实验目的:
1.学习使用Matlab设计最少拍控系统的方法;
二、实验工具:
X86系统兼容型计算机、MATLAB软件。
三、实验内容:
1.实验原理
最少拍设计,是指系统在典型输入信号(如阶跃信号、速度信号、加速度信号等)作用下,经过最少拍(有限拍)使系统输出的系统稳态误差为零。
因此,最少拍控制系统也称最少拍无差系统或最少拍随动系统,它实质上是时间最优控制系统,系统的性能指标就是系统调节时间最短或尽可能短,即对闭环Z传递函数要求快速性和准确性。
下面以一个具体实例介绍最少拍系统的设计和仿真。
考虑图1所示的采样数字控制系统,被控对象的脉冲传递函数为
图0最少拍采样数字控制系统
设采样周期T=1s,首先求取广义被控对象的脉冲传递函数:
广义被控对象
我们知道,最少拍系统是按照指定的输入形式设计的,输入形式不同,数字控制器也不同。
因此,对三种不同的输入信号分别进行考虑:
1单位阶跃信号:
计算可得到最少拍数字控制器为
检验误差序列:
由误差的变换函数得知,所设计的系统当k>1后,e(k)=0就是说,一拍以后,系统输出等于输入,设计正确。
②单位速度信号:
原理同上,我们可以得到:
检验误差:
从E(z)看出,按单位速度输入设计的系统,当k大于等于2之后,即二拍之后,误差e(k)=0,满足题目要求。
2单位加速度信号:
可知,按加速度输入信号设计的系统当k大于等于3,即三拍之后,误差e(k)=0。
2.实验设计
将所得结果分别用Matlab中的Simulink工具箱进行仿真,并将输入、输出和误差三条曲线放置在同一图像内,比较三种情况下的跟随特性。
四、实验步骤:
在三种输入(单位阶跃/速度/加速度)分别作用下,运用Simulink对其控制结果进行仿真。
(a)有波纹控制系统
①单位阶跃信号:
系统Simulink仿真模型框图如图1所示:
可得更加清晰的仿真结果如图1-1所示:
图1单位阶跃信号输入时最少拍控制系统
将示波器的数据存为矩阵形式,命名为y1
在Matlab命令窗口输入:
>>plot(tout(:
1),y1(:
2:
4));
>>holdon,legend('输入','误差','输出')
可得输入、输出和误差三条曲线结果图如下所示:
图1-1单位阶跃信号输入时系统的仿真结果
②单位速度信号:
控制系统Simulink框图如图2所示:
图2单位速度信号输入时最少拍控制系统
将示波器的数据存为矩阵形式,命名为y2
在Matlab命令窗口输入
>>plot(tout(:
1),y2(:
2:
4));
>>holdon,legend('输入','误差','输出')
仿真结果为
图2-2单位速度信号输入时系统的仿真结果
③单位加速度信号:
控制系统Simulink框图如图3所示:
图3单位加速度信号输入时最少拍控制系统
将示波器的数据存为矩阵形式,命名为y3
在Matlab命令窗口输入
>>plot(tout(:
1),y3(:
2:
4));
>>holdon,legend('输入','误差','输出')
仿真结果图如图3-3所示。
图7单位加速度信号输入时系统的仿真结果
(b)无波纹控制系统
》》无波纹最小拍控制器的计算
(1)带零阶保持器的广义被控对象为
通过matlab,z变换程序为
np=[0010];
dp=[110];
hs=tf(np,dp);
hz=c2d(hs,1)
结果为
Transferfunction:
3.679z+2.642
----------------------
z^2-1.368z+0.3679
Samplingtime:
1
即
(2)无波纹最小拍控制器D(z)
根据G(z),对象有一个纯迟后因子v=1,一个零点
,两个极点,单位速度信号
所以q=1,则闭环脉冲传递函数为
由
得系数
,
,则系统脉冲传函为
误差脉冲传函为
由
得设计的控制器为
①单位阶跃信号
》》无波纹最小拍控制系统框图
控制系统整体框图
》》无波纹最小拍控制系统Matlab仿真
通过Matlab观察阶跃输入响应输出程序如下
num=[0.382-0.3640.0824];
den=[1-0.407-0.593];
dz=tf(num,den,-1);
sys1=dz*hz;
sys2=feedback(sys1,1);
step(sys2,20)
输出曲线如下
由图可见,3拍后输出跟上输入,可实现最小拍控制,T=1s满足要求。
》》无波纹最小拍控制系统simulink仿真
仿真结果为:
(1)系统输入及系统输出曲线c(t)图形如下:
(2)系统误差e(t)曲线如下:
(3)控制器输出u(k)曲线如下:
通过仿真曲线看出:
控制器D(z)满足设计要求,系统在第三拍之后系统达到无差,最后控制器输出恒定(
),因此系统输出不会产生波纹,调节时间为
。
将
得系统的差分方程为:
②单位速度信号:
M文件代码:
z=[-2,-6];p=[0,0,-1,-5,-8];k=668;
Gs=zpk(z,p,k)%求被控对象传递函数G(s)的MATLAB描述
T=0.1
Gz=c2d(Gs,T)
Gz=c2d(Gs,T,'zoh')%用零阶保持器离散化,求被控对象脉冲传递函数Gz
[z,p,k]=zpkdata(Gz);%求出其极点,零点及增益
Gz=zpk(z,p,k,0.1,'variable','z^-1')%转换Gz为零极点增益模型按z-1形式排列
symszr0r1c0c1c2c3c4%配置系数
Gz=0.096757*z^-1*(1+3.252*z^-1)*(1-0.8187*z^-1)*(1-0.5488*z^-1)*(1+0.2281*z^-1)/(1-z^-1)^2/(1-0.9048*z^-1)/(1-0.6065*z^-1)/(1-0.4493*z^-1)
Gcz=z^-1*(1+3.252*z^-1)*(1-0.8187*z^-1)*(1-0.5488*z^-1)*(1+0.2281*z^-1)*(r0+r1*z^-1)%设置Gc(z)满足控制器Dy(z)可实现、最少拍稳定的要求。
f1=subs(Gcz,z,1)-1;%列方程求解Gc
f2=subs(diff(Gcz,1),z,1);
[r0j,r1j]=solve(f1,f2);
Gcz=subs(Gcz,[r0r1],[r0jr1j])
Gez=(1-z^-1)^2*(c0+c1*z^-1+c2*z^-2+c3*z^-3+c4*z^-4)%设置Ge(z)
f3=limit(Gez,z,inf)-1;%列方程求解Gez
f4=subs(Gez,z,-3.252)-1;
f5=subs(Gez,z,0.8187)-1;
f6=subs(Gez,z,0.5488)-1;
f7=subs(Gez,z,-0.2281)-1;
[c0j,c1j,c2j,c3j,c4j]=solve(f3,f4,f5,f6,f7)
Gez=subs(Gez,[c0c1c2c3c4],[c0jc1jc2jc3jc4j])
Guz=Gcz/Gz
Dwz=Gcz/Gz/Gez
[N,D]=numden(simplify(Gcz));
numc=sym2poly(N)
denc=sym2poly(D)
[N,D]=numden(simplify(Guz));
numu=sym2poly(N)
denu=sym2poly(D)
t=0:
0.1:
10
u=t%单位速度输入
holdon
dlsim(numc,denc,u)%.程序仿真
dlsim(numu,denu,u)
holdoff
[N,D]=numden(simplify(Dwz));%提取Dyz的系数,图形仿真中设置Dwz.
numdy=sym2poly(N)
dendy=sym2poly(D)
无波纹最少拍程序仿真图:
无波纹最少拍图形仿真图:
无波纹最少拍闭环系统输出Y(z)图形仿真结果
无波纹最少拍闭环系统数字控制器输出U(z)图形仿真结果
3单位加速度信号:
系统不满足无波纹控制的必要条件,无法进行设计。
五、实验数据及结果分析:
由上面的仿真结果图可知,按最少拍有波纹控制系统设计出来的闭环系统,在有限拍后进入稳态,这时闭环系统输出在采样时间精确的跟踪输入信号。
如单位阶跃信号在一拍后,单位速度信号在两拍后,单位加速度信号则在三拍之后。
然而,进一步研究可以发现虽然在采样时刻系统输出与所跟踪的参考输入一致,但在两个采样时刻之间,系统的输出存在着纹波或振荡。
例如单位阶跃信号在一拍后的稳态响应仍有许多振荡。
这种纹波不仅影响系统的控制性能,产生过大的超调和持续振荡,而且还增加了系统功率损耗和机械磨损。
有波纹和无波纹的差别在于有波纹控制器经过一定的采样周期之后,其输入跟踪输出,但其数字控制器输出的曲线会出现小的波动,该波动为波纹,而无波纹数字控制器D(z)的输出曲线经过一定采样周期之后会为一常数,不会产生波纹。
六、总结及心得体会
设计最小拍数字控制系统是之前的《计算机控制系统》中学习过的知识,我基本能够熟练地掌握,但由于我之前从未学习过matlab软件,一开始连matlab的基本的功能和函数都根本不清楚,要用matlab设计控制系统并进行仿真,对我是一个非常大的挑战。
但我相信,只要认真查阅相关书籍学习,虚心向老师和同学请教,一定能很快地学会使用matlab软件的基本功能。
我借来一本《MATLAB仿真技术》,从最基础的了解菜单界面窗口、建立M文件学起,到学习用它解方程,表达控制系统的传递函数,再到使用一些常用的函数命令,比如离散化、建立零极点增益模型等。
一步一步地亲身实践尝试,慢慢就掌握了这些基本的软件操作能力。
在这一基础上,我终于可以用matlab软件设计最小拍控制系统。
通过利
用matlab待定系数,到实现程序仿真,到最后形象的Simulink图形仿真,我意识到matlab软件的强大,它可以大大方便我们计科专业的学生在控制系统设计中的计算和设计。
课程设计使我基本掌握了一个很有用的软件Matlab,也使我更加意识到学习知识要有信心,从基础打起,一点一点不断累积和实践尝试。
多和同学探讨在学习中遇到的错误和经验,也能很好提高学习效率,少犯错误。
这是一次很有意义的实践,我会把收获用在以后的学习中,不断努力学习新的知识!