2. 传感器故障模型
传感器故障,说白了就是传感器给出的信号跟真实物理量对不上了。我做了这么多年容错控制,见过最多的故障类型其实就四种:偏差、漂移、精度下降、完全失效。咱们一个一个来拆解。
2.1 传感器常见故障类型
2.1.1 偏差故障
偏差故障是最简单、也最常见的一种。传感器的输出值始终比真实值高或低一个固定量。打个比方,就像你家的体重秤,每次称出来都比实际重2公斤——这就是典型的偏差故障。
数学上可以这样描述:
y(t) = x(t) + b
其中 y(t) 是传感器输出,x(t) 是真实值,b 是偏差量。b 可以是常数,也可以是缓慢变化的。
2.1.2 漂移故障
漂移比偏差麻烦一点。它不是固定的,而是随时间慢慢变化。你想想看,一个传感器刚开机时好好的,过了半小时开始慢慢偏,再过一小时偏得更厉害——这就是漂移。
数学模型通常写成:
y(t) = x(t) + d(t)
其中 d(t) 是随时间变化的漂移量。常见的漂移模型有线性漂移:d(t) = α·t,也有指数型漂移:d(t) = a·(1 - e-t/τ)。
2.1.3 精度下降故障
精度下降,就是传感器的噪声变大了。正常时噪声方差是 σ²,故障后变成了 k·σ²,k > 1。传感器还能用,但数据质量明显下降。
数学表达:
y(t) = x(t) + v(t), v(t) ~ N(0, k·σ²)
我个人的习惯是,当 k > 3 时,就认为传感器已经不可靠了。为什么是3?因为3倍方差意味着99.7%的置信区间扩大了将近两倍,这对后续的融合算法影响很大。
2.1.4 完全失效
这个最好理解——传感器彻底不工作了。输出要么卡死在某个值(卡死故障),要么输出为0(零值故障),要么输出满量程(饱和故障)。
卡死故障的模型:
y(t) = c, ∀t ≥ t_f
其中 c 是常数,t_f 是故障发生时刻。
2.2 故障的数学建模方法
搞清楚了故障类型,接下来就是怎么用数学语言描述它们。我一般把故障模型分成两大类:加性故障和乘性故障。
2.2.1 加性故障模型
加性故障,就是故障信号直接叠加在真实信号上。偏差和漂移都属于这一类。
y(t) = x(t) + f(t)
f(t) 就是故障函数。对于偏差故障,f(t) = b;对于漂移故障,f(t) = d(t)。
2.2.2 乘性故障模型
乘性故障,是故障改变了传感器的增益。精度下降和部分失效属于这一类。
y(t) = γ·x(t) + v(t)
γ 是增益因子。正常时 γ = 1,故障时 γ ≠ 1。比如精度下降,γ 可能还在1附近,但噪声方差变大了。
2.2.3 统一故障模型
实际工程中,我更喜欢用一个统一的模型来涵盖所有情况:
y(t) = γ(t)·x(t) + f(t) + v(t)
这个模型包含了三种成分:
- γ(t):乘性故障因子,描述增益变化
- f(t):加性故障函数,描述偏差和漂移
- v(t):噪声项,描述精度变化
核心要点: 这个统一模型几乎能覆盖所有传感器故障场景。我在做飞控系统容错设计时,就是用这个模型来生成故障仿真数据的。你只要调整 γ(t)、f(t)、v(t) 三个参数,就能模拟出各种故障组合。
2.3 故障模型的知识体系
下面这张图,是我自己总结的传感器故障模型知识框架。你看一眼就能明白各个故障类型之间的关系:
2.4 实际工程中的故障建模要点
搞理论是一回事,真正用到工程里又是另一回事。我分享几个实际建模时的注意事项:
- 故障参数要可调:建模时一定要留出可调参数。比如偏差量 b、漂移速率 α、噪声放大系数 k。这样在仿真时才能覆盖不同严重程度的故障。
- 考虑故障的时变特性:很多故障不是瞬间发生的,而是渐变过程。我建议用指数函数或斜坡函数来模拟故障的建立过程。
- 多故障耦合:实际系统中,一个传感器可能同时出现多种故障。比如既有偏差又有精度下降。统一模型正好能处理这种情况。
嗯,传感器故障模型这部分就讲到这里。记住一句话:没有完美的传感器,只有完善的故障处理策略。下一节我们会讨论如何检测和隔离这些故障,那才是真正考验功夫的地方。