第2章 跟随误差数学模型:位置环、速度环、电流环的传递函数与误差建模
上一章我们聊了跟随误差是什么,以及它为什么让人头疼。这一章,咱们得把袖子撸起来,看看误差到底是怎么在伺服系统里一步步产生的。
说白了,伺服系统就是个三环嵌套的结构:电流环在最里面,速度环包着它,位置环在最外面。每个环都有自己的动态特性,都会给最终的跟随误差“贡献”一份力。我个人习惯,做误差分析前,先把这三个环的传递函数摸清楚。不然你后面调参数、做补偿,心里没底。
2.1 三环伺服系统的标准结构
先看一张我手绘的结构图,它把三环的关系讲得很清楚。
图2-1:三环伺服系统标准控制结构
你看,指令从左边进来,经过位置环、速度环、电流环,最后驱动电机。反馈信号从右边绕回来,跟指令做比较。这个结构,搞伺服的人天天见。但你真的算过每个环节的传递函数吗?
2.2 电流环传递函数与误差建模
电流环是三个环里响应最快的。它的任务很简单:让实际电流快速跟上电流指令。我见过不少工程师只关心位置环,觉得电流环反正够快,不用管。嗯,这个想法在低速场合还行,但高速高精度场合,电流环的延迟会直接变成位置误差。
电流环的简化模型,通常可以写成:
G_c(s) = K_c / (T_c * s + 1)
其中:
- K_c:电流环增益(通常由PI控制器决定)
- T_c:电流环等效时间常数(包含PWM延迟、采样延迟、电机电气时间常数)
电流环的跟随误差,说白了就是电流指令和实际电流之间的差值。在频域里,这个误差可以写成:
E_c(s) = I_ref(s) - I_actual(s)
= I_ref(s) * [1 - G_c(s)]
实战经验: 我在调试一个高速贴片机时,发现位置环增益怎么调都振。后来一测电流环带宽,发现因为PWM频率设得太低,电流环响应慢了半拍。把PWM频率从8kHz提到16kHz,电流环带宽翻了一倍,位置环立马稳了。所以,电流环不是“够用就行”,它是整个系统的地基。
2.3 速度环传递函数与误差建模
速度环把电流环当作它的“执行器”。速度环的控制器通常是PI,它的输出就是电流环的指令。速度环的传递函数,在电流环已经闭环的前提下,可以写成:
G_v(s) = [K_v * (T_v * s + 1) / (T_v * s)] * [G_c(s) / (J * s + B)]
这里:
- K_v:速度环比例增益
- T_v:速度环积分时间常数
- J:转动惯量(电机+负载)
- B:粘滞摩擦系数
速度环的跟随误差,主要来自两个方面:
- 加速度引起的滞后:当速度指令变化时,速度环需要时间建立电流,这个时间差就是误差。
- 负载扰动:外部负载变化,速度环需要时间响应,期间速度会偏离指令。
速度环误差的频域表达式:
E_v(s) = V_ref(s) - V_actual(s)
= V_ref(s) * [1 - G_v(s)]
注意: 速度环的带宽不能无限提高。我遇到过有人把速度环增益调得特别高,结果电流环饱和了,速度环反而出现极限环振荡。速度环的带宽,一般建议设置在电流环带宽的1/5到1/10之间。这是经验值,但很管用。
2.4 位置环传递函数与跟随误差
终于到了最外层的位置环。位置环的输入是位置指令,输出是实际位置。位置环控制器通常用P(比例)控制,有时候加前馈。它的传递函数:
G_p(s) = K_p * G_v(s) / s
注意这里多了一个积分项 1/s,因为速度积分得到位置。位置环的跟随误差,就是我们最关心的那个误差:
E_p(s) = P_ref(s) - P_actual(s)
= P_ref(s) * [1 - G_p(s)]
对于斜坡输入(匀速运动),位置环的稳态误差是:
e_ss = V / K_p
其中V是运动速度。这个公式很关键——它告诉我们:
- 速度越快,跟随误差越大
- 位置环增益越高,误差越小
但增益不能无限高,高了就振荡。这就是矛盾所在。
2.5 三环误差的叠加与传递
三个环的误差不是独立存在的。它们会叠加、会传递。我习惯用一个表格来总结它们的关系:
| 误差来源 | 主要影响因素 | 对位置误差的贡献方式 | 典型量级 |
|---|---|---|---|
| 电流环误差 | PWM频率、电流环带宽、死区时间 | 通过力矩波动影响速度,间接影响位置 | 微小(可忽略到数个脉冲) |
| 速度环误差 | 速度环带宽、负载惯量、摩擦 | 速度偏差积分后变成位置偏差 | 数个到数十个脉冲 |
| 位置环误差 | 位置环增益、运动速度、加速度 | 直接表现为位置滞后 | 数十到数百个脉冲 |
你看,电流环的误差虽然小,但它会“放大”到速度环,再“积分”到位置环。所以,别小看任何一个环节。
2.6 完整的误差模型
把三个环串起来,我们可以写出从位置指令到位置输出的完整传递函数:
G_total(s) = G_p(s) * G_v(s) * G_c(s) / [1 + G_p(s) * G_v(s) * G_c(s)]
跟随误差的完整表达式:
E_total(s) = P_ref(s) * [1 - G_total(s)]
这个公式看着简单,但展开后很复杂。实际工程中,我很少去解这个高阶方程。我更常用的是:
- 低频段:用位置环增益估算稳态误差
- 中频段:用速度环带宽估算动态误差
- 高频段:用电流环带宽估算振动和噪声的影响
核心结论: 跟随误差的数学模型告诉我们三件事:
- 误差与速度成正比——跑得越快,跟得越不准
- 误差与增益成反比——但增益受稳定性限制
- 误差是三个环共同作用的结果——只调位置环是不够的