DSP28335 滑模观测器无感 FOC 方案深度解析
从'零速'到'高速'的全速域无位置传感器控制
1. 引言
在 PMSM 驱动领域,无位置传感器控制(Sensorless Control)因省掉机械传感器而带来的成本、线束、可靠性优势,已成为新能源汽车压缩机、高速风机、无人机电调等场景的刚需。TI C2000 家族的明星芯片 TMS320F28335 拥有浮点单元、CLA、高速 ADC 与 ePWM,天然适合执行高频观测器算法。本文基于开源工程,对一套全速域、全 C 代码滑模观测器(Sliding-Mode Observer, SMO)方案做深度剖析,帮助开发者快速理解其设计思想与工程落地细节。
2. 系统架构速览
整个工程采用'双环 + 双观测器 + 分段启动'架构:
- 电流环:100 kHz,同步采样,单 shunt/三 shunt 兼容
- 速度环:10 kHz,抗饱和 PI,带前馈解耦
- 位置观测器:
– 零速/低速(0~10% 额定):I-F(I-f 强制换向)
– 中高速(>10% 额定):滑模观测器 + PLL 锁相环
- 弱磁/MTPA:保留接口,用户可自行扩展
- 安全链:过流、过压、欠压、堵转、缺相、温度,硬件比较器直切 PWM,软件二次确认
3. 滑模观测器原理与离散实现
3.1 连续域模型
以静止 αβ轴反电动势为状态变量:

d(iα)/dt = –R/L·iα + 1/L·(uα – eα)
d(iβ)/dt = –R/L·iβ + 1/L·(uβ – eβ)
eα = –Ke·ωe·sinθe
eβ = Ke·ωe·cosθe

滑模面设计:
sα = îα – iα , sβ = îβ – iβ
采用 Sign 函数建立滑模电流观测器,当 s→0 时,开关项等价于反电动势。
实际代码使用'饱和函数 + 低通'替代理想 Sign,降低抖振。

3.2 离散化与频率补偿
ADC 在 PWM 下溢触发,采样时刻与占空比无关;观测器与电流环同频 100 kHz。
为解决小电感高速段相移问题,代码引入'反电动势相位补偿'模块:

θcomp = atan(ωe·L/R)
该角度在 30%~100% 额定转速区间动态修正,保证 PLL 收敛后稳态误差 < 0.5°el.
3.3 PLL 锁相环
反电动势经坐标变换得到 ed/q,q 轴分量送 PI 调节器,输出即为转速估计值;积分得角度。PLL 带宽设计遵循'十倍于速度环'原则,兼顾噪声抑制与动态响应。
4. 全速域'无缝切换'机制
4.1 I-F 阶段
- 给定 Id=0、Iq=恒定启动电流,角度 θrif 由积分强制 ramp;
- 当估计反电动势幅值 |e| 连续 2 ms 超过阈值 Eth,判定'中高速可信',切入 SMO;
- 切换窗口采用'加权混合'策略,避免角度跳变。
4.2 重投与失步恢复

若运行中检测到'e 幅值跌落'或'PLL 误差 > 30°el',立即切回 I-F,重新拉入,保证风机、泵类负载突然失步不宕机。
5. 关键代码模块(去敏感化伪代码)
5.1 电流采样与偏移自校准
ADC_SOC_INT: read ADC_A, ADC_B, ADC_C
offset = (offset*63 + sample)>>6
Iabc = sample – offset
Clarke(Iabc -> Ialfabeta)
5.2 滑模观测器
SMO_UPDATE:
Verr_alpha = Valpha – R*Ialpha – L*(Ialpha – Ialpha_prev)*fs
Ealpha = LowPass( Sat(Verr_alpha, Kslide) )
Theta_err = atan2(Ebeta, Ealpha)
PLL(Theta_err -> Omega, Theta_hat)
5.3 分段角度选择
if (Omega < Omega_threshold)
Theta_out = Theta_IF;
else
Theta_out = (1–μ)*Theta_IF + μ*Theta_SMO;
6. 性能实测
- 0 Hz 启动:0.3 N·m 负载下 0→500 rpm < 200 ms,无反转
- 稳速 6000 rpm:角度误差 RMS 0.8°el,转速脉动 < 0.5%
- 负载阶跃 10%→100%:恢复时间 45 ms,无失步
- 弱磁区 1.2 倍额定转速:观测器仍稳定,误差 < 2°el
7. 移植与二次开发指南
7.1 硬件适配
- 采样电阻:依据电流范围调整增益,保证 ADC 在 30%~70% 量程
- 运放偏置:单电源运放需把共模抬到 1.65 V,并在代码中动态校正
- 比较器:过流阈值建议 1.5 倍峰值,响应 < 1 µs
7.2 软件参数
- 滑模增益 Kslide:先理论计算,再用在线扫频确定最优值,过大将放大抖振
- PLL 带宽:速度环 300 rad/s → PLL 3000 rad/s,可借助 Matlab'PLL tuner'脚本自动整定
- 低通截止:约为 PWM 频率 1/20,过高保留抖振,过低引入滞后
7.3 功能扩展
- 若需 MTPA:在 Id 通道叠加查表或在线搜索算法,观测器无需改动
- 若需位置伺服:把速度环升级为位置环,观测器输出直接给位置环,省去 QEP 依然可实现 < ±1°定位精度
8. 常见问题与调试技巧
Q1: 低速抖动明显?
→ 检查 Sign→Sat 边界层是否过窄;适当加大边界层或提高电流环带宽。
Q2: 高速段飞车?
→ 确认反电动势相位补偿是否启用;查看 PLL 限幅是否过宽导致积分饱和。

Q3: 启动反转?
→ I-F 初始角度步长过大,或切换阈值 Eth 设置过低,导致 SMO 尚未收敛即切入。
Q4: 单 shunt 采样失真?
→ 调整 SVPWM 扇区插入'观测向量'窗口,确保 ADC 触发点远离零矢量。
9. 结语
该开源 SMO 方案以'极简硬件 + 全 C 可移植'为核心,已在 24 V72 V、功率 100 W3 kW 的多款风机、水泵、滑板车量产验证。其代码结构清晰、参数整定流程成熟,是滑模观测器从教科书走向量产的绝佳范例。开发者只需按照'电流环→观测器→速度环→弱磁'顺序逐层验证,即可在两周内完成平台移植,实现真正意义上的全速域、无霍尔、高可靠 PMSM 驱动。
