上篇笔记我们介绍的是,TSMaster如何使用同星标定模块,相信很多工程师对我们TSMaster的后台操作有了更进一步的了解。本章节我们继续给大家带来一篇应用笔记——XCP 模块输出的 mat 文件格式说明。
“
本文目录:
一、mat变量格式定义
1. 固定变量定义
2. 时间解析方法
3. 时间关联的信号解析方法
4. 构建 timeseries
二、Simulink 信号回放
1. 模型中回放工作区变量
一、mat变量格式定义
TSMaster XCP 模块支持直接输出压缩的 HDF5 格式的 mat 文件(Matlab 7.3 版 本及以上),为基于 Simulink 的模型开发创造了便利。TSMaster 输出的 mat 文件载入 Matlab 后,其工作区变量列表如下:
(载入工作区的 mat 文件)
1
固定变量定义
固定变量列表如下:
序号 | 变量名称 | 含义 |
1 | Comment | 注释信息, 在同星标定模块的记录引擎配置 中可以更改, 若注释信息为空, 则不会记录这个变量 |
2 | MeasurementStartTime | 测量启动时间,TDate Time 格式, double 类型,用于自动化 |
3 | MeasurementStartTimeStr | 字符串表达的测量启动时间 |
4 | MeasurementStopTime | 测量结束时间, TDateTime格式, double 类型,用于自动化 |
5 | MeasurementStopTimeStr | 字符串表达的测量结束时间 |
6 | ECU_LIST | 参与标定的 ECU 列表,逗号分隔 |
7 | TIME_LIST | 时间列表,包含所有信号的时间信息 |
2
时间解析方法
首先分隔时间序列,获取所有时间轴:
(分隔时间序列)
>以 AN0001 中记录的信号为例,其时间序列 TIME_LIST 字符串变量如下:
ecu1_TIME_DAQ_Cyclic,ecu1_TIME_DAQ_10_ms,ecu1_TIME_DAQ_100ms,ecu1 _TIME_POLL_noiseSignal,TIME_XCPSimBus__engine_speed
分隔后可根据名称在工作区取得每一根时间轴数组,每根时间轴数组可关联 一个或一组信号,时间轴有三种类型,分别是 DAQ 时间(一根时间轴包含一个 或一组信号);Poll 时间 (一根时间轴对应一个信号) 和系统变量时间 (一根时间轴对应一个信号):
序号 | 时间轴 | 类型 |
1 | ecu1_TIME_DAQ_Cyclic | DAQ 时间,对应 Cyclic 类型的 DAQ |
2 | ecu1_TIME_DAQ_10_ms | DAQ 时间,对应 10_ms 类型的 DAQ |
3 | ecu1_TIME_DAQ_100ms | DAQ 时间,对应 100ms 类型的 DAQ |
4 | ecu1_TIME_POLL_noiseSignal | Poll 时间,对应查询类型的变量 |
5 | TIME_XCPSimBus__engine_speed | 系统变量时间,对应系统变量 |
>根据每根时间轴数组名称可以提取时间轴的每个时刻绝对时间, 单位时秒, 以 ecu1_TIME_DAQ_100ms 为例,如下图所示:
(时间轴数组)
3
时间关联的信号解析方法
>获取了时间轴后, 需要获取时间轴所关联的信号列表,并根据列表中信号名 称定位信号。以时间轴 ecu1_TIME_DAQ_100ms 为例,其对应的信号列表存放于 名称 ecu1_TIME_DAQ_100ms_LIST 的字符串变量里(逗号分隔),其变量名称规 则为:
时间轴名称_LIST
>按逗号分隔方式展开字符串变量 ecu1_TIME_DAQ_100ms_LIST 即可得到时间轴 ecu1_TIME_DAQ_100ms 所对应的一个或一组变量名称,在本例中,只有一个名称:
ecu1_triangleSignal
>这个变量名称最终定位到信号值数组“ecu1_triangleSignal”,该信号值数组 的每一个元素与时间信号数组的每一个元素在时间上是一一对应的。
>在这个信号上右击可以绘制信号按点分布的曲线(不带时间信息),如下图所示:
(信号上右键选择plot以绘制不带时间信息的值序列)
4
构建 timeseries
>若需要构建带时间信息的信号值序列,需要额外执行一段m脚本来构造timeseris ,以 信 号 ecu1_triangleSignal 为 例 , 其 对 应 的 时 间 轴 是 ecu1_TIME_DAQ_100ms,则 timeseries 可以通过如下脚本构造:
Triangle_signal = timeseries(ecu1_triangleSignal, ecu1_TIME_DAQ_100ms)
>构造后,在工作区出现一个新的信号“Triangle_signal”:
(生成 timeseries)
>右键绘制其变化曲线,可以看出横纵坐标分别是时间和值:
(绘制 timeseries 信号)
二、Simulink 信号回放
1
模型中回放工作区变量
在模型中回放 XCP 信号有如下几个步骤:
打开 Simulink 模块,在模块空白处双击,选择“FromWorkspace”:
(双击空白处搜索“From Workspace”信号)
根据 timeseries 的名称,将 Simulink 中的信号名称改为“Triangle_signal”,即 可参与模型相关的算法仿真和测试过程:
(修改信号名称)
连接 Scope 后,仿真结果如下:
(Simulink 仿真结果)
全部0条评论
快来发表一下你的评论吧 !