1. 永磁同步电机无感FOC技术概述
永磁同步电机(PMSM)因其高效率、高功率密度等优势,在工业驱动、电动汽车等领域得到广泛应用。传统的FOC(磁场定向控制)需要依赖编码器等位置传感器获取转子位置信息,这不仅增加了系统成本,还降低了可靠性。无传感器FOC技术通过算法估计转子位置和速度,成为当前研究热点。
在实际工程应用中,我遇到过编码器故障导致产线停机的案例。当时采用滑模观测器临时替代物理传感器,使产线在48小时内恢复运行,这让我深刻认识到无感控制技术的实用价值。本文将分享基于线性扩张状态观测器(LESO)和滑模观测器(SMO)的两种无感FOC实现方案,并重点解析改进的MLADRC转速控制算法。
2. 观测器算法原理与实现
2.1 线性扩张状态观测器设计
LESO的核心思想是将系统内部不确定性和外部扰动统一视为"总扰动",通过扩张状态进行实时估计。对于PMSM系统,我们建立如下状态空间模型:
code复制dx/dt = Ax + Bu + Ew
y = Cx
其中x=[i_d i_q ω_r θ_r]^T为状态变量,w表示总扰动。通过引入扩张状态x_3=w,构建三阶LESO:
code复制dz/dt = Az + Bu + L(y-ŷ)
ŷ = Cz
在DSP实现时,需要特别注意:
- 离散化步长选择:通常取控制周期的1/2~1/5
- 增益矩阵L的配置:采用极点配置法,将观测器带宽设为电机电气带宽的3~5倍
- 抗饱和处理:对估计值增加幅值限制
实际调试中发现,当电机转速超过额定值80%时,传统LESO会出现相位滞后。解决方法是在观测器中加入转速前馈补偿项。
2.2 滑模观测器设计与优化
SMO基于变结构控制理论,其设计步骤如下:
-
定义滑模面:
s = î_α - i_α = 0 -
设计控制律:
u_eq = -k·sign(s) -
位置信息提取:
θ̂ = atan2(-s_β, s_α)
为抑制抖振,我推荐采用以下改进措施:
- 用饱和函数sat(s/Φ)代替sign函数
- 自适应增益调整:k = k0 + k1*|ω̂|
- 增加二阶低通滤波器,截止频率设为电机电气频率的2倍
c复制// STM32平台实现示例
void SMO_Update(float i_alpha, float i_beta, float u_alpha, float u_beta) {
float e_alpha = i_alpha - i_alpha_hat;
float e_beta = i_beta - i_beta_hat;
// 饱和函数处理
float s_alpha = sat(e_alpha/0.05);
float s_beta = sat(e_beta/0.05);
// 自适应增益
float k = 50 + 10*fabs(omega_hat);
// 更新观测器
i_alpha_hat += Ts*( -Rs/Ls*i_alpha_hat + omega_hat*i_beta_hat + u_alpha/Ls - k*s_alpha);
i_beta_hat += Ts*( -Rs/Ls*i_beta_hat - omega_hat*i_alpha_hat + u_beta/Ls - k*s_beta);
// 位置提取
theta_hat = atan2(-s_beta, s_alpha);
}
2.3 两种观测器对比测试
我们在3kW PMSM平台上进行了对比实验:
| 指标 | LESO | SMO |
|---|---|---|
| 转速误差(%) | ±0.5 | ±1.2 |
| 位置误差(°) | ±2 | ±5 |
| 动态响应(ms) | 15 | 8 |
| CPU占用率(%) | 12 | 18 |
| 参数敏感性 | 低 | 中 |
实测数据显示:
- LESO在稳态精度方面表现更好
- SMO动态响应更快但存在抖振
- 在负载突变时,SMO的鲁棒性更优
3. 改进型MLADRC转速控制
3.1 传统PI控制器的局限
在无感FOC中,PI控制器面临三个主要问题:
- 参数整定困难:需兼顾动态响应和抗扰性
- 对模型不确定性敏感
- 抗负载扰动能力有限
我们曾记录过一组数据:当负载转矩阶跃变化时,PI控制需要300ms才能恢复稳定,导致加工精度下降。
3.2 MLADRC设计实现
改进的线性自抗扰控制器(MLADRC)结构如下:
-
跟踪微分器(简化版):
code复制v1(k+1) = v1(k) + Ts*v2(k) v2(k+1) = v2(k) + Ts*fhan(v1-r, v2, r0, h) -
扩张状态观测器:
code复制
e = z1 - y z1 += Ts*(z2 - β01*e) z2 += Ts*(z3 - β02*e + b0*u) z3 += Ts*(-β03*e) -
控制律:
code复制u0 = kp*(v1 - z1) + kd*(v2 - z2) u = (u0 - z3)/b0
关键参数整定经验:
- 观测器带宽ω_o:设为转速环带宽的3~4倍
- 控制器带宽ω_c:通常取5~10rad/s
- b0:取系统近似增益的倒数
matlab复制% MATLAB实现示例
function [u, z] = MLADRC(r, y, z_prev, Ts)
% 参数定义
beta01 = 100; beta02 = 200; beta03 = 1000;
b0 = 1.5; kp = 10; kd = 2;
% ESO更新
e = z_prev(1) - y;
z(1) = z_prev(1) + Ts*(z_prev(2) - beta01*e);
z(2) = z_prev(2) + Ts*(z_prev(3) - beta02*e + b0*z_prev(4));
z(3) = z_prev(3) + Ts*(-beta03*e);
% 控制量计算
u0 = kp*(r - z(1)) + kd*(0 - z(2)); % 简化TD
u = (u0 - z(3))/b0;
z(4) = u;
end
3.3 实测性能对比
在1.5kW电机测试平台上,我们对比了三种控制器:
| 工况 | PI | 传统ADRC | MLADRC |
|---|---|---|---|
| 空载启动(ms) | 120 | 80 | 70 |
| 负载扰动(ms) | 300 | 150 | 100 |
| 转速波动(%) | ±1.2 | ±0.8 | ±0.5 |
| 参数调整次数 | 5-8 | 3-5 | 2-3 |
MLADRC展现出显著优势:
- 动态响应提升40%以上
- 抗扰能力增强2倍
- 参数整定更简单
4. 锁相环设计与位置提取
4.1 改进型PLL结构
传统PLL在低速时存在以下问题:
- 相位检测非线性
- 带宽与稳定性矛盾
- 对谐波敏感
我们提出改进方案:
-
增加前置自适应滤波器:
code复制Q = [cosθ̂ -sinθ̂; sinθ̂ cosθ̂] * [i_α; i_β] -
采用变带宽设计:
code复制ω_c = ω_base + k*|ω̂| -
增加抗饱和补偿环节
4.2 标幺化处理技巧
为实现全速域稳定运行,建议:
-
电压标幺化:
code复制u_pu = u/U_base, U_base = Vdc/√3 -
电流标幺化:
code复制i_pu = i/I_rated -
频率标幺化:
code复制ω_pu = ω/ω_base
经验参数:
- 基值频率ω_base通常设为额定转速的1.2倍
- 在低于5%额定转速时,需切换至高频注入法
5. 系统实现与调试
5.1 硬件平台搭建
推荐配置:
- 主控:TI C2000系列DSP(如TMS320F28379D)
- 驱动:三相智能功率模块(如FPGA30R60W1)
- 采样:16位同步ADC(采样时间<500ns)
- 保护电路:逐周期电流保护
布局要点:
- 功率地与信号地单点连接
- 电流采样电阻靠近IPM放置
- 编码器接口添加磁隔离
5.2 软件框架设计
典型执行时序:
-
50μs中断:
- ADC采样
- 电流环计算
- PWM更新
-
500μs中断:
- 速度观测
- 速度环计算
- 故障检测
-
后台任务:
- 通信处理
- 参数调整
- 状态监测
c复制// 主中断服务例程
__interrupt void ISR_50us(void) {
// 1. 读取ADC值
AdcDataRead(&iadc, &ibdc);
// 2. 坐标变换
ClarkeParkTransform(iadc, ibdc, theta, &id, &iq);
// 3. 电流环计算
Vd = CurrentLoop_PI(id_ref, id);
Vq = CurrentLoop_PI(iq_ref, iq);
// 4. 反变换
InverseParkTransform(Vd, Vq, theta, &valpha, &vbeta);
SVM_Generate(valpha, vbeta);
}
5.3 调试步骤指南
-
开环测试:
- 确认电压-频率特性
- 检查电流采样极性
- 验证PWM死区时间
-
电流环调试:
- 先调d轴,再调q轴
- 从低带宽开始逐步提高
- 测试阶跃响应
-
观测器调试:
- 先静态测试(固定位置)
- 再低速运行(<5%额定)
- 最后全速范围测试
-
速度环调试:
- 空载条件下先调
- 逐步增加负载
- 测试动态响应
6. 常见问题解决方案
6.1 观测器失步问题
现象:高速时位置估计突然跳变
解决方法:
- 检查电机参数准确性(特别是Lq/Ld)
- 增加观测器带宽
- 在SMO中加入自适应增益
6.2 启动抖动问题
现象:电机启动时剧烈振动
处理步骤:
- 确认初始位置检测算法
- 调整启动电流斜率
- 增加观测器初始值补偿
6.3 低速性能优化
改进措施:
- 采用高频脉振注入法
- 增加转速前馈补偿
- 使用自适应滤波器
6.4 电磁干扰抑制
典型对策:
- 增加RC吸收电路(R=10Ω, C=100pF)
- 优化PCB布局(缩短功率回路)
- 软件滤波(移动平均+陷波器)
7. 仿真与实验验证
7.1 MATLAB/Simulink建模
关键模块实现:
-
PMSM模型:
- 考虑饱和效应
- 添加齿槽转矩
- 包含温度影响
-
逆变器模型:
- 开关器件非线性
- 死区效应
- 导通压降
-
控制算法:
- 离散化实现
- 量化误差
- 计算延时
7.2 实验平台测试
标准测试项目:
-
空载特性测试:
- 转速精度
- 电流波形THD
- 效率测量
-
动态性能测试:
- 阶跃响应
- 负载突变
- 转速反转
-
鲁棒性测试:
- 参数变化
- 电压波动
- 温度变化
7.3 实测数据对比
在1.5kW电机上的测试结果:
| 测试项 | 带编码器 | LESO | SMO |
|---|---|---|---|
| 转速精度(rpm) | ±1 | ±5 | ±8 |
| 启动时间(ms) | 50 | 80 | 60 |
| 效率(%) | 94.5 | 93.8 | 93.2 |
| 成本(USD) | 120 | 35 | 40 |
从工程角度看,无感方案在成本、可靠性方面具有明显优势,适合大多数工业应用场景。
