第三章 电机模型建立:直流电机数学模型、交流伺服电机模型、参数辨识方法

做运动控制这些年,我越来越觉得——电机模型就是整个控制系统的“灵魂”。你想想看,如果你连被控对象长什么样都不清楚,那PID参数调得再好也是瞎蒙。这一章,咱们就聊聊直流电机和交流伺服电机的数学模型,以及怎么把那些看不见的参数给“揪”出来。

3.1 直流电机的数学模型

直流电机虽然“老”,但它的模型是理解所有电机的基础。说白了,它就是电压、电流、转速、转矩之间的几个关系式。

3.1.1 电枢回路方程

直流电机电枢回路的电压平衡方程,其实就是一个KVL:

Ua = Ra * Ia + La * dIa/dt + Ea

其中:

  • Ua:电枢电压(V)
  • Ra:电枢电阻(Ω)
  • La:电枢电感(H)
  • Ia:电枢电流(A)
  • Ea:反电动势(V)

反电动势Ea与转速成正比:Ea = Ke * ω,Ke是反电动势常数,ω是角速度。

关键点:反电动势是直流电机模型里最容易忽略的项。我在项目中遇到过有人把反电动势当成干扰直接忽略,结果高速时电流环根本稳不住。记住,反电动势是电机自身的“发电机效应”,不是外部扰动。

3.1.2 转矩平衡方程

电机的电磁转矩:Te = Kt * Ia,Kt是转矩常数。在SI单位制下,Ke和Kt数值相等(仅单位不同)。

机械运动方程:

Te - Tl = J * dω/dt + B * ω

这里:

  • Tl:负载转矩
  • J:转动惯量
  • B:粘性阻尼系数

我的习惯:做仿真时,我一般先把B设成0,看看纯惯量系统的响应。等基本调通了,再加阻尼进去。这样能快速定位问题出在模型还是控制器。

3.1.3 状态空间表达式

把上面两个方程联立,取状态变量为[Ia, ω],输入为Ua,输出为ω,得到:

dIa/dt = -(Ra/La)*Ia - (Ke/La)*ω + (1/La)*Ua
dω/dt  = (Kt/J)*Ia - (B/J)*ω - (1/J)*Tl

写成矩阵形式,就是标准的二阶系统。嗯,这里要注意,如果La很小(比如永磁直流电机),可以忽略电感,模型降为一阶。但做高精度控制时,我建议保留电感项。

3.2 交流伺服电机模型

交流伺服电机,说白了就是永磁同步电机(PMSM)。它的模型比直流电机复杂,因为有三相绕组,还有旋转坐标变换。

3.2.1 三相静止坐标系模型

三相电压方程:

Ua = Rs*Ia + dψa/dt
Ub = Rs*Ib + dψb/dt
Uc = Rs*Ic + dψc/dt

磁链方程里包含自感和互感,还有永磁体产生的磁链。这玩意儿直接算,头都大。所以实际工程中,没人用三相模型做控制。

3.2.2 旋转坐标系(dq轴)模型

经过Clark变换和Park变换,把三相交流量变成两相直流量。这就是矢量控制的基础。

Ud = Rs*Id + Ld*dId/dt - ωe*Lq*Iq
Uq = Rs*Iq + Lq*dIq/dt + ωe*(Ld*Id + ψf)

电磁转矩:Te = 1.5 * p * [ψf*Iq + (Ld - Lq)*Id*Iq]

其中:

  • Ld, Lq:d轴和q轴电感
  • ψf:永磁体磁链
  • p:极对数
  • ωe:电角速度(ωe = p * ωm)

避坑指南:我曾经在调试一个高速主轴时,发现转矩输出总是不对。查了两天才发现,我把Ld和Lq的值搞反了。对于表贴式PMSM,Ld≈Lq;但对于内置式,Ld < Lq,而且差别还挺大。这个搞反了,MTPA(最大转矩电流比)控制就全乱套了。

3.2.3 模型简化与工程应用

实际工程中,我们通常做以下简化:

  • 忽略铁损和涡流损耗
  • 假设三相完全对称
  • 忽略磁饱和(除非做弱磁控制)

对于表贴式PMSM(Ld = Lq),转矩公式简化为:Te = 1.5 * p * ψf * Iq。你看,这就和直流电机很像了——转矩和q轴电流成正比。所以我说,矢量控制的核心思想,就是把交流电机“变成”直流电机来控制。

3.3 参数辨识方法

模型有了,但参数从哪来?厂家给的datasheet往往不准,或者干脆没有。这时候就得自己动手“测”了。

3.3.1 电阻和电感辨识

直流电阻测量:给电机施加一个直流电压,测稳态电流。R = U / I。注意,要测两相之间的电阻,然后除以2得到单相电阻。

电感测量:给电机施加一个高频电压信号(通常几百Hz到几kHz),测电流响应。通过阻抗的幅值和相位,算出Ld和Lq。

我的做法:用锁相环跟踪电流响应,比直接FFT更准。我在一个项目中用这个方法,把电感辨识误差从15%降到了3%以内。

3.3.2 反电动势常数和磁链辨识

让电机以恒定转速空转(用另一台电机拖动,或者让电机自己转),测反电动势的幅值。

Ke = Ea / ω
ψf = Ke / p

注意,反电动势是线电压,要换算成相电压。我习惯用示波器抓波形,然后取基波幅值,因为实际波形里谐波含量不少。

3.3.3 转动惯量和阻尼辨识

这个稍微麻烦点。常用的方法是“加减速法”:

  1. 给电机一个阶跃转矩指令,记录转速响应曲线
  2. 从曲线上提取时间常数和稳态值
  3. 用最小二乘法拟合出J和B

更精确的做法是“扫频法”:给电机施加不同频率的正弦转矩,测转速响应,然后拟合出传递函数。我在做高精度转台时用过这个方法,效果不错,就是费时间。

警告:参数辨识时,一定要确保电机处于安全状态。我曾经有一次忘记限流,结果辨识过程中电流过大,把驱动器的保险烧了。所以,做辨识之前,先把电流限幅设到额定值的50%,安全第一。

3.4 知识体系总览

下面这张图,是我自己总结的电机建模与参数辨识的完整流程。你照着这个思路走,基本不会跑偏。

电机建模与参数辨识知识体系 直流电机模型 交流伺服电机模型 电枢回路方程 + 转矩平衡方程 Ua = Ra·Ia + La·dIa/dt + Ke·ω Te - Tl = J·dω/dt + B·ω dq轴电压方程 + 转矩方程 Ud = Rs·Id + Ld·dId/dt - ωe·Lq·Iq Te = 1.5·p·[ψf·Iq + (Ld-Lq)·Id·Iq] 参数辨识方法 电阻/电感:直流+高频法 反电动势:空载转速法 惯量/阻尼:加减速/扫频法

这张图把整个流程串起来了。从左到右,先确定电机类型,再建立对应的数学模型,最后用辨识方法把参数填进去。每一步都有坑,但按这个框架走,至少不会漏掉关键环节。

总结一下:电机模型不是越复杂越好。我见过有人把模型建得特别精细,考虑了温度、磁饱和、齿槽效应,结果仿真跑一天,实际控制效果还不如一个简单的二阶模型。我的建议是——先建一个能用的模型,把参数辨识准了,再根据需要逐步加细节。别一开始就想着“完美”,工程上“够用”就行。


专注资料整理