4. 数据采集与预处理

飞控模型参数校准的质量,首先取决于原始数据是否“干净、对齐、可复现”。如果飞行试验设计不合理、传感器采样不同步、噪声未加区分地滤除,后续的最小二乘拟合或频域辨识都会把误差误当成模型特性。本节围绕一条完整的数据链展开:从试验激励设计,到多源传感器采集,再到时间同步、滤波降噪与数据质量检查,形成可追溯的预处理流程。

核心目标:让每一帧数据都能回答三个问题——它来自哪次机动、对应哪个时刻、经过了哪些处理。只有满足这三点,参数校准才具备可重复性。

一、飞行试验设计:先设计激励,再谈辨识

参数校准需要飞行器在特定频段和幅度上产生足够的信息量。若全程平稳悬停或直线平飞,数据中几乎不包含气动导数、转动惯量或执行机构动态的可辨识信息。因此试验设计要围绕“激励信号”展开。

  • 激励类型:常用扫频(chirp)、多正弦叠加、3-2-1-1 脉冲、双峰脉冲和阶跃。扫频适合频域辨识,脉冲适合时域响应与等效延迟估计。
  • 频段选择:覆盖飞控带宽的 0.5~2 倍。例如姿态环带宽约 2 Hz,则激励频段可设为 0.2~5 Hz,避免只激励到低频漂移或高频噪声。
  • 幅度与安全:幅度过小信噪比不足,过大则进入非线性区甚至触发保护。建议分级递增,每级重复 3~5 次。
  • 轴向隔离:滚转、俯仰、偏航尽量分轴激励,减少耦合对参数辨识的干扰;必要时设计多轴组合机动验证耦合项。
  • 环境记录:记录风速、气压、温度、电池电压和载重配置,这些量会显著影响气动参数与执行机构效率。

试验设计还应包含“验证段”:用一段未参与辨识的机动数据检验模型预测能力,避免过拟合。辨识段与验证段应在不同时间、不同电量状态下采集,以暴露模型泛化问题。

二、传感器数据采集:多源异构数据的统一管理

飞控系统通常同时采集 IMU、磁力计、气压计、GNSS、空速管、舵机反馈和电机转速等数据。不同传感器的采样率、量程、单位和坐标系各不相同,采集阶段必须统一记录元数据。

传感器 典型采样率 关键预处理 常见问题
IMU(加速度/角速度) 200~1000 Hz 零偏估计、温度补偿、去趋势 振动耦合、量程饱和
磁力计 50~200 Hz 椭球拟合校准、硬磁/软磁补偿 电机电流干扰、安装偏差
气压计 25~100 Hz 低通滤波、温度漂移修正 气流扰动、延迟大
GNSS 5~20 Hz 坐标转换、异常点剔除 多路径、丢星
舵机/电机反馈 50~400 Hz 死区补偿、延迟对齐 回中误差、饱和

采集时建议使用统一的时间戳字段和原始单位,避免在采集端做不可逆处理。原始数据应保留为只读副本,所有滤波、重采样和截取都在副本上进行,确保处理链可回溯。

三、时间同步:把不同频率的数据对齐到同一时间轴

时间同步是预处理中最容易被低估的环节。IMU 与舵机反馈之间哪怕存在 10 ms 延迟,在 2 Hz 以上频段就会引入明显相位误差,导致阻尼导数辨识偏大或偏小。同步通常分三步:

  1. 硬件同步:优先使用同一时钟源触发采样,或使用 PPS、触发线将传感器采样时刻对齐。
  2. 时间戳对齐:将各传感器时间戳统一到同一时基,检查是否存在时钟漂移。可用线性回归估计漂移率并补偿。
  3. 重采样:将低频信号插值到高频时间轴,或统一降采样到辨识所需频率。插值优先使用线性或样条,避免引入额外相位滞后。
# 示例:将气压计与 GNSS 对齐到 IMU 时间轴
imu_t = imu["t"]                  # 1000 Hz
baro_t = baro["t"]                # 50 Hz
gnss_t = gnss["t"]                # 10 Hz

