基于Carsim和Simulink的ACC联合仿真(超级详细保姆教程,包教包会)

一、实验目的

本实验旨在通过Carsim和Simulink的联合仿真,深入理解自适应巡航控制(ACC)系统的工作原理和应用。具体目标包括:

  1. 掌握Carsim和Simulink软件的基本操作和功能。
  2. 了解如何将这两种软件结合起来进行复杂的车辆动力学模拟。
  3. 探讨ACC系统在不同驾驶场景下的性能表现,分析其对行车安全和舒适性的影响。

二、软件介绍

Carsim: Carsim是一款高精度的车辆动力学仿真软件,广泛应用于汽车工程领域。它能够模拟各种驾驶条件下的车辆行为,包括加速、制动、转向等。其主要特点包括:

  1. 精确的物理模型:提供详尽的车辆动力学模型,能够模拟车辆在不同环境下的真实行为。
  2. 多样的车辆配置:支持各种车辆类型和配置,包括轿车、卡车和特殊车辆。
  3. 与其他软件集成:能够与Simulink等软件无缝集成,实现复杂系统的联合仿真。

Simulink: Simulink是MathWorks公司开发的基于模型的设计工具,常用于控制系统的开发和仿真。其主要特点包括:

  1. 图形化建模环境:通过图形界面进行模型设计,直观且易于操作。
  2. 实时仿真和代码生成:支持实时系统仿真,并能生成可直接用于控制系统的代码。
  3. 广泛应用:适用于各种控制系统设计、信号处理、通信系统和物理建模等领域。

三、仿真过程

模型建立:

  1. 在Simulink中创建ACC系统的控制模型,定义车辆的动态特性和控制逻辑。
  2. 在Carsim中建立相应的车辆动力学模型,配置车辆参数和环境条件。

模型集成:

  1. 利用Simulink中的S-function模块,将Carsim模型嵌入到Simulink环境中。
  2. 确保Carsim和Simulink之间的数据传输和同步运行。

仿真执行:

  1. 设置仿真的初始条件,如车辆速度、道路类型、交通状况等。
  2. 运行联合仿真,监测车辆在不同驾驶场景下的动态响应和ACC系统的表现。

数据采集和分析:

  1. 记录仿真过程中生成的关键数据,包括车辆速度、加速度、车距、制动距离等。
  2. 使用Simulink的分析工具,对仿真数据进行处理和可视化,分析ACC系统的性能。

具体仿真实验步骤如下:

1、Carsim中整车模型创建

  1. 打开MATLAB的Simulink创建一个空白模板
  2. 打开Carsim,并在Datasets中选择合适的模型ACC

f2d5eed999e940d48e36eb8db7afd79b.png


e2b27eb9cdf143a5a9505563b276a856.png

 

 

创建一个备份4d0060dd4bbb43b389c77a9d4338b1a0.png

配置自己的车辆信息fc73fad1c88040cd98eb969f3ecec9cc.png

这里关闭左右侧边传感器a0535a46335a48dbbc9bd78700d0ab64.png

这里关闭节气门和刹车,由于simulink会对其进行控制

打开干扰车辆设置,将前车设置由2改为1,改为的原因是因为先前将主车速度改为不设置

则主车速度不变化,则这里也改为1f7d96d3d4c884f2fa282ebdf37239182.png

这里是车的速度具体设置5d97f965ebd142caa4f794572c1ab437.png

并且由于是自适应巡航则不需要其余的干扰量(关闭)098074944821440a8126a6b63ff0ee6b.png

将以上的所有设置完成之后,再改动Run Control的模型设置改为Simulinka8151f48d6b8434b9f3fe0d0e62e76ab.png

并将其改名为ACC024a154829d6d94b8393f17d6fcb75c419.png

新建一个Simulink的ACC02文件,并选择此模型af37f6e80fe3473ba5fe35b5401ce487.png0f4bfd7089dd473db7f7a0c257386427.png

之后选择importb80027e962a547da990758729ad7c0a8.png

这里的输入变量之前也讲过是控制器的输出变量,同时也是节气门开度的刹车,这里我们用单位来选择221f57508b1f460486ca987886ef2b44.png

节气门开度和制动缸压力选择如下(双击即表示选择)6d86c4db6d574ab2b81b54d2b582b3f9.png

 911b59005a11436ba56ad332e37e546a.png

输入改完之后同理再改输出537cfc8a5f284e16ae3ca74d61f3af5d.png

重命名(ACC ACC02)之后,点进去同样选择此模型63a006dbdd3e47898d5b96e71c2234b1.png

选择输出变量距离

则按单位选择m7d58f683ff7b40fd80b0196748532109.png

第二个变量为速度km/hbcd9133b079043119ca9a07bcc350b4b.png

第三个变量主车与前车的相对速度e8a0cff6aec04423bb7a923c6d73640d.png

锁定之后回到主界面5e83055a83a548d7b740cbdbf55cf37c.png9e47cd8bf6b74ca5ae867f5e64820001.png

点击send to simulink15e2d9ddfa6549db8a06f69e487a0caa.png

 

2、Simulink整车模块的创建

9fb428a8120e497a9cb40fe450559bbd.png

 

选择Carsim S-Functioncf3b1cdefc514554a63acff48c9b3bb5.png

