4. 模式管理基本概念

星务计算机在轨运行时,会面对发射入轨、太阳捕获、对日定向、载荷观测、安全保持、故障恢复等差异极大的任务场景。若把每一种场景都写成一套独立的控制程序,软件将迅速膨胀且难以验证。模式管理正是为解决这一问题而提出的顶层运行管理机制:它把“整星当前处于什么工作状态、由谁主导、允许做什么、禁止做什么”抽象为若干可枚举、可切换、可约束的模式,使星务计算机能够以统一框架调度各分系统。

模式的定义

模式(Mode)是对星务计算机及其所辖分系统在某一时间段内运行行为的一组约定,通常包含四个要素:模式标识、进入条件、模式内允许的功能集合、退出条件。模式标识是唯一的枚举值,例如 SAFE、SUN_ACQ、NORMAL、OBSERVE、RECOVERY;进入条件描述触发该模式的判据,如姿态角误差、电池荷电状态、遥控指令或故障标志;功能集合规定该模式下哪些任务可运行、哪些被禁止;退出条件则给出离开该模式的判据。

模式不是简单的“开关”,而是一份契约。以 NORMAL 模式为例,其契约可表述为:三轴稳定、母线电压正常、测控链路可用、载荷允许加电。只要任一条件被破坏,模式管理就应触发模式迁移,而不是任由分系统各自为政。

模式与状态的关系

模式与状态常被混用,但二者层次不同。状态(State)是系统在某一时刻可观测、可测量的具体取值,如姿态角、角速度、母线电压、温度、任务队列长度;模式(Mode)是对这些状态取值所构成的“运行区间”的命名与封装。换言之,状态是点,模式是区域。

这种关系带来两个重要推论。第一,同一模式可对应无穷多组状态,例如 NORMAL 模式下姿态角可在 ±0.1° 内波动,只要不越界就仍属该模式。第二,模式切换的判据必须建立在状态量之上,因此模式管理离不开状态采集与阈值判断。工程上通常把状态量分为“模式判据量”和“模式内监测量”:前者用于决定是否切换,后者用于在模式内做健康评估。

星务计算机模式管理:状态判据 → 模式迁移 → 功能约束 状态采集层 姿态角 / 角速度 θ≤0.1°, ω≤0.02°/s 母线电压 / SOC 28V±1V, SOC≥60% 测控链路状态 上行/下行可用 故障标志字 看门狗/EDAC/复位 遥控指令 模式切换指令码 模式判据量 阈值比较 → 布尔量 模式管理层 模式表(Mode Table) 标识 | 进入条件 | 功能集 | 退出条件 迁移仲裁器 优先级 / 互斥 / 防抖 模式执行器 使能/禁止任务、加断电 模式遥测与日志 当前模式、迁移次数、原因 模式切换指令 / 自动迁移 遥控或判据触发 功能约束层 姿态控制任务 NORMAL 使能 载荷加电任务 OBSERVE 使能 数传任务 NORMAL/OBSERVE 加热器控制 全模式使能 非关键任务 SAFE 禁止 模式内允许集 越权访问被拒绝 判据 约束 模式迁移示例 SAFE → SUN_ACQ → NORMAL → OBSERVE

模式切换

模式切换是模式管理的核心动作,其本质是在满足判据时,把系统从当前模式迁移到目标模式,并同步改变功能约束集。切换可分为三类:遥控切换、自主切换和故障切换。

遥控切换由地面指令直接指定目标模式,适用于任务规划明确的场景,例如“进入 OBSERVE 模式”。自主切换由星务计算机根据判据自动完成,例如太阳捕获完成后自动进入 NORMAL。故障切换则由故障标志触发,优先级最高,通常直接进入 SAFE 或 RECOVERY。

切换过程必须处理三个工程问题。其一是优先级:当多个切换条件同时成立时,按“故障 > 安全 > 任务 > 遥控”的顺序仲裁,避免低优先级指令覆盖高优先级保护。其二是互斥:某些模式不能同时存在,例如 OBSERVE 与 SAFE 互斥,仲裁器需保证同一时刻只有一个模式生效。其三是防抖:状态量在阈值附近抖动会导致模式反复切换,工程上采用“连续 N 个周期满足判据”或“滞回阈值”来抑制。例如母线电压低于 26V 进入 SAFE,但需恢复到 27V 以上才允许退出,形成 1V 的滞回带。

模式管理职责

模式管理在星务计算机中承担四项职责。第一,维护模式表,把每个模式的进入、退出、功能集固化为可配置数据,便于在轨修改与地面验证。第二,采集并评估判据量,把模拟量、状态字、指令码统一转换为布尔判据。第三,执行迁移仲裁,按优先级和互斥规则决定是否切换、切换到何处。第四,发布模式上下文,向各任务和分系统广播当前模式,使它们据此决定自身行为。

这四项职责对应软件上的四个模块:模式表管理、判据评估、迁移仲裁、模式发布。它们通常以周期任务形式运行,周期与星务计算机主控制周期一致,例如 100ms 或 200ms。模式切换的响应时间应小于一个控制周期,以保证保护动作及时。

典型应用

以某低轨遥感卫星为例,其星务计算机设置五个模式。SAFE 模式仅保留测控、加热器和最小姿态控制,禁止载荷加电;SUN_ACQ 模式在入轨后展开太阳翼并捕获太阳;NORMAL 模式建立三轴稳定并对日定向;OBSERVE 模式在目标上空使能载荷并记录数据;RECOVERY 模式在复位后重建任务上下文。

一次典型迁移链为:入轨后星务计算机检测到太阳翼展开到位且姿态角误差小于 5°,自动从 SAFE 进入 SUN_ACQ;太阳捕获完成后,姿态角误差收敛到 0.1° 以内,进入 NORMAL;收到地面观测计划后,遥控切换至 OBSERVE;观测结束后自动返回 NORMAL。若期间发生看门狗复位,则直接进入 RECOVERY,重建后再回到 NORMAL。

模式表建议以“模式标识 + 进入条件 + 功能集 + 退出条件 + 优先级”五列组织,并作为独立配置文件随软件版本管理。在轨修改模式表时,应先校验新表的互斥关系与优先级,再写入并复位模式管理任务。
模式切换不是简单的变量赋值。若切换时未同步禁止旧模式任务、未清理旧模式上下文,可能出现载荷仍在加电而模式已进入 SAFE 的危险状态。因此模式执行器必须遵循“先禁止、后使能、再发布”的顺序。

综上,模式管理把星务计算机从“一堆并行任务”提升为“有顶层契约的运行系统”。理解模式定义、模式与状态的关系、切换机制、管理职责与典型应用,是后续设计模式表、编写迁移仲裁逻辑和验证模式覆盖度的基础。