:TIM3 中断架构与物理极限分析)
前言为了实现精确的控制周期需要将 FOC 算法读取角度、计算速度、PID 运算、SVPWM 输出移入硬件定时器中断中执行。本文记录了在 TIM3 中断调试过程中遇到的时序冲突、参数配置错误以及对电机物理极限的验证过程。一、中断频率与 I2C 时序的冲突将控制逻辑移入 TIM3 后最初将中断周期配置为 1ms1kHz。在实际运行中系统频繁死机电机发生严重震荡。原因分析在 1ms 的中断周期内需要执行阻塞式的 I2C 读取约 300μs还需完成浮点运算和 SVPWM 计算。一旦 I2C 读取稍有延迟或系统中断被拉长单次中断的执行时间将超过 1ms。这导致了严重的中断重入堆栈溢出系统彻底崩溃。调整方案将 TIM3 的定时周期延长至 2ms 甚至更长为 I2C 通信和算法运算留出充足的余量。对于无电流环的速度环控制500Hz 的控制频率足以满足基本的平滑性要求。同时在中断入口处加入首次运行保护忽略第一次中断的无效速度差值防止上电瞬间电机飞车。二、极对数配置错误引发的扭矩下降在速度闭环稳定后尝试提高目标转速但电机始终在 140 rad/s 左右停滞无法继续加速。排查过程检查 SVPWM 的输出限幅确认未达到饱和核对电流与电源状态排除了供电不足的嫌疑。最终将排查重点放在电角度换算上。原代码中极对数设定为 7elec_angle mech * 7.0f。查阅电机规格书后确认该 220KV 电机实际极对数为 11。问题定位极对数错误导致电角度计算偏差。SVPWM 产生的定子磁场与转子磁场未能精准对齐产生了较大的反向扭矩分量严重削弱了电机的有效输出导致转速无法提升。修改为正确的极对数后系统扭矩恢复正常。三、物理极限的理论计算与验证在修正所有软件问题后电机依然无法达到较高的目标转速如 200 rad/s。结合硬件参数进行理论计算电机常数220 KV每伏特电压对应的空载转速。供电电压12 V。理论最高空载转速220 × 12 2640 RPM约 276 rad/s。软件与硬件损耗占空比限幅至 90%乘以 0.9MOS 管压降与死区损耗约扣除 1~2VSVPWM 调制会造成相电压损失。综合折损后系统的实际物理极限转速约为 150 ~ 180 rad/s。叠加轴承摩擦力与风阻电机在 140 rad/s 左右达到真实的稳态极值。结论当目标转速设定超过物理极值时PID 积分项会因无法消除的误差而持续累积最终导致系统在限幅边缘震荡。明确系统的物理边界后将目标速度调整回安全区间如 100 rad/s系统恢复稳定运行。总结通过完整的开环与闭环调试明确了无电流环 FOC 系统的控制边界高频控制循环中严禁使用阻塞式 I2C 通信。定时器中断频率需与通信耗时匹配避免中断重入。电机极对数直接影响磁场对齐与输出扭矩。PID 无法超越硬件的物理极限必须根据实际的供电电压与电机参数合理设定目标值。