基于Matlab/Simulink的1/4车辆系统动力学模型的两种建模方法(动力学建模入门知识)

一.1/4半主动悬架模型

注:本人为车辆工程研究生,研究方向为智能网联汽车,汽车系统动力学及控制,后续还会写一些半车模型和整车模型的搭建方法,欢迎各位相同方向的同学交流学习心得。
#pic_center =50      上图中, 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˙sz˙u)ks(zszu)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˙sz˙u)+ks(zszu)kt(zuq)+FMR               

      确定微分方程后,便可以在simulink搭建模型了,其中搭建模型的核心思想就是将 m s {{m}}_s ms m u {{m}}_u mu除到右边然后搭模型使等式左右两边相等。

二.状态空间法搭建1/4汽车半主动悬架系统动力学模型

       先确定状态变量,后取系统的输入量,再将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             1ks/ms   cs/ms0              0ks/mu   cs/mu    0                         0ks/ms              cs/ms     0                          1(ks+kt)/mucs/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=01/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              0ks/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= 0001/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             1ks/ms   cs/ms0              0ks/mu   cs/mu    0                         0ks/ms              cs/ms     0                          1(ks+kt)/mucs/mux1x2x3x4+01/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              0ks/ms   cs/ms    0                 00                 0    0                 1    ks/ms      cs/ms x1x2x3x4+0001/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)} (106m3)(n0=0.1m1)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框架的结构图。
在这里插入图片描述      模型的最终形式如下图。
在这里插入图片描述

三.积木法搭建1/4汽车半主动悬架系统动力学模型

      有了上述的经验,下面就很好理解,积木法为完全在simulink里连线的方式,如下图。
在这里插入图片描述
      这个方法比较好理解,对一个变量求两次积分,中间的每一次积分都乘以系数返回去在相加等于微分方程左边的变量。

四.总结

      本文中,采用了两种方法搭建1/4车辆的框架,研究振动问题,1/4车辆框架也是研究汽车系统动力学的基础,对于一些线性模型可以采用状态方程法,但对于整车或者一些纵向半车,存在非线性的地方最好采用搭积木和function函数混合搭的办法。下面是我设置输出的4个参数随时间变化的最终数据图,数据图显示符合车辆随随机路面激励的振动变化情况,该仿真真实有效。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五.参考文献

[1]卢少波. 汽车底盘关键子系统及其综合控制策略研究[D].重庆大学,2009.

  • 79
    点赞
  • 330
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 43
    评论
### 回答1: 利用MATLAB/Simulink可以轻松地搭动力学仿真模型,并使用变步长ODE45方法来求解动力学方程。ODE45是MATLAB中一种常用的求解常微分方程(ODE)的数值方法,它具有较高的精度和稳定性。 首先,我们需要在Simulink立仿真模型。可以通过拖拽和连接各种块来构模型,例如传感器、执行器、控制器和动力系统等。利用MATLAB函数块,可以编写用于描述系统动力学方程的函数。 其次,我们需要在动力学方程中引入ODE45求解器。ODE45方法具有自适应的步长控制功能,可以根据求解精度的需求自动调整步长。通过设置ODE45函数的输入参数,例如初始条件、求解时间步长等,我们可以对方程进行求解并获得系统的响应。 MATLAB/Simulink提供了丰富的工具和功能来进行仿真和数据分析。我们可以通过修改模型参数、调整控制策略或添加噪声等,来研究系统的不同影响因素对系统动力学的影响。 总结起来,利用MATLAB/Simulink动力学仿真模型,并采用变步长ODE45方法动力学方程进行求解,能够方便地研究系统的运动特性,并通过对模型参数的修改和控制器的设计,实现对系统性能和稳定性的优化。 ### 回答2: 利用 Matlab/Simulink 可以搭动力学仿真模型,并使用变步长 ODE45 方法动力学方程进行求解。 首先,需要在 Simulink立一个仿真模型。可以通过拖拽相应的块(例如信号源块、传输线块、控制器块等)来构系统的组成部分。然后,通过连接这些块,立起系统的整体结构。同时,可以设置块的参数和信号的初始值。 在完成后,需要将立的系统动力学方程转化成 Simulink 模型中的微分方程。可以使用 Stateflow 来描述系统的状态转移过程,并将其与信号源块、控制器块等相连接。 接下来,可以在 Simulink 中选择使用 ODE45 方法动力学方程进行求解。ODE45 是一种常用的数值解法,具有较高的精度和稳定性。可以在求解器设置中选择 ODE45,并设置相应的参数,如相对误差容限和最大步长等。 然后,可以设置仿真的时间范围和步长。可以通过设置仿真时钟、输入信号和初始条件,来控制仿真的开始和结束时间,以及每一步的步长大小。同时,还可以设置模型输出的数据类型和格式。 最后,可以开始运行仿真模型。可以通过点击开始按钮,来启动仿真过程。Simulink 将根据 ODE45 方法动力学方程进行数值求解,并输出仿真结果。可以通过查看结果曲线图,来分析系统动力学响应和性能。 总而言之,利用 Matlab/Simulink 并使用变步长 ODE45 方法动力学方程进行求解,可以方便地立和仿真动力学系统,并得到对应的仿真结果。同时,也可以通过修改模型参数和设置,进一步分析和优化系统的性能。 ### 回答3: 利用Matlab/Simulink动力学仿真模型是一种常用的方法,可以对系统进行准确的数学拟和仿真。其中,ode45方法是一种变步长的求解常微分方程的数值方法。 首先,我们需要根据具体问题动力学方程的数学模型。这个模型可以是基于物理定律的,例如质点运动的动力学方程;也可以是基于经验规律的,例如控制系统的状态方程。根据具体问题,我们可以得到一组包含未知参数的微分方程组。 接下来,在Simulink立一个模型文件,将系统的输入、输出和各个组件之间的关系通过块、线连接起来。可以使用不同的块来代表不同的组件,例如传感器、执行器、控制器等,也可以自定义块。在该模型文件中,我们将引入数学模型,以描述系统动力学行为。 然后,我们需要选择适当的求解算法对动力学方程进行求解。ode45方法是一种常用的变步长算法,可以根据精度要求自动调整步长大小,从而获得较为准确的数值解。在Simulink中,我们可以使用"ODE Solver"块来选择ODE45求解器,并将数学模型导入该块中。 最后,我们可以通过设置仿真参数(包括仿真时间、步长等)进行仿真实验,并得到系统动力学行为。Simulink会根据所立的模型和求解算法自动进行计算,并输出仿真结果,例如系统的响应、状态变量的变化等。 通过利用Matlab/Simulink动力学仿真模型,并采用变步长ode45方法进行求解,我们可以更加准确地研究系统动力学行为,并优化系统的设计和控制策略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廖凯凯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值