[电机控制专用MCU] 基于M3101无感FOC算法调试 - 状态机详解

[复制链接]
6|0
lc115647 发表于 2026-3-3 14:27 | 显示全部楼层 |阅读模式

前言

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(自由轮状态)

  • 功能
    • PWM全关,电机自由滑行
    • 计时等待

总结

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

41

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
0