2、速度环的数学模型:从电机方程到速度环传递函数

做速度环调试,很多人一上来就调 PID 参数。调来调去,效果不好。为什么?

说白了,你不了解被控对象的脾气。电机就是你的被控对象。它的数学模型,就是它的性格说明书。今天我们就来把这份说明书读懂。

2.1 直流电机的等效电路与基本方程

我们先从最简单的直流电机入手。你想想看,一个直流电机,从电路角度看,就是个电阻串个电感,再反串一个反电动势。

核心方程:电枢回路电压平衡方程

Ua = Ra * Ia + La * dIa/dt + Ea

其中:Ua 是电枢电压,Ra 是电枢电阻,La 是电枢电感,Ia 是电枢电流,Ea 是反电动势。

反电动势 Ea 怎么来的?电机一转起来,转子切割磁感线,自然就产生了。它和转速成正比:

Ea = Ke * ω

Ke 是反电动势系数,ω 是电机角速度。这个公式,我建议你刻在脑子里。很多现场问题,追根溯源都能回到这里。

再说转矩。电机产生的电磁转矩 Te 和电枢电流成正比:

Te = Kt * Ia

Kt 是转矩系数。理想情况下,Ke 和 Kt 在数值上是相等的(SI 单位制下)。嗯,这里要注意,实际电机因为制造工艺,会有微小偏差,但工程上我们通常认为它们相等。

最后是运动方程。电机轴上的转矩平衡:

Te - TL = J * dω/dt + B * ω

TL 是负载转矩,J 是转动惯量,B 是粘性阻尼系数。我在项目中遇到过,很多人把 B 忽略掉,结果高速时模型总对不上。低速可以忽略,高速不行。

2.2 从时域方程到传递函数

有了上面三个方程,我们就可以拉普拉斯变换了。为什么要变换?因为微分方程在时域里解起来太麻烦,到了复频域,乘除就能搞定。

假设初始条件为零,对三个方程分别做拉氏变换:

  1. 电压方程:Ua(s) = (Ra + La*s) * Ia(s) + Ke * ω(s)
  2. 转矩方程:Te(s) = Kt * Ia(s)
  3. 运动方程:Te(s) - TL(s) = (J*s + B) * ω(s)

把这三个方程联立,消去中间变量 Ia(s) 和 Te(s),就能得到从 Ua(s) 到 ω(s) 的传递函数。我习惯先画个框图,理清信号流向,再推导公式。

直流电机数学模型信号流图 直流电机数学模型信号流图 Ua(s) + - Ea(s) 1/(Ra+La·s) 电枢传递函数 Kt Te(s) + - TL(s) 1/(J·s+B) 机械传递函数 ω(s) Ke 说明:Ua(s) 为输入,ω(s) 为输出,TL(s) 为负载扰动输入,Ea(s) 为速度反馈

从框图可以直观看到:电枢传递函数、转矩系数、机械传递函数串联,反电动势构成内部反馈。负载转矩 TL(s) 作为扰动输入。

忽略负载扰动(TL=0),推导传递函数:

ω(s) / Ua(s) = Kt / [ (Ra + La*s) * (J*s + B) + Kt * Ke ]

这个式子看起来有点复杂。但在实际工程中,我们经常做简化。电气时间常数 Te = La/Ra,机械时间常数 Tm = J/B。如果 Te 远小于 Tm(通常如此),我们可以忽略电感 La 的影响。

工程简化:当 La 可忽略时,传递函数简化为:

ω(s) / Ua(s) = (1/Ke) / (Tm * s + 1)

其中 Tm = J * Ra / (Kt * Ke)。这就是一阶惯性环节!

我建议你在做快速原型验证时,先用这个简化模型。等系统跑通了,再考虑更精确的模型。

2.3 速度环的闭环传递函数

有了被控对象模型,我们加上速度环控制器。典型的速度环结构如下:

速度环闭环结构:

ω_ref(s) → [PI控制器] → [被控对象] → ω(s)
                ↑                        |
                └──────── 反馈 ──────────┘

PI 控制器的传递函数为:

C(s) = Kp + Ki/s = Kp * (1 + 1/(Ti * s))

其中 Ti = Kp/Ki 是积分时间常数。

闭环传递函数为:

G_cl(s) = C(s) * G(s) / [1 + C(s) * G(s)]

代入简化后的 G(s) = 1/(Ke * (Tm * s + 1)),得到:

G_cl(s) = (Kp * s + Ki) / (Ke * Tm * s² + Ke * s + Kp * s + Ki)

整理成标准二阶系统形式:

G_cl(s) = (2*ζ*ωn * s + ωn²) / (s² + 2*ζ*ωn * s + ωn²)

其中:

参数 表达式 物理意义
ωn √(Ki / (Ke * Tm)) 自然频率
ζ (Ke + Kp) / (2 * √(Ki * Ke * Tm)) 阻尼比

看到这里,你应该明白了:速度环的响应速度,本质上由 ωn 和 ζ 决定。ωn 越大,响应越快;ζ 在 0.4~0.8 之间,超调量和响应时间能取得较好的平衡。

避坑指南:我曾经在一个项目中,为了追求快速响应,把 Kp 调得很大。结果 ωn 上去了,但系统出现了高频振荡。后来才发现,我忽略了被控对象的高频未建模动态。记住:数学模型是简化,实际系统有延迟、有饱和、有谐振。调参时一定要留有余量。

2.4 模型参数辨识:理论到实践的桥梁

模型有了,参数怎么来?你不可能每次都去查电机手册。我习惯用实验法辨识。

常用方法:电流阶跃响应法

  1. 给电机一个恒定的电压阶跃(速度环开环)
  2. 记录转速响应曲线
  3. 从曲线上读取稳态值和时间常数

举个例子:

步骤 操作 读取参数
1 施加 12V 阶跃电压 稳态转速 ω_ss = 300 rad/s
2 测量上升到 63.2% 稳态值的时间 Tm = 0.05 s
3 计算 Ke = Ua / ω_ss Ke = 12 / 300 = 0.04 V·s/rad
4 已知 Ra,计算 J J = Tm * Ke * Kt / Ra

这个方法虽然粗糙,但足够工程用了。如果你需要更高精度,可以用扫频法或最小二乘拟合。不过说实话,对于大多数速度环应用,阶跃响应法已经能给出可用的参数。

我的经验:辨识出来的参数,不要直接用于控制器设计。我会先做一次仿真,看看闭环响应是否符合预期。如果仿真结果和实际差异大,再回头检查模型。记住:模型是工具,不是真理。现场调试才是最终的检验标准。