Simulink从0搭建模型10-P11 建模练习 搭建简易车辆动力学模型
- 前言
- 参考
- 1. 车辆纵向动力学模型
- 2. 相关参数定义
- 3. 车辆动力学模型搭建(简易)
- 3.1. 思路
- 3.2. 模型解析
- 3.2.1. 输入扭矩
- 3.2.2. 滚动阻力 Ff 部分
- 3.2.3. 坡度阻力 Fi 部分
- 3.2.4. 加速阻力 Fj 部分
- 3.2.5. 求得加速度du/dt
- 3.2.5.1. Saturation模块
- 3.2.6. 输出车速
- 3.3. 仿真结果
- 4. 如何使用m脚本管理参数
- 5. 界面设置小技巧
前言
终于来到了搭建简易车辆动力学模型这里,我在这之前不熟悉汽车行业的知识,包括动力学模型,在看质量估计文献时补了这方面的知识,文献里面写的很清楚。
参考
- b站视频 : 【Simulink 0基础入门教程 P11 (上) 建模练习 搭建简易车辆动力学模型 使用m脚本管理模型参数】
- b站视频 : 【Simulink 0基础入门教程 P11 (下) 建模练习 搭建简易车辆动力学模型 使用m脚本管理模型参数】
- 参考文献:重型车质量辨识及道路坡度状态估计方法研究_李远方
下面补充一些车辆动力学知识
1. 车辆纵向动力学模型
车辆纵向非线性动力学方程为:
从式(3-1)可知,车辆行驶过程中的阻力包括:空气阻力、滚动阻力、道路坡度阻力(坡度阻力)、加速阻力
下面介绍驱动力和4个阻力。
滚动阻力系数f在一定程度上受行驶车速的影响。重型车轮胎的滚动阻力系数与车速近似成线性关系,但是滚因为滚动阻力系数f的数值非常小,因此滚动阻力系数受车速的影响不会太大。重型车滚动阻力系数表达为:
汽车加速时,除了克服平移质量加速时造成的惯性力外,还要克服回转质量(如飞轮、离合器、变速器轴及齿轮、传动轴、主传动器、半轴及车轮等)加速可转运动时产生的惯性力矩。
将旋转质量的惯性力矩转化为平移质量的惯性力即可得到汽车旋转质量换算系数delta
一般加速情况下(即发动机处于非反拖状态下)delta的表达式为:
根据公式(3-9)可知delta是一个与飞轮的转动惯量、传动系的传动比以及车轮的转动惯量相关的量。
最后可以得到汽车行驶方程式:
注意:
这里的 G = m g , u a 就是车速 v , d u / d t 就是加速度 a 。 这里的G=mg,u_a就是车速v,du/dt就是加速度a。 这里的G=mg,ua就是车速v,du/dt就是加速度a。
2. 相关参数定义
公式里面的以下参数需要定义
3. 车辆动力学模型搭建(简易)
终于开始建模了。根据第1部分的车辆纵向动力学模型在simulink中搭建。输入驱动力,得到车速。模型如下:
Subsystem内部结构:
(大图模块太多了,看不清没关系,可以先看下面3.2.模型解析,最后就理解了)
3.1. 思路
驱动力-滚动阻力-空气阻力-坡度阻力得到加速阻力,即:
F t − F f − F w − F i = δ m d u d t F_t-F_f-F_w-F_i=\delta m \frac{du}{dt} Ft−Ff−Fw−Fi=δmdtdu
根据牛顿第二定律,力除以delta和质量m,得到加速度du/dt,最后积分得到输出速度u
。
换算单位:1m/s=3.6km/h
3.2. 模型解析
驱动力是待输入,车速是待输出。
3.2.1. 输入扭矩
3.2.2. 滚动阻力 Ff 部分
3.2.3. 坡度阻力 Fi 部分
3.2.4. 加速阻力 Fj 部分
综合上面得到的驱动力、滚动阻力、坡度阻力和空气阻力,得到加速阻力:
3.2.5. 求得加速度du/dt
由于
F j = δ m d u d t F_j=\delta m \frac{du}{dt} Fj=δmdtdu
求得加速度du/dt
d u d t = F j / δ / m \frac{du}{dt} = F_j / \delta / m dtdu=Fj/δ/m
3.2.5.1. Saturation模块
Saturation模块主要起限制上下限作用。这里的上限设置的很大,下线设置为0,为的是让速度在0及以上。
因为坡度阻力为0,此时空气阻力也为0,滚动阻力为一个定值(221N),驱动力给的很小(100N),所以有驱动力小于滚动阻力,此时得到的加速阻力为负(-121N),那么输出的速度就为负值。
- 得到不加Saturation模块的仿真结果:
得到的速度是从0往下降的负值,实际情况,如果驱动力很小,车辆不会驱动。
- 加了Saturation模块的仿真结果:
此时就把速度限时到0了。
3.2.6. 输出车速
3.3. 仿真结果
给了2000N的驱动力,可以看到结果是车速有一个缓冲起步到稳定的过程,最后达到最大速度。当然实际情况,车速达不到250km/h,这里的驱动电机输出扭矩2000N会下降,不会一直恒定。
4. 如何使用m脚本管理参数
上一节中,我们把相关的参数(已知)直接在模块里面给出,虽然这样很直观在模型中就看到数值,但是参数多了,如果想要更改模型参数,不便于管理参数。
关于如何使用matlab,我在前面的文章也写过这个笔记,可以去看看文章合集MATLAB_Auto_yaoyao的博客-CSDN博客
新建一个脚本,用于存放车辆动力学模型的参数:
通过在命令行窗口
敲P11data或者直接运行P11data.m(命令行窗口会打印“P11data”),就可以在右侧工作区看到变量的名称和对应的值:
在模型中用变量名代替他们的数值,如下:
最后再运行模型的效果一样,不演示了。以后想要更改模型参数,直接在.m文件修改即可。
5. 界面设置小技巧
当这个窗口变乱了,我们想要恢复原来的布局,就选择:主页–布局–默认。如下:
想要脚本编辑器停靠或不停靠,点编辑器的右上角的箭头选择:
-END-