问题描述及空间状态表达式的建立
1.1 问题描述
汽车减震系统主要用来解决路面不平而给车身带来的冲击,
加速车架与车身振动的衰减,
以改善汽车的行驶平稳性。如果把发动机比喻为汽车的“心脏” ,变速器为汽车的“中枢神
经”,那么底盘及悬挂减震系统就是汽车的 “骨骼骨架” 。减震系统不仅决定了一辆汽车的舒 适性与操控性同时对车辆的安全性起到很大的决定作用, 随着人们对舒适度要求的不断提高,减震系统的性能已经成为衡量汽车质量及档次的重要指标之一。
图 1. 悬架减震系统模型
汽车减震系统的目的是为了减小路面的颠簸,为人提供平稳、舒适的感觉。图
2,是一
个简单的减震装置的原理图。它由一个弹簧和一个减震器组成。
从减震的角度看,可将公路路面看作是两部分叠加的结果:一部分是路面的不平行度, 在汽车的行驶过程中, 它在高度上有一些快速的小幅度变化,
相当于高频分量; 另一部分是
相当于低频分
整个地形的坡度, 在汽车的行驶过程中, 地形的坡度有一个缓慢的高度变化, 量。减震系统的作用就是要在汽车的行驶过程中减小路面不平所引起的波动。 减震系统看成是一个低通滤波器。
因此,可以将
图 2. 减震系统原理图
U (s)
1.2 空间状态表达式的建立
对该系统进行受力分析得出制约底盘运动的微分方程(数学模型)是:
M d
2
y(t)
b dy(t)
ky(t)
kx(t ) b dx (t ) dt 2
dt
dt
其中, M为汽车底盘的承重质量, k 为弹簧的弹性系数, b 为阻尼器的阻尼系数。将其转化为系统传递函数:
n
2 n (s)
H (s)
(s) 2 2
n (s) n
2
其中, n 为无阻尼固有频率,
为阻尼系数。并且,
k n
2b
n
M
M
通过查阅相关资料,我们知道,汽车减震系统阻尼系数
=0.2 ~ 0.4 ,而我们希望
n 越大越好。在下面的计算中,我们规定
n =6, =0.2 。所以,系统传递函数,可以转化为: Y( s)
2.4s 36
s2 2.4s 36
根据现代控制理论知识,结合 MATLAB工具,将传递函数转化为状态空间矩阵和输出矩阵表示。
在 MATLAB中输入,
A,B,C,D
tf2ss 2.4 36 , 1 2.4 36
能够得到:
A
2.4 36 B
1 C 2.4 36
D [0] 。
1
0
0
进而,通过现代控制理论,可以将系统状态变量图绘制出来。
图 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。
图 4. 系统输入的阶跃响应曲线
图 5. 系统输出的阶跃响应曲线
3.应用 MATLAB进行控制系统综合设计
3.1 极点配置
所谓极点配置就是利用状态反馈或输出反馈使闭环系统的极点位于所希望的位置。
通过
需要进行状
上面的分析, 可知系统要反应 5 秒才能达到稳定。 这在实际中是不能够满足的,
通过查询有关资料,得到了系统极点方程:
态反馈,进行极点配置,以实现对系统的调整,使其达到稳定的时间更短,反应速度更快。
2
P
n
i
n
1
这次,我们设定 将极点进行四舍五入:
=0.4 , n =10。得到希望极点: P4 9.165i 。为了是计算简单,
P 4 9i 。然后,使用 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], 进而可以计算出极点配置后状态反馈系统的状态方程:
z
(2.4 5.6)z
(36 61)z u
y
2.4z 36z
状态反馈系统传递函数为:
G(s)
6 所示。
s2
2.4s 36
(2.4 5.6)s (36 61)
状态反馈系统方框图为图
图 6. 状态反馈系统方框图
下面进行系统性能的仿真分析, 验证是否经过极点配置后, 系统能够满足快速响应的使用要求。采用 MATLAB中的 simulink 模块,对系统进行仿真分析。
原系统(极点配置前)在输入阶跃信号时,系统输出响应曲线如图
7 所示。
图 7. (极点配置前)系统输出响应曲线
J
0
状态反馈系统(极点配置后)在输入阶跃信号时,系统输出响应曲线如图
8 所示。
图 8. (极点配置后)系统输出响应曲线
通过观察,可以看出:极点配置前,系统在 5 秒左右达到稳定;极点配置后,系统在
2.5 秒左右达到稳定。因此,极点配置能够使系统性能更优,响应时间更快。
3.2 系统的最优控制
上面对系统进行了极点配置和状态反馈,
使得系统的性能得到了一定的改善。 但是, 系统还远远没有达到最优的状态。最优控制问题 , 就是从可供选择的容许控制集合
U 中 , 寻找
一个控制 u(t), 使受控系统在 [t 0 t f ]
内 , 从初始状态
x(t f ) 或目标集
0), 转移到终端状态 x(t 时, 性能指标 J 取最小 ( 大 ) 值。
下面将采用线性二次型最优控制的方法,对系统进行最优控制。 二次型最优控制性能指
标为:
T
Qx
uT Ru 2xT Nu )dt
其中:
Q
200 0 R 1 N
0
0
1
1
最优控制规律为:
u Kx 。
下面为运用 MATLAB工具,对系统进行最优控制,程序如下: ( x
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('反馈增益矩阵 ') K
disp('Riccati方程的解 ') P
disp('闭环特征根 ') L
AC=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
%原系统输出的单位阶跃响应 subplot(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与现代控制理论合理的结合一