4. 传感器故障的建模方法
在飞行器导航系统中,故障检测算法的设计不能只依赖“传感器坏了”这种定性描述,而必须把故障转化为可计算、可注入、可复现的数学形式。故障建模的任务,就是回答三个问题:故障以什么方式叠加到系统上、故障随时间如何演化、故障模型如何与飞行器/导航系统模型结合。只有把这三件事说清楚,后续的残差生成、阈值设计和故障隔离才有统一的数学基础。
一、故障的数学表示
导航传感器通常可用如下输出方程描述:
y(t) = h(x(t), u(t)) + f(t)
其中 y(t) 是传感器量测输出,x(t) 是飞行器状态(姿态、速度、位置等),u(t) 是输入,h(·) 是理想量测函数,f(t) 即故障信号。当 f(t)=0 时表示无故障;f(t)≠0 时表示传感器偏离正常行为。更一般地,故障也可出现在状态方程中:
ẋ(t) = A x(t) + B u(t) + E f(t)
y(t) = C x(t) + D u(t) + F f(t)
矩阵 E、F 称为故障影响矩阵,决定故障从哪个通道进入系统、影响哪些状态或量测。对导航传感器而言,F 往往直接对应某个传感器通道,例如陀螺仪三轴、加速度计三轴、GNSS 位置/速度、气压高度、磁强计等。故障建模的第一步,就是明确故障作用点、作用方向和量纲。
二、加性故障与乘性故障
按故障与正常信号的组合方式,可分为加性故障和乘性故障。
加性故障表现为与正常输出无关的独立附加项:
y(t) = y_nominal(t) + f(t)
典型例子是陀螺零偏、加速度计常值偏置、GNSS 位置阶跃偏移。加性故障不随输入幅值变化,即使飞行器静止,故障依然存在,因此较容易通过残差均值检测。
乘性故障表现为对正常输出的比例缩放或增益变化:
y(t) = (1 + k(t)) · y_nominal(t)
典型例子是陀螺标度因数误差、空速管增益偏差、磁强计比例因子异常。乘性故障的幅值随正常信号大小变化,在小信号时可能难以察觉,在大机动或高动态时却会显著放大,因此检测时需结合激励水平判断。
实际传感器故障常是两者的组合:
y(t) = (1 + k(t)) · y_nominal(t) + b(t)
其中 b(t) 为加性偏置,k(t) 为乘性增益误差。建模时应分别估计或设定两者的范围,避免把增益误差误判为偏置。
三、突变故障与缓变故障
按时间演化规律,故障又可分为突变故障与缓变故障。
突变故障在某一时刻发生跳变,常用阶跃函数表示:
f(t) = A · 1(t - t_f)
其中 A 为故障幅值,t_f 为故障发生时刻。例如陀螺输出突然卡死、GNSS 信号瞬间丢失、磁强计受到强磁干扰。突变故障在残差上表现为明显跳变,检测及时性要求高,但误报风险相对较低。
缓变故障随时间缓慢漂移,常用斜坡或指数形式表示:
f(t) = r · (t - t_f) · 1(t - t_f)
f(t) = A · (1 - e^{-(t-t_f)/τ}) · 1(t - t_f)
其中 r 为漂移率,τ 为时间常数。缓变故障早期幅值小,容易被噪声和模型误差掩盖,是导航系统中最难检测的一类故障。工程上常采用滑动窗口残差均值、累积和(CUSUM)或广义似然比来提升缓变故障的检测灵敏度。
下面这张图把加性/乘性、突变/缓变四类故障在残差上的典型形态并列展示,便于对照理解。
四、故障模型与系统模型的融合
故障模型只有嵌入系统模型后,才能用于检测与隔离。融合方式主要有三种。
第一种是扩展状态法。把故障当作附加状态,与原有状态一起估计。例如对陀螺零偏 b_g,可建立:
ẋ = A x + B u + E b_g
ḃ_g = 0 (常值偏置假设)
y = C x + b_g + v
通过卡尔曼滤波器同时估计 x 和 b_g,估计出的 b_g 偏离零即视为故障。该方法适合缓变故障和可建模的加性故障。
第二种是残差注入法。先设计观测器或滤波器得到状态估计 x̂,再构造残差:
r(t) = y(t) − C x̂(t)
无故障时 r(t) 仅含噪声和模型误差;有故障时 r(t) 出现偏离。故障模型 f(t) 通过影响矩阵 F 进入残差:
r(t) = F f(t) + 噪声 + 模型误差
据此可设计阈值或统计检验。该方法结构清晰,是导航系统中最常用的融合方式。
第三种是等价空间法。利用系统输入输出之间的解析冗余关系构造残差,使残差在无故障时理论上为零,从而直接反映故障。它不依赖状态估计,但对模型精度要求较高。
实际工程中,常把三种方式结合:用扩展状态法估计缓变偏置,用残差注入法检测突变故障,用等价空间法处理特定通道的解析冗余。融合的关键是保证故障影响矩阵 E、F 与真实传感器通道一一对应,否则会出现“检测到异常但无法定位到具体传感器”的问题。
以某型无人机导航系统为例,假设陀螺 x 轴在 t_f = 120 s 出现加性突变故障,幅值 A = 0.8 °/s。若采样周期为 10 ms,残差在 120 s 后由零均值噪声跳变为约 0.8 °/s 的偏置。若采用 3σ 阈值且噪声标准差为 0.05 °/s,则阈值约为 0.15 °/s,故障发生后约 1~2 个采样周期即可触发报警。若同样幅值的故障以 r = 0.01 °/s² 缓变出现,则需约 80 s 才能达到同一阈值,此时必须依靠累积和等统计方法提前发现。这个对比说明:故障的数学表示直接决定了检测算法的选择与性能边界。
综上,故障建模不是简单的“加一个误差项”,而是要把故障的作用位置、组合方式、时间演化和系统融合路径统一到同一套状态空间描述中。只有模型与真实故障机理一致,后续的检测、隔离与重构才有可靠依据。