1、容错控制概述:什么是容错控制?为什么飞控系统需要容错?执行器故障的常见类型

大家好,我是你们这门课的老朋友。今天咱们正式开篇,聊聊容错控制。

说实话,我做了十几年飞控,见过太多“天上掉下来”的案例。有些是代码bug,有些是传感器漂移,但最要命的,往往是执行器出问题。你想想看,舵面卡住了、电机不转了,飞机就像个断了线的风筝。这时候,如果没有容错机制,基本就是听天由命。

所以,这门课的核心就一个:当执行器坏了,怎么让飞机还能飞回来?

1.1 什么是容错控制?

容错控制,说白了就是“带病工作”。系统出了故障,但别趴下,还能继续完成任务,顶多性能降一点。

我习惯把它分成两类:

  • 被动容错:设计时就考虑到了某些故障,靠鲁棒性硬扛。比如PID参数调得比较“软”,舵面卡个小角度也能稳住。
  • 主动容错:故障发生后,系统主动检测、诊断,然后重构控制律。比如检测到左副翼卡死,立刻把控制量分配到右副翼和方向舵上。

我个人更倾向于主动容错。为什么?因为被动容错就像“蒙着眼睛走路”,你不知道故障到底多严重。而主动容错,至少心里有数。

核心观点:容错控制不是让系统“永不故障”,而是让系统“故障后仍可控”。

1.2 为什么飞控系统需要容错?

这个问题,我当年刚入行时也觉得是“锦上添花”。直到有一次,我在试飞中遇到了舵面卡死……嗯,那感觉,终身难忘。

飞控系统需要容错,原因其实很直白:

  1. 安全第一:无人机也好,载人机也罢,掉下来就是大事。容错是最后一道防线。
  2. 执行器天生脆弱:舵机有齿轮磨损、电机有堵转、舵面会受气流冲击。我在项目中遇到过,一个舵机在低温下直接“冻住”了,输出纹丝不动。
  3. 单点失效不可怕,可怕的是没有备份方案:很多飞控硬件有冗余(双舵机、双IMU),但控制逻辑如果没有容错,冗余就是摆设。
  4. 任务连续性:农业植保机正在喷药,突然一个电机罢工,你是让它直接砸田里,还是勉强飞回来?容错控制能选后者。

我的经验:别等到试飞出问题才考虑容错。设计阶段就把故障模式列出来,哪怕只做最简单的“故障检测+降级控制”,也比没有强十倍。

1.3 执行器故障的常见类型

执行器故障,说白了就四种。我按严重程度排个序:

故障类型 英文术语 现象描述 严重程度
卡死 Lock-in-Place 舵面或电机固定在某个位置,动不了 ★★★★★
松浮 Float 执行器失去控制,随风摆动或自由旋转 ★★★★☆
饱和 Saturation 执行器输出达到物理极限,无法继续增大 ★★★☆☆
失效 Loss of Effectiveness 执行器效率下降,比如舵面偏转角度只有正常的一半 ★★☆☆☆

1.3.1 卡死(Lock-in-Place)

这是最要命的故障。舵面卡在某个角度,飞机就会一直偏航或滚转。我曾经处理过一个案例:固定翼无人机在巡航时,左副翼卡在+10度位置,飞机开始持续左滚转。如果没有容错,飞控会拼命给右副翼指令,结果就是两个舵面“打架”,最终失速。

卡死的难点在于:你没法通过控制指令把它“掰回来”。唯一的办法是重新分配控制量,用其他舵面补偿。

1.3.2 松浮(Float)

松浮比卡死好一点,但也够呛。执行器完全失控,比如舵面连接杆断了,舵面随风摆动。这时候,你给指令它也不听,反而成了“气动噪声源”。

我建议的处理思路:直接把这个执行器“摘掉”,把它对应的控制量清零,然后让其他执行器分担任务。

1.3.3 饱和(Saturation)

饱和其实不算“坏”,只是“不够用”。比如舵机最大只能转30度,但你想要35度。这时候,飞控如果继续积分,就会产生“积分饱和”,导致超调甚至震荡。

嗯,这里要注意:饱和问题往往不是执行器本身坏了,而是控制分配不合理。我在项目中遇到过,因为重心偏移导致某个舵面一直处于饱和状态,最后飞控直接发散。

避坑指南:我曾经在调试一个四旋翼时,发现某个电机总是饱和。查了半天,原来是电池电压低了,电机转速上不去。所以,饱和不一定是执行器的问题,也可能是供电不足。

1.3.4 失效(Loss of Effectiveness)

失效是最“温和”的故障。执行器还能动,但效率打折。比如舵面偏转10度,实际只产生了5度的效果。这种故障最难检测,因为飞控会以为“指令到位了”,但实际效果没到位。

我的做法是:在控制回路中加入“模型参考自适应”机制,实时估计执行器的实际效率。如果发现效率低于某个阈值,就启动容错。

1.4 知识体系框架

为了让大家更直观地理解本章内容,我画了一张图。这张图把容错控制的整体逻辑串起来了:

容错控制知识体系(第1章) 容错控制概述 什么是容错控制? 被动容错 vs 主动容错 为什么需要容错? 安全、可靠性、任务连续性 执行器故障类型 卡死、松浮、饱和、失效 卡死 松浮 饱和 失效 核心目标:故障后仍可控,安全返回

这张图把本章的三个核心问题串起来了。你从左往右看:先搞清楚“什么是容错”,再理解“为什么需要”,最后落到“具体故障类型”。后面的课程,我们会针对每种故障类型,给出具体的检测方法和控制重构策略。

1.5 小结

这一章,我们聊了容错控制的基本概念。说白了,就是让飞机在“带病”状态下还能飞回来。执行器故障无非就是卡死、松浮、饱和、失效这四种。每种故障的处理思路都不一样,但核心逻辑是一样的:检测到问题,重新分配控制量,保住飞机姿态

我个人习惯,在设计飞控时,先把这四种故障的检测逻辑写好,哪怕初期只做最简单的阈值判断。因为等你真正遇到故障时,再临时写代码,根本来不及。

好,这一章就到这里。记住这张图,后面的内容都是围绕它展开的。


专注资料整理