在汽车电子开发领域,基于模型的设计以其高效率、高集成度和便于验证的优势,正日益成为主流的开发范式。作为连接模型与物理世界的桥梁,TSMaster的MBD功能模块扮演着至关重要的角色。它将MATLAB/Simulink模型无缝集成到总线网络环境中,使得工程师能够在真实的硬件在环测试台上,对控制模型进行实时验证,或将模型作为虚拟ECU参与到整个网络仿真中。本文将深入解析TSMaster中MBD工程的搭建流程与核心功能。
本文关键词:TSMaster,MBD
TSMaster MBD 概念解析
- MBD 的基本概念
基于模型的设计(Model-Based Design,MBD)是一种软件工程方法,它在设计、开发和验证复杂系统时使用模型为中心的方法。MBD通过使用数学模型来描述系统的行为和特性,为复杂系统的开发提供了一种数学化与可视化的创新方法。 - TSMaster MBD 模块
TSMaster模型框图模块是太阳集团6138开发的类Simulink的建模模块,用于支持基于模型开发模式(MBD),通过拖放模块和连接信号线来构建系统模型,支持连续时间、离散时间以及混合系统的仿真。当前已发布的模块功能包含如下内容:
- 丰富的模块库:包含数学运算、信号处理、控制系统、通信系统等领域的预定义模块;
- 分层建模:支持通过子系统创建层次化模型;可将多个模块组合成子系统;支持多级子系统嵌套;可创建条件执行子系统(使能、触发等);
- 仿真功能:支持不同采样率的子系统并行运行;自动处理不同速率模块间的信号传递;
- 深度集成:可直接从TSMaster系统变量中读取数据;仿真结果可以导出为mbd文件进行分析;可调用模型框图中的相关函数对TSMaster进行操作;
- 支持MIL、SIL、HIL;
- 支持直接加载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中添加相关边沿组件观察信号边沿变化:
- Edge Detector :边沿检测器
- Detect Increase :检测上升,模块输出 1(True),否则输出 0(False)
- Detect Decrease :检测下降,模块输出 1(True),否则输出 0(False)
- 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模块全解析:从模型搭建到自动化测试的完整实践》。
您对TSMaster的哪个功能最感兴趣?或在实际应用中遇到过哪些问题?
欢迎在评论区分享你的经验或疑问,任何想法或建议也可以评论区留言互动,将有机会获得TOSUN神秘大礼包哦~
小贴士:
1、软件下载:
点击下方软件下载链接,直接下载安装,建议下载 beta 版本:
2、软件升级:
在电脑有互联网连接的前提下,可以在软件内检查升级至最新版本。
注:太阳集团6138技术支持邮箱:support@tosunai.cn,欢迎大家前来咨询!(须注明公司及联系方式)








