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 同步触发) |
| 适用阶段 | 功率链路验证、启动瞬间 | 稳定运行、带载调速 |
这也是为什么工程流程是「开环定位强拖 → 中速后切入无感闭环」:两种算法各管一段,而不是互相替代。
给小白的原理导览
跟着当前状态理解启动状态机
等待 STARTEN=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
三相正弦调制波形
ABC