4. 功能分解与功能树建模
功能分解是把系统级功能逐层拆解为可分配、可验证的子功能的过程。在MBSE中,功能分解不是随意画树,而是要在需求、功能、架构之间建立可追溯的层次关系。分解的粒度决定了后续物理架构分配的清晰度:分解过粗,功能无法落到具体部件;分解过细,则会造成功能冗余和接口爆炸。本节围绕三种分解策略、功能树构建方法以及SysML表达方式展开,并以无人机飞行功能为例完成一次完整分解。
一、三种功能分解策略
按流分解适用于能量流、信号流、物料流或数据流连续传递的系统。其核心是沿流动路径逐级拆分:总流→分支流→转换环节。例如无人机飞行功能可按“动力流”分解为电能存储、电能变换、电机驱动、旋翼推力产生;按“控制流”分解为指令接收、姿态解算、舵机/电机指令输出。按流分解的优点是接口关系明确,适合后续做能量平衡和信号链分析。
按状态分解适用于工作模式切换明显的系统。其思路是把系统功能按运行状态展开:地面待机、起飞爬升、巡航、悬停、返航、降落。每个状态内部再分解出该状态特有的子功能,例如“巡航”状态下包含航迹保持、高度保持、速度控制、避障感知。按状态分解能有效暴露状态切换时的功能衔接问题,如模式切换逻辑、状态监控和异常处理。
按子系统分解适用于物理边界已经比较清晰的系统。它按照机体、动力、导航、飞控、通信、载荷等子系统划分功能域,再在各域内继续分解。这种策略与后续物理架构分配衔接最自然,但容易过早引入物理实现约束,导致功能设计被现有部件限制。实际工程中通常以按流或按状态为主,按子系统为辅进行交叉验证。
二、功能树与功能层次图的构建
功能树是一种层次结构,根节点为系统级功能,中间节点为子功能,叶节点为可分配到物理单元的最小功能。构建功能树时需遵循三条规则:第一,同一父功能下的子功能应满足MECE原则,即相互独立、完全穷尽;第二,每个子功能必须有明确的输入输出,不能只是名词堆砌;第三,叶节点功能应能对应到至少一个物理部件或软件模块。
功能层次图与功能树的区别在于,功能层次图不仅表达父子关系,还表达功能之间的数据流、控制流和触发关系。在SysML中,功能树通常用功能分解图表达,而功能之间的动态交互则用活动图表达。活动图可以展示控制流、对象流、分叉与汇合、泳道分配,适合描述功能执行顺序和条件分支。
以无人机飞行功能为例,顶层功能为“完成指定航迹飞行”。按状态分解得到六个一级子功能:地面准备、起飞爬升、巡航飞行、悬停作业、返航回收、应急处理。其中“巡航飞行”再按流分解为:航迹保持、高度保持、速度控制、姿态稳定、避障感知。每个二级功能继续分解到可分配层级,例如“姿态稳定”分解为姿态角测量、姿态误差计算、控制律解算、电机指令输出。
三、SysML活动图与功能分解图的配合使用
功能分解图回答“功能由哪些子功能组成”,活动图回答“这些子功能按什么顺序执行、在什么条件下分支”。在无人机巡航案例中,功能分解图给出F3.1至F3.5的静态层次,而活动图则展示F3.1航迹保持内部的动态逻辑:接收航迹指令→计算偏差→判断偏差是否超过阈值→若超过则进入姿态修正解算,否则保持当前状态→最终输出电机指令。活动图中的判断节点和合并节点,正好对应功能分解中“条件性功能”的触发条件。
建模时建议先建功能树确定层次,再用活动图细化关键功能的执行逻辑。活动图的泳道可以分配给飞控软件、导航模块、动力模块等物理单元,这样功能分解与物理分配就能在同一模型中衔接。需要注意的是,活动图中的动作节点应与功能树中的叶节点功能一一对应,避免出现“图上有、树上无”的孤立动作。
四、无人机飞行功能分解示例参数
以下给出巡航飞行功能分解中可分配叶节点的示例参数,用于说明功能分解如何落到可验证的指标上。参数为教学示例假设值,实际型号需根据具体设计确定。
| 功能编号 | 功能名称 | 输入 | 输出 | 示例性能指标 | 分配对象 |
|---|---|---|---|---|---|
| F3.1 | 航迹保持 | 目标航点序列、当前位置 | 横向偏差、航向修正量 | 横向偏差 ≤ 2 m | 导航模块 + 飞控软件 |
| F3.2 | 高度保持 | 目标高度、气压高度 | 高度偏差、升降指令 | 高度偏差 ≤ 1.5 m | 飞控软件 + 电机 |
| F3.3 | 速度控制 | 目标速度、空速/地速 | 油门增量 | 速度偏差 ≤ 1 m/s | 动力模块 |
| F3.4 | 姿态稳定 | 姿态角、角速率 | 电机PWM指令 | 姿态角误差 ≤ 1° | 飞控软件 + 电机 |
| F3.5 | 避障感知 | 激光/视觉点云 | 障碍距离、规避指令 | 检测距离 ≥ 15 m | 感知模块 |
五、分解质量检查要点
- 完整性:顶层功能的每个运行状态是否都有对应子功能覆盖,是否存在“有状态无功能”的空白。
- 独立性:同一层级子功能之间是否职责重叠,例如“航迹保持”和“姿态稳定”是否被错误地合并为一个功能。
- 可分配性:每个叶节点功能是否至少能分配到一个物理部件或软件模块,若不能,说明分解粒度还不够细或功能定义不清晰。
- 可验证性:每个叶节点功能是否有明确的输入输出和可测量的性能指标,否则后续无法编写测试用例。
- 一致性:功能分解图与活动图中的动作节点是否一一对应,功能编号是否在需求、功能、架构之间保持统一追溯。
完成功能分解后,下一步是将叶节点功能分配到物理架构,并建立功能-物理分配矩阵。在无人机案例中,F3.4姿态稳定可分配到飞控计算机和四个电机;F3.5避障感知可分配到前向激光雷达和视觉处理模块。分配完成后,即可用参数图或IBD进一步描述物理部件之间的接口和约束,形成从需求到功能再到物理的完整追溯链。