问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Carsim和Matlab/Simulink联合仿真保姆级教程

创作时间:
作者:
@小白创作中心

Carsim和Matlab/Simulink联合仿真保姆级教程

引用
CSDN
1.
https://blog.csdn.net/weixin_73352260/article/details/145017582

CarSim和Matlab/Simulink的联合仿真在汽车动力学建模和控制系统设计中具有重要应用。通过将Matlab/Simulink的控制算法与CarSim的车辆动力学模型相结合,工程师可以更准确地验证和优化控制策略。本文将详细介绍如何在CarSim中创建和管理dataset,并将其与Simulink集成,实现联合仿真。

在CarSim中,有两个核心概念:dataset(数据集)和database(数据库)。它们在汽车仿真建模中扮演着至关重要的角色。

以建造一辆“预制车”为例,我们只需要将车轮、车壳、发动机、底盘等基本组件按照一定规则拼接起来。在CarSim中,dataset可以简单理解为这些基本组件。当我们搭建一个完整的汽车仿真模型时,需要车辆模型、道路模型、仿真工况等。这些基本组件在CarSim中都属于dataset,而汽车仿真模型本身也是一个特殊的dataset,它将其他基本的dataset组合在一起,形成一个可运行的汽车仿真模型。

换句话说,dataset是CarSim仿真中的一个小型数据集,用于保存某个基本组件的数据。而database则是一个大型数据集,它包含了许多不同的dataset。在搭建仿真环境时,我们可以根据自己的需求调用不同的dataset来构建所需的汽车仿真场景。

在CarSim仿真中,为了不修改官方提供的dataset,通常会在使用时复制一个新的dataset。在复制过程中,会有两个文本框需要输入。第一个文本框用于指定新dataset所在的目录。不同组件的dataset目录是相互独立的,例如,汽车模型的dataset不能保存在道路模型的dataset目录下。这就好比电脑的C盘专门用于保存视频,D盘专门用于保存文档。如果新建了一个视频文件,可以将其保存在C盘的根目录,也可以在C盘创建一个子目录来存放,但绝对不能保存在D盘的某个目录下。第二个文本框则用于输入新dataset的名称。

Carsim和Matlab/Simulink联合仿真步骤

  1. 点击Carsim软件
  2. 选择安装软件中自带的Database,点击Continue with the selected database
  3. 选择select
  4. 下图即为Carsim车辆仿真的基本视图
  5. 选择官方提供的快速开始模型
  6. 为了不改变官方的仿真范例,此处点击Duplicate对该dataset进行一个复制,点击之后,上面文本框中输入的是新的dataset所在的目录,下面的文本框中输入的是新的dataset的名字
  7. 对procedure的dataset同样进行复制,选择copy and link dataset,意思就是复制一个新的dataset,并链接到这个新的dataset
  8. 输入相应的目录名和dataset名称
  9. 点击上一步复制的dataset,对里面相关属性进行设置
  10. 因为我们需要通过simulink向车辆发送油门和刹车信息,要将控制改为油门和初始速度控制,并且将初始速度设为0
  11. 更改后如下图所示,如果无法更改点击右上角的解锁
  12. 选择matlab/simulink作为车辆控制模型
  13. 选择link to new dataset,链接到一个新的dataset
  14. 这里同样输入目录名称和dataset名称
  15. 使用Matlab/Simulink新建一个空的simulink文件,保存在CarSim_Data/Extensions/Simulink/的子目录中
  16. 进入刚建的dataset,进行配置
  17. 将15步建立的simulink文件链接到该dataset中,作为仿真控制器
  18. 选择该接口为Import channels,也就是汽车控制的输入通道(输入油门,刹车,方向盘等数值来控制汽车的运动)
  19. 选择新建一个dataset并链接
  20. 选择该接口为Export channels,也就是汽车模型信息的输出通道(可以获取汽车坐标,速度,偏航角等参数信息)
  21. 建立新的dataset并链接
  22. 进入Import Channels中的cardemo,添加输入变量
  23. 选择获取输入信息的数据集,也就是汽车仿真模型的dataset(即前文提到的一个特殊的dataset,它用来将其他基本的dataset组合成一个可运行的汽车仿真模型)
  24. 找到油门输入(IMP_THROTTLE_ENGINE)和刹车(IMP_PCON_BK) ,双击添加到模型输入
  25. 进入Export Channels的dataset,设置输出变量,另外可以设置动画频率为60
  26. 同21步一样,链接到汽车仿真模型dataset
  27. 选择通过单位查找变量
  28. 速度的单位是km/h,选择单位,并找到纵向速度(vx)和横向速度,双击添加到模型输出
  29. 汽车大地坐标系下的坐标的单位是m,选择单位,并找到横向坐标(xo)和纵向坐标(yo),双击添加到模型输出中
  30. 回到主界面,点击send to simulink,进入simulink仿真文件(不能直接从matlab进入,否则会找不到对应的求解器模型)
  31. 点击Library Browser进入库,查找相应模型
  32. 在搜索框中搜索CarSim S-Function,然后选择红框中的模型,按住将其拖拽到simulink面板中
  33. 在Library Browser中搜索Mux,分别将两个红色框中的模型拖入simulink面板中(将车辆模型的输入和输出进行分流,合流)
  34. 依据上文中在carsim中设置的输入,输出变量数量来设置mux(Demux)的接口数量,双击对应的Mux(Demux)来设置数量。上文中我们设置了输入变量共有两个,所以左侧的Mux数量正确,不需要改变,输出变量有四个,而默认的Demux只有两个,那么我们双击设置数量为4
    如果Demux四个点过于密集,可以将模型拉大更为清晰
  35. 在Library Browser中搜索matlab function,并将其拖入simulink面板中
  36. 双击matlab function模块,编写逻辑代码(matlab function模块负责接收参数,完成相应逻辑处理后返回,函数的参数数量就是输入端口数量,返回值数量就是输出端口数量),编写后保存
  37. 在Library Browser中搜索scope ,分别拖拽scope 和 XY Graph到simulink面板中,用来展示速度波形和车辆轨迹
  38. 将所有模型连接在一起
  39. 点击run,进行仿真
  40. 点击scope 和XY Graph查看车辆速度变化曲线和车辆轨迹
  41. 如果XY Graph中的轨迹不明显或者很少,是因为超过了XY Graph设定的x,y数值范围,可以双击该模型,然后设置x,y的范围
  42. 在carsim中查看车辆运行视频和图表

    第一个仅有视频,第二个视频加图表(对于图表可以通过自己设置来获得想要的数据图)
  43. 查看汽车仿真模型的dataset名称,在主界面中点击datasets,然后选择标黑的目录,最后会有一个带对号的dataset名称。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号