第2章:误差建模基础——误差源分析与传递函数

各位工程师朋友,咱们今天聊聊误差建模。说实话,我刚入行那会儿,总觉得误差就是“不准”,调调PID就能搞定。直到有一次,一个高精度跟踪项目让我栽了大跟头——明明仿真跑得好好的,一上实物就偏得离谱。后来才明白,不懂误差源,你连问题出在哪都不知道。

这一章,咱们就把误差的“老底”翻出来看看。我会从三个主要误差源讲起,再给出它们的传递函数表达。你想想看,搞清楚了这些,后面设计补偿器才有底气,对吧?

2.1 三大误差源:传感器噪声、模型失配、执行器延迟

我个人习惯把误差源分成三类。这就像看病,得先分清楚是内科、外科还是骨科。咱们一个一个来。

2.1.1 传感器噪声

传感器噪声,说白了就是测量值里混进来的“杂音”。我见过最典型的案例,是一个激光测距仪,在强光环境下噪声直接翻了三倍。

常见的噪声类型有:

  • 白噪声:均匀分布在所有频率上,像收音机的底噪
  • 闪烁噪声(1/f噪声):低频段特别明显,温度变化时更严重
  • 量化噪声:ADC分辨率不够时,信号被“切”成了台阶

关键点:传感器噪声通常用功率谱密度(PSD)来描述。单位是 (单位²/Hz)。比如一个加速度计,噪声密度可能是 100 μg/√Hz。

我的经验:选传感器时,别只看精度指标。我建议你重点关注“噪声密度”和“带宽”的乘积。有些传感器精度标得漂亮,但带宽一宽,噪声就压不住了。

2.1.2 模型失配

模型失配,就是你的数学模型和真实系统之间的差距。嗯,这里要注意——任何模型都是错的,但有些是有用的。

我遇到过最头疼的模型失配,是一个柔性机械臂。我用了刚体模型,结果高频段完全对不上。后来加了柔性模态,才算勉强能用。

模型失配通常来自:

  1. 参数不确定性:比如惯量、阻尼系数,实际值和标称值有偏差
  2. 未建模动态:比如高频谐振、摩擦非线性,你根本没把它写进模型里
  3. 时变特性:系统参数随着温度、磨损在缓慢变化

避坑指南:我曾经犯过一个错——把模型失配全归咎于参数不准。后来才发现,未建模动态才是罪魁祸首。建议你做系统辨识时,一定要留一部分数据做交叉验证,看看模型在高频段的拟合情况。

2.1.3 执行器延迟

执行器延迟,就是“你让它动,它晚半拍才动”。这玩意儿在控制回路里特别致命,因为它会引入相位滞后。

延迟的来源:

  • 计算延迟:控制器算完指令,需要时间
  • 通信延迟:指令通过总线传输,有延时
  • 执行器响应时间:电机、液压阀本身的惯性

你想想看,如果延迟是10ms,而你的控制周期是1ms,那相当于你发了10个指令,执行器才响应第一个。这能不振荡吗?

2.2 误差传递函数

好了,误差源分析完了。现在咱们得把它们“串”起来,看看它们怎么影响最终的目标点跟踪误差。

我个人习惯用误差传递函数来统一描述。说白了,就是建立一个从误差源到输出误差的数学映射。

2.2.1 标准反馈控制结构

先看一个典型的反馈控制系统框图:

标准反馈控制系统误差传递结构 R(s) + + - C(s) e^(-τs) 执行器延迟 G(s) 模型失配 Y(s) N(s) + H(s) E(s) = R(s) - H(s)Y(s) 图例: 控制器 执行器延迟 被控对象(含模型失配) 传感器 N(s) 在输出端注入,代表传感器噪声

2.2.2 误差传递函数推导

从上面的框图,我们可以写出误差的表达式。这里我直接给出结果,推导过程咱们课堂上再细说。

误差 E(s) 的完整表达式:

E(s) = R(s) / (1 + C(s)·e^(-τs)·G(s)·H(s)) 
       - N(s) · C(s)·e^(-τs)·G(s) / (1 + C(s)·e^(-τs)·G(s)·H(s))
       - ΔG(s) · C(s)·e^(-τs) / (1 + C(s)·e^(-τs)·G(s)·H(s))

其中:

  • 第一项:参考输入引起的跟踪误差(理想情况下为0)
  • 第二项:传感器噪声引起的误差
  • 第三项:模型失配 ΔG(s) 引起的误差

核心结论:从表达式可以看出,所有误差源都通过同一个分母 (1 + 开环传递函数) 被“过滤”。这个分母就是系统的灵敏度函数 S(s) 的倒数。说白了,增大开环增益可以抑制误差,但会牺牲稳定性——这就是经典的“水多了加面,面多了加水”问题。

2.2.3 各误差源的频率特性

咱们用表格总结一下,不同误差源在低频和高频的表现:

误差源 低频段影响 高频段影响 典型应对策略
传感器噪声 影响小(噪声能量低) 影响大(噪声能量高) 低通滤波、选择低噪声传感器
模型失配 影响大(参数偏差主导) 影响大(未建模动态主导) 鲁棒控制、自适应控制
执行器延迟 影响小(相位滞后小) 影响大(相位滞后累积) Smith预估器、减少延迟

我的建议:做误差分析时,别眉毛胡子一把抓。我习惯先画一个误差源-频率图,看看哪个频段哪个误差占主导。比如,低频段主要看模型失配,高频段主要看传感器噪声。这样设计补偿器时,才能“对症下药”。

2.3 本章小结

咱们这一章把误差的“老底”翻了个遍。传感器噪声、模型失配、执行器延迟,这三个家伙各有各的脾气。传感器噪声在高频段捣乱,模型失配在低频段使坏,执行器延迟则是在相位上做手脚。

误差传递函数给了我们一个统一的框架,把所有误差源都映射到输出误差上。你想想看,有了这个工具,后面设计控制器时,就能清楚地知道:我到底在跟谁打仗。

嗯,这一章就到这里。下一章咱们会讲怎么用这些误差模型来设计具体的补偿策略。到时候,我会拿出一个我实际做过的项目案例,咱们一步步拆解。


可可精品资料库