开环启动与闭环切入(十)

📅 2026/7/12 19:11:08
开环启动与闭环切入(十)
第 10 篇开环启动与闭环切入——电机平稳起步的秘诀电机从静止到 FOC 闭环运行中间有一个惊险的跳跃。这篇专讲启动——这是 FOC 最容易被忽视但最容易出问题的环节。1. 为什么不能直接闭环启动低转速时 100 RPM霍尔变化频率太低速度计算滞后严重对无感方案来说反电动势太小无法观测。直接闭环的结果电机抖两下然后过流保护。2. 三段式启动流程┌──────────┐ ┌──────────┐ ┌──────────┐ │ 预定位 │───→│ 开环强拖 │───→│ 闭环切入 │ │ 100ms │ │ 0~500RPM │ │ 500RPM │ └──────────┘ └──────────┘ └──────────┘阶段 1预定位给一个固定的电角度θ0通一个小的 iq 电流如 0.5A。转子被拉到这个位置并保持 ~100ms。这一步确保转子位置已知。阶段 2开环强拖人为推动电角度以恒定速率前进。电流环正常工作用人为给定的角度做 Park 变换速度环暂不工作。typedefstruct{floatopen_loop_theta;// 积累的角度floatopen_loop_speed;// 目标速度 (rad/s 电角度)floatopen_loop_iq;// 固定 iq 电流floatramp_rate;// 速度斜坡率floatcurrent_speed;// 实际开环速度floattarget_speed;// 目标开环速度}open_loop_t;voidopen_loop_step(open_loop_t*ol,floatdt){// 速度斜坡避免突然加速导致失步if(ol-current_speedol-target_speed){ol-current_speedol-ramp_rate*dt;if(ol-current_speedol-target_speed)ol-current_speedol-target_speed;}// 角度累加ol-open_loop_thetaol-current_speed*dt;while(ol-open_loop_theta2.0f*M_PI)ol-open_loop_theta-2.0f*M_PI;}阶段 3闭环切入当霍尔推算的转速超过阈值如 300~500 RPM切换到闭环。切入瞬间的关键开环角度和闭环角度必须连续否则电流会瞬间跳变。voidtransition_to_closed_loop(open_loop_t*ol,hall_sensor_t*hs){// 计算开环角度和霍尔角度的偏移量floatopen_loop_mechol-open_loop_theta/MOTOR_POLE_PAIRS;floathall_mechhs-theta_elec/MOTOR_POLE_PAIRS;floatoffsetopen_loop_mech-hall_mech;// 将偏移量补偿到霍尔角度hs-theta_elecoffset*MOTOR_POLE_PAIRS;// 电角度已由 hall_update 维护stateSTATE_CLOSED_LOOP;}3. 切入失败排查现象原因解决方法切入瞬间过流角度不连续补偿偏移量切入后速度掉回 0开环拉速的 iq 不够增大开环电流切入后振荡速度环 PI 太激进先用小 Kp稳定后再调大根本转不起来预定位没定住加大对齐电流/时间4. 小结三段式启动预定位 → 开环强拖 → 闭环切入速度斜坡避免失步切入瞬间角度必须连续开环电流要大但不能过大过大会导致效率低、发热下一篇PI 调参实战——从理论到手感的跨越下一篇PI 调参实战——从理论到手感的跨越