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 调速方法

直流电机有三种基本调速方式:

  1. 调压调速:改变电枢电压U。这是最常用的方法,效率高,调速范围宽。
  2. 调磁调速:改变励磁电流,从而改变磁通。弱磁升速,但转矩会下降。
  3. 调电阻调速:在电枢回路串电阻。这个方法效率低,现在基本不用了。

我个人最推荐调压调速。为什么?因为简单、线性、可控性好。你想想看,用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