在汽車電子開發(fā)領(lǐng)域,基于模型的設計以其高效率、高集成度和便于驗證的優(yōu)勢,正日益成為主流的開發(fā)范式。作為連接模型與物理世界的橋梁,TSMaster的MBD功能模塊扮演著至關(guān)重要的角色。它將MATLAB/Simulink模型無縫集成到總線網(wǎng)絡環(huán)境中,使得工程師能夠在真實的硬件在環(huán)測試臺上,對控制模型進行實時驗證,或?qū)⒛P妥鳛樘摂MECU參與到整個網(wǎng)絡仿真中。本文將深入解析TSMaster中MBD工程的搭建流程與核心功能。
TSMaster MBD 概念解析
1. MBD 的基本概念
基于模型的設計(Model-Based Design,MBD)是一種軟件工程方法,它在設計、開發(fā)和驗證復雜系統(tǒng)時使用模型為中心的方法。MBD通過使用數(shù)學模型來描述系統(tǒng)的行為和特性,為復雜系統(tǒng)的開發(fā)提供了一種數(shù)學化與可視化的創(chuàng)新方法。
2.TSMaster MBD 模塊
TSMaster模型框圖模塊是同星智能開發(fā)的類Simulink的建模模塊,用于支持基于模型開發(fā)模式(MBD),通過拖放模塊和連接信號線來構(gòu)建系統(tǒng)模型,支持連續(xù)時間、離散時間以及混合系統(tǒng)的仿真。當前已發(fā)布的模塊功能包含如下內(nèi)容:
1. 豐富的模塊庫:包含數(shù)學運算、信號處理、控制系統(tǒng)、通信系統(tǒng)等領(lǐng)域的預定義模塊;
2. 分層建模:支持通過子系統(tǒng)創(chuàng)建層次化模型;可將多個模塊組合成子系統(tǒng);支持多級子系統(tǒng)嵌套;可創(chuàng)建條件執(zhí)行子系統(tǒng)(使能、觸發(fā)等);
3. 仿真功能:支持不同采樣率的子系統(tǒng)并行運行;自動處理不同速率模塊間的信號傳遞;
4. 深度集成:可直接從TSMaster系統(tǒng)變量中讀取數(shù)據(jù);仿真結(jié)果可以導出為mbd文件進行分析;可調(diào)用模型框圖中的相關(guān)函數(shù)對TSMaster進行操作;
5. 支持MIL、SIL、HIL;
6. 支持直接加載Simulink的sldd、slx等文件仿真

MBD 工程搭建實戰(zhàn)
以下是一個詳細的步驟指南,演示如何從零開始搭建一個完整的MBD工程。
本文中使用的數(shù)據(jù)庫為TSMaster軟件中附帶的數(shù)據(jù)庫CAN_FD_Powertrain.dbc所在地址為TSMaster安裝路徑下\Data\Demo\Databases文件夾中。如下圖所示:

CAN數(shù)據(jù)庫中的Demo數(shù)據(jù)庫到TSMaster中,并激活CAN總線仿真,以便后續(xù)信號映射中使用。

1. 變量準備
添加CAN數(shù)據(jù)庫和系統(tǒng)變量,將CAN數(shù)據(jù)中的信號與系統(tǒng)變量映射方向設置為雙向傳遞,方便后續(xù)修改系統(tǒng)變量的值來控制CAN信號的變化。

2. 工程搭建
2.1 信號輸入
事先在TSMaster中添加數(shù)據(jù)庫,(注:不可以選擇最大最小值為0的信號)在信號映射將CAN信號(/EngineData/EngSpeed以為例)與系統(tǒng)變量(以Var0為例)連接在一起,映射方向設置為:僅從系統(tǒng)變量到信號。
模型框圖中的添加組件Sine Wave和DataStoreWrite,DataStoreWrite綁定系統(tǒng)變量(以Var0為例),將Sine Wave和DataStoreWrite連接在一起,實現(xiàn)系統(tǒng)變量值是Sine曲線變化。

2.2 CAN信號的算法處理

簡單CAN信號算法處理,示例步驟如下:
(1)新建TSMaster工程,加載數(shù)據(jù)庫(以CAN_FD_Powertrain.dbc為例)

(2)創(chuàng)建系統(tǒng)變量Var0

