第2章:误差建模基础——误差源分析与传递函数
各位工程师朋友,咱们今天聊聊误差建模。说实话,我刚入行那会儿,总觉得误差就是“不准”,调调PID就能搞定。直到有一次,一个高精度跟踪项目让我栽了大跟头——明明仿真跑得好好的,一上实物就偏得离谱。后来才明白,不懂误差源,你连问题出在哪都不知道。
这一章,咱们就把误差的“老底”翻出来看看。我会从三个主要误差源讲起,再给出它们的传递函数表达。你想想看,搞清楚了这些,后面设计补偿器才有底气,对吧?
2.1 三大误差源:传感器噪声、模型失配、执行器延迟
我个人习惯把误差源分成三类。这就像看病,得先分清楚是内科、外科还是骨科。咱们一个一个来。
2.1.1 传感器噪声
传感器噪声,说白了就是测量值里混进来的“杂音”。我见过最典型的案例,是一个激光测距仪,在强光环境下噪声直接翻了三倍。
常见的噪声类型有:
- 白噪声:均匀分布在所有频率上,像收音机的底噪
- 闪烁噪声(1/f噪声):低频段特别明显,温度变化时更严重
- 量化噪声:ADC分辨率不够时,信号被“切”成了台阶
关键点:传感器噪声通常用功率谱密度(PSD)来描述。单位是 (单位²/Hz)。比如一个加速度计,噪声密度可能是 100 μg/√Hz。
我的经验:选传感器时,别只看精度指标。我建议你重点关注“噪声密度”和“带宽”的乘积。有些传感器精度标得漂亮,但带宽一宽,噪声就压不住了。
2.1.2 模型失配
模型失配,就是你的数学模型和真实系统之间的差距。嗯,这里要注意——任何模型都是错的,但有些是有用的。
我遇到过最头疼的模型失配,是一个柔性机械臂。我用了刚体模型,结果高频段完全对不上。后来加了柔性模态,才算勉强能用。
模型失配通常来自:
- 参数不确定性:比如惯量、阻尼系数,实际值和标称值有偏差
- 未建模动态:比如高频谐振、摩擦非线性,你根本没把它写进模型里
- 时变特性:系统参数随着温度、磨损在缓慢变化
避坑指南:我曾经犯过一个错——把模型失配全归咎于参数不准。后来才发现,未建模动态才是罪魁祸首。建议你做系统辨识时,一定要留一部分数据做交叉验证,看看模型在高频段的拟合情况。
2.1.3 执行器延迟
执行器延迟,就是“你让它动,它晚半拍才动”。这玩意儿在控制回路里特别致命,因为它会引入相位滞后。
延迟的来源:
- 计算延迟:控制器算完指令,需要时间
- 通信延迟:指令通过总线传输,有延时
- 执行器响应时间:电机、液压阀本身的惯性
你想想看,如果延迟是10ms,而你的控制周期是1ms,那相当于你发了10个指令,执行器才响应第一个。这能不振荡吗?
2.2 误差传递函数
好了,误差源分析完了。现在咱们得把它们“串”起来,看看它们怎么影响最终的目标点跟踪误差。
我个人习惯用误差传递函数来统一描述。说白了,就是建立一个从误差源到输出误差的数学映射。
2.2.1 标准反馈控制结构
先看一个典型的反馈控制系统框图:
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 本章小结
咱们这一章把误差的“老底”翻了个遍。传感器噪声、模型失配、执行器延迟,这三个家伙各有各的脾气。传感器噪声在高频段捣乱,模型失配在低频段使坏,执行器延迟则是在相位上做手脚。
误差传递函数给了我们一个统一的框架,把所有误差源都映射到输出误差上。你想想看,有了这个工具,后面设计控制器时,就能清楚地知道:我到底在跟谁打仗。
嗯,这一章就到这里。下一章咱们会讲怎么用这些误差模型来设计具体的补偿策略。到时候,我会拿出一个我实际做过的项目案例,咱们一步步拆解。
可可精品资料库