baro_aligned = np.interp(imu_t, baro_t, baro["alt"])
gnss_aligned = np.interp(imu_t, gnss_t, gnss["vel_ned"])

# 检查同步残差:对齐后互相关峰值应接近 0 延迟
lag = np.argmax(np.correlate(imu["az"], baro_aligned, mode="full"))
print("estimated lag samples:", lag - len(baro_aligned) + 1)
同步检查的实用方法:对同一机动分别用 IMU 积分高度与气压高度做互相关,若峰值偏离零点超过 2~3 个采样周期,应重新检查时间戳或触发链路。

四、滤波与降噪:区分噪声、振动与真实动态

滤波不是“越干净越好”,而是要在保留机动动态的同时抑制噪声。常用方法包括低通滤波、带通滤波、滑动平均、小波降噪和卡尔曼滤波。选择依据是信号频段与噪声频段是否重叠。

  • 低通滤波:适用于噪声集中在高频、动态集中在低频的场景。截止频率一般取飞控带宽的 2~5 倍,避免相位滞后影响辨识。
  • 带通滤波:扫频辨识中常用,保留激励频段,抑制低频漂移和高频噪声。
  • 滑动平均:实现简单,但会引入固定延迟,不适合对相位敏感的频域辨识。
  • 小波降噪:适合非平稳振动信号,但参数选择不当会削掉真实脉冲响应。
  • 卡尔曼滤波:适合多传感器融合,但需要合理的噪声协方差,否则会“过度平滑”真实机动。

滤波后必须做残差检查:比较滤波前后信号的功率谱,确认激励频段增益接近 1、相位滞后可接受;同时检查时域峰值是否被削平。若发现 3-2-1-1 脉冲的上升沿变圆,说明截止频率过低。

常见误区:把滤波后的数据直接用于参数辨识,却不记录滤波器类型、阶数和截止频率。不同滤波设置会得到不同的等效延迟,最终导致同一架飞机在不同批次数据上辨识出不一致的参数。

五、数据质量检查与预处理清单

在进入参数辨识前,建议按以下清单逐项确认,任何一项不通过都应回到采集或同步环节修正,而不是靠后续拟合“硬凑”。

  • 时间戳单调递增,无重复、无跳变;
  • 各传感器无长时间丢包,缺失段已标记而非插值掩盖;
  • IMU 无饱和,舵机反馈未长期处于限幅;
  • 激励段信噪比足够,功率谱在目标频段高于本底 10 dB 以上;
  • 同步残差小于 1~2 个采样周期;
  • 滤波参数、重采样率和截取区间已写入元数据。
飞行试验数据采集与预处理链路 飞行试验设计 扫频 / 脉冲 / 阶跃 分轴激励 · 分级幅度 辨识段 + 验证段 传感器数据采集 IMU · 磁力计 · 气压计 GNSS · 空速 · 舵机反馈 原始数据只读留存 时间同步 统一时基 · 漂移补偿 重采样到 IMU 时间轴 互相关检查延迟 滤波降噪 低通 / 带通 小波 / 卡尔曼 保留动态 数据质量检查(进入辨识前必须通过) ✓ 时间戳单调无跳变 ✓ 无饱和 / 无长期限幅 ✓ 同步残差 ≤ 1~2 采样周期 ✓ 激励频段信噪比 ≥ 10 dB ✓ 滤波参数已记录 ✓ 辨识段与验证段分离 输出:可用于参数校准的数据集 原始数据 + 对齐数据 + 滤波数据 + 元数据 支持复现、对比与回归验证 关键原则 先同步,再滤波 先留原始,再做处理 常见风险 滤波过度 → 动态被削 同步缺失 → 相位偏差

完成上述预处理后,数据才真正具备“可辨识性”。下一阶段的最小二乘拟合、频域响应估计或状态空间辨识,都应基于同一份经过质量检查的数据集进行,并在报告中注明试验条件、同步方法和滤波参数。这样得到的飞控模型参数,才既有物理意义,也能在不同飞行架次之间保持稳定。