2. SysML图分类与汽车电子适用场景
SysML 共定义九种图,分为三大类:结构图(块定义图、内部块图、参数图、包图)、行为图(活动图、序列图、状态机图、用例图)和需求图。对汽车电子系统而言,这九种图并非"每张都要画",而是各自承担不同的建模职责。理解每种图"回答什么问题、适合什么场景",比记住图形符号更重要。本节按"结构—行为—需求"三条主线,结合汽车电子典型对象说明其适用场景。
结构图:描述系统"由什么组成、如何连接"
块定义图(BDD)回答"系统由哪些部件构成、各自具备什么属性"。在汽车电子中,BDD 常用于整车电子电气架构的顶层分解。例如将"整车控制器"分解为"动力域控制器、车身域控制器、智能座舱域控制器",每个块定义其端口、属性与操作。BDD 的典型元素包括块(Block)、值属性、端口、接口和关联关系。汽车电子中常见的 <<ecu>>、<<sensor>>、<<actuator>> 等构造型(Stereotype)就是通过 BDD 表达的。
内部块图(IBD)回答"块内部各部件如何连接、数据如何流动"。BDD 给出静态分解,IBD 则展示块内部实例(Part)之间的连接器和端口绑定。汽车电子中,IBD 非常适合描述一个域控制器内部 SoC、MCU、CAN 收发器、电源管理芯片之间的信号连接,或描述一条 CAN 总线上各 ECU 的连接拓扑。IBD 中的连接器(Connector)对应实际线束或总线,端口(Port)对应引脚或通信接口。
参数图(Parametric Diagram)回答"系统性能参数之间满足什么约束"。它通过约束块(Constraint Block)和约束参数,把工程方程绑定到值属性上。汽车电子中,参数图常用于制动距离计算、电机扭矩—电流关系、电池 SOC 估算、热管理散热功率等场景。例如将制动距离公式 s = v²/(2·a) 作为约束,把车速、减速度、制动距离三个值属性绑定,即可在模型层面进行参数权衡。
包图(Package Diagram)回答"模型如何组织、命名空间如何划分"。汽车电子项目模型规模大,包图用于按域、按功能或按层级组织模型元素,例如 Vehicle::Powertrain::BMS 这样的包结构,并可通过依赖关系表达模型间的引用。
行为图:描述系统"如何运行、如何交互"
用例图(Use Case Diagram)回答"系统为谁提供什么服务"。汽车电子中,用例图适合在需求早期界定系统边界与外部参与者。例如"驾驶员"作为参与者,与"启动车辆""开启自适应巡航""远程解锁"等用例关联;"诊断仪"作为另一参与者,与"读取故障码"关联。用例图不描述内部实现,只界定系统对外提供的功能范围。
活动图(Activity Diagram)回答"一个功能或流程按什么顺序执行、有哪些分支与并发"。汽车电子中,活动图适合描述控制逻辑、诊断流程、上下电时序等。例如"高压上电流程"可用活动图表达:钥匙 ON → 自检 → 预充继电器闭合 → 预充完成判断 → 主继电器闭合 → 上电完成,其中"预充完成判断"是一个决策节点,超时则进入故障处理分支。活动图支持分叉/汇合(并发)和泳道(责任分配),适合表达多 ECU 协同的流程。
序列图(Sequence Diagram)回答"对象之间按时间顺序交换了哪些消息"。汽车电子中,序列图是描述通信协议交互的利器。例如描述 BMS 与 VCU 之间通过 CAN 报文交互:VCU 发送 0x101 请求上高压,BMS 回复 0x201 允许上高压,VCU 再发送 0x102 闭合主继电器。序列图能清晰展示消息顺序、同步/异步、超时与备选路径(alt/opt 组合片段),是通信矩阵设计的常用工具。
状态机图(State Machine Diagram)回答"一个对象在其生命周期内经历哪些状态、什么事件触发状态迁移"。汽车电子中,状态机图几乎无处不在:整车电源状态(OFF/ACC/ON/READY)、BMS 状态(休眠/待机/预充/放电/故障)、车门锁状态、充电状态等。状态机图强调状态、事件、迁移条件和动作,适合表达具有明确状态语义的控制逻辑。
需求图:描述"需求是什么、如何被满足"
需求图(Requirement Diagram)回答"需求之间以及需求与设计元素之间是什么关系"。SysML 需求图的核心是需求元素及其 <<derive>>、<<satisfy>>、<<verify>>>、<<refine>> 等关系。汽车电子中,需求图用于建立"法规/客户需求 → 系统需求 → 子系统需求 → 设计元素 → 测试用例"的追溯链。例如"整车续航 ≥ 500 km"这一需求,可被"电池包容量 ≥ 75 kWh"和"整车风阻系数 ≤ 0.28"两条子需求派生,并由具体块和测试用例满足与验证。
汽车电子场景下的选图原则
面对一个具体建模任务,可按以下判断路径选图:若问题是"系统由哪些部件组成",选 BDD;若问题是"部件之间怎么连",选 IBD;若问题是"性能参数满足什么方程",选参数图;若问题是"模型怎么组织",选包图;若问题是"系统对外提供什么服务",选用例图;若问题是"一个流程按什么顺序走",选活动图;若问题是"两个对象之间消息怎么交互",选序列图;若问题是"对象有哪些状态、怎么迁移",选状态机图;若问题是"需求怎么追溯、怎么被满足和验证",选需求图。
实际项目中,九种图往往组合使用。以 BMS 开发为例:用 BDD 定义 BMS 块及其端口;用 IBD 描述内部 AFE、MCU、CAN 收发器连接;用状态机图描述 BMS 状态迁移;用序列图描述与 VCU 的 CAN 交互;用活动图描述故障诊断流程;用参数图描述 SOC 估算约束;用需求图把"过压保护阈值 4.25V"追溯到具体设计元素与测试用例;用包图组织整个 BMS 模型。这种"结构 + 行为 + 需求"的组合,正是 SysML 在汽车电子中落地的基本形态。