前言
M3101使用Geehy最新版算法程序,与原先M3514算法相比,整体状态机切换流程,除去新增功能顺逆风启动、闭环启动功能外与旧版本基本一致。因此除去这两部分功能外,整体调试步骤可参考旧版调试步骤。要调好电机需要我们首先对整体程序架构有一定了解,其中状态机切换是整改控制环路的核心部分。
一、状态机流程切换图
下图是状态机整体流程框图:按照FOC控制环路分为快环(电流环)和慢环(速度环)两个环路。
(一) 主状态机(eM1_MainState)
| 状态 |
进入条件 |
退出条件 |
主要功能 |
| MainState_Init |
系统上电初始化 |
速度指令=0 |
变量重置,硬件初始化 |
| MainState_Stop |
1. Init状态速度指令=0 2. Fault状态恢复 3. Run状态速度过低 |
速度指令>STOP_TO_RUN_SPEED |
PWM关闭,方向切换处理 |
| MainState_Run |
Stop状态速度指令足够大 |
1. 发生故障 2. 速度过低 |
执行运行子状态机 |
| MainState_Fault |
任何状态检测到故障 |
1. 启动检测通过 2. 超时恢复 |
PWM关闭,故障记录 |
(二) 运行子状态机(eM1_RunSubState)
1. RunState_Calib(校准状态)
- 功能:ADC偏置电压校准
- 转换:校准过程极短(128次采样结束后),校准完成立即切换到
RunState_Ready

2. RunState_Ready(准备状态)

3. RunState_Wind(风机检测状态)
- 功能:
- 顺逆风检测(
wind_fast_execute)
- 高速顺风启动判断
- 反电动势观测

4. RunState_Align(对齐状态)
- 功能:
- 强制角度对齐(θ=0)
- D轴电流=0,Q轴电流斜坡增加
- 产生固定磁场

5. RunState_Startup(启动状态)
两种启动模式:
一、A. 开环启动(START_OPENLOOP_MODE)
功能:
- 角度开环递增:θ += SpeedRamp * SpdToTheta
- 固定启动电流:IdqCmd.Q = CUR_STARTUP
- 高速观测器计算但不使用
二、B. 闭环启动(START_CLOSELOOP_MODE)
功能:
- 使用低速观测器(LOBS/ZOBS)
- 速度PI控制
- 电流斜坡或PI输出作为Q轴指令

6. RunState_Spin(旋转状态)
- 功能:
- 高速观测器(HOBS)角度跟踪
- 速度闭环控制
- 弱磁控制(FW_ENABLE==1时)
- HOBS增益自适应调整

7. 7. RunState_Freewheel(自由轮状态)

总结
了解不同状态下所执行的功能,能够有效帮助我们在后续调试过程中,屏蔽状态切换的条件,在不同状态下,分步调试不同参数(电流环,速度环,观测器)等。