1
Chapter 1 || mat变量格式定义
TSMasterXCP模块支持直接输出压缩的HDF5格式的mat文件(Matlab 7.3版本及以上),为基于Simulink的模型开发创造了便利。TSMaster 输出的mat文件载入Matlab后,其工作区变量列表如下:
1.1 固定变量定义
固定变量列表如下:
序号 | 变量名称 | 含义 |
1 | Comment | 注释信息,在同星标定模块的记录引擎配置中可以更改,若注释信息为空,则不会记录这个变量 |
2 | MeasurementStartTime | 测量启动时间,TDateTime格式,double类型,用于自动化 |
3 | MeasurementStartTimeStr | 字符串表达的测量启动时间 |
4 | MeasurementStopTime | 测量结束时间,TDateTime格式,double类型,用于自动化 |
5 | MeasurementStopTimeStr | 字符串表达的测量结束时间 |
6 | ECU_LIST | 参与标定的ECU列表,逗号分隔 |
7 | TIME_LIST | 时间列表,包含所有信号的时间信息 |
1.2 时间解析方法
首先分隔时间序列,获取所有时间轴:
以应用笔记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为例,如下图所示:
1.3 时间关联的信号解析方法
获取了时间轴后,需要获取时间轴所关联的信号列表,并根据列表中信号名称定位信号。以时间轴ecu1_TIME_DAQ_100ms为例,其对应的信号列表存放于名称ecu1_TIME_DAQ_100ms_LIST 的字符串变量里(逗号分隔),其变量名称规则为:
时间轴名称_LIST
按逗号分隔方式展开字符串变量ecu1_TIME_DAQ_100ms_LIST即可得到时间轴ecu1_TIME_DAQ_100ms所对应的一个或一组变量名称,在本例中,只有一个名称:
ecu1_triangleSignal
这个变量名称最终定位到信号值数组“ecu1_triangleSignal”,该信号值数组的每一个元素与时间信号数组的每一个元素在时间上是一一对应的。
在这个信号上右击可以绘制信号按点分布的曲线(不带时间信息),如下图所示:
1.4 构建timeseries
若需要构建带时间信息的信号值序列,需要额外执行一段m脚本来构造timeseris,以信号ecu1_triangleSignal为例,其对应的时间轴是ecu1_TIME_DAQ_100ms,则timeseries可以通过如下脚本构造:
Triangle_signal = timeseries(ecu1_triangleSignal, ecu1_TIME_DAQ_100ms)
构造后,在工作区出现一个新的信号“Triangle_signal”:
右键绘制其变化曲线,可以看出横纵坐标分别是时间和值:
2
Chapter 2 || Simulink信号回放
2.1 模型中回放工作区变量
在模型中回放XCP信号有如下几个步骤:打开Simulink模块,在模块空白处双击,选择“From Workspace”:
根据timeseries的名称,将Simulink中的信号名称改为“Triangle_signal”,即可参与模型相关的算法仿真和测试过程:
连接Scope后,仿真结果如下:
全部0条评论
快来发表一下你的评论吧 !