CANoe软件使用(四)——CANoe与Simulink联合仿真

CANoe软件使用(四)——CANoe与Simulink联合仿真

前言

在介绍CANoe和Simulink联合仿真之前,先熟悉下汽车软件开发过程中的V模型流程开发。推荐如下文章,简单介绍了MIL/SIL/PIL和HIL等相关概念。

https://www.ind4.net/html/news/newsDetail_7007.html.
http://www.ind4.net/html/news/newsDetail_7030.html.
基于模型的设计(MBD)汽车软件流程总结大概流程如下:
1、基于功能需求,搭建对应Simulink模型
2、将模型转化为C代码
3、将C代码进行编译,通常为.o或者lib格式文件
4、编译后软件集成,通常为hex格式文件
5、将hex文件刷写至ECU中,测试标定
(涉及到一系列的工具链使用,包括代码生成,包括编译,包括软件集成,包括测试标定等等。。)

此时,会有一个问题:
CANoe可对信号进行简单收集处理,若是我想基于CAN通信上现有的信号,想做复杂的控制运算(通过simulink实现),之后我又想在通过CANoe实时查看simulink运行后的结果是否可行。这样的话,我可以随时的修改simulink模型逻辑,实现控制算法的验证。就直接避免了一系列的开发流程,做到提前快速验证模型的算法,类似快速原型的开发。(控制器是虚拟的(simulink),控制对象是实际的(实车车辆))。
比如,基于四轮轮速和加速度信号,通过simulink计算当前车辆的参考车速

CANoe和Simulink联合仿真

插件安装

simulink既然可通过CAN信号进行计算,那么第一步,必须安装插件让simulink可识别到CAN网络中的信号

1、安装Vector_AddOn_Matlab_Interface
在这里插入图片描述
2、安装好后,simulink中library中会出现CANoe库,打开后可添加输入信号和输出信号至simulink中
注:
1、matlab安装路径必须不能包含空格,否则无法安装成功插件,建议直接安装在D盘目录下,不在program files中。
2、输出的信号(此信号可通过编辑DBC,添加虚拟节点输出)参考之前文章进行DBC的信号、报文、节点的编辑

https://blog.youkuaiyun.com/qq_29786089/article/details/106817656.

在这里插入图片描述
此时,可根据你的需求搭建simulink模型,并通过插件导入CAN网络信号。
在这里插入图片描述
注:导入和导出CAN网络信号时,需要同时打开CANoe软件并导入编辑好的DBC,否则无法识别

simulink设置

在solver中设置求解,因为是实时运行,所以设置stop time为无穷大,模型运行是周期离散的,设置固定步长和离散求解
在这里插入图片描述
在Code Generation中进行设置选择CANoe接口cn.tlc,下面的设置基本不用变,系统自动根据cn.tlc进行配置
在这里插入图片描述
在Inteface中选择C89/C90(ANSI), Interface中选择C API 如下图红色标注设置
在这里插入图片描述
设置完毕后,进行编译,会生成dll文件和ini文件
注:生成.dll文件, Matlab需要有对应的C编译器
在这里插入图片描述
在这里插入图片描述

CANoe设置

在simulation setup 选择Insert Network Node,之前已经完成从simulink输出的CAN信号报文节点等信息的编辑
在这里插入图片描述
右键单击选择 Configuration,选择simulink,把simulink模型中生成的dll文件和ini文件导入:
在这里插入图片描述
设置完成后,及可关闭simulink模型,实时运行CANoe,通过Graphic查看从simulink输出的信号。

### 使用 CANoeSimulink 进行电机测试的配置方法 #### 1. **CANoe 的基本功能应用** CANoe 是一种强大的仿真和分析工具,广泛应用于汽车电子系统的开发和验证。它支持多种通信协议(如 CAN、LIN、FlexRay 等),并能够通过 CAPL 编程实现复杂的测试逻辑[^4]。 在电机测试场景下,可以利用 CANoe 来模拟真实的车载环境,例如加载预定义的消息帧序列来触发电机控制器的行为,并监控其响应数据。具体操作如下: - 创建一个新的测量项目文件 (.cfg),用于描述网络拓扑结构。 - 定义 ECU 节点及其关联的信号数据库 (DBC 文件)[^3]。 - 利用 CAPL Script 实现自定义的功能需求,比如动态调整负载条件或注入错误消息以检测鲁棒性。 #### 2. **Simulink 的角色定位** MATLAB/Simulink 提供了一个图形化的建模平台,适合构建复杂控制算法模型以及执行实时仿真实验。对于电动机而言,可以通过 Simscape Electrical 工具箱搭建精确的动力学方程式表示形式,从而研究转矩特性曲线或者效率映射图谱等内容[^1]。 当结合 CANoe 同步工作时,则允许用户将虚拟目标对象嵌入到物理试验台架之中——即所谓的 Hardware-In-the-Loop Simulation(HILS) 架构模式之一。这样做的好处在于既保留了理论计算精度又兼顾到了实践层面的影响因素考量。 #### 3. **联合部署流程概述** 以下是基于上述两款软件协同工作的典型实施路径说明: - 在 Simulink 中建立代表待测单元(Motor Controller Unit, MCU)内部运作机制的状态空间表达式; ```matlab % Example MATLAB Code for Motor Dynamics Modeling J = 0.01; % rotor inertia [kg.m^2] B = 0.1; % viscous friction coefficient [Nm.s/rad] sys_motor = tf([Kt],[J B]); % transfer function model of motor dynamics step(sys_motor); % plot step response to verify behavior ``` - 导出生成的目标代码至 dSPACE MicroAutoBox II 或其他兼容设备上运行; - 设置好 CANoe 方面的基础参数之后启动双方之间的交互连接链路; - 执行预定好的自动化脚本完成整个闭环性能指标采集任务。 --- ###
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值