2. 电机数学模型:直流电机等效模型、转矩方程、转速方程、传递函数推导

做电机控制,说白了就是在跟数学模型打交道。你想想看,没有模型,你怎么设计控制器?怎么调参数?我刚开始带团队那会儿,有个小伙子上来就调PID,结果电机抖得像筛子一样。后来我让他先把直流电机的等效模型画出来,把方程列清楚,问题一下子就明朗了。

这一节,我们就来把直流电机的数学模型彻底搞明白。我会从最基础的等效电路讲起,一步步推导出转矩方程、转速方程,最后给出传递函数。嗯,这些都是后面做双闭环控制的基石。

2.1 直流电机的等效电路模型

直流电机,尤其是他励式直流电机,它的等效电路其实很简单。我个人习惯把它拆成两部分来看:电枢回路和励磁回路。

电枢回路就是我们加电压、通电流的那一边。励磁回路是产生磁场的那一边。对于他励电机,这两个回路是独立的。

下面这张图,是我用SVG画的直流电机等效模型。你看一眼就明白了。

直流电机等效电路(他励式) 电枢回路: R L E U 励磁回路: Rf Lf Uf 电枢电阻R、电感L 反电动势E = Ke·ω 励磁电阻Rf、电感Lf

从图上你能看到,电枢回路里串联了电阻R和电感L,还有一个反电动势E。这个反电动势,是电机转起来之后自己产生的,它跟转速成正比。励磁回路那边,就是电阻Rf和电感Lf,外加一个励磁电压Uf。

核心公式——电枢回路电压方程:

U = R·i + L·(di/dt) + E

其中,E = Ke·ω,Ke是反电动势常数,ω是电机角速度。

这个方程,就是整个电机模型的起点。我在项目里调试过很多次,每次遇到电流震荡,第一反应就是回去检查这个方程里的R和L参数对不对。有一次,一个电机在低速时电流纹波特别大,查了半天,结果是电枢电感L的标称值跟实际差了30%。嗯,这种事情很常见。

2.2 转矩方程

电机为什么能转?说白了就是电磁力产生了转矩。直流电机的电磁转矩,跟电枢电流和磁场强度直接相关。

对于他励直流电机,励磁电流If是恒定的,所以磁场也是恒定的。这时候,电磁转矩Te就只跟电枢电流i成正比。

转矩方程:

Te = Kt · i

Kt是转矩常数,单位是Nm/A。在SI单位制下,Kt = Ke(数值上相等)。

你可能会问,为什么Kt等于Ke?我刚开始学的时候也困惑过。其实这是能量守恒的必然结果。电机把电能转换成机械能,功率从电枢侧看是E·i,从机械侧看是Te·ω。两者相等,自然就推出Kt = Ke了。

不过,电机轴上输出的转矩,并不是全部用来带负载的。还有一部分要克服摩擦和风阻,另一部分用来加速转子本身。所以,我们还需要一个机械运动方程。

机械运动方程:

Te - Tl = J · (dω/dt) + B · ω

其中:

  • Tl:负载转矩
  • J:转动惯量(包括电机转子和负载)
  • B:粘性摩擦系数

这个方程,我建议你把它刻在脑子里。双闭环控制的外环——转速环,就是基于这个方程设计的。我在做伺服驱动器的时候,遇到过一个问题:电机在高速运行时转速波动很大。后来发现是粘性摩擦系数B被忽略了,加上之后模型就准了。

2.3 转速方程

转速方程,其实就是把电压方程和转矩方程联立起来,消去电流这个中间变量。我们来看看怎么推导。

首先,从转矩方程得到电流:

i = Te / Kt

代入电枢回路电压方程:

U = R·(Te/Kt) + L·(d/dt)(Te/Kt) + Ke·ω

再把机械运动方程中的Te代入:

Te = J·(dω/dt) + B·ω + Tl

整理一下,就得到了转速的微分方程。这个过程有点繁琐,我直接给你最终结果。

