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 知识体系总览

为了让你更直观地理解这三部分的关系,我画了一张结构图:

直流电机数学模型结构 电枢回路方程 机械运动方程 传递函数推导 Ua = Ra·ia + La·dia/dt + Ea Ea = Ke·ω Te = Kt·ia Te - TL = J·dω/dt + B·ω G(s) = ω(s) / Ua(s) 关键耦合关系 电枢电流 → 电磁转矩 → 转速变化 → 反电动势变化 → 电枢电流 过流保护的核心:监测这个闭环中的电流异常

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 模型验证思路

模型建好了,怎么验证对不对?我的做法是三步:

  1. 阶跃响应测试: 给一个电压阶跃,看电流和转速的响应曲线是否符合二阶系统特征(超调、上升时间)。
  2. 堵转测试: 将转速钳制为0,此时反电动势为0,电流只受Ra和La限制。这个工况下,电流响应应该是一个一阶RL电路的样子。
  3. 空载启动: 负载转矩设为0,看电机从静止加速到稳态转速的过程。如果模型参数正确,稳态转速应该等于 Ua / Ke。