(3)信號映射中將系統(tǒng)變量Var0和CAN信號(以/EngineData/EngSpeed信號為例)連接,映射方向選擇“僅從系統(tǒng)變量到信號”

(4)添加模型框圖,模型框圖中添加Sine Wave和ToWorkspace組件,ToWorkspace綁定系統(tǒng)變量Var0,Sine Wave連線到ToWorkspace,實現(xiàn)系統(tǒng)變量值的Sine變化,同時實現(xiàn)CAN信號值的Sine變化

(5)CAN信號的算法處理:添加子系統(tǒng)operation,使用FromWorkspace讀取系統(tǒng)變量Var0的值作為輸入子系統(tǒng),Constant作為另一個輸入給子系統(tǒng)。
子系統(tǒng)中可以添加的算法模塊有:
▲微積分運算:積分器(Integrator)和微分器(Derivative)
▲離散系統(tǒng):單位延遲(Unit Delay)、延遲(Delay)等等
▲邏輯與比較組件:Logical Operator(AND/OR/NOT等邏輯門);Relational Operator(比較運算符,如>、<、==);Switch(基于條件選擇信號)、Multiport Switch(多路選擇)
▲數(shù)學算法:Sum(求和)、Product(乘積)、Gain(增益乘法)、Abs(絕對值)等;Trigonometry(三角函數(shù),如sin、cos);Min Max(極值運算);Exp(指數(shù))、Log(對數(shù))、Sqrt(平方根)
子系統(tǒng)中添加EnablePort組將,在子系統(tǒng)外添加Constant連接到EnablePort口可以通過修改Constant的值來控制是否執(zhí)行當前子系統(tǒng)。

▲輸出:子系統(tǒng)中的Output口可以連接到任意地方輸出
通過上述步驟可以在模型框圖中處理CAN信號的值,再使用輸出模塊中的Scope以圖形變化的形式展示,也可以通過Display以數(shù)值變化的形式展示,還可以使用ToWorkspace的方式再寫入到系統(tǒng)變量再將系統(tǒng)變量添加到圖形窗口觀察。所有添加的算法相關(guān)組件的連線都可以通過添加輸出模塊實時觀察每個階段的數(shù)據(jù)變化情況。
2.3 CAN信號邊沿檢測

模型框圖中的添加組件DataStoreRead,DataStoreRead綁定系統(tǒng)變量來獲取系統(tǒng)變量值,在SubSystem中添加相關(guān)邊沿組件觀察信號邊沿變化:
(1)Edge Detector :邊沿檢測器
(2)Detect Increase :檢測上升,模塊輸出 1(True),否則輸出 0(False)
(3)Detect Decrease :檢測下降,模塊輸出 1(True),否則輸出 0(False)
(4)Detect Change :檢測任意變化,模塊輸出 1(True),否則輸出 0(False)
子模塊中的組件示意圖如下:

在邊沿檢測組件的輸出口可以連接輸出模塊中的Scope以圖形變化的形式展示,也可以通過Display以數(shù)值變化的形式展示。
邊沿檢測與Switch結(jié)合使用:
1)將Edge Detector通過DataTypeConversion轉(zhuǎn)換信號類型,連接到Switch的第一個輸入信號;Switch的的控制信號連接Constant模塊(Constant值為1);Detect Decrease轉(zhuǎn)換信號類型后,連接到Switch的第三個輸入信號, 模塊根據(jù) 控制信號 的取值選擇輸出第一個輸入信號或第三個輸入信號。
選擇性輸出下降沿檢測結(jié)果:
由于控制信號固定為 1,Switch 會始終選擇第3個輸入(即 Detect Decrease 的輸出),最終系統(tǒng)等效為一個帶數(shù)據(jù)類型轉(zhuǎn)換的下降沿檢測器。
冗余設計意圖:
雖然連接了 Edge Detector 的通用邊沿檢測結(jié)果(輸入1),但通過固定控制信號將其屏蔽,僅保留 Detect Decrease 的專用下降沿檢測功能。
2)Detect Change 連接到Manual Switch 輸入1,Constant 連接到Manual Switch 輸入2實現(xiàn)了一個 "手動控制的信號變化監(jiān)視器"。
監(jiān)控模式:輸出信號變化檢測結(jié)果(變化=1,無變化=0);
固定輸出模式:忽略輸入信號,始終輸出預設的 Constant 值。
2.4 其他組件使用
模型框圖中還有其他組件實用組件,比如:
(1)Ground:輸入信號接地,防止出現(xiàn)關(guān)于未連接的輸入端口的警告。

