3. 直流电机数学模型:电枢回路方程、机械运动方程、传递函数推导
做电机控制,第一件事是什么?
我个人觉得,不是急着调PID参数,而是先把被控对象的数学模型搞清楚。你想想看,连电机怎么动、电流怎么涨都不知道,怎么设计保护逻辑?
这一章,我们就来拆解直流电机的数学模型。说白了,就是三个东西:电枢回路怎么走电、机械轴怎么转、以及怎么用传递函数把它们串起来。
3.1 电枢回路方程
先看最简单的部分——电枢回路。直流电机电枢绕组通电后,会产生电磁转矩,但同时也会切割磁感线产生反电动势。这个反电动势,是理解电机行为的关键。
根据基尔霍夫电压定律,电枢回路的电压平衡方程是:
Ua = Ra * ia + La * (dia/dt) + Ea
其中:
- Ua —— 电枢两端施加的电压 (V)
- Ra —— 电枢回路总电阻 (Ω)
- ia —— 电枢电流 (A)
- La —— 电枢回路总电感 (H)
- Ea —— 反电动势 (V)
反电动势 Ea 与电机转速成正比:
Ea = Ke * ω
Ke 是反电动势常数,ω 是转子角速度。
我的经验: 在实际项目中,La 往往被忽略,尤其是在低速大电流工况下。但我建议你别省这一步——过流保护的动态响应时间,恰恰由 La 决定。我曾经在一个伺服驱动器项目里,因为忽略了 La 导致的电流尖峰,烧了三块驱动板才醒悟过来。
3.2 机械运动方程
电枢通了电,产生了转矩,电机就会转。但转起来之后,还要克服负载和摩擦。
机械运动方程描述的是转矩平衡:
Te - TL = J * (dω/dt) + B * ω
其中:
- Te —— 电磁转矩 (N·m),Te = Kt * ia
- TL —— 负载转矩 (N·m)
- J —— 转动惯量 (kg·m²)
- B —— 粘性摩擦系数 (N·m·s/rad)
- ω —— 转子角速度 (rad/s)
这里有个小细节:Kt(转矩常数)和 Ke(反电动势常数)在数值上是相等的(SI单位制下)。所以很多时候,我们直接用 K 来表示。
核心关系: 电枢电流 ia 产生转矩 Te,转矩驱动转速 ω 变化,转速 ω 又反过来影响反电动势 Ea,从而影响电流 ia。这就是一个闭环。
3.3 传递函数推导
有了时域方程,接下来就是拉普拉斯变换,得到频域模型。为什么要做这一步?因为传递函数能让我们直观地看到系统的动态特性——比如电流环带宽、速度环响应时间。
对电枢回路方程做拉氏变换(假设初始条件为零):
Ua(s) = Ra * Ia(s) + La * s * Ia(s) + Ke * ω(s)
整理得:
Ia(s) = [Ua(s) - Ke * ω(s)] / (La * s + Ra)
对机械运动方程做拉氏变换:
Kt * Ia(s) - TL(s) = J * s * ω(s) + B * ω(s)
整理得:
ω(s) = [Kt * Ia(s) - TL(s)] / (J * s + B)
把这两个式子组合起来,就得到了从电压 Ua 到转速 ω 的传递函数。如果忽略负载扰动(TL=0),可以简化为:
G(s) = ω(s) / Ua(s) = Kt / [(La * s + Ra) * (J * s + B) + Kt * Ke]
这个二阶系统的特征方程是:
(La * s + Ra) * (J * s + B) + Kt * Ke = 0
展开后:
La * J * s² + (La * B + Ra * J) * s + (Ra * B + Kt * Ke) = 0
注意: 这个传递函数是理想化的。实际电机还有齿槽效应、磁路饱和、死区效应等非线性因素。在做仿真验证时,我建议先在线性模型上调试保护逻辑,再逐步加入非线性环节。否则,你很难分清问题是出在模型还是算法上。
3.4 知识体系总览
为了让你更直观地理解这三部分的关系,我画了一张结构图:
3.5 参数表与工程经验
做仿真时,参数怎么取?我整理了一个典型值参考表:
| 参数 | 符号 | 典型值范围 | 单位 | 说明 |
|---|---|---|---|---|
| 电枢电阻 | Ra | 0.1 ~ 10 | Ω | 小电机阻值大,大电机阻值小 |
| 电枢电感 | La | 0.1 ~ 10 | mH | 有铁芯电机电感较大 |
| 转矩常数 | Kt | 0.01 ~ 1.0 | N·m/A | 与电机磁链强度相关 |
| 反电动势常数 | Ke | 0.01 ~ 1.0 | V·s/rad | 数值上等于Kt |
| 转动惯量 | J | 0.0001 ~ 0.1 | kg·m² | 包含负载折算惯量 |
| 粘性摩擦 | B | 0.001 ~ 0.1 | N·m·s/rad | 通常较小,可忽略 |
避坑指南: 我曾经在一个项目中,直接用了电机手册上的Ra值做仿真,结果过流保护总是误触发。后来实测发现,手册上的Ra是25°C冷态值,实际运行到80°C时,电阻增加了近30%。所以,做仿真时一定要考虑温度对电阻的影响,尤其是过流保护阈值的设计。
3.6 模型验证思路
模型建好了,怎么验证对不对?我的做法是三步:
- 阶跃响应测试: 给一个电压阶跃,看电流和转速的响应曲线是否符合二阶系统特征(超调、上升时间)。
- 堵转测试: 将转速钳制为0,此时反电动势为0,电流只受Ra和La限制。这个工况下,电流响应应该是一个一阶RL电路的样子。
- 空载启动: 负载转矩设为0,看电机从静止加速到稳态转速的过程。如果模型参数正确,稳态转速应该等于 Ua / Ke。