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

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

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

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

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

2.2 CAN信號的算法處理

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

(2)創建系統變量Var0

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

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

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

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

模型框圖中的添加組件DataStoreRead,DataStoreRead綁定系統變量來獲取系統變量值,在SubSystem中添加相關邊沿組件觀察信號邊沿變化:
(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以數值變化的形式展示。
邊沿檢測與Switch結合使用:
1)將Edge Detector通過DataTypeConversion轉換信號類型,連接到Switch的第一個輸入信號;Switch的的控制信號連接Constant模塊(Constant值為1);Detect Decrease轉換信號類型后,連接到Switch的第三個輸入信號, 模塊根據 控制信號 的取值選擇輸出第一個輸入信號或第三個輸入信號。
選擇性輸出下降沿檢測結果:
由于控制信號固定為 1,Switch 會始終選擇第3個輸入(即 Detect Decrease 的輸出),最終系統等效為一個帶數據類型轉換的下降沿檢測器。
冗余設計意圖:
雖然連接了 Edge Detector 的通用邊沿檢測結果(輸入1),但通過固定控制信號將其屏蔽,僅保留 Detect Decrease 的專用下降沿檢測功能。
2)Detect Change 連接到Manual Switch 輸入1,Constant 連接到Manual Switch 輸入2實現了一個 "手動控制的信號變化監視器"。
監控模式:輸出信號變化檢測結果(變化=1,無變化=0);
固定輸出模式:忽略輸入信號,始終輸出預設的 Constant 值。
2.4 其他組件使用
模型框圖中還有其他組件實用組件,比如:
(1)Ground:輸入信號接地,防止出現關于未連接的輸入端口的警告。

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

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

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

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


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

添加新的圖形程序,添加執行單元綁定API函數調用,選擇小程序庫函數,使用run函數可以實現在圖形程序運行模型框圖。

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

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

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

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

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