3. 基于模型的系统工程建模语言概览

SysML(Systems Modeling Language)是在 UML 基础上为系统工程扩展而来的建模语言。它并不是“把 UML 换个名字”,而是针对系统工程师真正关心的问题——需求如何被满足、功能如何分解、逻辑组件如何交互、物理架构如何承载——提供了专门的图类型和语义。理解 SysML,关键不是背下九种图的名称,而是理解它们各自回答什么问题,以及这些图如何组织成一个可追溯、可验证的模型。

一、SysML 图类型的分类与职责

SysML 的图可以按“结构”和“行为”两大类理解,再叠加一张贯穿全局的需求图。结构图描述系统“由什么组成、如何连接”;行为图描述系统“如何随时间变化、如何响应外部刺激”。

  • 结构类:块定义图(BDD)定义块及其属性、操作、端口;内部块图(IBD)描述块内部部件之间的连接与接口;包图(PKG)组织模型元素。
  • 行为类:活动图(ACT)表达功能分解与控制流;序列图(SD)表达参与者之间按时间顺序的消息交互;状态机图(STM)表达对象生命周期中的状态迁移;用例图(UC)表达系统对外部参与者的服务边界。
  • 需求类:需求图(REQ)表达需求之间的包含、派生、满足、验证关系。
  • 参数类:参数图(PAR)表达工程约束与性能方程,是仿真联动的关键入口。

这些图不是孤立的。一个典型的 SysML 模型会以需求图为起点,用活动图分解功能,用块定义图和内部块图建立逻辑与物理结构,再用参数图把性能约束绑定到具体属性上,最终通过需求图中的「满足」和「验证」关系形成闭环。

二、模型组织方式:包、视图与模型库

SysML 模型通常按“包(Package)”组织。包可以嵌套,形成命名空间,避免同名元素冲突。常见的组织策略是按架构层次划分包,例如:Requirements、Behavior、Logical、Physical、Parametrics、Verification。每个包内部再按子系统或功能继续细分。

除了包,SysML 还支持“视图(View)”和“视角(Viewpoint)”。视图是对模型某个侧面的投影,例如“安全性视图”只展示与安全相关的需求和组件;“性能视图”只展示参数图和关键性能属性。视角则定义视图应遵循的规则和关注点。这种机制让同一个模型可以服务于不同角色:需求工程师看需求视图,机械工程师看物理视图,仿真工程师看参数视图。

模型组织的一个实用原则是:包结构反映架构分解,视图结构反映利益相关者关注点。两者不要混为一谈,否则模型会迅速变得难以维护。

三、需求-功能-逻辑-物理架构的表达方法

SysML 最核心的价值,是支持从需求到物理架构的逐层追溯。下面用一个简化的“无人机定高巡航”示例说明表达方法。假设需求为:REQ-01:无人机应在 50 m ± 2 m 高度保持巡航,响应时间不超过 2 s。

需求表达:在需求图中建立 REQ-01,并拆分为 REQ-01.1(高度保持精度)和 REQ-01.2(响应时间)。每个需求都有 id、text、rationale 等属性。

功能表达:用活动图分解“定高巡航”功能,得到“采集高度”“计算偏差”“输出舵面指令”“执行舵面动作”等动作节点,并用控制流连接。活动图中的每个动作可以分配(allocate)到逻辑组件。

逻辑表达:用块定义图建立逻辑块,例如 HeightSensor、FlightController、Actuator,定义它们的端口和接口。内部块图则展示这些逻辑块之间的连接:传感器输出高度信号到控制器,控制器输出指令到执行机构。

物理表达:物理架构进一步把逻辑块映射到真实部件,例如 HeightSensor 映射为某型号气压高度计,FlightController 映射为飞控计算机,Actuator 映射为舵机。物理块可以带有重量、功耗、精度等属性。

参数表达:参数图把 REQ-01.1 的精度约束绑定到传感器精度、控制器增益和舵机分辨率上,形成可计算的约束网络。当这些参数变化时,可以判断需求是否仍被满足。

整个追溯链可以概括为:需求 → 功能 → 逻辑 → 物理 → 参数验证。每一层都通过「满足」「分配」「验证」等关系与上一层连接,形成可查询、可影响分析、可验证的模型网络。

SysML 需求-功能-逻辑-物理-参数追溯链 以“无人机定高巡航”为例 需求层 REQ REQ-01 定高巡航 REQ-01.1 精度 ±2 m 功能层 ACT 采集高度 → 计算偏差 → 输出指令 → 执行 逻辑层 BDD/IBD HeightSensor FlightController / Actuator 物理层 PHY 气压高度计 飞控计算机 / 舵机 参数层 PAR 精度约束方程 响应时间约束 验证层 VER 测试用例 仿真结果比对 派生 分配 映射 绑定 验证 满足/验证闭环 关键关系语义 • «deriveReqt»:需求派生,子需求从父需求细化而来 • «allocate»:分配,把功能或逻辑元素分配到结构元素 • «satisfy»:满足,物理/逻辑元素声明满足某条需求 • «verify»:验证,测试用例或仿真验证某条需求 • «refine»:细化,行为或结构对需求的进一步说明 • «trace»:追溯,通用追溯关系 • 参数图绑定:把需求指标与设计参数关联 • 闭环:验证结果回写需求状态

四、从图到模型:组织与追溯的实践要点

在实际项目中,SysML 模型的质量往往不取决于图画得多漂亮,而取决于追溯关系是否完整、命名是否一致、参数是否可计算。以下几条经验值得注意:

  1. 需求先编号,再建模。每条需求应有唯一 id,需求图中的文本与需求管理工具保持同步,避免“图上一套、文档一套”。
  2. 功能分解到可分配粒度。活动图中的动作节点应细化到能明确分配给一个逻辑块的程度,否则后续分配关系会含糊。
  3. 逻辑与物理分离。逻辑块描述“做什么”,物理块描述“用什么做”。同一逻辑块可以映射到不同物理方案,便于方案对比。
  4. 参数图尽早介入。不要等到详细设计才建参数图。早期把关键性能约束参数化,可以在方案阶段就发现不可行组合。
  5. 用视图服务评审。针对不同评审对象生成不同视图,避免把整个模型一次性铺开导致信息过载。
常见误区:把 SysML 当成“画图工具”,只画 BDD 和 IBD,不建需求图和参数图。这样得到的模型无法回答“这个设计是否满足需求”,也无法与仿真工具联动,失去了 MBSE 的核心价值。

总结来说,SysML 提供了一套从需求到物理架构的完整表达体系。需求图定义“要什么”,活动图和状态机图定义“怎么行为”,块定义图和内部块图定义“由什么组成”,参数图定义“性能如何约束”,而包和视图则负责把这些内容组织成可维护、可追溯、可验证的模型。掌握这套体系,是后续开展模型与仿真联动验证的基础。