TC264 · DRV8313 · 3PWM

无感 FOC 与纯开环动态对比

按照工程中的复位、唤醒、PWM 预装载、低幅定位和缓慢斜坡流程,观察电角度命令如何生成三相正弦占空比。

20 kHz 中央对齐 PWM 100 µs 控制周期 无编码器 / 无电流采样
关键区别 核心区别:纯开环只输出预设三相电压,不需要电流采样;无感 FOC 不使用编码器或霍尔,但必须采样相电流,结合电压和电机模型估算转子角度,并通过电流环闭环调节。

控制台

毫秒级启动阶段已延长显示;斜坡与调制仍按固件参数计算

双电机算法对比

电机 1:开环 · 电机 2:无感 FOC 仿真

电机 1 · 纯开环

程序直接积分电角度,不读取转子位置。

theta_e += 2π × FREQ × dt; duty = 0.5 + 0.5 × AMP × sin(theta_e);

指令角:0.0° 估算转速:0 rpm

电机 2 · 无感 FOC

根据反电动势和电流模型估算转子角度,再修正控制角。

angle_error = rotor_angle - observer_angle; observer_angle += observer_gain × angle_error; current_pi_correct();

估算角:0.0° 反馈转速:0 rpm

开环电机只执行预先生成的电角度;无感 FOC 电机读取相电流,估算转子角度,再用电流环修正驱动电压。

负载:空载
电机 1 · 开环转速 电机 2 · 无感 FOC 转速 目标转速

教学模型:扰动后开环没有反馈,转速跌落后停在新平衡点无法恢复;无感 FOC 检测到转速偏差,由电流环自动补偿并拉回目标。数值仅用于对比趋势。

对比项纯开环强拖无感 FOC 闭环
转子位置不测量,指令角按固定频率递增,转子是否跟上无从得知观测器根据电流/反电动势实时估算,磁场始终锁定转子
电流幅值只是占空比系数,实际电流未知,易过流或出力不足d/q 轴电流分别闭环,q 轴电流直接对应转矩
抗负载扰动无任何补偿,负载稍大即失步检测到偏差后 PI 自动纠偏
效率与发热磁场角度不匹配,大量电流变为发热磁场始终垂直于转子,电流利用率高
低速 / 启动不依赖反电动势,零速即可强拖启动低速反电动势太弱,观测器难以收敛,通常仍需开环强拖启动再切入
实现复杂度无需采样与坐标变换,几十行代码即可转动需要相电流采样、Clarke/Park 变换、观测器和 PI 整定
硬件要求一块三相驱动板 + 三路 PWM 即可需要相电流采样链路(分流电阻 + 放大器 + ADC 同步触发)
适用阶段功率链路验证、启动瞬间稳定运行、带载调速

这也是为什么工程流程是「开环定位强拖 → 中速后切入无感闭环」:两种算法各管一段,而不是互相替代。

给小白的原理导览

跟着当前状态理解

启动状态机

等待 START
EN=0停止
2 ms复位 / 睡眠
5 ms唤醒检查
1 msPWM 预装载
200 ms低幅定位
限斜率斜坡 / 运行

运行中的固件逻辑

页面状态 ↔ 工程代码

          

旋转电压矢量与三相占空比

d = 0.5 + 0.5·m·sin(θ)
A
B
C
转子实际角度未知
θe 指令
当前状态STOPPED
实际电频率0.00 Hz
实际调制系数0.000
电角度 θe0.0°
EN / PWM0 / OFF
A
50.0%
B
50.0%
C
50.0%

三相正弦调制波形

ABC