首页/文章/ 详情

自动驾驶|浅谈基于CarSim和Simulink的联合仿真

1年前浏览1417


其实我一直很疑惑,我在Simulink中可以仿真,在CarSim中也可以仿真,那我为什么还要学Simulink和CarSim联合仿真?由于是自我转行学习,所学比较片段,很难成体系,所以也是研究了很久,才稍微有了些理解。

先说Simulink:
总体来说,在Simulink中搭建模型,虽说是图形化建模,比Matlab快多了,但还是很慢的,因为Simulink中是搭建底层的算法,然后求解方程等,所得的结果也最多是弄个示波器演示下波形给你看,这个仿真的功能,在我看来,有点弱弱的。

图1、Simulink中搭建的一个速度控制模型

再来说说CarSim:
这个软件感觉就很强大了,因为可以很直观地看到仿真的车辆的运行姿态,也能看波形,这才是真正的仿真嘛,而且车辆模型和道路模型等都能非常快速的创建出来。但这个软件有一个缺点,车辆的参数等都是只能通过选择激活和激活后填取参数等设置,因为看不到背后的运算逻辑,所以很难理性地理解整个控制逻辑。所以,世界不由我控制,也是很难受的。

图2、CarSim主界面中的模块划分

那么其实很简单了,Simulink和CarSim各有优缺点,而且正好互补,所以两者可以一起运作。CarSim中可以搭建车辆模型、道路模型、驾驶员模型等,然后,Simulink中可以将这些模型联合起来进行控制,进行底层的逻辑控制,然后求解得出结果;最后结果又可以在CarSim中非常形象的显示出来,帮助我们直观地看到求解的结果。


所以,这么一搭配就非常完美了。而且,CarSim中也非常懂事地设置了相应的接口,Simulink中也一般有对应的CarSim模块。

接口1:直接设置为在Simulink中求解


接口2:直接调用搭建的Simulink模型

所以经过这么一描述,那么联合仿真的流程就有了,简述如下。

1、在Simulink中搭建整个汽车动力学模型,如下图。在这个模型中,我们最重要的是搭建控制逻辑算法,而对于基础的车辆模型、道路模型、驾驶员模型等内容,都可以调用Simulink中自带的CarSim S-Function模块(定义好输入输出就行),具体的模型我们需要到CarSim中去搭建(这样更快)。



2、在CarSim中,设置好车辆模型、道路模型、驾驶员模型等内容,然后设置求解方式为Simulink求解,并填入第一步搭建的Simulink模型,设置一些求解参数,然后点击Send to Simulink就可以把当前的车辆模型、道路模型、驾驶员模型等内容打包再发送回Simulink中的CarSim S-Function模块中去,这样,在CarSim中搭建的车辆模型、道路模型、驾驶员模型等内容就被很快速的引用到Sinmulink模型中去了。


3、再然后,在Simulink中运行求解就行了(看需要的话,也会有需要定义一些初始参数哦)。


4、求解完以后,就可以到CarSim中去查看结果了。点击Video就可以看到仿真控制的结果。


本文完。
来源:车路慢慢
汽车Simulink自动驾驶控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-21
最近编辑:1年前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 11粉丝 71文章 122课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