1. FOC控制基础:永磁同步电机数学模型、Clark变换与Park变换原理、SVPWM基本原理
各位同学,欢迎来到这门实战课。我是你们的老朋友,一个在电机控制领域摸爬滚打了十几年的工程师。
第一节课,咱们不急着上代码,也不急着调参数。先把地基打牢。FOC(磁场定向控制)这东西,说白了就是一套“让电机听话”的数学魔术。你理解了背后的物理和数学,后面调SVPWM、整PI参数,才能做到心中有数,而不是瞎蒙。
1.1 永磁同步电机(PMSM)的数学模型
先聊聊PMSM。我刚开始做电机驱动时,总觉得数学模型太抽象,什么电压方程、磁链方程,看着就头疼。后来踩过几次坑才明白——模型就是电机的“性格说明书”。
PMSM的定子跟普通电机差不多,但转子上贴了永磁体。这就带来了一个关键特性:转子磁场是固定的,不会像异步电机那样需要励磁电流。所以PMSM天生效率高、功率密度大,但也娇气——控制不好就容易失步、抖动。
咱们直接看最常用的 d-q 轴数学模型(在同步旋转坐标系下):
电压方程:
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]
这里有几个关键点,我当年就吃过亏:
- Rs:定子电阻。温度一变,它也跟着变。我遇到过冬天调试好的参数,夏天电机就嗡嗡响,查了半天发现是Rs变了。
- Ld、Lq:d轴和q轴电感。表贴式电机Ld≈Lq,内嵌式电机Ld<Lq。这个差异直接决定了你是否能用“磁阻转矩”。
- ψf:永磁体磁链。这是电机的“底牌”,温度越高它越小,高温下转矩会下降。
1.2 Clark变换与Park变换
为什么要做坐标变换?你想想看,电机里流的是三相交流电,但我们要控制的是转矩。转矩跟转子位置直接相关。把三相静止坐标系下的东西,转到跟转子一起转的d-q坐标系下,控制就变成了直流电机那样——简单、直观。
Clark变换(3相 → 2相静止)
把三相电流ia、ib、ic,投影到α-β两相静止坐标系上。公式很简单:
iα = ia
iβ = (ia + 2*ib) / √3
嗯,这里要注意,实际代码里为了归一化,通常会乘以系数。我个人习惯用等幅值变换,这样调试时数值更直观。
Park变换(静止 → 旋转)
把α-β坐标系下的值,旋转到与转子磁极对齐的d-q坐标系下。旋转角度就是转子位置角θ:
id = iα * cosθ + iβ * sinθ
iq = -iα * sinθ + iβ * cosθ
反过来,从d-q变回α-β叫反Park变换,SVPWM里要用到。
为什么要有这两个变换?说白了,就是让控制环路能“看到”转子位置。没有Park变换,你根本不知道当前电流是产生转矩还是产生励磁。
1.3 SVPWM基本原理
SVPWM,空间矢量脉宽调制。这是FOC的“执行器”。前面算出了想要的电压矢量(ud、uq),怎么让三相逆变器输出这个电压?SVPWM就是干这个的。
它的核心思想:用8个基本电压矢量(6个非零矢量 + 2个零矢量),通过合成的方式,逼近任意方向、任意大小的电压矢量。
我画了一张图,帮你理解这8个矢量和扇区的关系:
SVPWM的合成过程,我总结为三步:
- 判断扇区:根据Uα、Uβ的大小关系,确定目标矢量落在哪个扇区。
- 计算作用时间:算出相邻两个非零矢量(Tx、Ty)和零矢量(T0)各自该作用多久。
- 生成PWM占空比:根据Tx、Ty、T0,算出三相桥臂的导通时间,输出PWM波。
最后,我把FOC控制的核心流程整理成一张表,方便你对照:
| 步骤 | 输入 | 处理 | 输出 |
|---|---|---|---|
| 1. 电流采样 | ia, ib, ic | ADC采集,低通滤波 | 三相电流值 |
| 2. Clark变换 | ia, ib | 3相→2相静止 | iα, iβ |
| 3. Park变换 | iα, iβ, θ | 静止→旋转 | id, iq |
| 4. PI调节 | id_ref, iq_ref, id, iq | 电流环PI控制 | ud, uq |
| 5. 反Park变换 | ud, uq, θ | 旋转→静止 | uα, uβ |
| 6. SVPWM | uα, uβ | 扇区判断+时间计算 | 三相PWM占空比 |
嗯,这一章的内容就到这里。数学公式看着多,但真正写代码时,你会发现每一步都是固定的套路。后面几章,我们会把这些公式一行一行敲进GD32里,再配上示波器看波形——那才是真正有意思的部分。