calibration的“前世今生”——从simulink开发到CANape的XCP标定

Simulink标定流程
本文详细介绍使用Simulink进行汽车电子控制单元(ECU)标定的过程,包括如何在Simulink中设置标定量,生成代码及A2L文件,以及如何使用CANape进行实际标定。

整体思路

在这里插入图片描述
上图为部分具体开发流程,基本上为:先根据需求定义架构和接口,给到应用层和底层做同步开发,测试完成后进行集成并编译链接烧录,最后进行系统测试。详细可参考V模型和ASPICE流程标准。

其中,标定量的设置贯穿在很多过程域中,具体为:应用层开发(标定量存储类型的设置),底层开发(支持XCP/CCP通信协议),和系统标定(CANape)。下面挨个解释。

0. simulink添加标定量

先概述一下:进行simulink开发应用层时,模型一般包含3个部分:model、data和configset。model代表算法,data一般为观测量、标定量和常量的设置等,configset则是硬件配置和一些生成代码高级定制。具体详见simulink自动代码生成专栏

simulink添加标定量和进行代码生成的核心就是data中数据字典的管理。(这里也要说明一点我个人体会:simulink生成代码虽然降低了软件开发的门槛,但如果想要用好这个工具还是要先去了解一些c、计算机组成原理和操作系统的知识。)

假设现在我们有如下model: OutB=(InA+1)*2
在这里插入图片描述
生成代码后如下,其中的红圈Constant_1和红圈Gain_1为float类型的定值:1.0F和2.0F。
在这里插入图片描述

现在想把这两个地方设置为可标定量。需要两步:1)给可标定量起个变量名,2)设置该变量的存储类型。首先第一步起名字为calib_1和calib_2:
在这里插入图片描述
然后设置calib_1和calib_2的存储类型,这里需要用到数据字典data dictionary。数据字典是matlab推崇的用于统一管理模型变量(如标定量)的工具,可较细致的控制变量的定义、声明、数据类型和存储类型等。方法如下:
右键模型选中model properties
在这里插入图片描述
选择data选项卡,新建或浏览现有数据字典(这里使用新建):

Simulink 是 MathWorks 公司开发的一个模块化仿真环境,广泛用于动态系统建模、仿真和代码生成。CANape 则是由 Vector Informatik 提供的工具链,主要用于汽车电子控制单元(ECU)的标定、测量和诊断。在汽车工程领域,SimulinkCANape 的集成通常用于模型在环(Model-in-the-Loop, MIL)、软件在环(Software-in-the-Loop, SIL)以及硬件在环(Hardware-in-the-Loop, HIL)测试中。 ### SimulinkCANape 的集成方式 1. **通过 ASAP2 标准进行数据交换** CANape 支持使用 ASAP2(也称为 A2L 文件格式)来描述 ECU 内部变量和通信参数。Simulink 模型可以通过 Embedded Coder 或 Simulink Coder 生成带有 ASAP2 描述信息的代码,从而使得 CANape 能够识别并访问这些变量以进行实时测量和标定 [^1]。 2. **使用 XCP 协议进行通信** CANape 通过 XCP(Universal Calibration Protocol)协议与目标系统进行通信,而 Simulink 可以通过配置 External Mode 来支持 XCP 连接。这种模式允许在 Simulink 中运行模型的同时,通过 CANape 实时修改参数并监控信号 [^2]。 3. **自动化测试与标定流程** 在自动化测试环境中,可以将 Simulink 生成的可执行文件或 S-function 与 CANape 结合使用,实现对控制器模型的自动激励输入和响应采集。此外,还可以通过 CANape 的 Automation Interface(如 COM 接口)编写脚本,实现与 Simulink 模型的数据交互 [^3]。 4. **FMI/FMU 标准的支持** Simulink 支持导出功能模型单元(Functional Mock-up Unit, FMU),而 CANape 也支持导入 FMU,因此可以在 CANape 环境中直接加载 Simulink 导出的 FMU 模块,进行联合仿真和测试 [^4]。 ### 示例:Simulink 配置 XCP 外部模式 以下是一个简单的 MATLAB 命令示例,展示如何为 Simulink 模型启用 XCP 外部模式: ```matlab set_param('your_model_name', 'SimulationMode', 'external'); set_param('your_model_name', 'ExtModeTransport', 'xcp'); set_param('your_model_name', 'ExtModeHostPort', '5555'); % 设置主机端口 set_param('your_model_name', 'ExtModeTargetPort', '5555'); % 设置目标端口 ``` 启动外部模式后,CANape 可连接到该端口并进行实时交互。 ### 应用场景 - **控制器原型开发**:利用 Simulink 建立控制器模型,并通过 CANape 实现快速原型验证。 - **HIL 测试**:在 HIL 平台上加载 Simulink 生成的模型作为被测对象,使用 CANape 进行闭环测试。 - **参数优化与标定**:借助 CANape 的自动标定功能对 Simulink 模型中的关键参数进行优化。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值