3. 误差数学模型

聊完了误差来源和分类,咱们得动真格的了——怎么把误差这个东西用数学描述出来?

你想想看,如果连描述都描述不清楚,谈何分析和补偿?

我个人习惯,先把误差当成一个“信号”来处理。既然是信号,那就有传递函数、有状态空间、有灵敏度,还有统计特性。这一套下来,误差就不再是玄学,而是可以计算、可以预测的东西了。

3.1 误差传递函数

先说说我最常用的工具——误差传递函数。

说白了,就是系统输入到误差输出的传递关系。假设我们有一个闭环系统,参考输入是 R(s),输出是 Y(s),那误差 E(s) = R(s) - Y(s)。

核心公式:
Φe(s) = E(s) / R(s) = 1 / (1 + G(s)H(s))

这里 G(s)H(s) 是开环传递函数。嗯,这里要注意:误差传递函数的分母就是闭环特征多项式。系统稳不稳定,看它就知道。

我在项目中遇到过一件事:有个伺服系统,空载时跟踪精度很好,一加上负载就开始抖。我一开始以为是摩擦补偿没做好,后来一算误差传递函数,发现是开环增益在负载变化时掉得太厉害,导致低频误差放大。说白了,是刚度不够。

实战技巧: 误差传递函数的低频增益决定了稳态精度。想提高精度?增大低频增益就行。但别过头,增益太大容易振荡——这是经典的控制工程“甜蜜点”问题。

3.2 误差状态空间模型

传递函数适合单输入单输出,但现代系统哪有这么简单?多变量、耦合、时变……这时候就得用状态空间了。

误差状态空间模型怎么建?我习惯这样操作:

  1. 先写出系统的状态方程:ẋ = Ax + Bu, y = Cx + Du
  2. 定义误差状态:e = r - y(r是参考输入)
  3. 如果参考输入是常数或已知轨迹,可以构造增广系统

举个例子,一个简单的积分器系统:

系统:ẋ = u, y = x
误差:e = r - x
误差动态:ė = -u + ṙ

如果 r 是阶跃(ṙ=0),则:
ė = -u
取 u = Ke,则 ė = -Ke
——误差以指数衰减,时间常数 1/K

你看,状态空间模型的好处是:能直观看到误差的动态行为。而且可以处理多变量耦合——这在MIMO系统中特别有用。

注意: 状态空间模型要求系统状态可观测。如果某些状态测不到,误差估计就会出问题。我曾经在一个陀螺稳定平台上吃过这个亏——角速度测不准,导致误差状态估计发散。后来加了观测器才搞定。

3.3 误差灵敏度分析

灵敏度分析,说白了就是回答一个问题:系统参数变了,误差会怎么变?

我把它分成两类:

  • 参数灵敏度: 比如电阻值漂移了5%,误差会变大多少?
  • 扰动灵敏度: 比如电源纹波进来,误差响应有多大?

数学上,灵敏度函数定义为:

S(s) = ∂E(s) / ∂P(s) · P(s) / E(s)

其中 P 是某个参数。这个比值越小,说明系统对参数变化越不敏感——也就是鲁棒性越好。

我记得有一次做精密温控系统,发现温度传感器标称精度0.1°C,但实际误差能到0.3°C。一算灵敏度,发现是传感器安装位置的热阻太大,导致测量延迟。说白了,不是传感器不行,是安装方式不对。灵敏度分析帮我找到了真正的瓶颈。

我的习惯: 在设计阶段,先跑一遍灵敏度分析。把所有参数按灵敏度从高到低排序,然后重点管控前20%的参数。这样效率最高,成本也最低。

3.4 误差的统计特性

前面讲的都是确定性误差——模型已知、参数确定。但现实世界哪有那么完美?

噪声、量化误差、随机扰动……这些都是随机过程。对付它们,得用统计方法。

均值(Mean)

均值描述误差的“中心趋势”。如果误差均值不为零,说明系统存在系统偏差——也就是常说的“偏置”。

μ_e = E[e(k)] = lim(N→∞) (1/N) Σ e(k)

实际中,我们常用样本均值来估计:

μ̂_e = (1/N) Σ e(k)

我在做ADC校准的时候,发现采集1000个点,均值总是偏0.5个LSB。查了半天,原来是参考电压的直流偏置。补偿掉这个均值后,精度直接提升了一个等级。

方差(Variance)

方差描述误差的“离散程度”。方差大,说明误差波动剧烈——系统不够稳定。

σ²_e = E[(e(k) - μ_e)²]

标准差 σ_e 更常用,因为它和误差有相同的量纲。

工程经验: 对于控制系统,我一般要求误差的3σ范围不超过允许误差带。比如定位精度要求±0.1mm,那3σ_e ≤ 0.1mm。这样99.7%的情况下都能满足要求。

协方差(Covariance)

协方差描述两个误差变量之间的相关性。在多变量系统中特别重要。

Cov(e₁, e₂) = E[(e₁ - μ₁)(e₂ - μ₂)]

如果协方差为正,说明两个误差同向变化;为负则反向变化;为零则不相关。

举个例子:在双轴运动平台上,X轴和Y轴的误差如果正相关,那圆轨迹就会变成椭圆。我遇到过这种情况,后来发现是机械耦合导致的——X轴运动时Y轴也跟着动了一点。通过协方差分析,我量化了这个耦合量,然后用前馈补偿掉了。

注意: 协方差为零不代表独立,只代表线性不相关。非线性相关的情况,协方差可能为零但实际有依赖关系。这时候需要用互信息或其他非线性指标。

知识体系总览

下面这张图,是我梳理的误差数学模型整体框架。你可以把它当作本章的“地图”:

误差数学模型 · 知识体系 误差数学模型 误差传递函数 Φe(s) = 1 / (1 + G(s)H(s)) 误差状态空间模型 ė = Aee + Beu 误差灵敏度分析 S(s) = ∂E/∂P · P/E 误差统计特性 均值 · 方差 · 协方差 稳态误差分析 动态误差响应 多变量耦合 观测器设计 参数灵敏度 扰动灵敏度 均值(系统偏差) 方差(波动程度) 协方差(相关性) 确定性分析 + 统计分析 = 完整的误差数学描述

这张图把四种方法串起来了。我个人觉得,最理想的做法是:先用传递函数做初步分析,再用状态空间处理多变量耦合,然后用灵敏度找到关键参数,最后用统计方法评估随机误差的影响。四步走完,误差的“底细”基本就摸清了。


好了,这一章的内容就到这儿。误差数学模型是后续所有分析和补偿方法的基础——你把它吃透了,后面讲误差观测、误差补偿、鲁棒设计的时候,就会顺很多。

一句话总结: 误差不是玄学,是可以用传递函数、状态空间、灵敏度和统计特性精确描述的数学对象。掌握了这四把“手术刀”,你就能对任何系统的误差进行精准解剖。

公众号:蓝海资料掘金营,微信deep3321