2、直流电机原理:结构、工作原理、数学模型与转矩转速特性
大家好,欢迎来到《电机控制仿真从零到实战》的第二讲。
今天咱们聊聊直流电机。说实话,直流电机在工业界已经存在一百多年了,但它依然是很多控制系统的首选。为什么?因为控制简单,响应快。我刚开始做电机控制那会儿,第一个项目就是调一个直流有刷电机的位置环。嗯,那感觉,就像学开车先学手动挡一样,基础打牢了,后面再搞交流伺服、永磁同步,心里就有底了。
2.1 直流电机的物理结构
先看结构。直流电机主要由两部分组成:定子和转子。
- 定子:产生磁场。可以是永磁体,也可以是励磁绕组。我见过很多小功率电机直接用钕铁硼永磁,大功率的则用励磁绕组,因为磁场可调。
- 转子(电枢):上面绕有线圈,通入电流后受力旋转。
- 换向器与电刷:这是直流电机最“灵魂”的部件。电刷把外部直流电引入转子线圈,换向器则保证线圈在转过中性面时电流方向自动切换。
你想想看,如果没有换向器,转子转到一半,力矩方向就反了,电机根本转不起来。所以换向器的作用,说白了就是“机械式逆变器”。
核心记忆点: 定子产磁场,转子通电流,换向器保方向。
2.2 工作原理:左手定则与右手定则
直流电机的工作原理,其实就是两个物理定律的配合。
- 通电导体在磁场中受力(左手定则):产生电磁转矩,驱动转子旋转。
- 导体切割磁感线产生感应电动势(右手定则):转子旋转时,线圈切割磁场,产生反电动势(Back EMF)。
这里有个坑,我刚开始学的时候经常搞混。记住一句话:左手用力,右手发电。左手定则看转矩,右手定则看反电动势。
反电动势有多重要?我举个例子。有一次我在调试一个直流电机驱动器,电机空载时电流很小,但一加载电流就飙升。我当时以为是负载太大,后来一查,其实是反电动势在“帮忙”。空载时转速高,反电动势大,抵消了大部分电源电压,所以电流小。加载后转速下降,反电动势减小,电流自然就大了。嗯,这个特性后面会反复用到。
2.3 数学模型:从物理到方程
搞控制,必须要有数学模型。直流电机的数学模型其实很简洁,就两个方程:电压方程和转矩方程。
2.3.1 电枢回路电压方程
根据基尔霍夫电压定律:
U = E + R * i + L * (di/dt)
其中:
- U:电枢两端电压(V)
- E:反电动势(V),E = Ke * ω,Ke是反电动势常数,ω是角速度
- R:电枢电阻(Ω)
- L:电枢电感(H)
- i:电枢电流(A)
这个方程告诉我们:电压一部分用来克服反电动势,一部分消耗在电阻和电感上。我个人习惯把电感项单独拿出来,因为在稳态分析时,di/dt = 0,方程就简化为 U = E + R*i。
2.3.2 电磁转矩方程
T = Kt * i
其中:
- T:电磁转矩(N·m)
- Kt:转矩常数(N·m/A)
- i:电枢电流(A)
这里有个有趣的点:在标准单位制下,Ke(反电动势常数)和Kt(转矩常数)在数值上是相等的。为什么?因为能量守恒。电机输入的电功率(除去铜耗)等于输出的机械功率。这个关系我在做仿真时经常用来互相验证参数。
2.3.3 机械运动方程
T - T_load = J * (dω/dt) + B * ω
其中:
- J:转动惯量(kg·m²)
- B:粘滞摩擦系数(N·m·s/rad)
- T_load:负载转矩(N·m)
这个方程描述的是转速的变化。说白了,就是电磁转矩减去负载转矩,剩下的用来加速转子。
仿真小技巧: 在搭建Simulink模型时,我建议把电压方程、转矩方程、运动方程分成三个子系统。这样调试时,哪个环节出问题一目了然。我曾经在一个项目中,因为把电阻值设错了,导致电流仿真结果和实测差了30%,找了半天才发现是参数问题。
2.4 转矩与转速特性
这部分是直流电机控制的核心。我们来看两个最重要的特性曲线。
2.4.1 转矩-转速特性(机械特性)
由稳态电压方程 U = E + R*i 和 E = Ke*ω,以及 T = Kt*i,可以推导出:
ω = (U / Ke) - (R / (Ke * Kt)) * T
这个公式看着复杂,其实意思很简单:转速随转矩增大而线性下降。斜率由电阻R决定。
我把它整理成表格,方便你理解:
| 参数 | 增大时的影响 | 物理含义 |
|---|---|---|
| 电枢电阻 R | 特性曲线变陡,转速随负载变化大 | 电机“软”,带载能力差 |
| 电源电压 U | 空载转速升高,曲线整体上移 | 调速最直接的方法 |
| 磁通(Ke) | 空载转速降低,但转矩常数增大 | 弱磁调速时用 |
避坑指南: 我曾经在做一个大惯量负载项目时,直接用了额定电压启动,结果电流瞬间冲到额定值的8倍,差点烧了驱动器。后来我加了软启动,让电压缓慢上升,才解决问题。记住:直流电机启动时,反电动势为零,电流只受电阻限制,所以启动电流非常大。一定要做限流处理。
2.4.2 调速方法
直流电机有三种基本调速方式:
- 调压调速:改变电枢电压U。这是最常用的方法,效率高,调速范围宽。
- 调磁调速:改变励磁电流,从而改变磁通。弱磁升速,但转矩会下降。
- 调电阻调速:在电枢回路串电阻。这个方法效率低,现在基本不用了。
我个人最推荐调压调速。为什么?因为简单、线性、可控性好。你想想看,用PWM控制H桥,占空比一变,电压就变了,转速跟着变,多直观。
2.5 仿真实践:搭建直流电机模型
光说不练假把式。我们来看一个简单的仿真代码。这里我用Python写了一个直流电机的时域仿真,模拟阶跃电压响应。
import numpy as np
import matplotlib.pyplot as plt
# 电机参数
R = 1.0 # 电枢电阻 (Ω)
L = 0.01 # 电枢电感 (H)
Ke = 0.1 # 反电动势常数 (V/(rad/s))
Kt = 0.1 # 转矩常数 (N·m/A)
J = 0.01 # 转动惯量 (kg·m²)
B = 0.001 # 粘滞摩擦 (N·m·s/rad)
# 仿真参数
dt = 0.0001 # 步长 (s)
t_end = 2.0 # 仿真时长 (s)
t = np.arange(0, t_end, dt)
# 初始化
i = 0.0
omega = 0.0
U = 12.0 # 阶跃电压 (V)
T_load = 0.0 # 空载
# 存储数据
i_history = []
omega_history = []
for _ in t:
# 反电动势
E = Ke * omega
# 电流更新 (欧拉法)
di = (U - E - R * i) / L
i = i + di * dt
# 电磁转矩
T = Kt * i
# 转速更新
domega = (T - T_load - B * omega) / J
omega = omega + domega * dt
i_history.append(i)
omega_history.append(omega)
# 绘制结果
plt.figure(figsize=(10, 4))
plt.subplot(1,2,1)
plt.plot(t, i_history)
plt.title('电枢电流')
plt.xlabel('时间 (s)')
plt.ylabel('电流 (A)')
plt.subplot(1,2,2)
plt.plot(t, omega_history)
plt.title('转速响应')
plt.xlabel('时间 (s)')
plt.ylabel('转速 (rad/s)')
plt.tight_layout()
plt.show()
运行这段代码,你会看到电流先冲到一个峰值,然后慢慢下降;转速则像一阶系统一样,逐渐上升到稳态。这个现象背后的物理原因,就是反电动势在起作用。电流峰值对应着启动瞬间,转速为零,反电动势为零,所以电流最大。随着转速上升,反电动势增大,电流被“压”下来。
课后思考: 如果把负载转矩T_load改成0.5 N·m,电流和转速的稳态值会变成多少?你可以手动算一下,再用仿真验证。我当年就是这么一步步把直流电机吃透的。
2.6 本章小结
好,我们来捋一捋今天的内容。
- 直流电机的结构:定子、转子、换向器、电刷。
- 工作原理:左手定则(转矩)和右手定则(反电动势)。
- 数学模型:三个方程——电压方程、转矩方程、运动方程。
- 特性:转速随转矩线性下降,调压是最常用的调速方式。
下一章,我们会深入直流电机的控制策略,讲PID调参和双闭环控制。到时候我会分享一个我踩过的坑——电流环带宽设太高导致系统振荡。嗯,那都是经验啊。
今天就到这里。记住,直流电机是所有电机控制的基础,搞懂了它,后面学交流电机、永磁同步电机,你会发现很多概念都是相通的。加油!
公众号:蓝海资料掘金营,微信deep3321