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 表达上电时控制器与驱动器的握手时序。这就是九种图协同工作的典型场景。

四、选择原则:从问题出发,而非从图出发

选择图种的核心原则是:先明确要回答的问题,再选图。可以按以下判断路径操作:

  1. 问“系统由什么组成、有哪些属性”——选 BDD。
  2. 问“部件之间怎么连、流怎么走”——选 IBD。
  3. 问“满足什么约束、参数如何权衡”——选 PAR。
  4. 问“功能如何一步步完成”——选 ACT。
  5. 问“系统处于什么状态、何时切换”——选 STM。
  6. 问“谁先谁后、消息如何交互”——选 SD。
  7. 问“需求是什么、如何追溯验证”——选 REQ。

一个常见的工程误区是“一张图打天下”。例如用活动图表达所有结构关系,或用 BDD 表达控制时序,结果图变得臃肿且语义不清。正确的做法是让每种图只承担它最擅长的语义,通过模型元素(块、端口、流、需求)在不同图之间建立引用关系,形成一致的模型网络。

实用建议:在机电系统建模初期,优先建立 BDD 和 REQ,把系统边界、层级和需求基线定下来;随后用 IBD 和 PAR 做结构与参数细化;行为图(ACT/STM/SD)在结构稳定后再展开,避免频繁返工。
SysML 九种图分类与选择路径 结构视角(4 种) 行为视角(4 种) 需求视角(1 种) BDD 块定义图 系统层级 / 块 / 值属性 / 端口 IBD 内部块图 部件连接 / 端口 / 流 PKG 包图 模型组织 / 命名空间 PAR 参数图 约束方程 / 参数权衡 ACT 活动图 功能流程 / 连续流 STM 状态机图 状态 / 事件 / 切换 SD 序列图 消息时序 / 交互顺序 UC 用例图 系统功能 / 参与者 REQ 需求图 需求分解 / 追溯 / 验证 与 UML 的关系 • 复用:SD / STM / UC • 裁剪:部署图 / 通信图 • 扩展:BDD / PAR / REQ • 块 ≠ 类,值属性带单位 • 流属性表达物理量 选择原则:先问问题,再选图 组成/属性?→ BDD 连接/流?→ IBD 约束/权衡?→ PAR 功能流程?→ ACT 状态?→ STM 时序?→ SD 需求追溯?→ REQ 误区:一张图打天下 → 语义混杂、模型臃肿

总结来看,SysML 九种图不是九个孤立工具,而是一套按视角分工的建模语言体系。掌握它的关键,是理解每种图的语义边界,并在机电系统建模中根据“要回答什么问题”来选择图种,让结构、行为、需求三类模型相互引用、保持一致。这样建立的模型才能真正支撑后续的分析、验证与权衡。