注:本人为车辆工程研究生,研究方向为智能网联汽车,汽车系统动力学及控制,后续还会写一些半车模型和整车模型的搭建方法,欢迎各位相同方向的同学交流学习心得。 上图中, z s {{z}}_s zs表示簧载质量位移, z u {{z}}_u zu表示非簧载质量位移, m s {{m}}_s ms表示簧载质量, m u {{m}}_u mu表示非簧载质量, k t {{k}}_t kt表示轮胎刚度, k s {{k}}_s ks表示悬架刚度, c s {{c}}_s cs表示悬架阻尼, F M R F_{MR } FMR表示磁流变悬架阻尼力。在这里为了简化计算,不把控制方法作为重点,所以 F M R F_{MR } FMR视为0。其它参数的值分别是 m s {{m}}_s ms=310kg, m u {{m}}_u mu=70kg, k s {{k}}_s ks=27358N/m, k t {{k}}_t kt=309511N/m, c s {{c}}_s cs=984N.s/m[1]。确定模型和参数以后,根据牛顿第二定律在确定该模型的微分方程。 m s z ¨ s = − c s ( z ˙ s − z ˙ u ) − k s ( z s − z u ) − F M R m_s{\ddot{z}}_s=-c_s({\dot{z}}_s-{\dot{z}}_u)-k_s(z_s-z_u)-F_{MR} msz¨s=−cs(z˙s−z˙u)−ks(zs−zu)−FMR m u z ¨ u = c s ( z ˙ s − z ˙ u ) + k s ( z s − z u ) − k t ( z u − q ) + F M R m_u{\ddot{z}}_u=c_s({\dot{z}}_s-{\dot{z}}_u)+k_s(z_s-z_u)-k_t(z_u-q)+F_{MR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } muz¨u=cs(z˙s−z˙u)+ks(zs−zu)−kt(zu−q)+FMR
确定微分方程后,便可以在simulink搭建模型了,其中搭建模型的核心思想就是将 m s {{m}}_s ms和 m u {{m}}_u mu除到右边然后搭模型使等式左右两边相等。
先确定状态变量,后取系统的输入量,再将1/4车辆系统以状态方程形式表示。 选取状态变量为: x 1 = z s , x 2 = z ˙ s , x 3 = z u , x 4 = z ˙ u x_1=z_s\ \ ,\ {\ x}_2={\dot{z}}_s\ \ ,{\ \ x}_3=z_u\ \ ,\ {\ \ x}_4={\dot{z}}_u\ \ x1=zs , x2=z˙s , x3=zu , x4=z˙u X = [ x 1 x 2 x 3 x 4 ] T X=\left[x_1\ \ x_{2\ \ }x_{3\ \ }x_4\right]^T X=[x1 x2 x3 x4]T 取系统输入量为: U = [ F M R q ] T U=\left[F_{MR\ \ }q\right]^T U=[FMR q]T 则系统以状态方程形式表示为: X ˙ = A X ( t ) + B U \dot{X}=AX\left(t\right)+BU X˙=AX(t)+BU Y = C X ( t ) + D U Y=CX\left(t\right)+DU Y=CX(t)+DU
这样选取参照的是simulink里的state-space模块,该模块的用法可以参照Matlab里的说明书,下方便是Matlab的官方解释,也可以在Matlab内部直接搜索state-space模块,也会出现相对应的解释和说明。 http://ww2.mathworks.cn/help/simulink/slref/statespace.html。 在这里,我们选取了4个状态向量,所以n=4。输入为路面激励和阻尼力2个向量,所以m=2。输出的数量自己随意定,在本文中选取的是簧载质量速度 z ˙ s {\dot{z}}_s z˙s,非簧载质量速度 z ˙ u {\dot{z}}_u z˙u,簧载质量位移 z u z_u zu,簧载质量加速度 z ¨ u {\ddot{z}}_u z¨u。然后建立ABCD四个矩阵,矩阵代码如下。
A = [ 0 1 − k s / m s − c s / m s 0 0 k s / m s c s / m s 0 0 k s / m u c s / m u 0 1 − ( k s + k t ) / m u − c s / m u ] A=\left[\begin{matrix}\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\\begin{matrix}-k_s/m_s\ \ \ &-c_s/m_s\\\end{matrix}\\\end{matrix}&\ \ \ \ \begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}k_s/m_s&\ \ \ \ \ \ \ \ \ \ \ \ \ \ c_s/m_s\\\end{matrix}\\\end{matrix}\\\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}k_s/m_u\ \ \ &c_s/m_u\\\end{matrix}\\\end{matrix}&\begin{matrix}\ \ \ \ \ \begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\-\begin{matrix}\left(k_s+k_t\right)/m_u&-c_s/m_u\\\end{matrix}\\\end{matrix}\\\end{matrix}\right] A=⎣⎢⎢⎡0 1−ks/ms −cs/ms0 0ks/mu cs/mu 0 0ks/ms cs/ms 0 1−(ks+kt)/mu−cs/mu⎦⎥⎥⎤ B = [ 0 0 − 1 / m s 0 0 1 / m u 0 k t / m u ] B=\left[\begin{matrix}0&0\\-1/m_s&0\\\begin{matrix}0\\1/m_u\\\end{matrix}&\begin{matrix}0\\k_t/m_u\\\end{matrix}\\\end{matrix}\right] B=⎣⎢⎢⎡0−1/ms01/mu000kt/mu⎦⎥⎥⎤ C = [ 0 1 0 0 0 0 0 1 1 0 − k s / m s − c s / m s 0 0 k s / m s c s / m s ] C=\left[\begin{matrix}\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\\begin{matrix}0\ \ \ \ \ \ \ \ \ \ \ \ \ \ &0\\\end{matrix}\\\end{matrix}&\ \ \ \ \begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\\end{matrix}\\\begin{matrix}\begin{matrix}1&\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}-k_s/m_s\ \ \ &-c_s/m_s\\\end{matrix}\\\end{matrix}&\ \begin{matrix}\ \ \ \begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\ \begin{matrix}{\ \ \ k}_s/m_s\ &\ {\ \ \ c}_s/m_s\ \\\end{matrix}\\\end{matrix}\\\end{matrix}\right] C=⎣⎢⎢⎡0 10 01 0−ks/ms −cs/ms 0 00 1 0 0 ks/ms cs/ms ⎦⎥⎥⎤ D = [ 0 0 0 0 0 − 1 / m s 0 0 ] D=\ \left[\begin{matrix}0&0\\0&0\\\begin{matrix}0\\-1/m_s\\\end{matrix}&\begin{matrix}0\\0\\\end{matrix}\\\end{matrix}\right] D= ⎣⎢⎢⎡000−1/ms0000⎦⎥⎥⎤ 这4个矩阵求出来的原理如下图。 [ x ˙ 1 x ˙ 2 x ˙ 3 x ˙ 4 ] = [ 0 1 − k s / m s − c s / m s 0 0 k s / m s c s / m s 0 0 k s / m u c s / m u 0 1 − ( k s + k t ) / m u − c s / m u ] [ x 1 x 2 x 3 x 4 ] + [ 0 0 − 1 / m s 0 0 1 / m u 0 k t / m u ] [ F M R q ] \left[\begin{matrix}{\dot{x}}_1\\\begin{matrix}{\dot{x}}_2\\{\dot{x}}_3\\\end{matrix}\\{\dot{x}}_4\\\end{matrix}\right]=\left[\begin{matrix}\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\\begin{matrix}-k_s/m_s\ \ \ &-c_s/m_s\\\end{matrix}\\\end{matrix}&\ \ \ \ \begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}k_s/m_s&\ \ \ \ \ \ \ \ \ \ \ \ \ \ c_s/m_s\\\end{matrix}\\\end{matrix}\\\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}k_s/m_u\ \ \ &c_s/m_u\\\end{matrix}\\\end{matrix}&\begin{matrix}\ \ \ \ \ \begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\-\begin{matrix}\left(k_s+k_t\right)/m_u&-c_s/m_u\\\end{matrix}\\\end{matrix}\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\begin{matrix}x_3\\x_4\\\end{matrix}\\\end{matrix}\right]+\left[\begin{matrix}0&0\\-1/m_s&0\\\begin{matrix}0\\1/m_u\\\end{matrix}&\begin{matrix}0\\k_t/m_u\\\end{matrix}\\\end{matrix}\right]\left[\begin{matrix}F_{MR\ \ }\\q\\\end{matrix}\right] ⎣⎢⎢⎡x˙1x˙2x˙3x˙4⎦⎥⎥⎤=⎣⎢⎢⎡0 1−ks/ms −cs/ms0 0ks/mu cs/mu 0 0ks/ms cs/ms 0 1−(ks+kt)/mu−cs/mu⎦⎥⎥⎤⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤+⎣⎢⎢⎡0−1/ms01/mu000kt/mu⎦⎥⎥⎤[FMR q] [ y 1 y 2 y 3 y 4 ] = [ 0 1 0 0 0 0 0 0 0 0 − k s / m s − c s / m s 0 1 k s / m s c s / m s ] [ x 1 x 2 x 3 x 4 ] + [ 0 0 0 0 0 − 1 / m S 0 0 ] [ F M R q ] \left[\begin{matrix}y_1\\\begin{matrix}y_2\\y_3\\\end{matrix}\\y_4\\\end{matrix}\right]=\left[\begin{matrix}\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\\begin{matrix}0\ \ \ \ \ \ \ \ \ \ \ \ \ \ &0\\\end{matrix}\\\end{matrix}&\ \ \ \ \begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\end{matrix}\\\begin{matrix}\begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\\\end{matrix}\\\begin{matrix}-k_s/m_s\ \ \ &-c_s/m_s\\\end{matrix}\\\end{matrix}&\ \begin{matrix}\ \ \ \begin{matrix}0&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1\\\end{matrix}\\\ \begin{matrix}{\ \ \ k}_s/m_s\ &\ {\ \ \ \ c}_s/m_s\ \\\end{matrix}\\\end{matrix}\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\begin{matrix}x_3\\x_4\\\end{matrix}\\\end{matrix}\right]+\left[\begin{matrix}0&0\\0&0\\\begin{matrix}0\\-1/m_S\\\end{matrix}&\begin{matrix}0\\0\\\end{matrix}\\\end{matrix}\right]\left[\begin{matrix}F_{MR\ \ }\\q\\\end{matrix}\right] ⎣⎢⎢⎡y1y2y3y4⎦⎥⎥⎤=⎣⎢⎢⎡0 10 00 0−ks/ms −cs/ms 0 00 0 0 1 ks/ms cs/ms ⎦⎥⎥⎤⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤+⎣⎢⎢⎡000−1/mS0000⎦⎥⎥⎤[FMR q] 设计完以后,对simulink框架进行设计,路面激励模块搭建本文参照卢少波博士论文里的公式如下,也可以参照喻凡老师的《汽车系统动力学》。该公式中 w ( t ) w\left(t\right) w(t)为高斯白噪声,在simulink中用Band-Limited White Noise模块代替。 v v v为车速,这里取60km/h。 G q ( n 0 ) G_q\left(n_0\right) Gq(n0)为参考空间频率n0下的路面功率谱密度值,其取值请参考下表。 q ˙ i ( t ) = 2 π G q ( n 0 ) v w ( t ) {\dot{q}}_i\left(t\right)=2\pi\sqrt{G_q\left(n_0\right)v}w\left(t\right) q˙i(t)=2πGq(n0)v w(t) G q ( n 0 ) G_q\left(n_0\right) Gq(n0)为参考空间频率n0下的路面功率谱密度值,其取值请参考下表。
项目 G q ( n 0 ) ( 10 − 6 m 3 ) ( n 0 = 0.1 m − 1 ) \frac{G_q\left(n_0\right)}{\left({10}^{-6}m^3\right)\left(n_0=0.1m^{-1}\right)} (10−6m3)(n0=0.1m−1)Gq(n0) A A A16 B B B64 C C C256 D D D1024 E E E4096 F F F16384 G G G65536 H H H262144所有值取号后,便开始搭建框架,下图是simulink框架的结构图。 模型的最终形式如下图。
有了上述的经验,下面就很好理解,积木法为完全在simulink里连线的方式,如下图。 这个方法比较好理解,对一个变量求两次积分,中间的每一次积分都乘以系数返回去在相加等于微分方程左边的变量。
本文中,采用了两种方法搭建1/4车辆的框架,研究振动问题,1/4车辆框架也是研究汽车系统动力学的基础,对于一些线性模型可以采用状态方程法,但对于整车或者一些纵向半车,存在非线性的地方最好采用搭积木和function函数混合搭的办法。下面是我设置输出的4个参数随时间变化的最终数据图,数据图显示符合车辆随随机路面激励的振动变化情况,该仿真真实有效。
[1]卢少波. 汽车底盘关键子系统及其综合控制策略研究[D].重庆大学,2009.