(2)Sign:信號符號判斷,在需要了解信號的符號是可以將Sign組件連接到連線中。

(3)Clock:實時獲取當前模塊仿真時間。
(4)Stop Simulation:在輸入信號不為0時可以立即停止仿真。

(5)Step:可以控制信號在指定時間產(chǎn)生從初始值到終值的跳變。

(6)控制子系統(tǒng)執(zhí)行端口:Enable Port和Trigger Port。
在子系統(tǒng)中加入Enable Port(或Trigger Port),子系統(tǒng)的外部會多出一個輸入端口,在外部通過修改連接到端口的信號的值控制是否執(zhí)行當前子系統(tǒng)。


2.5 小程序庫使用
模型生成mp后被任意調(diào)用,實現(xiàn)圖形程序(或C小程序)運行模型框圖,更加便捷的控制模型框圖的運行。

添加新的圖形程序,添加執(zhí)行單元綁定API函數(shù)調(diào)用,選擇小程序庫函數(shù),使用run函數(shù)可以實現(xiàn)在圖形程序運行模型框圖。

MBD 工程結(jié)果
示例工程運行與結(jié)果
示例工程搭建完成后,在圖形程序中依次運行模型框圖。
信號輸入中將Sine Ware的值賦值給系統(tǒng)變量Var0,再通過信號映射中的配置將系統(tǒng)變量的值賦值給CAN信號,在圖形中實時看到,Trace窗口中也能看到報文變化。

CAN信號算法處理過程中將Sine信號和常數(shù)模塊,Sine先進行絕對值處理,再將兩者相加而后進行增益處理最后相乘,再通過Output端口輸出,連接到Scope和Display展示,可以在任意位置添加Output端口將實時數(shù)據(jù)輸出觀察。

CAN信號邊沿檢測檢測中,將Output1連接到Switch中輸出的不規(guī)則的信號(由控制信號決定);將另一個Output2連接到ManualSwitch中,Input是一個常數(shù)1,所有輸出為常數(shù)1。

其他組件使用中Input2(SubSystem輸入連接的是Sine正弦波)連接到Sign,根據(jù)獲取到的信號符號輸出:如果輸入大于0,輸出為1;如果輸入等于0,輸出為0;如果輸入小于0,輸出為-1。
Clock輸出的是實時仿真時間,連接到Output1,運行結(jié)束后展示的最后結(jié)果為設置中的仿真結(jié)束時間。
Step設置的是從2階躍到9,連接到Output2,所以展示的是最后階躍的結(jié)果。

掌握TSMaster MBD模塊,意味著您能將基于模型設計的效率優(yōu)勢從仿真領(lǐng)域無縫延伸至實車測試與驗證,極大地壓縮開發(fā)周期,提升系統(tǒng)可靠性。關(guān)于TSMaster MBD 相關(guān)組件說明歡迎閱讀《TSMaster MBD模塊全解析:從模型搭建到自動化測試的完整實踐》。
-
汽車電子
+關(guān)注
關(guān)注
3044文章
8913瀏覽量
172724 -
ecu
+關(guān)注
關(guān)注
14文章
980瀏覽量
57216 -
MBD
+關(guān)注
關(guān)注
0文章
30瀏覽量
9523
發(fā)布評論請先 登錄
TSMaster 的 CAN UDS 診斷操作指南(上)
TSMaster 的 CAN UDS 診斷操作指南(下)
MBD設計模式
UART串口與LWIP以太網(wǎng)問題解析
純干貨,PSI 原理解析與應用資料下載
干貨分享 | TSMaster的記錄功能需求與實踐
TSMaster小功能—Python小程序如何導入外部庫
TSMaster 測試報告生成器操作指南
干貨分享 | TSMaster軟件指南
干貨分享 | TSMaster AUTOSAR E2E使用說明
干貨分享 | TSMaster用戶必看:以太網(wǎng)通信仿真用戶手冊
干貨分享 | TSMaster DBC編輯器操作指南:功能詳解+實戰(zhàn)示例
干貨分享 | TSMaster MBD模塊全解析:從模型搭建到自動化測試的完整實踐
干貨分享 | TSMaster MBD工程搭建與解析指南
評論