2. 故障模式基础:故障定义、分类与等级划分
各位同学,大家好。今天我们聊聊飞控系统故障分析里最基础、也最绕不开的一个话题——故障模式本身。说白了,就是先搞清楚“什么是故障”、“故障长什么样”、“它有多严重”。
我刚开始做飞控那几年,其实对故障分类这事不太上心。总觉得“出问题了再修呗”。直到有一次,一个传感器间歇性失效,排查了整整两周……嗯,从那以后,我养成了一个习惯:先给故障分好类,再动手分析。这就像医生看病,先得知道是内科还是外科,对吧?
2.1 故障的定义:到底什么是“故障”?
先给个严谨的定义:故障(Fault)是指系统中的一个或多个组件偏离了其预期的、规定的状态或行为。注意,这里说的是“偏离”,不一定是“完全坏掉”。
我个人习惯把故障分成三个层次来理解:
- 故障(Fault):系统内部的一个缺陷或异常状态。比如一个电阻烧了、一段代码跑飞了。
- 错误(Error):故障导致系统内部出现了不正确的状态。比如因为电阻烧了,电压基准不准了,导致ADC读数错误。
- 失效(Failure):错误传播到系统外部,导致系统无法完成预定功能。比如因为ADC读数错误,飞控输出错误的舵面指令,飞机坠毁了。
你想想看,这三个概念其实是一条因果链。我们做故障分析,目标就是在“故障”阶段就发现它,别让它变成“失效”。
核心观点:故障 ≠ 失效。故障是原因,失效是结果。好的容错设计,就是在故障和失效之间筑起一道墙。
2.2 故障的分类:从不同维度看故障
故障分类的方法很多。我一般从四个维度来分:按来源(硬件/软件)、按发生位置(传感器/执行器/控制器)、按持续时间(永久/间歇/瞬态)、按影响范围(局部/全局)。今天重点讲前两个,因为跟飞控系统最相关。
2.2.1 硬件故障 vs. 软件故障
这个分类最直观。硬件是物理的,软件是逻辑的。
| 类别 | 典型表现 | 我遇到过的例子 |
|---|---|---|
| 硬件故障 | 短路、断路、器件老化、焊点虚焊、接口松动 | 某型飞控的IMU模块,因为振动导致BGA焊球开裂,间歇性输出零值。查了三天才定位到。 |
| 软件故障 | 逻辑错误、边界条件未处理、资源竞争、堆栈溢出 | 我曾经写过一个控制律,在特定条件下除数为零,导致飞控直接复位。还好是在仿真阶段发现的。 |
这里有个坑:硬件故障往往表现为软件行为异常。比如内存位翻转(SEU),看起来是软件算错了,其实是硬件被高能粒子打了一下。所以排查时,别急着甩锅给软件。
避坑指南:我曾经遇到一个案例,飞控偶尔输出异常,软件团队查了两个月没找到bug。最后发现是电源模块纹波过大,导致FPGA内部逻辑偶尔翻转。硬件故障伪装成软件故障,这是最常见的“坑”。
2.2.2 传感器故障 vs. 执行器故障
飞控系统里,传感器和执行器是最容易出问题的环节。为什么?因为它们直接跟物理世界打交道。
传感器故障,说白了就是“眼睛瞎了”或者“看错了”。常见模式有:
- 卡死(Stuck-at):输出固定值,不随真实物理量变化。比如陀螺仪输出一直停在0°/s。
- 偏差(Bias):输出值与真实值之间有一个固定的偏移。比如气压计高度总是比真实高度高10米。
- 漂移(Drift):输出值随时间缓慢变化。比如加速度计零偏随温度变化。
- 噪声增大(Noise):输出信号的信噪比下降。比如GPS信号受干扰,位置跳动。
- 完全失效(Hard Failure):无输出或输出明显异常值。比如传感器电源短路。
执行器故障,说白了就是“手脚不听使唤”。常见模式有:
- 卡死(Lock-in-place):舵面卡在某个角度不动。
- 浮空(Float):舵面不受控制,随风偏转。
- 效率下降(Loss of Effectiveness):同样的控制指令,舵面偏转角度变小。
- 反向(Reversal):指令方向与实际偏转方向相反。这个最危险!
- 饱和(Saturation):执行器达到物理极限,无法继续增加输出。
个人经验:传感器故障里,“偏差”和“漂移”最难检测。因为它们不“离谱”,只是“不准”。我一般会设计一个“长期统计监测”模块,用历史数据做基准,发现趋势性偏离就报警。
2.3 故障等级划分:给故障排个优先级
不是所有故障都需要同等对待。你想想看,一个LED灯坏了,跟一个舵机卡死了,处理优先级能一样吗?所以我们需要给故障划分等级。
我常用的划分标准是“故障影响严重度”,结合“故障发生概率”来综合评估。这里给出一个典型的四级划分:
| 等级 | 名称 | 定义 | 飞控系统示例 |
|---|---|---|---|
| I级 | 灾难性 | 导致人员伤亡或飞机坠毁 | 所有主飞控计算机同时失效、舵面完全失控 |
| II级 | 严重 | 导致任务失败或飞机严重受损 | 单台发动机失效、GPS完全丢失、关键传感器三取二表决失败 |
| III级 | 中等 | 导致任务降级或飞机部分功能受限 | 单个IMU故障(有余度)、空速管结冰(有备用)、某个舵面效率下降 |
| IV级 | 轻微 | 不影响飞行安全,但需要维护 | 非关键传感器(如温度计)故障、指示灯故障、日志记录异常 |
实际工程中,我们还会引入“故障发生概率”这个维度。一个发生概率极低的I级故障,和一个发生概率很高的III级故障,哪个更值得关注?这就要用到风险优先级数(RPN)了:
RPN = 严重度(S) × 发生概率(O) × 可检测度(D)
其中:
- 严重度(S):1~10分,分数越高越严重
- 发生概率(O):1~10分,分数越高越容易发生
- 可检测度(D):1~10分,分数越高越难检测
RPN越高,越需要优先处理。
举个例子:
- 舵机卡死:S=9, O=3, D=4 → RPN=108
- GPS短时丢星:S=5, O=8, D=2 → RPN=80
虽然舵机卡死更严重,但GPS丢星更常见,所以两者都需要设计容错策略。
我的建议:在做故障等级划分时,别只看“最坏情况”。要结合你的系统实际运行环境。比如,在民用无人机上,GPS故障的等级可能比军用无人机低,因为民用无人机可以切到视觉导航。但在隧道里飞,GPS故障就是I级。
2.4 本章知识体系:一张图看懂
说了这么多,我画了一张图,帮你把今天的内容串起来。这张图展示了故障从“定义”到“分类”再到“等级划分”的完整逻辑。
嗯,这张图把今天的内容串起来了。从故障定义出发,分两条线:一条是“怎么分类”,一条是“怎么定级”。最终都指向同一个目标——在故障阶段就发现它、隔离它,别让它变成失效。
好了,关于故障模式的基础知识,我们就聊到这里。记住一句话:你连故障长什么样都不知道,怎么去容错? 所以,把基础打牢,后面讲容错策略时,你才能听得更明白。