4. 测试数据预处理实战

GNC测试数据在进入分析之前,几乎不可能直接使用。遥测下传的原始数据往往夹杂野值、丢帧、时间戳漂移、采样率不一致、量纲混杂等问题。如果跳过预处理直接做频谱分析或参数辨识,得到的结论可能完全错误。本节以某型航天器GNC分系统地面测试数据为例,完整走一遍预处理链路,重点讲清楚每一步"怎么做"以及"怎么判断做对了"。

一、异常值识别:先看物理边界,再看统计特征

异常值识别不能一上来就用3σ准则。GNC数据中很多"异常"其实是真实物理过程,比如姿控发动机点火瞬间的角加速度尖峰、太阳翼驱动机构的换向冲击。因此第一步是物理边界检查:根据传感器量程和物理约束设定硬阈值。例如某陀螺量程为±5°/s,输出超过5.2°/s即可判定为野值;某温度传感器量程-40~+85℃,超出范围直接标记。

第二步才是统计方法。对缓变参数(如母线电压、舱内温度),采用滑动窗口中位数绝对偏差(MAD)更稳健:

MAD = median(|x_i - median(x)|)
判定阈值:|x_i - median(x)| > k × 1.4826 × MAD
k 取 3~5,对GNC数据建议取4,避免误杀真实机动

对快变参数(如角速度、加速度),MAD容易把真实机动尖峰误判为异常。此时改用差分+物理一致性:先计算一阶差分,若相邻两点跳变超过物理最大角加速度×采样周期,再结合该时刻是否有喷气指令标志,有指令则保留,无指令则标记为野值。识别出的野值不要直接删除,先置为NaN,留给缺失值处理环节统一决策。

二、缺失值处理:区分丢帧与野值剔除

缺失值来源有两类:遥测丢帧(整段连续缺失)和野值剔除(单点或短段缺失)。处理策略完全不同。

  • 单点缺失:优先线性插值。对姿态角、角速度等缓变信号,线性插值误差可接受;对振动加速度等高频信号,线性插值会引入虚假低频,应改用三次样条或直接标记不参与频谱计算。
  • 连续缺失(>3个采样周期):禁止插值。GNC数据连续丢帧往往意味着遥测链路中断或模式切换,插值会伪造不存在的动态过程。正确做法是分段处理,在缺失段两端加窗,频谱分析时跳过该段。
  • 野值剔除后的短段:若连续剔除点数≤2,可用相邻有效值线性插值;若>2,按连续缺失处理。
注意:缺失值处理必须在时间对齐之前完成,否则插值会跨接不同时间基准,产生错误的时间戳。

三、时间对齐与重采样:统一到同一时间轴

GNC测试中,陀螺、星敏、加速度计、执行机构指令往往来自不同下传包,采样率和时间戳基准不同。时间对齐的目标是:把所有信号统一到同一时间轴,且不引入额外相位误差。

实际操作分三步:

  1. 时间戳归一化:将各数据源的绝对时间(如星上时间、地面接收时间)统一转换为相对起飞时刻的秒数。若存在固定传输延迟,用已知的指令-响应时间差做补偿。
  2. 选择基准时间轴:以最高采样率信号的时间戳为基准,或按分析需求设定固定步长。例如陀螺采样率100Hz,星敏10Hz,统一到100Hz时间轴。
  3. 重采样:低频信号升采样用零阶保持或线性插值;高频信号降采样必须先抗混叠滤波,再抽取。降采样比例如100Hz→10Hz,先做截止频率4Hz的低通滤波,再每10点取1点。

判断对齐是否正确的实用方法:检查同一物理事件(如喷气指令上升沿)在不同信号中的时间戳是否对齐到同一采样点,偏差应小于一个基准采样周期。

四、滤波:按信号用途选滤波器

滤波不是越平滑越好。GNC数据分析中,滤波目的通常有三种:去高频噪声、提取趋势、抗混叠。对应选择不同滤波器:

用途推荐滤波器典型参数(示例)注意
去高频噪声巴特沃斯低通截止频率5Hz,4阶相位滞后需补偿
提取趋势滑动平均/低通窗口0.5s窗口不宜超过动态过程时长
抗混叠切比雪夫/巴特沃斯截止频率<0.4×目标采样率降采样前必须做
去除工频干扰陷波器50Hz,Q=30仅当确认存在工频干扰

滤波后必须检查:通带内信号幅值衰减是否可接受,相位滞后是否影响时序判断。对姿控回路分析,相位滞后超过5°就可能影响稳定裕度评估,此时应改用零相位滤波(如filtfilt)或前向-反向滤波。

五、单位统一:建立量纲映射表

GNC数据中常见的单位混乱包括:角度用度还是弧度、角速度用°/s还是rad/s、加速度用g还是m/s²、电压用V还是mV。必须在预处理阶段统一,且全文保持一致。

建议建立一张量纲映射表,明确每个信号的原始单位、目标单位和转换系数。例如:

陀螺输出:原始单位 °/s,目标单位 rad/s,系数 π/180
加速度计:原始单位 g,目标单位 m/s²,系数 9.80665
星敏四元数:原始单位 无量纲,目标单位 无量纲,需归一化
温度:原始单位 0.1℃,目标单位 ℃,系数 0.1

单位转换后要做量级检查:例如某姿态角速度在机动段应为0.1~1°/s量级,若转换后变成0.001或100,说明系数用错。

六、完整预处理链路与结果判读

把上述步骤串起来,形成一条可复用的预处理链路。下图展示了从原始遥测到可用分析数据的完整数据流,以及每一步的关键判断点。

GNC测试数据预处理链路与判断点 原始遥测数据 陀螺/星敏/加速度计/指令 ① 异常值识别 物理边界 + MAD/差分 ② 缺失值处理 单点插值 / 连续段标记 ③ 时间对齐 统一时间轴 + 延迟补偿 ④ 重采样 抗混叠 + 抽取/插值 ⑤ 滤波 低通/陷波/零相位 ⑥ 单位统一 量纲映射 + 量级检查 可用分析数据 统一时间轴/单位/采样率 关键判断点与异常处置 判断点A:野值还是真实机动? 有喷气指令标志 → 保留 无指令且超物理边界 → 置NaN 判断点B:缺失段能否插值? ≤2点 → 线性插值 >2点 → 分段标记,不插值 判断点C:滤波相位是否可接受? 相位滞后<5° → 可用 滞后大 → 零相位滤波 判断点D:时间对齐是否准确? 同一事件时间戳偏差 < 1个基准采样周期 判断点E:单位转换是否正确? 量级检查:角速度0.1~1°/s 加速度0.01~1g 判断点F:重采样是否引入混叠? 降采样前截止频率 < 0.4×目标采样率

完成上述链路后,建议做一次闭环验证:取一段已知的标定数据或仿真数据,人为注入野值、缺失段、时间偏移和单位错误,跑一遍预处理,检查是否能正确恢复。若恢复后的信号与原始真值在通带内幅值误差小于5%、时间偏差小于一个采样周期,则认为预处理链路可用。

预处理不是一次性工作。每次更换测试工况、遥测格式或采样率,都应重新检查异常值阈值、滤波截止频率和单位映射表,避免"一套参数用到底"。

最后强调一个容易被忽视的点:所有预处理操作都必须可追溯。建议在数据文件中保留原始数据副本,并记录每一步的操作类型、参数和影响的数据段。这样当分析结果出现疑问时,可以快速定位是原始数据问题还是预处理引入的偏差。