上篇筆記我們介紹的是,TSMaster如何使用同星標(biāo)定模塊,相信很多工程師對(duì)我們TSMaster的后臺(tái)操作有了更進(jìn)一步的了解。本章節(jié)我們繼續(xù)給大家?guī)?lái)一篇應(yīng)用筆記——XCP 模塊輸出的 mat 文件格式說(shuō)明。
“
本文目錄:
一、mat變量格式定義
1. 固定變量定義
2. 時(shí)間解析方法
3. 時(shí)間關(guān)聯(lián)的信號(hào)解析方法
4. 構(gòu)建 timeseries
二、Simulink 信號(hào)回放
1. 模型中回放工作區(qū)變量
一、mat變量格式定義
TSMaster XCP 模塊支持直接輸出壓縮的 HDF5 格式的 mat 文件(Matlab 7.3 版本及以上),為基于 Simulink 的模型開(kāi)發(fā)創(chuàng)造了便利。TSMaster 輸出的 mat 文件載入 Matlab 后,其工作區(qū)變量列表如下:
(載入工作區(qū)的 mat文件)
1
固定變量定義
固定變量列表如下:
序號(hào) | 變量名稱(chēng) | 含義 |
1 | Comment | 注釋信息, 在同星標(biāo)定模塊的記錄引擎配置中可以更改, 若注釋信息為空, 則不會(huì)記錄這個(gè)變量 |
2 | MeasurementStartTime | 測(cè)量啟動(dòng)時(shí)間,TDate Time 格式, double 類(lèi)型,用于自動(dòng)化 |
3 | MeasurementStartTimeStr | 字符串表達(dá)的測(cè)量啟動(dòng)時(shí)間 |
4 | MeasurementStopTime | 測(cè)量結(jié)束時(shí)間, TDateTime格式, double 類(lèi)型,用于自動(dòng)化 |
5 | MeasurementStopTimeStr | 字符串表達(dá)的測(cè)量結(jié)束時(shí)間 |
6 | ECU_LIST | 參與標(biāo)定的 ECU列表,逗號(hào)分隔 |
7 | TIME_LIST | 時(shí)間列表,包含所有信號(hào)的時(shí)間信息 |
2
時(shí)間解析方法
首先分隔時(shí)間序列,獲取所有時(shí)間軸:
(分隔時(shí)間序列)
>以 AN0001 中記錄的信號(hào)為例,其時(shí)間序列 TIME_LIST 字符串變量如下:
ecu1_TIME_DAQ_Cyclic,ecu1_TIME_DAQ_10_ms,ecu1_TIME_DAQ_100ms,ecu1_TIME_POLL_noiseSignal,TIME_XCPSimBus__engine_speed
分隔后可根據(jù)名稱(chēng)在工作區(qū)取得每一根時(shí)間軸數(shù)組,每根時(shí)間軸數(shù)組可關(guān)聯(lián)一個(gè)或一組信號(hào),時(shí)間軸有三種類(lèi)型,分別是 DAQ 時(shí)間(一根時(shí)間軸包含一個(gè) 或一組信號(hào));Poll 時(shí)間 (一根時(shí)間軸對(duì)應(yīng)一個(gè)信號(hào)) 和系統(tǒng)變量時(shí)間 (一根時(shí)間軸對(duì)應(yīng)一個(gè)信號(hào)):
序號(hào) | 時(shí)間軸 | 類(lèi)型 |
1 | ecu1_TIME_DAQ_Cyclic | DAQ時(shí)間,對(duì)應(yīng) Cyclic 類(lèi)型的 DAQ |
2 | ecu1_TIME_DAQ_10_ms | DAQ時(shí)間,對(duì)應(yīng) 10_ms 類(lèi)型的 DAQ |
3 | ecu1_TIME_DAQ_100ms | DAQ時(shí)間,對(duì)應(yīng) 100ms 類(lèi)型的 DAQ |
4 | ecu1_TIME_POLL_noiseSignal | Poll時(shí)間,對(duì)應(yīng)查詢(xún)類(lèi)型的變量 |
5 | TIME_XCPSimBus__engine_speed | 系統(tǒng)變量時(shí)間,對(duì)應(yīng)系統(tǒng)變量 |
>根據(jù)每根時(shí)間軸數(shù)組名稱(chēng)可以提取時(shí)間軸的每個(gè)時(shí)刻絕對(duì)時(shí)間, 單位時(shí)秒,以 ecu1_TIME_DAQ_100ms 為例,如下圖所示:
(時(shí)間軸數(shù)組)
3
時(shí)間關(guān)聯(lián)的信號(hào)解析方法
>獲取了時(shí)間軸后, 需要獲取時(shí)間軸所關(guān)聯(lián)的信號(hào)列表,并根據(jù)列表中信號(hào)名稱(chēng)定位信號(hào)。以時(shí)間軸 ecu1_TIME_DAQ_100ms 為例,其對(duì)應(yīng)的信號(hào)列表存放于名稱(chēng) ecu1_TIME_DAQ_100ms_LIST 的字符串變量里(逗號(hào)分隔),其變量名稱(chēng)規(guī)則為:
時(shí)間軸名稱(chēng)_LIST
>按逗號(hào)分隔方式展開(kāi)字符串變量 ecu1_TIME_DAQ_100ms_LIST 即可得到時(shí)間軸 ecu1_TIME_DAQ_100ms 所對(duì)應(yīng)的一個(gè)或一組變量名稱(chēng),在本例中,只有一個(gè)名稱(chēng):
ecu1_triangleSignal
>這個(gè)變量名稱(chēng)最終定位到信號(hào)值數(shù)組“ecu1_triangleSignal”,該信號(hào)值數(shù)組的每一個(gè)元素與時(shí)間信號(hào)數(shù)組的每一個(gè)元素在時(shí)間上是一一對(duì)應(yīng)的。
>在這個(gè)信號(hào)上右擊可以繪制信號(hào)按點(diǎn)分布的曲線(xiàn)(不帶時(shí)間信息),如下圖所示:
(信號(hào)上右鍵選擇plot以繪制不帶時(shí)間信息的值序列)
4
構(gòu)建 timeseries
>若需要構(gòu)建帶時(shí)間信息的信號(hào)值序列,需要額外執(zhí)行一段m腳本來(lái)構(gòu)造timeseris ,以 信 號(hào) ecu1_triangleSignal 為 例 , 其 對(duì) 應(yīng) 的 時(shí) 間 軸 是 ecu1_TIME_DAQ_100ms,則 timeseries 可以通過(guò)如下腳本構(gòu)造:
Triangle_signal= timeseries(ecu1_triangleSignal, ecu1_TIME_DAQ_100ms)
>構(gòu)造后,在工作區(qū)出現(xiàn)一個(gè)新的信號(hào)“Triangle_signal”:
(生成timeseries)
>右鍵繪制其變化曲線(xiàn),可以看出橫縱坐標(biāo)分別是時(shí)間和值:
(繪制 timeseries信號(hào))
二、Simulink 信號(hào)回放
1
模型中回放工作區(qū)變量
在模型中回放 XCP 信號(hào)有如下幾個(gè)步驟:
打開(kāi) Simulink 模塊,在模塊空白處雙擊,選擇“FromWorkspace”:
(雙擊空白處搜索“FromWorkspace”信號(hào))
根據(jù) timeseries 的名稱(chēng),將 Simulink 中的信號(hào)名稱(chēng)改為“Triangle_signal”,即可參與模型相關(guān)的算法仿真和測(cè)試過(guò)程:
(修改信號(hào)名稱(chēng))
連接 Scope 后,仿真結(jié)果如下:
(Simulink仿真結(jié)果)
-
XCP
+關(guān)注
關(guān)注
0文章
11瀏覽量
11730
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論