基于Carsim和simulink联合仿真的车道保持pid算法

本文详细介绍了一个小白如何使用Carsim2020与Matlab/Simulink2021a进行PID控制的车辆仿真,包括数据库备份、道路设置、传感器配置和SIMULINK模型搭建,旨在帮助新手避免常见问题,提高学习效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#前言

呈现的结果看视频:

LKAS-PID

        

        目前网上有很多关于Carsim 与 matlab联合仿真的案例,但是对于完全的小白来说还是有很多细节或者设置没有说明白,有的只是说了一下大概的思路。同样作为刚入门的人,费了一些时间把这个算法完全跑通了, 还加了一些自己的东西。想把详细的设置方法写出来分享,让后来者少走一些弯路。(吐槽一下,csdn里面好多东西都要收费或者变相收费,收费没有错,但是能不能做个分类,有时候只是想看一下免费的帖子点进去才发现收费或者冲会员,CX有点难看。)

下面会尽量把软件设置中每一个地方都截图放进来

#Carsim设置

carsim版本2020,matlab/simulink版本2021a(实测利用carsim2019也可以和matlab2021兼容)。

软件基础操作不过多赘述,基础操作可以B站中的这个人“小明师兄”,有点点啰嗦而且经常留很多问题,但是认真听完会很有收获。

在开始的时候,建议把自带的数据库复制一份,防止自己软件原有默认数据库玩坏了

原有数据库在软件安装目录下,有个文件夹为CarSim2020.0_Data,把这个复制一个(我复制了俩)

我是按照快速案例来改的

设置恒定速度为130

刹车设置为0

方向控制设为0,因为利用pid车辆保持算法利用pid输出控制方向
路面设置如图

道路我是按照这个五车道来改的,这里我没有改命名,大家根据需要可以改一下,不改也可以

点击上图红色的地方,进入道路设置

手动建立道路,画出这个道路图,注意勾选闭合路线,左上方会显示道路长度

点击进入道路建设模块

这里设置一下车速显示

将道路设置为平地

设置完成后,点击更新道路文件

点击,退回上个界面

这里设置传感器

点进去就能看到预瞄点位置为车辆前方5米处10米处和15米处

这里设置一下仿真时长为150s

回到主界面,

保持默认即可,不用点进去修改

这一步设置一下hud,也就是后面动画界面会有车速表,转速表,油门刹车等图标。

这一步可以自己研究一下,不设置也可以,对最后结果没有影响

这里是关键,设置传感器

设置传感器类型

这里设置联合仿真接口

这个地方建议直接点击红框位置新建一个命名为LKAS_PID_2

点进去后继续设置

这时候点进去是这个界面

左下角

点进去,设置输入量为控制车辆转角

同理设置输出

设置输出量为车辆的第二个雷达预瞄点(车前10m处),此处也可以设置为第一个点L_DRV_1(车前5m处)

#simulink设置

打开matlab,点击simulink

新建一个空白simulink文件

直接点击保存,注意保存地址命名,尽量纯英文,有数字的话,数字前加"_"连接

然后点击carsim,将此处设置为刚才保存的simulink文件,下面设置为60Hz频率

回到主页,然后点击send to simulink

到simulink,把这个Carsim S- Function拖到空白处

具体操作及联合仿真结果,可见视频

SIMULINK建模过程

### Carsim Simulink 联合仿真实现车道保持的方法 #### 1. 建立基础环境配置 为了使CarsimSimulink能够协同工作,在开始之前需确保安装并正确设置了两者之间的接口软件。这通常涉及到设置通信协议,比如TCP/IP连接参数等[^1]。 #### 2. 导入车辆模型及场景设定 利用Carsim创建所需的车辆动态特性描述文件(cpar),并将此文件加载至Simulink环境中作为输入源之一;同时定义好测试道路条件以及初始状态变量等内容[^4]。 #### 3. 构建控制器逻辑框架 在Matlab/Simulink平台内搭建用于处理传感器数据采集、决策判断以及执行命令发送等功能模块组成的控制系统架构图。对于车道保持辅助(LKA)而言,则主要关注于图像识别或雷达探测获取的道路边界信息分析部分。 ```matlab % 创建一个新的Simulink模型 new_system('LaneKeepAssistModel'); % 添加必要的S-Function模块以调用车辆动力学库函数 add_block('simulink/Signal Routing/Merge', 'LaneKeepAssistModel/CarsimInterface'); set_param(gcb, 'Position', [70, 80, 90, 90]); ``` #### 4. 实施具体算法设计 针对特定应用场景选取合适的控制策略实施编程实现,如PID调节器或其他先进的自适应滤波方法来调整转向角度从而维持车辆沿预定路线行驶。 #### 5. 集成验证与优化改进 最后一步就是把上述各个组件整合起来形成完整的闭环反馈回路,并通过多次迭代实验不断修正可能出现的问题直至达到预期效果为止。期间还可以引入诸如自动紧急制动(AEB)这样的安全机制进一步增强整体性能表现。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值