一、实验目的
本实验旨在通过Carsim和Simulink的联合仿真,深入理解自适应巡航控制(ACC)系统的工作原理和应用。具体目标包括:
- 掌握Carsim和Simulink软件的基本操作和功能。
- 了解如何将这两种软件结合起来进行复杂的车辆动力学模拟。
- 探讨ACC系统在不同驾驶场景下的性能表现,分析其对行车安全和舒适性的影响。
二、软件介绍
Carsim: Carsim是一款高精度的车辆动力学仿真软件,广泛应用于汽车工程领域。它能够模拟各种驾驶条件下的车辆行为,包括加速、制动、转向等。其主要特点包括:
- 精确的物理模型:提供详尽的车辆动力学模型,能够模拟车辆在不同环境下的真实行为。
- 多样的车辆配置:支持各种车辆类型和配置,包括轿车、卡车和特殊车辆。
- 与其他软件集成:能够与Simulink等软件无缝集成,实现复杂系统的联合仿真。
Simulink: Simulink是MathWorks公司开发的基于模型的设计工具,常用于控制系统的开发和仿真。其主要特点包括:
- 图形化建模环境:通过图形界面进行模型设计,直观且易于操作。
- 实时仿真和代码生成:支持实时系统仿真,并能生成可直接用于控制系统的代码。
- 广泛应用:适用于各种控制系统设计、信号处理、通信系统和物理建模等领域。
三、仿真过程
模型建立:
- 在Simulink中创建ACC系统的控制模型,定义车辆的动态特性和控制逻辑。
- 在Carsim中建立相应的车辆动力学模型,配置车辆参数和环境条件。
模型集成:
- 利用Simulink中的S-function模块,将Carsim模型嵌入到Simulink环境中。
- 确保Carsim和Simulink之间的数据传输和同步运行。
仿真执行:
- 设置仿真的初始条件,如车辆速度、道路类型、交通状况等。
- 运行联合仿真,监测车辆在不同驾驶场景下的动态响应和ACC系统的表现。
数据采集和分析:
- 记录仿真过程中生成的关键数据,包括车辆速度、加速度、车距、制动距离等。
- 使用Simulink的分析工具,对仿真数据进行处理和可视化,分析ACC系统的性能。
具体仿真实验步骤如下:
1、Carsim中整车模型创建
- 打开MATLAB的Simulink创建一个空白模板
- 打开Carsim,并在Datasets中选择合适的模型ACC
创建一个备份
配置自己的车辆信息
这里关闭左右侧边传感器
这里关闭节气门和刹车,由于simulink会对其进行控制
打开干扰车辆设置,将前车设置由2改为1,改为的原因是因为先前将主车速度改为不设置
则主车速度不变化,则这里也改为1
这里是车的速度具体设置
并且由于是自适应巡航则不需要其余的干扰量(关闭)
将以上的所有设置完成之后,再改动Run Control的模型设置改为Simulink
并将其改名为ACC02
新建一个Simulink的ACC02文件,并选择此模型
之后选择import
这里的输入变量之前也讲过是控制器的输出变量,同时也是节气门开度的刹车,这里我们用单位来选择
节气门开度和制动缸压力选择如下(双击即表示选择)
输入改完之后同理再改输出
重命名(ACC ACC02)之后,点进去同样选择此模型
选择输出变量距离
则按单位选择m
第二个变量为速度km/h
第三个变量主车与前车的相对速度
锁定之后回到主界面
点击send to simulink
2、Simulink整车模块的创建
选择Carsim S-Function
将此元件拖进来之后,修改名字为simfile.sim
之后选择输入和输出的元件来检验一下,而输出元件是3个输出信号,则将2改为3
然后选择一个输入恒定量,再选择此元件之后按住ctrl拖出另外一个
注意:这里的输入量顺序与当时import的输入量顺序相同,第一个是节气门开度第二个是制动缸压力,这里分别给1和0
同理,看输出量变化则选择scope
设置好这些之后按运行看一下效果
可以输出则表示可以正常输出
设置控制器
为了判断前车与主车的距离是否有效,这里加一个判断器
拖出来之后顺时针旋转元件
这里设置一下,如果是大于100m则将100m输入进去;如果小于100m则说明在有效范围内将实际距离输入即可
这里再放一个判断元件,设置阈值80,表示如果大于80则正常行驶;如果小于80则调整节气门开度
选择一个对比元件和恒定速度120的元件
这里选择一个-表示作差
然后再选择一个PID元件来控制
并将差值输入进PID,PID的输入信号再输入进入判断器,再将信号输入给节气门(注意这里将原来设定的节气门信号)删除即可,因为这里已有信号输入)
效果图如下:
这里在
与车速那里还要加一个判断,因为如果车速大于则不需要再加速了
PID的积分设置为0
又因为节气门开度要限制有范围,则需要加一个元件
由于这里要判断相对速度与节气门的关系(成反比)则需要abs绝对值元器件
并为了避免出现0,则用加法计算器and加一个固定值
并在库浏览器找相除元件
3、Carsim和Simulink的联合仿真
由于没有设置刹车则会导致相撞,但也表示之前设置正确,保存一下simulink
修改刹车模块
添加判断元件,如果相对速度>0则说明前车速度大于主车,否则主车速度大于前车会导致相撞。那么就要考虑对制动缸压力进行调整,且随着速度差值越大说明主车速度越快,则制动缸压力要越大来使车停下来成正比;而距离越大,则制动缸压力越小成反比。
将距离与相对速度做完正反比之后再做一个加权,并将加权值输入进PID,并将加权系数的距离改为0.6因为距离可能更加重要。并将PID的比例改为10.
初步结果图如下
运行看结果
这里报错
其实错误很简单,只是将+错弄成了/
最终效果图如下:
4、Carsim的对比验证
发现仍然会相撞,说明制动缸压力太小,则将制动缸压力改为15
更改之后再看看
实验结果很好,再更改速度为90和150看看效果
速度为150效果图
速度为90效果图
四、结果分析
通过仿真,得到以下关键结果和结论:
车辆动态性能:
- 在不同驾驶条件下,车辆的动态响应如加速、制动和转向性能均符合预期。
- 仿真结果与实际车辆试验数据具有较高的一致性,验证了模型的准确性。
ACC系统表现:
- ACC系统在不同驾驶场景下(如高速公路、城市道路)的表现出色,能够稳定控制车速和车距。
- 系统能有效识别和响应前方车辆的变化,提高了行车安全性和舒适性。
系统优化建议:
- 通过分析仿真数据,发现了ACC系统在某些极端条件下的性能瓶颈,提出了改进建议。
- 进一步优化控制算法和车辆参数配置,提高系统的响应速度和精确度。
注:本实验借鉴B站基于carsim和simulink的自适应巡航仿真_哔哩哔哩_bilibili