1. 电机控制基础回顾:永磁同步电机(PMSM)数学模型、坐标变换(Clark/Park)、电压方程与转矩方程
各位同学,欢迎来到《弱磁控制实战与SVPWM应用》的第一章。
说实话,我见过太多工程师一上来就调SVPWM波形,结果电机嗡嗡响就是不转。为什么?因为基础没打牢。今天咱们花点时间,把PMSM的数学模型和坐标变换彻底捋清楚。这些东西你搞懂了,后面弱磁、MTPA什么的,就是水到渠成的事。
1.1 永磁同步电机到底长什么样?
先说说PMSM的结构。转子是永磁体,定子是三相绕组。你给它通三相交流电,定子产生旋转磁场,拽着转子跑。就这么简单。
但实际控制起来,麻烦就来了——三相系统是强耦合、非线性的。你想想看,A相电流的变化会影响B相和C相,而且转子位置一变,电感也跟着变。直接在三相坐标系下算控制量?那简直是噩梦。
核心思路: 把三相交流电机,等效成直流电机来控制。怎么做?坐标变换。
1.2 坐标变换:从ABC到αβ,再到dq
坐标变换分两步走。我个人习惯叫它「降维打击」。
1.2.1 Clark变换(3相 → 2相静止)
把三相ABC坐标系,投影到两相静止的αβ坐标系上。说白了,就是把三个绕组的磁场,用两个垂直的绕组来等效。
数学表达式很简单(等幅值变换):
// Clark变换
iα = iA
iβ = (iA + 2*iB) / √3
注意,这里我用了等幅值变换。有些教材用等功率变换,系数会差一个√(2/3)。我个人建议做工程用等幅值,后面算SVPWM的时候方便,不用来回乘系数。
我的经验: 实际代码里,iA + iB + iC = 0这个条件经常用。所以你可以只采样两相电流,第三相算出来就行。省一个ADC通道,不香吗?
1.2.2 Park变换(2相静止 → 2相旋转)
Clark变换完了,还是交流量。再做一个Park变换,把αβ坐标系旋转起来,让它跟着转子走。这样,交流量就变成了直流量。
// Park变换
id = iα * cosθ + iβ * sinθ
iq = -iα * sinθ + iβ * cosθ
θ是转子位置角,一般用编码器或者霍尔传感器读出来。
为什么要这么做?因为id和iq是直流量,你用PI控制器去跟踪直流参考值,没有静差,稳得很。
注意: 角度θ的零点定义很关键。我见过有人把编码器Z信号和电机反电动势零点没对齐,结果id、iq算出来全是错的,电机一加载就抖。建议上电先做一次角度校准。
1.3 PMSM的数学模型(dq坐标系下)
经过Clark和Park变换,PMSM的模型就清爽多了。咱们直接看dq坐标系下的电压方程和磁链方程。
1.3.1 电压方程
ud = Rs * id + Ld * (did/dt) - ωe * Lq * iq
uq = Rs * iq + Lq * (diq/dt) + ωe * (Ld * id + ψf)
这里:
- ud、uq:d轴和q轴电压(你要控制的量)
- id、iq:d轴和q轴电流
- Rs:定子电阻
- Ld、Lq:d轴和q轴电感(注意,凸极电机Ld ≠ Lq)
- ωe:电角速度
- ψf:永磁体磁链
你仔细看这两个方程。ud方程里有个 -ωe * Lq * iq,uq方程里有个 +ωe * Ld * id。这就是交叉耦合项。速度越高,耦合越强。如果不做解耦控制,高速时id和iq会互相打架。
避坑指南: 我曾经在一个高速风机项目里,没做解耦,结果转速一上5000rpm,电流环就开始震荡。后来加了前馈解耦,问题立刻解决。所以,超过额定转速的场合,解耦是必须的。
1.3.2 磁链方程
ψd = Ld * id + ψf
ψq = Lq * iq
d轴磁链由两部分组成:id产生的磁链 + 永磁体磁链。q轴磁链只由iq产生。
1.3.3 转矩方程
这是控制的核心目标:
Te = 1.5 * pn * [ψf * iq + (Ld - Lq) * id * iq]
其中pn是极对数。
这个公式包含两项:
- ψf * iq:永磁转矩,跟iq成正比。这是主要的出力项。
- (Ld - Lq) * id * iq:磁阻转矩。对于凸极电机(Ld < Lq),这一项是负的。你给一个负的id,就能产生额外的正向转矩。
这就是弱磁和MTPA(最大转矩电流比)的理论基础。后面几章我们会详细讲。
1.4 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你对照着看,思路会更清晰。
1.5 小结
好了,这一章的内容就这些。咱们回顾一下重点:
- Clark变换:ABC → αβ,把三相变两相。
- Park变换:αβ → dq,把交流变直流。
- 电压方程:记住交叉耦合项,高速必须解耦。
- 转矩方程:永磁转矩 + 磁阻转矩,弱磁和MTPA的根源。
这些公式你最好手推一遍。我在带团队的时候,要求每个新人都要默写Clark和Park变换矩阵。别嫌烦,基础越扎实,后面调参越顺手。
一个小建议: 学完这章,去你的开发板上跑一下Clark和Park变换的代码。用DAC输出id和iq的波形,看看是不是直流量。亲眼看到波形从正弦波变成直线,那种感觉,比看十遍书都管用。