MATLBA大作业.docx
《MATLBA大作业.docx》由会员分享,可在线阅读,更多相关《MATLBA大作业.docx(14页珍藏版)》请在冰点文库上搜索。
MATLBA大作业
MATLAB语言、控制系统分析与设计
柴油电力机车——状态变量反馈控制系统的设计和校正
姓名杨欣学号U200911880专业班号0905
指导教师王凌云
日期2012年11月15日
成绩
评阅人
目录
一、引言………………………………………………………………3
二、设计题目和目标…………………………………………………3
三、待校正系统建模…………………………………………………4
四、系统状态反馈矩阵参数初步设计及结果………………………5
五、用SIMULINK验证校正以后的闭环系统………………………10
六、系统说明…………………………………………………………11
七、对系统的深入研究——系统干扰的讨论…………………………12
八、设计小结…………………………………………………………14
九、参考文献…………………………………………………………14
一、引言
在之前的课程中我们学习了自动控制原理,为了对所学知识有更深的体会和理解这些知识,把学习到的知识应用在现实生活的具体设计之中,是一种很有效的方法。
这次MATLAB作业是选择四个章节中的一个课后题进行设计,正是给了我们一个机会,让我们能够更加深刻地理解matlab的应用。
2、设计题目和目标
我这次所选择的题目是:
柴油电力机车——状态变量反馈控制系统的设计,选择的课后习题是11.4:
ConsiderthedieselelectriclocomotiveproblemdiscussedinSection11.5.Designastatefeedbackcontrollersothesystemstepresponseisoverdamped.Thesystemmuststillsettleoutin1second.UseMATLABorSIMULINKtoanalyzetheclosed-loopsystemperformancewiththecontrollerintheloop.即:
考虑到柴油电力机车Section11.5探讨的问题。
设计一个状态反馈控制器。
要使这个系统阶跃响应是过阻尼。
该系统调整时间为1秒。
使用MATLAB和SIMULINK设计和分析闭环系统性能。
待校正的系统为:
图
(1)
图中负载的转速
是我们希望控制的变量,而Dieselengine所输出的转速
是系统的输入变量,在本次设计中,我们所设置的
是一个单位阶跃信号。
系统的信号的流程图为:
图
(2)
图中的K是误差放大系数,使得微小的误差可以被放大,从而更好地控制系统的励磁电流。
设计目标:
在本次设计中,我们希望通过参数K与H的设置,来达到以下目标:
1、系统的稳态误差小于2%
2、系统是过阻尼状态
3、系统的调整时间小于1s
(K是信号流图中的放大增益,H是状态反馈矩阵)
3、待校正系统建模
系统原始数据:
图(3)
1)我们需要先选择状态变量,从图
(1)中可以看出,系统有三个主要的变量,即负载转速
,电枢电流
,励磁电流
,我们就以这三个量作为状态变量。
即:
选好了状态变量以后,我们写出系统的状态变量模型:
其中
用矩阵形式表示为:
其中
至此,系统模型建立完毕。
四、系统状态反馈矩阵参数初步设计及结果
在设计参数之前,我们要先判断系统的可控性。
为此,用matlab编程如下:
f=1;J=1;Km=10;Kb=0.62;Lt=0.2+0.1;
Rt=1+1;Kt=1;Kg=100;Rf=1;Lf=0.1;
A=[-f/JKm/J0;-Kb/Lt-Rt/LtKg/Lt;00-Rf/Lf];
B=[0;0;1/Lf];C=[100];D=[0];
Pc=[BA*BA^2*B];
a=rank(Pc)
Po=[C;C*A;C*A^2];
b=rank(Po)
在matlab中运行了以后,输出结果为a=3,b=3,这说明系统是可控的,可观的,所以我们可以设计状态反馈矩阵。
在没有经过校正之前,系统的方框图如下:
图4未经校正的系统方框图(Kpot=Kt=1)
我们设置的状态反馈矩阵H如下:
,则
经过状态反馈以后,系统的闭环状态议程如下:
,其中
由于可控性已经过验证,我们下面考虑经过校正的闭环极点在s平面上的位置。
由于系统的性能指标要求我们经过校正后的系统是过阻尼的,所以说闭环极点都要在负实轴上,还有调整时间不超过1s,所以说闭环极点的实部绝对值要大于5(因为到达稳态的调整时间等于闭环主导极点实部绝对值的倒数乘以5),综合以上两点,我们可以先假设系统经过校正后的三个闭环极点为:
p1=-5,p2=-40,p3=-40.选择p2=-40,p3=-40是为了突出主导极点的作用,所以把两个非主导极点设置得远离主导极点。
这样选择了参数以后,我们用matlab编程:
f=1;J=1;Km=10;Kb=0.62;Lt=0.2+0.1;
Rt=1+1;Kt=1;Kg=100;Rf=1;Lf=0.1;
A=[-f/JKm/J0;-Kb/Lt-Rt/LtKg/Lt;00-Rf/Lf];
B=[0;0;1/Lf];C=[100];D=[0];
P=[-5,-40,-40];%自己设计的闭环极点值
H=acker(A,B,P)%通过阿克曼方法算出极点对应的反馈系数
[num,den]=ss2tf(A-B*H,B,C,D);
Kpot=num(4)/den(4);
t=[0:
0.05:
2];
[y,x,t]=step(A-B*H,B/Kpot,C,D,1,t);
plot(t,x(:
1),t,x(:
2),'--',t,x(:
3),'-.'),grid
xlabel('Time(sec)'),ylabel('Statevariables')
legend('wo','ia','if',-1)
通过以上程序我们得出H=[0.34560.981910.7333]
程序运行后图如下:
图5经过初步校正后的系统三个状态变量的单位阶跃响应
此时系统稳态误差为0,而且是过阻尼状态,但是我们把图局部放大以后可以发现,系统的稳态调整时间是大于1s的(见下图),所以说此时还不符合要求,还要继续调整状态反馈的参数。
图6经过初步校正后的系统输出量单位阶跃响应局部图
对系统状态反馈矩阵参数进一步设计及结果:
选择参数中,我们设计的闭环极点并不符合要求,所以我们把闭环极点的绝对值再增大一些,以便进一步缩短系统的调整时间,我们假设p1=-7,p2=-60,p3=-60,这里设置两个-60的极点还是为了更好地突出主导极点-7的作用。
编程如下:
f=1;J=1;Km=10;Kb=0.62;Lt=0.2+0.1;
Rt=1+1;Kt=1;Kg=100;Rf=1;Lf=0.1;
A=[-f/JKm/J0;-Kb/Lt-Rt/LtKg/Lt;00-Rf/Lf];
B=[0;0;1/Lf];C=[100];D=[0];
P=[-7,-60,-60];%自己设计的闭环极点值
H=acker(A,B,P)%通过阿克曼方法算出极点对应的反馈系数
[num,den]=ss2tf(A-B*H,B,C,D);
Kpot=num(4)/den(4)
t=[0:
0.05:
2];
[y,x,t]=step(A-B*H,B/Kpot,C,D,1,t);
plot(t,x(:
1),t,x(:
2),'--',t,x(:
3),'-.'),grid
xlabel('Time(sec)'),ylabel('Statevariables')
legend('wo','ia','if',-1)
经过运行后得出H=[0.55321.049310.9333],Kpot=1.3228
程序运行后图如下:
图7经过深入校正后的系统三个状态变量的单位阶跃响应
从图中可以明显地看出,系统的三个指标都达到了,即稳态误差小于2%(实际上稳态误差为0),系统过阻尼,系统的调整时间小于1s。
我们把图局部放大,可以看出此时系统的稳态调整时间在0.95s左右,所以说,此时的系统已经符合要求了。
图8经过进一步校正后的系统输出量单位阶跃响应局部图
五、用SIMULINK验证经过状态反馈校正以后的闭环系统
我们用matlab里面自带的simulink工具来验证以上设计的结果,搭建的仿真方框图如下:
图9用SIMULINK验证经过状态反馈校正以后的闭环系统
在经过运行以后,得出的仿真结果如下图所示:
图10用SIMULINK仿真经过校正后系统的单位阶跃响应
对比图7和图10,我们可以看出,两个波形符合的很好,所以说我们用SIMULINK很好地验证了校正以后系统单位阶跃响应的结果。
六、系统说明
在系统的进一步设计中,我们通过校正使系统的稳态调整时间达到了0.95秒,为什么不再次改进参数使得系统的调整时间进一步减小呢?
这是因为在实际的系统设计中,我们总是设计系统使得系统的性能指标接近给定的指标,当系统的某一个性能指标设计得过于优异,必然会在实际的制造中付出相应的代价,使制造成本上升,并且通常会引起系统其它指标的下降,这是我们不希望看到的,所以我在设计的时候仅仅使系统的稳态调整时间达到了0.95秒,而没有进一步减小系统的稳态调整时间。
七、对系统的深入研究——系统干扰的讨论
在图2中,系统的信号流图中有一个扰动Td,在实际系统中这个扰动由于各种原因,是肯定存在的,有了扰动以后,我们设系统的扰动为单位阶跃扰动。
使用SIMULINK仿真,如下图:
图11有了扰动以后的系统仿真图
经过仿真以后,得出结果如下图:
图12在单位阶跃扰动下系统的单位阶跃响应
从结果可以看出,在实际系统中有了扰动以后,系统除了有了稳态误差以外,其它指标还是与没有扰动的时候差不多的,于是我就想,可以通过增大信号源的增益(Kpot)来消除扰动的干扰。
从图12的放大图中读出系统的稳态值为0.85,于是我把信号源的增益(Kpot)放大为原来的1/0.85倍,即原来的1.18倍,使Kpot=1.18*0.7560=0.885,得出仿真方框图和仿真结果图分别如下:
图13经过增益校正以后的带干扰的系统仿真方框图
图14经过增益校正以后的带干扰的系统的单位阶跃响应
从图中可以看出,把信号源的增益放大以后,可以使得系统的干扰信号引起的稳态误差得到补偿,从而补偿了干扰的影响。
九、设计小结
本次毕业设计我通过状态反馈的方法对一个电机系统进行校正,使得系统的性能指标符合给定的要求,在经历了初步设计、进一步设计以后,完成了设计过程,并用matlab自带的SIMULINK模块进行了验证,结果是设计的状态反馈系数符合要求。
在设计完成以后,我又对系统进行了深入的研究,即在有干扰情况下系统应该如何校正,通过干扰仿真我找到了校正扰动的方法,即放大系统的信号源放大增益,从而补偿了系统的干扰。
至此,设计全部完成。
十、参考文献
[1]线性控制系统工程(英文版)(美)德赖斯编著;清华大学出版社;2000年12月第1版。
[2]现代控制系统分析与设计——应用MATLAB和SIMULINK(英文版)(美)RobertH.Bishop编著;清华大学出版社;2003年12月第1版。