3. 异常检测机制与告警设计

星务计算机在轨运行时,异常往往不是以“整机宕机”这种极端形式出现,而是先表现为遥测参数缓慢漂移、单次校验失败、任务超时或心跳节拍抖动。异常检测机制的任务,就是在这些早期征兆演变为不可恢复故障之前,把它们识别出来并转化为可上报、可处置的告警。本节围绕五类检测方法、告警分级、上报路径与地面协同展开。

一、五类异常检测方法及其适用对象

心跳检测面向“任务是否还在运行”。典型实现是各任务周期性向看门狗或健康管理模块写入递增计数,例如每 200 ms 写一次,健康管理模块每 1 s 检查一次计数是否变化。若连续 3 个检查周期计数不变,判定该任务心跳丢失。心跳检测对死循环、任务挂起、调度器阻塞最敏感,但无法发现“任务在跑、结果却错”的情况。

校验检测面向“数据是否可信”。包括遥测帧的 CRC 校验、程序区与重要参数区的累加和/CRC 校验、指令包的帧校验。例如对关键参数区每 10 min 计算一次 CRC32,与基准值比对,不一致即判定参数区被单粒子翻转或写坏。校验检测的优点是判定明确、误报低,缺点是需要基准值,且只能覆盖被校验的数据范围。

超时检测面向“交互是否按预期完成”。星务计算机与分系统、与地面、与内部模块之间的请求—应答都应有时间约束。例如向姿控分系统发遥控指令后,要求 500 ms 内收到执行应答,超时未收到则记录一次超时事件。超时检测能捕捉通信中断、对方无响应、总线争用等问题,但阈值设置过紧会引入误报。

阈值检测面向“参数是否越界”。对母线电压、蓄电池温度、CPU 占用率、内存余量等设置上下限,越限即告警。阈值可分为注意限、警告限、紧急限三级。阈值检测实现简单、响应快,但对缓慢漂移不敏感,且固定阈值难以适应工况变化。

趋势分析面向“参数是否在向危险方向发展”。常用方法是对参数做滑动窗口线性拟合,估计变化率,再外推预测到达危险限的时间。例如蓄电池温度当前 28 ℃,以 0.5 ℃/min 上升,紧急限 45 ℃,则预计约 34 min 后越限,可提前告警。趋势分析能弥补阈值检测的滞后性,但需要历史数据窗口,且对噪声敏感,通常先做滤波再拟合。

五类方法不是互斥的:心跳回答“活着吗”,校验回答“数据对吗”,超时回答“交互完成了吗”,阈值回答“现在越界了吗”,趋势回答“将要越界吗”。工程上通常组合使用,形成多层覆盖。

二、告警分级

告警分级决定上报时机、占用资源和处置优先级。建议分为四级:

  • 提示级(Info):不影响任务,仅记录。如单次校验失败后立即重读成功、偶发超时后重试成功。
  • 注意级(Warning):参数越注意限或趋势预测将越限,需地面关注并加强监视。如蓄电池温度接近注意限、内存余量持续下降。
  • 严重级(Critical):功能降级或冗余丢失,需地面尽快干预。如主份心跳丢失、关键参数区校验连续失败、通信超时达到重试上限。
  • 紧急级(Emergency):威胁整机安全或任务失败,需立即自主保护并高优先级上报。如母线电压越紧急限、CPU 占用率持续 100%、多任务心跳同时丢失。

分级不是静态标签,应支持“升级”和“降级”。例如同一超时事件首次为提示级,连续 3 次升为注意级,连续 5 次升为严重级;故障恢复并稳定一段时间后可降级或清除。

三、告警上报路径与地面协同

告警产生后,需要经过“本地记录—本地响应—遥测上报—地面确认—处置反馈”的闭环。星务计算机内部通常设置告警管理模块,统一收集各检测源的事件,做去重、计数、分级和限速,避免告警风暴占满遥测下行带宽。上报路径一般有三条:

  1. 实时遥测通道:严重级和紧急级告警立即插入实时遥测帧,优先下传。
  2. 延时遥测通道:提示级和注意级告警存入本地告警日志,随延时遥测按周期下传。
  3. 专用告警通道:紧急级告警可触发专用标志位或中断,确保即使常规遥测异常也能被地面感知。

地面协同的关键是“可判读、可追溯、可反馈”。地面收到告警后,应能结合告警码、发生时间、当前参数值、历史趋势和上下文遥测判断根因,而不是只看一条告警文本。地面处置后,可通过指令清除告警、调整阈值、切换冗余或注入恢复程序,并把处置结果回写告警日志,形成闭环。

星务计算机异常检测与告警上报链路 检测层(五类方法并行) 心跳检测 任务计数是否更新 校验检测 CRC/累加和比对 超时检测 请求—应答时限 阈值检测 参数越上下限 趋势分析 斜率外推预测 告警管理模块 去重 · 计数 · 分级 · 限速 · 日志记录 提示级 Info 仅记录,延时遥测 单次校验失败后重读成功 注意级 Warning 加强监视,延时遥测 温度接近注意限 严重级 Critical 尽快干预,实时遥测 主份心跳丢失 紧急级 Emergency 自主保护,专用通道 母线电压越紧急限 上报路径 实时遥测通道:严重/紧急级立即下传 延时遥测通道:提示/注意级周期下传 专用告警通道:紧急级标志位/中断 地面协同:告警码 + 时间 + 参数值 + 趋势 + 上下文 → 根因判读 → 处置反馈 → 日志闭环

四、参数设置与误报控制

检测机制能否真正发挥作用,取决于参数设置是否合理。以下给出一组教学示例参数,用于说明配置思路,并非某型号实测值:

检测项对象关键参数示例值误报控制手段
心跳姿控任务写入周期 / 检查周期 / 连续丢失次数200 ms / 1 s / 3 次连续计数确认,避免单次抖动
校验关键参数区校验周期 / 算法 / 连续失败次数10 min / CRC32 / 2 次失败后重读再判,排除瞬时翻转
超时遥控指令应答超时阈值 / 重试次数500 ms / 2 次重试成功则降为提示级
阈值蓄电池温度注意限 / 警告限 / 紧急限35 ℃ / 40 ℃ / 45 ℃加回差,避免临界反复告警
趋势蓄电池温度窗口长度 / 采样间隔 / 预测提前量10 min / 10 s / 30 min先滤波再拟合,限制最小斜率

误报控制的核心思路是“确认后再升级”:单次异常先记录,连续多次或与其它检测交叉印证后再升级告警级别。例如心跳丢失同时伴随该任务相关遥测停止更新,可信度更高;若仅心跳计数不变但遥测仍在更新,则可能是计数逻辑问题而非任务挂起,应降级处理并排查。

五、地面协同的判读要点

地面收到告警后,建议按以下顺序判读:先看告警级别和告警码,确定影响范围;再看发生时间与当前时间差,判断是持续故障还是已恢复的瞬时事件;然后调取相关参数的历史趋势,确认是突变还是缓变;最后结合上下文遥测(如电源、温度、通信状态)判断根因。若告警在短时间内大量重复,应检查是否触发限速或去重逻辑,避免遗漏真正的关键告警。

告警日志必须包含告警码、发生时间、检测方法、触发值、阈值、级别和处置状态。缺少这些字段,地面只能看到“有异常”,无法快速定位和闭环。

综上,异常检测机制的设计要点是:五类方法按对象组合使用,告警分级支持动态升降,上报路径按级别分流,地面协同形成判读—处置—反馈闭环。只有检测、分级、上报、协同四者一致,星务计算机才能在异常早期给出可信、可用、可追溯的告警。