1. 永磁同步电机无感FOC技术概述
永磁同步电机(PMSM)因其高效率、高功率密度等优点,在工业驱动、新能源汽车等领域得到广泛应用。传统的PMSM控制需要安装机械位置传感器(如编码器、旋转变压器等)来获取转子位置信息,这不仅增加了系统成本和体积,还降低了可靠性。无传感器控制技术(Sensorless FOC)通过算法估计转子位置和速度,成为当前研究热点。
无感FOC的核心挑战在于转子位置估计的准确性和鲁棒性。目前主流的位置观测算法可分为以下几类:
- 基于反电动势的观测器(如滑模观测器)
- 基于状态观测器的估计方法(如线性扩张状态观测器)
- 高频信号注入法(适用于低速区域)
在中高速范围内,基于反电动势和状态观测器的方法表现优异。本文将重点探讨线性扩张状态观测器(LESO)和滑模观测器(SMO)的实现原理、参数设计及实际应用对比。
提示:无感FOC的性能很大程度上取决于观测器设计。在实际工程中,需要根据电机参数、应用场景和性能需求选择合适的观测器类型。
2. 线性扩张状态观测器(LESO)设计与实现
2.1 LESO基本原理
线性扩张状态观测器是自抗扰控制(ADRC)理论的核心组成部分,其基本思想是将系统内部不确定性和外部扰动统一视为"总扰动",并通过观测器进行实时估计和补偿。
对于PMSM系统,建立基于α-β静止坐标系的电压方程:
code复制uα = Rs*iα + Ls*diα/dt - ωe*ψf*sinθ
uβ = Rs*iβ + Ls*diβ/dt + ωe*ψf*cosθ
其中ωe为电角速度,θ为转子位置角。
将反电动势项视为扩张状态,可构建三阶LESO:
code复制dz1/dt = z2 + β1*(y - z1)
dz2/dt = z3 + β2*(y - z1) + b*u
dz3/dt = β3*(y - z1)
其中z1、z2、z3分别对应电流、反电动势及其微分项的估计值。
2.2 参数整定方法
LESO性能关键取决于观测器增益β的选择。根据带宽参数化方法,可取:
code复制β1 = 3ωo
β2 = 3ωo²
β3 = ωo³
其中ωo为观测器带宽,通常取为控制系统带宽的3-5倍。
实际调试时建议:
- 初始值取ωo=2π*100rad/s
- 逐步增大ωo直至估计值开始出现高频噪声
- 回退20%作为最终值
2.3 实现注意事项
在DSP中实现LESO时需要特别注意:
- 离散化方法:推荐使用Tustin变换(双线性变换),比前向欧拉法更稳定
- 计算顺序:先更新z1,再z2,最后z3
- 抗饱和处理:对估计值进行限幅,防止积分饱和
以下为C语言实现示例:
c复制typedef struct {
float z1, z2, z3; // 状态估计
float beta1, beta2, beta3; // 观测器增益
float b; // 控制增益
float Ts; // 采样周期
} LESO;
void LESO_Update(LESO* eso, float u, float y) {
float e = y - eso->z1;
eso->z1 += eso->Ts * (eso->z2 + eso->beta1*e);
eso->z2 += eso->Ts * (eso->z3 + eso->beta2*e + eso->b*u);
eso->z3 += eso->Ts * eso->beta3*e;
}
3. 滑模观测器(SMO)设计与实现
3.1 SMO基本原理
滑模观测器利用变结构控制理论,通过设计合适的滑模面,使系统状态在有限时间内到达并保持在滑模面上。对于PMSM,通常选择电流误差作为滑模变量:
code复制s = i_αβ_hat - i_αβ
采用符号函数作为切换控制律:
code复制u_αβ = -K*sign(s)
其中K为滑模增益。
3.2 关键参数设计
-
滑模增益K:
- 理论上应满足K > |E|max,E为反电动势
- 实际可取K = 1.2ωratedψf
- 过大导致抖振加剧,过小则收敛性不足
-
滑模面参数:
- 通常取c=1,构成线性滑模面
- 可引入积分项减小稳态误差
-
低通滤波器设计:
- 截止频率取略高于额定电频率
- 二阶Butterworth滤波器效果较好
3.3 抖振抑制技术
SMO固有的抖振问题可通过以下方法缓解:
- 用饱和函数代替符号函数:
c复制float sat(float x, float delta) { if(x > delta) return 1; if(x < -delta) return -1; return x/delta; } - 自适应滑模增益:根据转速动态调整K值
- 高阶滑模:如超螺旋算法
4. 两种观测器对比分析
4.1 性能对比
| 指标 | LESO | SMO |
|---|---|---|
| 动态响应 | 较快 | 很快 |
| 稳态精度 | 高(0.5°以内) | 较高(1°左右) |
| 参数敏感性 | 较低 | 较高 |
| 计算复杂度 | 中等(3阶观测器) | 较低 |
| 抖振 | 无 | 明显 |
| 低速性能 | 较差(<5%额定转速) | 较差 |
4.2 适用场景建议
-
优先选择LESO的场景:
- 要求高精度位置估计
- 电机参数可能变化
- 对计算资源不敏感
-
优先选择SMO的场景:
- 需要快速动态响应
- DSP计算资源有限
- 可以接受轻微抖振
经验分享:在实际车载电机控制中,我们发现在中高速区域(>10%额定转速),LESO在位置估计精度上比SMO平均提高30-40%,但在突加减载工况下,SMO的响应速度更快。
5. 改进型线性自抗扰控制(MLADRC)
5.1 传统PI控制器的局限
在无感FOC中,转速环传统PI控制器面临以下问题:
- 参数整定困难
- 抗负载扰动能力弱
- 动态响应与超调矛盾
5.2 MLADRC结构改进
改进的线性自抗扰控制器(MLADRC)简化了传统ADRC结构,去除跟踪微分器(TD)环节,保留LESO和状态反馈控制律。其优势在于:
- 保留扰动估计补偿能力
- 减少参数数量(从8个减到5个)
- 更易实现和整定
转速环MLADRC的离散化实现:
c复制typedef struct {
float b0; // 系统增益
float beta[3]; // LESO增益
float kp, kd; // 控制器参数
float z[3]; // 观测器状态
float Ts; // 采样周期
} MLADRC;
float MLADRC_Update(MLADRC* ctrl, float ref, float fb) {
// LESO更新
float e = fb - ctrl->z[0];
ctrl->z[0] += ctrl->Ts * (ctrl->z[1] + ctrl->beta[0]*e);
ctrl->z[1] += ctrl->Ts * (ctrl->z[2] + ctrl->beta[1]*e + ctrl->b0*ctrl->z[2]);
ctrl->z[2] += ctrl->Ts * ctrl->beta[2]*e;
// 控制律
float u0 = ctrl->kp*(ref - ctrl->z[0]) - ctrl->kd*ctrl->z[1];
return (u0 - ctrl->z[2]) / ctrl->b0;
}
5.3 参数整定指南
-
LESO部分:
- 带宽ωo取转速环带宽的3倍
- β=[3ωo, 3ωo², ωo³]
-
控制器部分:
- 带宽ωc取期望的转速环带宽
- kp=ωc², kd=2ωc
- b0≈1/J,J为转动惯量
实测表明,相比传统PI,MLADRC在突加负载工况下转速跌落减少50%以上,恢复时间缩短60%。
6. 锁相环设计与位置提取
6.1 标幺化处理
为提高PLL在不同转速下的适应性,需对反电动势进行标幺化:
code复制eα_norm = eα / sqrt(eα² + eβ²)
eβ_norm = eβ / sqrt(eα² + eβ²)
这样处理后,PLL输入信号幅值始终在[-1,1]范围内。
6.2 改进型PLL设计
传统PLL在转速快速变化时会出现相位滞后,建议采用二阶PLL结构:
code复制dθ/dt = ω + k1*e
dω/dt = k2*e
其中e = -eα_normsinθ_hat + eβ_normcosθ_hat
参数设计规则:
- k1 = 2ξωn
- k2 = ωn²
- 通常取ξ=0.707,ωn=2π*(0.1~0.2)*f_max
6.3 实现技巧
-
相位初始化:
- 启动时根据反电动势极性确定初始相位
- 避免180°反转问题
-
抗饱和处理:
- 对估计转速进行限幅
- 积分项抗饱和
-
过零检测:
- 添加小滞环避免噪声引起的误触发
7. 系统实现与调试
7.1 硬件平台考虑
-
处理器选择:
- 推荐32位DSP(如TI C2000系列)
- 最小PWM分辨率应<50ns
- ADC采样时间<500ns
-
电流采样:
- 建议采用三电阻或隔离型Σ-Δ方案
- 采样与PWM中心对齐
-
死区补偿:
- 根据器件特性设置3-5%死区时间
- 可添加电压前馈补偿
7.2 软件架构设计
推荐采用以下任务划分:
-
高速中断(50-100kHz):
- ADC采样
- 电流环计算
- PWM更新
-
中速任务(10-20kHz):
- 位置/速度估计
- 速度环计算
-
低速任务(1kHz):
- 保护监测
- 通信处理
7.3 调试步骤
-
开环测试:
- 确认PWM输出正常
- 验证电流采样精度
-
电流环调试:
- 先调d轴,再调q轴
- 目标:带宽>1kHz,相位裕度>45°
-
观测器调试:
- 从低速逐步提升
- 监测估计误差
-
速度环调试:
- 空载下测试阶跃响应
- 逐步增加负载
8. 常见问题与解决方案
8.1 观测器发散问题
现象:位置估计值偏离实际值并持续增大
可能原因:
- 电机参数不准确(特别是Rs、Ld、Lq)
- 观测器增益过大
- 初始位置错误
解决方案:
- 离线参数辨识
- 减小观测器带宽
- 添加初始位置检测
8.2 低速性能差
现象:低于5%额定转速时估计误差大
改进措施:
- 采用I-f启动策略
- 切换到高频注入法
- 增加速度前馈补偿
8.3 切换瞬态抖动
现象:观测器切换时电流振荡
处理方法:
- 设置重叠区域
- 添加平滑过渡算法
- 动态调整观测器增益
在实际工程中,我们发现最关键的调试环节是电机参数准确性验证。建议准备一套完善的参数辨识程序,在系统调试前首先准确测量Rs、Ld、Lq、ψf等关键参数。