3、前馈补偿的数学原理:拉普拉斯变换回顾、前馈传递函数推导、零极点对消思想
各位工程师朋友,欢迎来到第三讲。前两讲我们聊了前馈能干什么,为什么它比纯反馈更“快”。今天这讲,咱们得硬核一点,把数学底子打牢。
说实话,我见过不少同行,调PID参数一把好手,但一提到前馈传递函数推导就头疼。其实没那么玄乎。你想想看,前馈的本质就是“预测”,而预测靠的就是数学模型。这个模型怎么来的?就是靠拉普拉斯变换这把手术刀,把时域问题切到频域去处理。
3.1 拉普拉斯变换:从时域到频域的“翻译器”
先快速回顾一下拉普拉斯变换。为什么非要用它?因为微分方程在时域里解起来太痛苦了。我记得刚入行时,手算一个二阶系统的响应,算了整整一下午,还算错了。后来用了拉氏变换,几分钟搞定。
拉普拉斯变换的定义很简单:
F(s) = ∫[0,∞] f(t) * e^(-st) dt
它把时间函数 f(t) 映射成复频域函数 F(s)。这里的 s = σ + jω,是个复数。说白了,就是把“随时间变化”的信号,拆解成不同频率和衰减速度的指数函数的叠加。
几个常用变换,我建议你记牢:
| 时域 f(t) | 频域 F(s) |
|---|---|
| 单位阶跃 1(t) | 1/s |
| 斜坡 t | 1/s² |
| 指数 e^(-at) | 1/(s+a) |
| 正弦 sin(ωt) | ω/(s²+ω²) |
嗯,这里要注意:拉氏变换有个重要性质——微分定理。时域的导数对应频域的乘以s。即:
L{df(t)/dt} = sF(s) - f(0)
这个性质,是后面推导传递函数的关键。
3.2 前馈传递函数推导:从“知道扰动”到“抵消扰动”
好,有了拉氏变换这个工具,我们来推导前馈传递函数。假设一个典型的运动控制系统,被控对象是 Gp(s),控制器是 Gc(s)。扰动 d(t) 作用在对象输入端。
没有前馈时,输出对扰动的传递函数是:
Y(s)/D(s) = Gp(s) / [1 + Gc(s)Gp(s)]
说白了,扰动要经过对象,再被反馈回路压制。反馈有延迟,所以扰动总会先造成偏差。
现在加入前馈通道 Gff(s)。前馈直接测量扰动,提前施加补偿信号。系统框图可以简化为:扰动 d 经过两条路:一条直接通过 Gp(s) 影响输出;另一条经过 Gff(s) 再经过 Gp(s) 影响输出。我们希望这两条路的效果完全抵消。
所以,理想的前馈条件是:
d(t) * Gp(s) + d(t) * Gff(s) * Gp(s) = 0
两边约掉 d(t) 和 Gp(s)(假设 Gp(s) ≠ 0),得到:
1 + Gff(s) = 0
即:
Gff(s) = -1 / Gp(s)
这就是前馈传递函数的理想形式!它等于被控对象传递函数的负倒数。
举个例子。假设电机加负载的模型是:
Gp(s) = K / (Js + B)
其中 J 是转动惯量,B 是阻尼系数。那么理想前馈就是:
Gff(s) = -(Js + B) / K
你看,这其实就是一个比例+微分(PD)的形式。所以很多运动控制卡里,前馈就是“速度前馈”和“加速度前馈”两个参数,道理就在这里。
3.3 零极点对消思想:理想很丰满,现实很骨感
推导出 Gff(s) = -1/Gp(s) 后,你可能会想:那直接把对象模型求个倒数不就行了?
嗯,这里要注意:事情没这么简单。这就引出了零极点对消的思想。
零极点对消,说白了就是:前馈的极点(分母为零的点)去对消对象的零点(分子为零的点),前馈的零点去对消对象的极点。这样,串联后的传递函数就变成了1(或常数)。
但现实中有三个坑:
- 模型不准确: 你测出来的 J 和 B 有误差,对消就不干净。我曾经在一个高精度转台项目里,惯量辨识误差5%,结果前馈不但没效果,反而引入了震荡。
- 非最小相位系统: 如果对象有右半平面的零点(比如延迟环节),求逆后会出现右半平面极点,系统会不稳定。这时候不能直接对消。
- 物理可实现性: 理想前馈往往是纯微分或高阶微分,现实中无法实现。比如 Gff(s) = s,意味着要对信号求导,噪声会被无限放大。
所以实际工程中,我们怎么做?
- 先建立被控对象的近似模型(通常用系统辨识或理论推导)。
- 求逆,但只保留主导极点和零点,忽略高频动态。
- 对不可实现的部分(如纯微分),用“近似微分”代替,比如 s/(τs+1)。
- 加低通滤波器,限制前馈的高频增益。
举个例子,如果对象是:
Gp(s) = 10 / (s² + 2s + 1)
理想前馈是:
Gff(s) = -(s² + 2s + 1) / 10
这包含二阶微分,噪声敏感。实际中我会改成:
Gff(s) = -(s² + 2s + 1) / [10 * (τs + 1)²]
其中 τ 取系统采样周期的5-10倍,既保留了前馈效果,又抑制了高频噪声。
好了,这一讲我们走完了从拉普拉斯变换到前馈传递函数推导,再到零极点对消的完整链路。下一讲,我们会把这些数学原理落地到具体的数字控制器实现中。到时候,我会带大家手写一段前馈代码,看看理论怎么变成实际跑起来的程序。