基于MATLAB的汽车减震系统仿真建模
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题描述及空间状态表达式的建立
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 为阻尼器的阻尼系数。将其转化为系统传递函数:
22
2()()()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.436
Y s s U s s s +=++ 根据现代控制理论知识,结合MATLAB 工具,将传递函数转化为状态空间矩阵和输出矩阵表示。
在MATLAB 中输入,
[][][]()A,B,C,D tf2ss 2.4 36,1 2.4 36=
能够得到:
2.4361
0A --⎛⎫= ⎪⎝⎭ 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 = 2
rN = 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]);grid
figure(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],进而可以计算出极点配置后状态反馈系统的状态方程: