CarMaker入门第六课-CarMaker用于Simulink联合仿真进行算法开发方法
本节课将介绍如何基于CarMaker用于Simulink联合仿真开发算法与验证用到的模块。
CarMaker入门课程传送门【CarMaker入门第五课-CarMaker for Simulink模块】
CarSim入门课程传送门【CarSim仿真快速入门(十三)—驾驶员模型(2)】
CarSim从入门到精通视频传送门【CarSim从入门到精通视频】
本节将对CarMaker的Simulink实现进行简短而深入的介绍。要求具备基本的Matlab和Simulink知识。
双击CarMaker块:
图 7.1 Simulink中CarMaker的总体架构
这就是CarMaker在Simulink中的总体架构。CarMaker的Simulink表示方式主要包括驾驶员/驾驶操纵、车辆控制和车辆模型。
其余部分(IPGRoad等)包含在Simulink的CarMaker库中。
双击DrivMan块:
可以认识到两个细节。
- 左边的绿色块是一个S函数。这意味着全部功能都被掩盖在这一级后面。
- S函数的输出是一个多路信号,包含了S函数接口的所有信息。
返回并双击 "车辆 "块:
图 7.3 Simulink中的车辆模块
在这里,可以找到更详细的分割。Simulink块表示每次都以S函数结束。
7.2.1 内容
- 计算一个新的变量。
- 将该变量链接到CarMaker的用户可访问量。
- 使用IPGControl观察变化。
7.2.2 创建新的Simulink模型
打开Simulink模型 "Generic.mdl"。将其保存为 "My_Model.mdl"。
打开Generic.mdl模型,然后从这个模型中打开My_Model.mdl模型。
7.2.3 准备扩展
有时,附加变量的计算是独立于车辆行为进行的,但大多数情况下,车辆的一个或多个状态变量的一些信息需要生成必要的信息。但大多数情况下,需要一些关于车辆的一个或多个状态变量的信息来生成必要的信息。
例如,如果用户想计算当前的发动机功率,就需要有关发动机转速和扭矩的信息。将两者相乘,并使用瓦特与马力的系数,就可以得到当前发动机的功率,单位是马力。现在导航到项目目录的mdl文件夹,打开 "My_Model.mdl",双击CarMaker块。在哪个子系统中进行更改并不重要。Simulink提供子系统只是为了图形化的目的。在仿真时,子系统是不存在的。
切换到CarMaker > IPG Vehicle > PowerTrain子系统。
现在,将访问动力总成组件 "发动机 "的信息。
7.2.4 连接输入
仿真中最重要的值是子模块之间的信号和总线。如果可能的话,这些信号应该总是被用来获取有关仿真的信息。
有时需要额外的信息,这些信息在 IPGControl 中显示为用户可访问的数量,但可能无法作为 Simulink 信号使用。
在这种情况下,可以使用CarMaker4SL块Read CM Dict访问信息。关于CarMaker的Simulink块集的更多信息可以在第五课CarMaker入门第五课-CarMaker for Simulink模块 找到。
通过该块,用户可以访问CarMaker提供的所有用户可访问量。
取一个乘法块,将发动机转速信号 "PT.Engine.rotv "链接到一个条目中。
现在,可以从CarMaker中读取信号,以便接收发动机扭矩。由于发动机扭矩不能直接作为Simulink信号,因此必须从CarMaker中获得与IPGControl中相同的数值。
打开CarMaker for Simulink库(参见第121页上的 "CarMaker for Simulink块集的特性 "部分)。
将 "Read CM Dict "块导入模型,并定义其属性为"PT.Engine.Trq",以便从CarMaker中读取扭矩。
在CarMaker中,功率的单位是瓦特。为了以Hp为单位进行监控,必须插入一个增益块进行转换。增益块的值为1/735.5。现在,定义一个新的量来计算发动机功率,并在IPG控制中绘制其值。
在模型中添加一个 "Define CM Dict "块,并定义其属性为"Engine.Pow- er"。
在模型中添加 "Write CM Dict "块,并定义其属性为 "Engine.Power"。
现在切换到CarMaker GUI,并加载TestRun Product Examples> Examples。
> VehicleDynamics > _QuickStartGuide >Step4_VehicleDynamics。打开IPGControl并开始仿真。
现在可以在IPGControl中观察到刚才创建的发动机变量。
7.2.5 演示示例
CarMaker 附带了许多实例模型,演示了各种应用、功能和建模方法。所有的例子都可以在CarMaker项目目录的src_cm4sl文件夹中找到。
这些例子包括
- Simulink模型
- Matlab参数文件和脚本
- 配置文件,如TestRuns、车辆数据、轮胎数据等。
所有模型和所使用的特殊块集的详细描述可以在Pro-grammer's Guide的 "CarMaker forSimulink "部分找到。
请注意:这些示例旨在演示如何使用CarMaker for Simulink的特定接口,但并不是提供一个详细的应用程序或一个特定CarMaker子系统的完全替代。
所有的例子都可以与CarMaker支持的Matlab版本一起使用。
版本与MATLAB版本信息,可以查看CarMaker版本释放的时间,例如CarMaker是2020年释放,因此它最高只支持MATLAB 2020A。