4. 基于模型残差的故障检测
在无人机集群中,故障节点隔离的第一步不是“隔离”,而是“发现”。基于模型残差的故障检测之所以成为集群故障诊断的主流方法,是因为它把“飞得对不对”转化为一个可计算、可比较、可统计的标量信号——残差。残差本质上是系统实际输出与模型预测输出之间的偏差:当执行器、传感器或气动特性发生异常时,残差会偏离正常噪声范围,从而触发检测逻辑。
一、执行器与传感器故障建模
先约定坐标系与符号:本文采用机体坐标系,x 轴指向机头,y 轴指向右侧,z 轴指向下方;姿态角以右手定则定义,滚转 φ、俯仰 θ、偏航 ψ。执行器故障通常建模为三类:
- 失效(Loss of Effectiveness, LOE):实际控制量
u_actual = ρ·u_cmd,ρ∈(0,1),例如某电机因桨叶损伤只能输出 70% 推力。 - 卡死(Lock-in-place):
u_actual = u_fixed,舵面或电机停在某个固定位置,不再响应指令。 - 漂移(Bias/Drift):
u_actual = u_cmd + b(t),b(t)缓慢变化,常见于电调温漂或舵机零位偏移。
传感器故障则更隐蔽,常见为:偏置 y_meas = y_true + b、增益误差 y_meas = k·y_true、噪声增大 y_meas = y_true + n(t)、卡死 y_meas = const。在集群编队中,传感器故障会通过相对位置、速度估计影响编队保持,因此必须与执行器故障区分开。
二、残差生成:从模型到可观测偏差
以四旋翼姿态通道为例,简化角速率模型为 ω̇ = J⁻¹(τ - ω×Jω),其中 τ = G·u,G 为控制分配矩阵。用离散卡尔曼滤波器或龙伯格观测器得到状态估计 ω̂,则残差定义为:
r_ω[k] = ω_meas[k] - ω̂[k]
r_a[k] = a_meas[k] - (R·(u_cmd[k]·T/m) + g)
其中 r_ω 对执行器 LOE 和卡死敏感,r_a 对加速度计偏置和推力损失敏感。实际实现时,残差通常先经过一阶低通滤波 r_f[k] = α·r_f[k-1] + (1-α)·r[k],α 取 0.85~0.95,以抑制高频噪声,同时保留故障引起的慢变趋势。
三、阈值设计与滑窗统计
固定阈值在悬停与高速前飞时表现差异极大,因此工程上更常用“自适应阈值 + 滑窗统计”。自适应阈值可写为:
J_th[k] = μ_0 + κ·σ_0 + λ·|u_cmd[k]|
其中 μ_0、σ_0 为正常飞行段残差的均值与标准差,κ 取 3~5,λ 为控制量补偿系数。滑窗统计则对窗口长度 N 内的残差计算均方根:
RMS_r[k] = sqrt( (1/N) · Σ_{i=k-N+1}^{k} r_f[i]² )
当 RMS_r[k] > J_th[k] 且连续 M 个窗口成立时,判定故障。典型参数:N=20(对应 0.2 s @100 Hz),M=3,可兼顾检测延迟与误报率。若 N 过小,噪声易触发误报;N 过大,则检测延迟增加,集群编队可能已发散。
四、在集群编队中的实现与调参
集群场景下,单机残差检测必须与编队相对状态耦合。实现时通常分三层:
- 单机层:每架无人机独立运行观测器与残差生成,输出
RMS_r与故障标志Flag_i。 - 编队层:将
Flag_i与相对位置残差r_p = p_ij_meas - p_ij_des联合判断。若某机Flag_i=1且r_p持续增大,则确认该机为故障节点。 - 通信层:通过广播或一致性协议共享残差统计量,避免单机误报导致误隔离。
调参时建议按以下顺序进行:先固定 N=20、M=3,在正常悬停、前飞、转弯三种工况下采集残差,统计 μ_0 与 σ_0;再调整 κ 使误报率低于 1%;最后注入 30% LOE 与 5° 传感器偏置,观察检测延迟。若延迟超过 0.5 s,可适当减小 N 或增大 λ,但需重新验证误报率。
μ_0 与 σ_0。
综上,基于模型残差的故障检测在集群中的核心是:用观测器把模型预测与实际测量对齐,用滑窗统计把瞬时噪声转化为可判决的统计量,再用自适应阈值与编队相对残差联合确认故障节点。只有把单机残差与编队残差结合,才能在隔离前尽可能降低误报与漏报。