上篇笔记我们介绍的是,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”:
(双击空白处搜索“FromWorkspace”信号)
根据 timeseries 的名称,将 Simulink 中的信号名称改为“Triangle_signal”,即可参与模型相关的算法仿真和测试过程:
(修改信号名称)
连接 Scope 后,仿真结果如下:
(Simulink仿真结果)
-
XCP
+关注
关注
0文章
11浏览量
11714
发布评论请先 登录
相关推荐
评论