3. 冗余切换的触发机制与判据设计

冗余切换的触发机制,是星务系统从“主份正常工作”进入“备份接管”的入口逻辑。它要回答三个问题:用什么信号判断主份是否失效、达到什么条件才允许切换、在什么时间窗口内完成切换。这三者分别对应检测手段、判据阈值和时序约束。设计不当,轻则频繁误切换,重则主份已失效而备份迟迟不接管,导致整星任务中断。

一、四类基本检测手段

心跳检测是最常用的活性判据。主份周期性地向备份或监控单元发送心跳报文,内容通常包含递增的序列号、时间戳和当前工作模式。备份侧维护一个“最后心跳到达时刻”,若超过设定周期未收到,则判定心跳超时。心跳的关键参数是发送周期 Thb 与超时门限 N×Thb。例如 Thb=100 ms,连续 3 个周期未收到即超时,则检测延迟约为 300 ms。心跳只能证明“软件还在跑”,不能证明“输出还正确”,因此它通常作为第一层快速判据。

看门狗解决的是“程序跑飞或死锁”问题。主份软件必须在规定时间内“喂狗”,否则硬件看门狗溢出并产生复位或切换信号。看门狗与心跳的区别在于:心跳是主份主动对外声明活性,看门狗是外部电路对主份的被动监督。工程上常采用“窗口看门狗”,既不允许喂得太晚,也不允许喂得太早——喂得太早说明程序可能跳过了关键任务段,同样视为异常。

健康状态字是更细粒度的判据来源。主份周期性采集自身关键健康项,如 CPU 占用率、内存余量、总线误码率、电源电压、温度、关键任务执行计数等,将其编码为一个状态字上报。备份侧不只看“有没有心跳”,还看状态字中的各标志位是否越界。状态字的价值在于它能在主份尚未完全死机、但性能已严重退化时提前暴露风险。

故障阈值则是把上述连续量转化为布尔判据的边界。阈值可以是固定值,也可以是带迟滞的双门限。例如总线误码率正常应低于 1×10⁻⁶,当连续 5 个统计周期超过 1×10⁻⁵ 时置故障位;恢复时需低于 5×10⁻⁶ 才清故障位。迟滞区间避免了在阈值附近反复抖动导致状态位频繁翻转。

冗余切换触发判据链:从检测到切换决策 主份(Active) 心跳报文 / 状态字 喂狗脉冲 关键任务输出 检测层 ① 心跳超时:N×T_hb ② 看门狗溢出 ③ 健康状态字越界 ④ 输出比对不一致 判据与阈值层 连续计数 ≥ K 次 迟滞双门限:故障/恢复 多源一致性表决 误报/漏报权衡 信号 候选故障 触发时序约束 T_detect:检测延迟(心跳超时/看门狗溢出) T_confirm:确认窗口(连续 K 次判据成立,抑制抖动) T_switch:切换执行时间(隔离主份→备份接管→输出稳定) 切换决策 T_detect + T_confirm ≤ T_mission 满足则置切换请求 备份(Standby) 接收切换请求 接管输出并回读状态 切换 状态回读/确认 误报 / 漏报权衡 阈值过松 → 漏报 主份已失效仍不切换 后果:任务中断 阈值过紧 → 误报 正常波动触发切换 后果:频繁切换、 备份寿命损耗 折中:连续计数 + 迟滞 + 多源表决

二、判据设计:从单点到组合

单一判据很难同时满足低误报和低漏报。工程上普遍采用“组合判据”:快速判据负责及时性,慢速判据负责准确性。典型组合是“心跳超时 OR 看门狗溢出”作为快速触发,再叠加“健康状态字连续越界”或“输出比对不一致”作为确认条件。只有当快速判据成立且确认条件在 Tconfirm 内持续满足,才真正置切换请求。

连续计数 K 是抑制误报的核心参数。若单次心跳丢失概率为 p,则连续 K 次丢失的概率约为 pK。例如 p=0.01、K=3,误触发概率降到约 1×10⁻⁶ 量级。但 K 增大会拉长确认时间,因此 K 的选取必须与任务允许的中断时间 Tmission 联合确定。

多源表决适用于有多个敏感器或计算通道的场景。例如姿态确定同时由星敏感器、陀螺和太阳敏感器提供,若三路中两路一致、一路偏离,则偏离路判为故障;若三路互不一致,则不能简单切换,而应进入安全模式并等待地面指令。表决把“单点异常”和“系统性故障”区分开来,避免因一个错误信号引发不必要的切换。

三、触发时序约束

切换能否成功,取决于时间账是否算得过来。设检测延迟为 Tdetect,确认窗口为 Tconfirm,切换执行时间为 Tswitch,则从故障发生到备份稳定输出,总延迟为:

T_total = T_detect + T_confirm + T_switch
约束条件:T_total ≤ T_mission
其中 T_mission 为任务允许的最大中断时间

以某星务任务为例(示例参数,非实测):Thb=100 ms,N=3,则 Tdetect≈300 ms;K=2,Tconfirm=200 ms;Tswitch=150 ms。则 Ttotal=650 ms。若任务要求中断不超过 1 s,则满足约束;若要求不超过 500 ms,则必须压缩 N 或 K,或改用更快的看门狗通道。

时序设计还要注意切换窗口与任务周期的对齐。若主份在控制周期中途失效,备份接管时可能拿到半更新的控制量。稳妥做法是让备份在接管后的第一个完整周期内先输出安全值,再逐步恢复闭环,避免输出跳变冲击执行机构。

四、可执行的判据配置示例

下面给出一份可直接参考的判据配置表(示例参数,需按实际任务调整):

判据项检测量触发条件确认条件恢复条件
心跳超时心跳序列号连续 3 周期未更新持续 200 ms连续 5 周期正常
看门狗喂狗脉冲窗口内无喂狗硬件直接置位复位后重新计数
健康状态字CPU/内存/误码率任一项越故障门限连续 5 次越界低于恢复门限 3 次
输出比对主备输出差值差值 > 允许带连续 3 周期差值回到带内 5 周期
判据设计的一条实用原则:快速判据只负责“报警”,慢速判据才负责“拍板”。把两者分开,既能保证响应速度,又能避免因瞬时扰动而误切换。
注意:心跳超时和看门狗溢出都属于“主份无响应”类判据,它们无法发现主份“仍在运行但输出错误”的故障。这类故障必须依靠健康状态字和输出比对来覆盖,否则会形成漏报盲区。

综上,触发机制与判据设计的核心,是把检测手段、阈值逻辑和时序约束作为一个整体来权衡。检测手段决定“能不能发现”,阈值逻辑决定“该不该切换”,时序约束决定“来不来得及切换”。三者缺一,冗余就只是纸面上的备份。