问题描述及空间状态表达式的建立1.1问题描述汽车减震系统主要用来解决路面不平而给车身带来的冲击,加速车架与车身振动的衰减,以改善汽车的行驶平稳性。
如果把发动机比喻为汽车的“心脏”,变速器为汽车的“中枢神经”,那么底盘及悬挂减震系统就是汽车的“骨骼骨架”。
减震系统不仅决定了一辆汽车的舒适性与操控性同时对车辆的安全性起到很大的决定作用,随着人们对舒适度要求的不断提高,减震系统的性能已经成为衡量汽车质量及档次的重要指标之一。
图1.悬架减震系统模型汽车减震系统的目的是为了减小路面的颠簸,为人提供平稳、舒适的感觉。
图2,是一个简单的减震装置的原理图。
它由一个弹簧和一个减震器组成。
从减震的角度看,可将公路路面看作是两部分叠加的结果:一部分是路面的不平行度,在汽车的行驶过程中,它在高度上有一些快速的小幅度变化,相当于高频分量;另一部分是整个地形的坡度,在汽车的行驶过程中,地形的坡度有一个缓慢的高度变化,相当于低频分量。
减震系统的作用就是要在汽车的行驶过程中减小路面不平所引起的波动。
因此,可以将减震系统看成是一个低通滤波器。
图2.减震系统原理图1.2空间状态表达式的建立对该系统进行受力分析得出制约底盘运动的微分方程(数学模型)是:22()()()()()d y t dy t dx t M b ky t kx t b dt dt dt++=+ 其中,M 为汽车底盘的承重质量,k 为弹簧的弹性系数,b 为阻尼器的阻尼系数。
将其转化为系统传递函数:222()()()2()n n n n s H s s s ωεωεωω+=++ 其中,n ω为无阻尼固有频率,ε为阻尼系数。
并且,n ω=2n b M ξω= 通过查阅相关资料,我们知道,汽车减震系统阻尼系数ε=0.2~0.4,而我们希望n ω越大越好。
在下面的计算中,我们规定n ω=6,ε=0.2。
所以,系统传递函数,可以转化为:2() 2.436() 2.436Y s s U s s s +=++ 根据现代控制理论知识,结合MATLAB 工具,将传递函数转化为状态空间矩阵和输出矩阵表示。
在MATLAB 中输入,[][][]()A,B,C,D tf2ss 2.4 36,1 2.4 36=能够得到:2.43610A --⎛⎫= ⎪⎝⎭ 10B ⎛⎫= ⎪⎝⎭ []2.436C = [0]D =。
进而,通过现代控制理论,可以将系统状态变量图绘制出来。
图3.系统状态变量图2.应用MATLAB分析控制系统性能2.1系统可控性与可观测性分析可控性和可观测性,深刻地揭示了系统的内部结构关系,由R.E.Kalman于60年代初首先提出并研究的这两个重要概念,在现代控制理论的研究与实践中,具有极其重要的意义,事实上,可控性与可观测性通常决定了最优控制问题解的存在性。
我们借助MATLAB工具来实现系统可控性与可观测性分析。
程序代码如下:A=[-2.4 -36;1 0];B=[1;0];M=ctrb(A,B);n=rank(M)C=[2.4 36];N=obsv(A,C);rN=rank(N)输出结果如下:n = 2rN = 2通过现代控制理论知识,可以得出结论:系统是可控可观测的。
2.2系统稳定性分析在经典控制理论中,如果在输入量的作用下系统的输出量能够达到一个新的平衡状态或扰动量去掉以后系统的输出量能够恢复到原来的平衡状态,则系统是稳定的。
控制系统的稳定性分析是系统分析的重要组成部分。
系统稳定是控制系统正常工作的前提条件。
根据李雅普诺夫第一法,若线性化方程中系数矩阵A的所有特征值都具有负实部,则系统总是渐近稳定的。
在MATLAB中输入如下代码:A=[-2.4 -36;1 0];B=[1;0];C=[2.4 36];D=[0];Q=[1 0;0 1];P=lyap(A',Q)eig(P)sys_ss=ss(A,B,C,D);p=pole(sys_ss)我们可以得到,系统极点为:P = -1.2000 5.8788i可以看出,系统的极点均在虚轴负半轴,由李氏第一法可得,系统是稳定的。
通过MATLAB软件,可以得到输入输出的阶跃响应曲线。
输入代码如下:[y,t,x]=step(sys_ss,10);figure(1);plot(t,y);xlabel('time/s');ylabel('Output y(t)');xlim([0 10]);gridfigure(2);plot(t,x);xlabel('time/s');ylabel('State x(t)');xlim([0 10]);grid输出曲线如图4,图5。
Array图4.系统输入的阶跃响应曲线图5.系统输出的阶跃响应曲线3.应用MATLAB 进行控制系统综合设计3.1极点配置所谓极点配置就是利用状态反馈或输出反馈使闭环系统的极点位于所希望的位置。
通过上面的分析,可知系统要反应5秒才能达到稳定。
这在实际中是不能够满足的,需要进行状态反馈,进行极点配置,以实现对系统的调整,使其达到稳定的时间更短,反应速度更快。
通过查询有关资料,得到了系统极点方程:n P i ξωω=-±这次,我们设定ξ=0.4,n ω=10。
得到希望极点:49.165P i =-±。
为了是计算简单,将极点进行四舍五入:49P i =-±。
然后,使用MATLAB 进行极点配置,编写如下代码:A=[-2.4 -36;1 0];B=[1;0];C=[2.4 36];D=[0];K=acker(A,B,[-4+9i -4-9i])运行后,可以得到状态反馈矩阵K=[5.6 61],进而可以计算出极点配置后状态反馈系统的状态方程:(2.4 5.6)(3661)z z z u ++++=&&&2.436y z z =+&状态反馈系统传递函数为:2 2.436()(2.4 5.6)(3661)s G s s s +=++++ 状态反馈系统方框图为图6所示。
图6.状态反馈系统方框图下面进行系统性能的仿真分析,验证是否经过极点配置后,系统能够满足快速响应的使用要求。
采用MATLAB 中的simulink 模块,对系统进行仿真分析。
原系统(极点配置前)在输入阶跃信号时,系统输出响应曲线如图7所示。
图7.(极点配置前)系统输出响应曲线状态反馈系统(极点配置后)在输入阶跃信号时,系统输出响应曲线如图8所示。
图8.(极点配置后)系统输出响应曲线通过观察,可以看出:极点配置前,系统在5秒左右达到稳定;极点配置后,系统在2.5秒左右达到稳定。
因此,极点配置能够使系统性能更优,响应时间更快。
3.2系统的最优控制上面对系统进行了极点配置和状态反馈,使得系统的性能得到了一定的改善。
但是,系统还远远没有达到最优的状态。
最优控制问题, 就是从可供选择的容许控制集合U 中,寻找一个控制u(t), 使受控系统在[t 0 t f ]内,从初始状态x(t 0),转移到终端状态x(t f )或目标集时,性能指标J 取最小(大)值。
下面将采用线性二次型最优控制的方法,对系统进行最优控制。
二次型最优控制性能指标为:0(2)T T T J x Qx u Ru x Nu dt ∞=++⎰ 其中:200001Q ⎛⎫= ⎪⎝⎭ 1R = 01N ⎛⎫= ⎪⎝⎭最优控制规律为:u Kx =-。
下面为运用MATLAB 工具,对系统进行最优控制,程序如下:A=[0 1;-36 -2.4];B=[2.4;30.24];C=[1 0];D=[0];Q=[200 0 ;0 1;];R=1;N=[0;1];sys=ss(A,B,C,D);% [K,P,L]=lqr(A,B,Q,R,N);disp('')Kdisp('Riccati ')Pdisp('')LAC=A-B*K;BC=B*K(1);CC=C;DC=求系统的初始状态响应反馈增益矩阵方程的解闭环特征根0;sysc=ss(AC,BC,CC,DC);disp('')sysc[y,t,x]=step(sys,10);[yc,tc,xc]=step(sysc,10);figure(1);subplot(2,2,1);plot(t,y);xlabel('time/s');ylabel('Output y(t)');xlim([0 10]);grid%sub 闭环系统状态方程系数矩阵原系统输出的单位阶跃响应plot(2,2,2)plot(t,x);xlabel('time/s');ylabel('State x(t)');xlim([0 10]);grid%subplot(2,2,3);plot(tc,yc);xlabel('time/s');ylabel('Output yc(t)');xlim([0 10]);grid%subplot(2,2原系统状态的单位阶跃响应最优控制系统输出的单位阶跃响应,4);plot(tc,xc);xlabel('time/s');ylabel('State xc(t)');xlim([0 10]);grid%最优控制系统状态的单位阶跃响应程序运行结果如图9所示。
图9.最优控制与系统性能对比通过对比,可以清晰的看到,最优控制后,系统瞬间就恢复了稳定,响应时间迅速。
这样,最优控制确实起到了很好的效果,能够使系统达到最优。
4.总结通过这次小论文,结合现代控制理论,并借助MATLAB工具,学到了有关现代控制理论和系统建模仿真的知识。
并且,在学习过程中,不断的解决所遇到的问题,加深了对现代控制理论的理解和对MATLAB软件的熟悉程度。
对于汽车减震系统,现代控制理论能够很好的解决汽车颠簸的问题。
现代控制理论完全可以在理论上实现很好的控制,并指导实际工作。
将MATLAB与现代控制理论合理的结合一起,提高了问题的解决效率,是值得深入研究的。
感谢老师辛苦的指导,感谢同学们的帮助和支持。