1. 永磁同步电机无传感器控制概述
永磁同步电机(PMSM)凭借其高效率、高功率密度和优异的动态性能,已成为工业自动化、新能源汽车等领域的核心动力装置。传统控制方案依赖机械式位置传感器(如编码器、旋转变压器),但这些传感器不仅增加了系统成本和体积,还在恶劣环境下容易出现可靠性问题。
无传感器控制技术通过算法估算转子位置和速度,完全省去了物理传感器。在众多无传感器控制方法中,脉振高频注入(High-Frequency Injection, HFI)法特别适合零速和低速工况,解决了传统反电动势法在低速区域失效的痛点。
关键提示:HFI方法依赖于电机的凸极效应(Ld≠Lq),因此对内置式永磁同步电机(IPMSM)效果最佳,而表贴式永磁电机(SPMSM)由于凸极率低,需要特殊处理。
2. 电机数学模型构建
2.1 坐标系与基本方程
建立准确的电机数学模型是实现无传感器控制的基础。我们采用静止α-β坐标系下的状态方程:
电压方程:
[
\begin{cases}
u_{\alpha} = R_s i_{\alpha} + \frac{d\psi_{\alpha}}{dt} \
u_{\beta} = R_s i_{\beta} + \frac{d\psi_{\beta}}{dt}
\end{cases}
]
磁链方程:
[
\begin{cases}
\psi_{\alpha} = L_s i_{\alpha} + \psi_f \cos\theta \
\psi_{\beta} = L_s i_{\beta} - \psi_f \sin\theta
\end{cases}
]
电磁转矩方程:
[
T_e = \frac{3}{2}p[\psi_f(i_{\alpha}\sin\theta - i_{\beta}\cos\theta) + (L_d - L_q)i_{\alpha}i_{\beta}\sin2\theta]
]
其中各参数物理意义:
- (R_s):定子相电阻(Ω)
- (L_d, L_q):d-q轴电感(H)
- (\psi_f):永磁体磁链(Wb)
- (p):电机极对数
- (\theta):转子电角度(rad)
2.2 基于Python的实时仿真模型
python复制import numpy as np
class PMSM_Model:
def __init__(self):
# 电机参数初始化
self.Rs = 1.5 # 定子电阻(Ω)
self.Ld = 0.025 # d轴电感(H)
self.Lq = 0.035 # q轴电感(H)
self.psi_f = 0.175 # 永磁磁链(Wb)
self.p = 4 # 极对数
self.J = 0.01 # 转动惯量(kg·m²)
# 状态变量
self.i_alpha = 0
self.i_beta = 0
self.theta = 0
self.omega = 0
def update(self, u_alpha, u_beta, load_torque, dt):
# 计算当前电感(考虑饱和效应)
Ls = (self.Ld + self.Lq)/2 + (self.Ld - self.Lq)/2*np.cos(2*self.theta)
# 磁链计算
psi_alpha = Ls * self.i_alpha + self.psi_f * np.cos(self.theta)
psi_beta = Ls * self.i_beta - self.psi_f * np.sin(self.theta)
# 电流微分
di_alpha = (u_alpha - self.Rs*self.i_alpha + self.omega*psi_beta)/Ls
di_beta = (u_beta - self.Rs*self.i_beta - self.omega*psi_alpha)/Ls
# 状态更新
self.i_alpha += di_alpha * dt
self.i_beta += di_beta * dt
# 转矩计算
Te = 1.5*self.p*(self.psi_f*(self.i_alpha*np.sin(self.theta) -
self.i_beta*np.cos(self.theta)) +
(self.Ld-self.Lq)*self.i_alpha*self.i_beta*np.sin(2*self.theta))
# 机械运动
self.omega += (Te - load_torque - 0.1*self.omega)/self.J * dt
self.theta += self.omega * dt
return self.i_alpha, self.i_beta, self.theta, self.omega
建模经验:实际电机参数会随温度、饱和度变化,工业应用中需要在线参数辨识。上述模型加入了简化的电感饱和效应(Ls随θ变化),更接近真实电机特性。
3. 脉振高频注入法实现
3.1 基本原理与信号注入
HFI方法通过在控制电压上叠加高频信号(通常500Hz-2kHz),利用电机磁路不对称性产生包含位置信息的高频电流响应。注入信号形式为:
[
\begin{cases}
u_{h\alpha} = U_h \cos(\omega_h t) \
u_{h\beta} = U_h \sin(\omega_h t)
\end{cases}
]
其中:
- (U_h):注入电压幅值(通常为额定电压的5-10%)
- (\omega_h):注入信号角频率
3.2 位置信息提取流程
- 高频响应分离:通过带通滤波器从总电流中提取高频分量
- 解调处理:将高频电流与注入信号相乘
- 位置误差提取:对解调信号进行低通滤波
- 位置估算:通过锁相环(PLL)或观测器得到最终位置
python复制class HFI_Estimator:
def __init__(self, f_h=1000, fs=10e3):
self.wh = 2*np.pi*f_h # 注入频率(rad/s)
self.fs = fs # 采样频率(Hz)
# 滤波器状态
self.bpf_alpha = [0,0] # 带通滤波器状态
self.bpf_beta = [0,0]
self.lpf_alpha = 0 # 低通滤波器状态
self.lpf_beta = 0
# PLL参数
self.theta_est = 0
self.omega_est = 0
self.kp_pll = 100
self.ki_pll = 5000
def update(self, i_alpha, i_beta, t):
# 带通滤波提取高频电流
i_h_alpha = self.bandpass_filter(i_alpha, self.bpf_alpha)
i_h_beta = self.bandpass_filter(i_beta, self.bpf_beta)
# 同步解调
s_alpha = i_h_alpha * np.cos(self.wh*t)
s_beta = i_h_beta * np.sin(self.wh*t)
# 低通滤波
self.lpf_alpha = 0.99*self.lpf_alpha + 0.01*s_alpha
self.lpf_beta = 0.99*self.lpf_beta + 0.01*s_beta
# PLL跟踪
error = self.lpf_alpha*np.sin(self.theta_est) - self.lpf_beta*np.cos(self.theta_est)
self.omega_est += self.ki_pll * error / self.fs
self.theta_est += (self.omega_est + self.kp_pll*error) / self.fs
return self.theta_est, self.omega_est
def bandpass_filter(self, x, state):
# 二阶IIR带通滤波器实现
b0, b1, b2 = 0.02, 0, -0.02
a1, a2 = -1.98, 0.98
y = b0*x + b1*state[0] + b2*state[1] - a1*state[0] - a2*state[1]
state[1] = state[0]
state[0] = y
return y
3.3 参数选择指南
-
注入频率选择:
- 应远高于基波频率(至少10倍)
- 避开控制系统带宽和机械谐振频率
- 典型值:500Hz-2kHz
-
注入幅值权衡:
- 过小:信噪比低,位置估算不准
- 过大:引起额外损耗和转矩脉动
- 推荐:5-10%额定电压
-
滤波器设计要点:
- 带通滤波器带宽:±50Hz around ωh
- 低通滤波器截止频率:应低于ωh但高于最大转速对应频率
4. 系统集成与实验验证
4.1 完整控制框图
code复制[速度指令] → [速度PI控制器] → [电流指令]
↓
[HFI信号] → [电压叠加] → [PWM发生器] → [逆变器] → [PMSM]
↑ ↓
[位置估算] ← [信号处理] ← [电流采样]
4.2 实验调试步骤
-
开环测试:
- 只注入HF信号,观察高频电流响应
- 验证带通滤波器效果
-
静态位置估算:
- 锁定转子,验证位置估算精度
- 调整PLL参数使收敛速度与稳定性平衡
-
低速运行测试:
- 0.5-5%额定转速下验证跟踪性能
- 检查转矩脉动水平
-
动态测试:
- 加减速工况验证
- 负载突变测试
4.3 典型问题排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 位置估算偏差大 | 电机参数不准确 | 重新测量Ld/Lq/ψf |
| 高频噪声大 | 滤波器带宽过宽 | 收紧带通滤波器带宽 |
| 收敛速度慢 | PLL增益过低 | 逐步增加kp/ki |
| 转矩脉动明显 | 注入幅值过大 | 降低Uh至5%额定电压 |
| 高速时失步 | 滤波器延迟过大 | 提高ωh或优化滤波器 |
5. 进阶优化方向
-
参数自适应:
- 在线识别Rs/Ld/Lq变化
- 自动调整HFI幅值和频率
-
混合控制策略:
- 低速区:HFI方法
- 中高速区:切换至反电动势法
- 需设计平滑过渡算法
-
抗干扰增强:
- 引入滑动模态观测器
- 采用自适应滤波器
-
硬件优化:
- 提高电流采样分辨率
- 优化PWM死区补偿
我在实际项目中发现,当电机温度升高20℃时,定子电阻变化可达15%,这会显著影响HFI的估算精度。因此建议至少要实现Rs的在线辨识,可以通过直流注入法定期更新Rs参数。
