2. 电机数学模型:直流电机等效模型、转矩方程、转速方程、传递函数推导
做电机控制,说白了就是在跟数学模型打交道。你想想看,没有模型,你怎么设计控制器?怎么调参数?我刚开始带团队那会儿,有个小伙子上来就调PID,结果电机抖得像筛子一样。后来我让他先把直流电机的等效模型画出来,把方程列清楚,问题一下子就明朗了。
这一节,我们就来把直流电机的数学模型彻底搞明白。我会从最基础的等效电路讲起,一步步推导出转矩方程、转速方程,最后给出传递函数。嗯,这些都是后面做双闭环控制的基石。
2.1 直流电机的等效电路模型
直流电机,尤其是他励式直流电机,它的等效电路其实很简单。我个人习惯把它拆成两部分来看:电枢回路和励磁回路。
电枢回路就是我们加电压、通电流的那一边。励磁回路是产生磁场的那一边。对于他励电机,这两个回路是独立的。
下面这张图,是我用SVG画的直流电机等效模型。你看一眼就明白了。
从图上你能看到,电枢回路里串联了电阻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大一个数量级。所以,这个二阶系统往往可以近似成一阶系统来处理。
注意: 近似成一阶系统时,要确保你的控制带宽远低于电气时间常数的倒数。否则,高频特性会带来相位滞后,导致系统不稳定。我曾经在一个高速主轴电机项目上吃过这个亏,当时为了追求响应速度,把电流环带宽设得太高,结果系统振荡了。后来把电气时间常数重新算了一遍,才把问题解决。
为了让你更直观地理解整个模型的结构,我画了一张框图。
这张框图,说白了就是整个直流电机模型的骨架。你看,从电压到电流,电流到转矩,转矩减去负载后变成转速,转速又通过反电动势反馈回去。这就是一个典型的闭环系统——虽然电机本身还没有控制器,但它内部已经存在反电动势这个自然反馈了。
2.5 参数获取与工程实践
模型有了,方程有了,传递函数也有了。但你可能要问:这些参数怎么来?
我一般用三种方法:
- 查手册:电机厂商通常会提供R、L、Kt、J等参数。但要注意,手册上的值往往是标称值,实际会有偏差。
- 实验测量:用LCR表测电感和电阻,用堵转实验测Kt,用空载减速实验测J和B。这个方法最准,但需要动手。
- 参数辨识:给电机输入一个激励信号(比如阶跃电压),采集转速响应,然后用最小二乘法拟合出参数。这个方法我在做自适应控制时经常用。
我的建议: 刚开始做项目时,先用手册参数搭模型,然后用实验数据校正。不要一上来就搞参数辨识,容易把自己绕进去。我记得第一次做参数辨识时,花了整整一周才把算法调通,结果发现是采样频率设低了。嗯,都是教训。
好了,这一节的内容就到这里。直流电机的数学模型,是后面所有控制算法的基础。你把它吃透了,后面的电流环、转速环设计就会轻松很多。
公众号:蓝海资料掘金营,微信deep3321