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的核心步骤其实就三步:
- 判断扇区:根据Uα和Uβ算出当前电压矢量在哪个扇区
- 计算作用时间:算出相邻两个基本矢量的作用时间T1和T2
- 生成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,这三者不是孤立的。我画个简单的流程图你就明白了:
你看,速度环算出来给电流环,电流环算出来给SVPWM,SVPWM再驱动逆变器。这个链条上任何一个环节出问题,电机都跑不顺。
重要提醒:调试顺序一定要从内到外。先调好SVPWM,确保能发出正确的电压矢量。再调电流环,让电流能快速跟踪指令。最后才调速度环。我见过有人一上来就调速度环,结果电流环还在震荡,速度环怎么调都调不好。
好了,这一章的内容就到这。矢量控制的核心就是这三块,吃透了它们,后面的弱磁控制、MTPA控制都是锦上添花。
公众号:蓝海资料掘金营,微信deep3321