应用笔记 | TSMaster XCP 模块输出的 mat 文件格式说明

描述

 

上篇笔记我们介绍的是,TSMaster如何使用同星标定模块,相信很多工程师对我们TSMaster的后台操作有了更进一步的了解。本章节我们继续给大家带来一篇应用笔记——XCP 模块输出的 mat 文件格式说明。

 

本文目录:

一、mat变量格式定义

1. 固定变量定义

2. 时间解析方法

3. 时间关联的信号解析方法

4. 构建 timeseries

 

二、Simulink 信号回放

1. 模型中回放工作区变量

 

一、mat变量格式定义

 

TSMaster XCP 模块支持直接输出压缩的 HDF5 格式的 mat 文件(Matlab 7.3 版 本及以上),为基于 Simulink 的模型开发创造了便利。TSMaster  输出的 mat 文件载入 Matlab 后,其工作区变量列表如下:

XCP

(载入工作区的 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

时间解析方法

首先分隔时间序列,获取所有时间轴:

XCP

(分隔时间序列)

 

>以 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 为例,如下图所示:

XCP

(时间轴数组)

 

3

时间关联的信号解析方法

>获取了时间轴后, 需要获取时间轴所关联的信号列表,并根据列表中信号名 称定位信号。以时间轴 ecu1_TIME_DAQ_100ms 为例,其对应的信号列表存放于 名称 ecu1_TIME_DAQ_100ms_LIST  的字符串变量里(逗号分隔),其变量名称规 则为:

时间轴名称_LIST

 

>按逗号分隔方式展开字符串变量 ecu1_TIME_DAQ_100ms_LIST 即可得到时间轴 ecu1_TIME_DAQ_100ms 所对应的一个或一组变量名称,在本例中,只有一个名称:

ecu1_triangleSignal

 

>这个变量名称最终定位到信号值数组“ecu1_triangleSignal”,该信号值数组 的每一个元素与时间信号数组的每一个元素在时间上是一一对应的。

 

>在这个信号上右击可以绘制信号按点分布的曲线(不带时间信息),如下图所示:

XCP

(信号上右键选择plot以绘制不带时间信息的值序列)

 

4

构建 timeseries

>若需要构建带时间信息的信号值序列,需要额外执行一段m脚本来构造timeseris ,以 信 号 ecu1_triangleSignal    为 例 ,  其 对 应 的 时 间 轴 是 ecu1_TIME_DAQ_100ms,则 timeseries 可以通过如下脚本构造:

 

Triangle_signal = timeseries(ecu1_triangleSignal, ecu1_TIME_DAQ_100ms)

 

>构造后,在工作区出现一个新的信号“Triangle_signal”:

XCP

(生成 timeseries)

 

>右键绘制其变化曲线,可以看出横纵坐标分别是时间和值:

XCP

(绘制 timeseries 信号)

 

二、Simulink 信号回放

 

1

模型中回放工作区变量

在模型中回放 XCP 信号有如下几个步骤:

 

打开 Simulink 模块,在模块空白处双击,选择“FromWorkspace”:

XCP

(双击空白处搜索“From Workspace”信号)

 

根据 timeseries 的名称,将 Simulink 中的信号名称改为“Triangle_signal”,即 可参与模型相关的算法仿真和测试过程:

XCP

(修改信号名称)

 

连接 Scope 后,仿真结果如下:

XCP

(Simulink 仿真结果)

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • XCP

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分