永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)凭借其高效率、高功率密度和优异的动态性能,已成为工业驱动、电动汽车和家电等领域的首选电机类型。而磁场定向控制(Field-Oriented Control, FOC)则是实现PMSM高性能控制的核心技术方案。
FOC的本质是通过坐标变换,将三相静止坐标系下的交流量转换为两相旋转坐标系下的直流量,从而实现对转矩和磁场的解耦控制。这种控制方式使得PMSM能够像直流电机一样被精确控制,但又保留了交流电机的结构优势。
在实际工程应用中,速度电流双闭环结构是最常见的FOC实现方式。内环为电流环,负责快速跟踪转矩和磁链指令;外环为速度环,根据负载变化调节转矩指令。这种分层控制结构既保证了系统的动态响应,又确保了稳态精度。
一个完整的PMSM双闭环FOC系统通常包含以下关键模块:
信号流向大致为:速度给定与反馈比较后经速度PI调节器输出q轴电流参考值;d轴电流参考值通常设为零(除非采用弱磁控制);两相旋转坐标系下的电流参考值与实际值比较后,经电流PI调节器输出电压指令;最后通过SVPWM模块生成驱动逆变器的PWM信号。
坐标变换是FOC的核心数学工具,主要包括:
Clark变换:将三相静止坐标系(abc)转换为两相静止坐标系(αβ)
math复制\begin{bmatrix}
i_\alpha \\
i_\beta
\end{bmatrix}
= \frac{2}{3}
\begin{bmatrix}
1 & -\frac{1}{2} & -\frac{1}{2} \\
0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2}
\end{bmatrix}
\begin{bmatrix}
i_a \\
i_b \\
i_c
\end{bmatrix}
Park变换:将两相静止坐标系(αβ)转换为两相旋转坐标系(dq)
math复制\begin{bmatrix}
i_d \\
i_q
\end{bmatrix}
=
\begin{bmatrix}
\cos\theta & \sin\theta \\
-\sin\theta & \cos\theta
\end{bmatrix}
\begin{bmatrix}
i_\alpha \\
i_\beta
\end{bmatrix}
注意:实际编程时需要特别注意变换系数的统一(常用2/3或3/2变换),不同系数会导致功率守恒或幅值守恒的不同效果。
空间矢量PWM相比常规SPWM具有更高的直流母线电压利用率和更优的谐波特性。其实施步骤包括:
在实际DSP实现中,可以通过查表法优化计算效率。一个典型的SVPWM代码片段如下:
c复制// 以TI C2000为例的SVPWM实现
void SVPWM_Gen(float Ualpha, float Ubeta)
{
// 扇区判断
int sector = 0;
if(Ubeta > 0) sector += 1;
if(-sqrt(3)*Ualpha + Ubeta > 0) sector += 2;
if(sqrt(3)*Ualpha + Ubeta > 0) sector += 4;
// 各扇区的时间计算
switch(sector) {
case 1: // 扇区I
t1 = (sqrt(3)*Ts/Udc)*(sqrt(3)/2*Ualpha - 0.5*Ubeta);
t2 = (sqrt(3)*Ts/Udc)*Ubeta;
break;
// 其他扇区类似...
}
// 设置PWM比较值
EPwm1Regs.CMPA.half.CMPA = (Uint16)(t1*PWM_PERIOD);
EPwm2Regs.CMPA.half.CMPA = (Uint16)(t2*PWM_PERIOD);
}
电流环作为内环,需要具备快速的动态响应(通常带宽设为1-2kHz)。其设计步骤包括:
建立PMSM在dq坐标系下的电压方程:
math复制\begin{cases}
u_d = R_s i_d + L_d \frac{di_d}{dt} - \omega_e L_q i_q \\
u_q = R_s i_q + L_q \frac{di_q}{dt} + \omega_e (L_d i_d + \psi_f)
\end{cases}
忽略交叉耦合项(可通过前馈补偿),得到近似一阶模型:
math复制G_i(s) = \frac{1}{R_s + sL_{d,q}}
采用PI调节器,其传递函数为:
math复制G_{PI}(s) = K_p + \frac{K_i}{s}
根据期望带宽计算PI参数(以q轴为例):
math复制K_p = 2\pi f_{BW} L_q - R_s \\
K_i = 2\pi f_{BW} R_s
实操技巧:实际调试时可先设Ki=0,逐渐增大Kp至出现轻微振荡,然后回退20%;再加入Ki,同样方法调试。
速度环作为外环,带宽通常设为电流环的1/10左右(100-200Hz)。其设计考虑:
运动方程:
math复制T_e - T_L = J\frac{d\omega}{dt} + B\omega
其中电磁转矩:
math复制T_e = \frac{3}{2}p[\psi_f i_q + (L_d - L_q)i_d i_q]
$$
对于表贴式PMSM(Ld=Lq),转矩简化为:
math复制T_e = \frac{3}{2}p\psi_f i_q
PI参数整定方法:
math复制K_p = 2\pi f_{BW} J \\
K_i = (2\pi f_{BW})^2 J
实际工程中必须考虑PI调节器的抗饱和问题,常见方法:
对于需要自适应场合,可采用基于模型参考的自整定算法:
python复制# 简化的参数自整定伪代码
def auto_tune():
while True:
apply_step_excitation()
measure_response()
if overshoot > 20%:
reduce_Kp(10%)
elif settling_time > target:
increase_Ki(5%)
else:
break
电流采样精度直接影响FOC性能,常见方案对比:
| 方案类型 | 优点 | 缺点 | 适用场合 |
|---|---|---|---|
| 单电阻采样 | 成本低 | 需要复杂重构算法 | 低成本应用 |
| 双电阻采样 | 折中方案 | 需要中性点电压处理 | 通用场合 |
| 三电阻采样 | 信息完整 | 成本高 | 高性能驱动 |
实测发现:在低调制比时,单电阻采样会出现盲区问题,可通过注入高频信号解决。
常用位置传感器类型及处理要点:
增量式编码器:
绝对式编码器:
无传感器算法:
常见问题及解决方法:
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
| 电机振动 | 电流采样相位错误 | 检查传感器安装角度 |
| 速度波动大 | 速度环PI参数不当 | 逐步减小比例增益 |
| 过流保护 | 死区时间不足 | 示波器观察PWM互补信号 |
| 低速性能差 | 观测器参数不准 | 重新校准电机参数 |
调试心得:建议先开环运行确认基本功能正常,再逐步切换到闭环。一个实用的调试顺序是:
PMSM参数(特别是电阻和磁链)会随温度变化,可采用在线辨识算法:
math复制\hat{R}_s = \hat{R}_s + \gamma (v_d - \hat{R}_s i_d - \hat{L}_d \frac{di_d}{dt} + \omega_e \hat{L}_q i_q)i_d
其中γ为自适应增益。
MPC相比PI控制具有更好的动态性能,其基本步骤:
简化实现代码框架:
python复制def mpc_controller():
for each voltage vector:
predict_next_current()
calculate_cost()
select_best_vector()
apply_pwm()
近年来出现的基于神经网络的智能控制方法:
实测数据表明,在变负载场合,智能控制可比传统PI提升约15%的动态性能。