2. SysML语言总览
SysML(Systems Modeling Language)是在 UML 2 基础上为系统工程重新裁剪和扩展出来的建模语言。理解 SysML,关键不是背下九种图的名字,而是搞清楚三件事:这九种图各自回答什么问题、它们与 UML 的血缘关系在哪里、以及在机电系统建模中什么时候该用哪一种图。本节围绕这三条主线展开。
一、九种图的三层分类
SysML 的九种图可以按“结构—行为—需求”三个视角归类,这是最实用的记忆框架:
- 结构类(4 种):块定义图(BDD)、内部块图(IBD)、包图(PKG)、参数图(PAR)。它们回答“系统由什么组成、如何连接、约束是什么”。
- 行为类(4 种):活动图(ACT)、序列图(SD)、状态机图(STM)、用例图(UC)。它们回答“系统如何动作、按什么顺序交互、处于什么状态”。
- 需求类(1 种):需求图(REQ)。它回答“系统必须满足哪些需求、需求之间以及需求与设计元素之间是什么关系”。
需要特别指出:参数图(PAR)是 SysML 独有的,UML 中没有对应图种。它把块上的值属性与约束方程绑定,是机电系统做工程计算与权衡分析的核心工具。需求图同样是 SysML 新增,UML 完全没有需求建模能力。
二、与 UML 的关系:复用、裁剪、扩展
SysML 与 UML 的关系可以概括为“复用大部分、裁剪一部分、扩展一部分”。
- 直接复用:序列图、状态机图、用例图基本沿用 UML 语义,只是允许在系统层级使用。
- 裁剪:UML 中面向软件实现的图被去掉,例如部署图、通信图、交互概览图、时间图等,因为它们对机电系统建模价值有限。
- 扩展:UML 的类图被改造为块定义图,类变成“块(Block)”,块可以带值属性、流属性、约束和操作;新增参数图和需求图;活动图增加了“流”的语义,用于表达连续量(如电流、力矩、流量)的传递。
因此,有 UML 基础的人学 SysML 会很快,但必须警惕一个误区:不要把 SysML 当 UML 用。SysML 的块不是软件类,它的值属性往往带单位(如 N·m、A、mm),流属性表达的是物理量而非函数参数。
三、机电系统建模中的适用边界
机电系统同时包含机械、电气、控制、软件等异质子系统,SysML 九种图并非都同等重要。下表给出典型适用边界:
| 图种 | 典型用途 | 适用边界 |
|---|---|---|
| BDD | 定义系统层级、块、值属性、端口 | 不表达动态行为,不替代 IBD |
| IBD | 表达块内部部件、端口连接、流 | 只表达结构连接,不表达时序 |
| PAR | 绑定约束方程、做参数权衡 | 需先有 BDD 定义的值属性 |
| ACT | 表达功能流程、连续流 | 不适合表达状态驻留 |
| STM | 表达控制模式、状态切换 | 不适合表达并行数据流 |
| SD | 表达部件间消息/信号时序 | 不适合表达连续物理量 |
| REQ | 需求分解、验证追溯 | 不表达设计实现细节 |
例如,建模一个电动舵机时:用 BDD 定义“舵机”“电机”“减速器”“控制器”等块及其值属性(额定扭矩 5 N·m、减速比 100:1);用 IBD 表达电机轴与减速器输入端的连接、控制器 PWM 信号到驱动器的流;用 PAR 绑定“输出扭矩 = 电机扭矩 × 减速比 × 效率”这一约束;用 STM 表达“待机—使能—运行—故障”状态;用 SD 表达上电时控制器与驱动器的握手时序。这就是九种图协同工作的典型场景。
四、选择原则:从问题出发,而非从图出发
选择图种的核心原则是:先明确要回答的问题,再选图。可以按以下判断路径操作:
- 问“系统由什么组成、有哪些属性”——选 BDD。
- 问“部件之间怎么连、流怎么走”——选 IBD。
- 问“满足什么约束、参数如何权衡”——选 PAR。
- 问“功能如何一步步完成”——选 ACT。
- 问“系统处于什么状态、何时切换”——选 STM。
- 问“谁先谁后、消息如何交互”——选 SD。
- 问“需求是什么、如何追溯验证”——选 REQ。
一个常见的工程误区是“一张图打天下”。例如用活动图表达所有结构关系,或用 BDD 表达控制时序,结果图变得臃肿且语义不清。正确的做法是让每种图只承担它最擅长的语义,通过模型元素(块、端口、流、需求)在不同图之间建立引用关系,形成一致的模型网络。
总结来看,SysML 九种图不是九个孤立工具,而是一套按视角分工的建模语言体系。掌握它的关键,是理解每种图的语义边界,并在机电系统建模中根据“要回答什么问题”来选择图种,让结构、行为、需求三类模型相互引用、保持一致。这样建立的模型才能真正支撑后续的分析、验证与权衡。