3、矢量控制核心:电流环PI调节器设计、速度环PI调节器设计、SVPWM调制原理

矢量控制,说白了就是让电机像直流电机一样好使。我刚开始接触PMSM控制时,总觉得这名字挺唬人。后来做多了才发现,核心就三件事:电流怎么控、速度怎么稳、电压怎么发。今天咱们就把这三块掰开揉碎了讲。

3.1 电流环PI调节器设计

电流环是整个控制系统的内环,也是响应最快的一环。我个人习惯把电流环比作「肌肉反应」——它必须快、准、狠。

核心公式:

U_d = Kp_d * (I_d_ref - I_d_fb) + Ki_d * ∫(I_d_ref - I_d_fb)dt
U_q = Kp_q * (I_q_ref - I_q_fb) + Ki_q * ∫(I_q_ref - I_q_fb)dt

这里有个坑,我踩过好几次。很多人直接把Kp和Ki当常数调,其实不对。电流环的PI参数跟电机参数强相关。理论上,我们可以用工程整定法:

参数 推荐整定方法 我的经验值
Kp_d Ld * ω_c (ω_c为电流环带宽) 一般取500~2000 rad/s
Ki_d Rs * ω_c 跟电机内阻相关
Kp_q Lq * ω_c Lq一般比Ld大
Ki_q Rs * ω_c 跟Kp_q配合使用

实战技巧:我在项目中遇到过电流震荡的问题。后来发现是采样延迟没处理好。建议在DSP中做一拍延迟补偿,也就是把当前周期的参考值跟上一周期的反馈值做差。效果立竿见影。

3.2 速度环PI调节器设计

速度环是外环,它给电流环发指令。你想想看,速度环要是抖一下,电流环就得跟着折腾半天。所以速度环的设计原则是:稳字当头。

速度环的PI公式跟电流环类似,但有个关键区别——速度环的输出是电流环的参考值:

I_q_ref = Kp_speed * (ω_ref - ω_fb) + Ki_speed * ∫(ω_ref - ω_fb)dt

嗯,这里要注意。速度环的带宽一般取电流环的1/5到1/10。为什么?因为外环必须比内环慢,否则系统会不稳定。我曾经试过把速度环带宽设到电流环的一半,结果电机嗡嗡响,像在唱歌。

避坑指南:我曾经在调试高速电机时,发现速度环积分饱和特别严重。电机从零速加速到额定转速,积分项已经飞到天上去了。解决办法是加抗饱和(Anti-Windup)机制。我常用的方法是:当PI输出限幅时,停止积分累加。代码实现很简单:

if (output >= LIMIT_MAX || output <= LIMIT_MIN) {
    integral = integral;  // 冻结积分
} else {
    integral += Ki * error * Ts;
}

3.3 SVPWM调制原理

SVPWM,全称是空间矢量脉宽调制。说白了,就是怎么用六个开关管拼出任意方向的电压矢量。我刚开始学的时候,觉得这东西比FOC还难理解。后来画了个矢量图,一下子就通了。

SVPWM 空间矢量与扇区划分 V1(100) V2(110) V3(010) V4(011) V5(001) V6(101) V0/V7 扇区Ⅰ 扇区Ⅱ 扇区Ⅲ 扇区Ⅳ 扇区Ⅴ 扇区Ⅵ U_ref θ 基本矢量 参考矢量

SVPWM的核心步骤其实就三步:

  1. 判断扇区:根据Uα和Uβ算出当前电压矢量在哪个扇区
  2. 计算作用时间:算出相邻两个基本矢量的作用时间T1和T2
  3. 生成PWM波:根据T1、T2和零矢量的分配,生成三相互补的PWM信号

扇区判断的代码,我一般这么写:

// 扇区判断函数
int svpwm_sector_calc(float Ualpha, float Ubeta) {
    float U1 = Ubeta;
    float U2 = 0.866f * Ualpha - 0.5f * Ubeta;
    float U3 = -0.866f * Ualpha - 0.5f * Ubeta;
    
    int sector = 0;
    if (U1 > 0) sector |= 1;
    if (U2 > 0) sector |= 2;
    if (U3 > 0) sector |= 4;
    
    return sector;
}

我的经验:SVPWM的调制比最高能到0.866,比SPWM的0.707高了不少。这意味着同样的直流母线电压,SVPWM能让电机跑得更快。我在一个风机项目里,就是靠SVPWM把转速上限提了15%,省了一级升压成本。

3.4 三者的配合关系

电流环、速度环、SVPWM,这三者不是孤立的。我画个简单的流程图你就明白了:

速度环PI 电流环PI SVPWM 电流/速度反馈

你看,速度环算出来给电流环,电流环算出来给SVPWM,SVPWM再驱动逆变器。这个链条上任何一个环节出问题,电机都跑不顺。

重要提醒:调试顺序一定要从内到外。先调好SVPWM,确保能发出正确的电压矢量。再调电流环,让电流能快速跟踪指令。最后才调速度环。我见过有人一上来就调速度环,结果电流环还在震荡,速度环怎么调都调不好。

好了,这一章的内容就到这。矢量控制的核心就是这三块,吃透了它们,后面的弱磁控制、MTPA控制都是锦上添花。


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