将此元件拖进来之后,修改名字为simfile.sim5ece4e5213c54f12a0233082792f90ec.png

 

之后选择输入和输出的元件来检验一下,而输出元件是3个输出信号,则将2改为3be6b1df7820344f9a4476f21d1797075.png

然后选择一个输入恒定量,再选择此元件之后按住ctrl拖出另外一个4623f64672584efbb711a53c47df2228.pngee00f22c4ba24d11a3cf3a1eb278880f.png

注意:这里的输入量顺序与当时import的输入量顺序相同,第一个是节气门开度第二个是制动缸压力,这里分别给1和02adb56c9833e42ecab2c7e57b7dbd0b7.png

同理,看输出量变化则选择scope


87333deab30340d39936eb106d629c9b.png

设置好这些之后按运行看一下效果f8f5cba629e941ec85cd91b90a5f5057.png

可以输出则表示可以正常输出

 

设置控制器

 

为了判断前车与主车的距离是否有效,这里加一个判断器0a88fcdc9d4b48d386a40c3abc923d84.png

拖出来之后顺时针旋转元件507380b030c14514b3e474b43cc70b69.pnga7e40a143f84466aa93564ee537c6c81.png

这里设置一下,如果是大于100m则将100m输入进去;如果小于100m则说明在有效范围内将实际距离输入即可

           6208eaae355a404e90d152e193dfa755.png

这里再放一个判断元件,设置阈值80,表示如果大于80则正常行驶;如果小于80则调整节气门开度553168e83a254fd1b1aea6bb8be25b9f.png

选择一个对比元件和恒定速度120的元件51f139be40eb4043b7bfca5639e37b6b.png

这里选择一个-表示作差afeebb47598241aa92cc42319eaaa03f.png

然后再选择一个PID元件来控制4c5671467a06424bb279ca0830a3e4de.png

并将差值输入进PID,PID的输入信号再输入进入判断器,再将信号输入给节气门(注意这里将原来设定的节气门信号)删除即可,因为这里已有信号输入)

效果图如下:7148005068b9454dab73fd900f2170de.png

这里在

与车速那里还要加一个判断,因为如果车速大于则不需要再加速了

PID的积分设置为04f07c751979741a19424d4f3854428ea.png

 

又因为节气门开度要限制有范围,则需要加一个元件d74cca43a40940faba82cc25ae80a414.png3913f22096f9490893cd6c33a235d414.png

由于这里要判断相对速度与节气门的关系(成反比)则需要abs绝对值元器件

并为了避免出现0,则用加法计算器and加一个固定值

并在库浏览器找相除元件c7b0fa7b6f6d49629f37f5fc2c5f4abb.png

 

                         3、Carsim和Simulink的联合仿真

由于没有设置刹车则会导致相撞,但也表示之前设置正确,保存一下simulink4a7e9339dbfc48d7acd4ff7b1a47c9bd.png

修改刹车模块e8389780dfbd4f07bd469c698963f99a.png

添加判断元件,如果相对速度>0则说明前车速度大于主车,否则主车速度大于前车会导致相撞。那么就要考虑对制动缸压力进行调整,且随着速度差值越大说明主车速度越快,则制动缸压力要越大来使车停下来成正比;而距离越大,则制动缸压力越小成反比。126db59ada3443298322d677f517c7e3.png

将距离与相对速度做完正反比之后再做一个加权,并将加权值输入进PID,并将加权系数的距离改为0.6因为距离可能更加重要。并将PID的比例改为10.

初步结果图如下e9de8dcd703643d2a1ec3143e7210a0a.png

运行看结果a9735149694849dbb94f8ac2e2409dc1.png

这里报错287f5289f36e48609dacfd416604de9d.png

其实错误很简单,只是将+错弄成了/

最终效果图如下:369a848fbb1745519c60ae832ea6173d.png

4、Carsim的对比验证4d069d7f9a8041ffb1aaa827b023e6fb.png

发现仍然会相撞,说明制动缸压力太小,则将制动缸压力改为15

07950fbaed89449fb0433691fdc256d5.png

更改之后再看看

7cd07f7af21140abb2e9376bcb13d09c.png

实验结果很好,再更改速度为90和150看看效果

速度为150效果图

8e35827e75cd4f568a8753254f71e7b8.png

速度为90效果图

7f0ec1f202384601ba8e02b5f86eca21.png

 

四、结果分析

通过仿真,得到以下关键结果和结论:

车辆动态性能:

  1. 在不同驾驶条件下,车辆的动态响应如加速、制动和转向性能均符合预期。
  2. 仿真结果与实际车辆试验数据具有较高的一致性,验证了模型的准确性。

ACC系统表现:

  1. ACC系统在不同驾驶场景下(如高速公路、城市道路)的表现出色,能够稳定控制车速和车距。
  2. 系统能有效识别和响应前方车辆的变化,提高了行车安全性和舒适性。

系统优化建议:

  1. 通过分析仿真数据,发现了ACC系统在某些极端条件下的性能瓶颈,提出了改进建议。
  2. 进一步优化控制算法和车辆参数配置,提高系统的响应速度和精确度。

 

注:本实验借鉴B站基于carsim和simulink的自适应巡航仿真_哔哩哔哩_bilibili

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力的阿瑞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值