转速微分方程(空载,Tl=0时):

U = (R·J/Kt)·(dω/dt) + (R·B/Kt + Ke)·ω + (L·J/Kt)·(d²ω/dt²) + (L·B/Kt)·(dω/dt)

看着有点复杂对吧?别急,实际工程中我们经常做简化。因为电枢电感L通常很小,高频分量可以忽略。所以,我们一般忽略含有L的项。

工程简化后的转速方程:

U ≈ (R·J/Kt)·(dω/dt) + (R·B/Kt + Ke)·ω

这个简化,在大多数工业应用中是成立的。我做过一个项目,电机功率5kW,电感只有0.5mH,忽略L之后模型误差不到2%。

2.4 传递函数推导

有了微分方程,传递函数就好办了。我们做拉普拉斯变换,把时域方程变成频域方程。

先看电枢回路电压方程(拉氏变换后):

U(s) = (R + L·s)·I(s) + Ke·ω(s)

再看机械运动方程(拉氏变换后):

Kt·I(s) = (J·s + B)·ω(s) + Tl(s)

把这两个方程联立,消去I(s),就能得到从电压U(s)到转速ω(s)的传递函数。

直流电机传递函数(空载,Tl=0):

G(s) = ω(s) / U(s) = Kt / [(L·s + R)·(J·s + B) + Kt·Ke]

这个传递函数,是一个二阶系统。分母是s的二次多项式。我们把它写成标准形式:

G(s) = K / (τm·τe·s² + τm·s + 1)

其中:

  • τe = L/R:电气时间常数
  • τm = R·J/(Kt·Ke):机电时间常数
  • K = 1/Ke:稳态增益

我个人的经验是,τe一般在几毫秒到几十毫秒,τm在几十毫秒到几百毫秒。τm通常比τe大一个数量级。所以,这个二阶系统往往可以近似成一阶系统来处理。

注意: 近似成一阶系统时,要确保你的控制带宽远低于电气时间常数的倒数。否则,高频特性会带来相位滞后,导致系统不稳定。我曾经在一个高速主轴电机项目上吃过这个亏,当时为了追求响应速度,把电流环带宽设得太高,结果系统振荡了。后来把电气时间常数重新算了一遍,才把问题解决。

为了让你更直观地理解整个模型的结构,我画了一张框图。

直流电机数学模型框图 1/(R+Ls) U(s) Kt + - Tl(s) 1/(Js+B) ω(s) Ke 输入:电枢电压U(s) 输出:转速ω(s) 反馈:反电动势Ke·ω(s)

这张框图,说白了就是整个直流电机模型的骨架。你看,从电压到电流,电流到转矩,转矩减去负载后变成转速,转速又通过反电动势反馈回去。这就是一个典型的闭环系统——虽然电机本身还没有控制器,但它内部已经存在反电动势这个自然反馈了。

2.5 参数获取与工程实践

模型有了,方程有了,传递函数也有了。但你可能要问:这些参数怎么来?

我一般用三种方法:

  1. 查手册:电机厂商通常会提供R、L、Kt、J等参数。但要注意,手册上的值往往是标称值,实际会有偏差。
  2. 实验测量:用LCR表测电感和电阻,用堵转实验测Kt,用空载减速实验测J和B。这个方法最准,但需要动手。
  3. 参数辨识:给电机输入一个激励信号(比如阶跃电压),采集转速响应,然后用最小二乘法拟合出参数。这个方法我在做自适应控制时经常用。

我的建议: 刚开始做项目时,先用手册参数搭模型,然后用实验数据校正。不要一上来就搞参数辨识,容易把自己绕进去。我记得第一次做参数辨识时,花了整整一周才把算法调通,结果发现是采样频率设低了。嗯,都是教训。

好了,这一节的内容就到这里。直流电机的数学模型,是后面所有控制算法的基础。你把它吃透了,后面的电流环、转速环设计就会轻松很多。

公众号:蓝海资料掘金营,微信deep3321