暫無描述

zhuts 88ca598cfa 1、提交工程 14 小時之前
Keil_Project 88ca598cfa 1、提交工程 14 小時之前
Libraries 88ca598cfa 1、提交工程 14 小時之前
datasheet 88ca598cfa 1、提交工程 14 小時之前
motor 88ca598cfa 1、提交工程 14 小時之前
user 88ca598cfa 1、提交工程 14 小時之前
.gitignore 88ca598cfa 1、提交工程 14 小時之前
keilkill.bat 88ca598cfa 1、提交工程 14 小時之前
readme.md 88ca598cfa 1、提交工程 14 小時之前

readme.md


FOC无刷电机控制例程

一、项目概述

本仓库是一个从零开始的永磁同步电机(PMSM/BLDC)FOC(磁场定向控制)开发例程,旨在实现一套完整、可移植的FOC控制系统。代码结构清晰,分阶段实现各功能模块,适合学习和实际项目参考。


二、工程演进路线

本工程采用分步验证、逐步集成的开发策略,按以下路线推进:

第一阶段:基础闭环控制

电流闭环 → 霍尔角度闭环 → 速度闭环
阶段 闭环类型 依赖传感器 目标
1.1 电流闭环 ADC三相采样 实现IQ/ID电流的稳定控制
1.2 角度闭环 霍尔传感器 获取转子角度,完成Park变换
1.3 速度闭环 霍尔+电流 实现速度-电流双闭环控制

第二阶段:高精度编码器控制

编码器角度闭环 → 编码器速度闭环 → 编码器位置闭环
阶段 闭环类型 依赖传感器 目标
2.1 角度闭环 磁编码器/光电编码器 高精度角度反馈
2.2 速度闭环 编码器角度微分 高精度速度控制
2.3 位置闭环 编码器积分+位置环 伺服级位置控制

第三阶段:无感控制

无感观测器引入
阶段 技术方案 目标
3.1 滑模观测器(SMO)等 中高速无感运行
3.2 高频注入(HFI) 零速/低速无感运行(扩展目标)

三、FOC控制原理

3.1 核心思想

FOC控制的核心思想是:通过坐标变换,将三相交流电机的非线性、强耦合模型,转化为直流电机的线性、解耦模型进行控制

具体实现路径:

  • Clark变换:将三相静止坐标系(Ia, Ib, Ic)变换到两相静止坐标系(Iα, Iβ)
  • Park变换:将两相静止坐标系(Iα, Iβ)变换到两相旋转坐标系(Iq, Id)

变换后的效果:

  • Iq(转矩电流):与转子磁场垂直,负责产生扭矩
  • Id(励磁电流):与转子磁场平行,负责调节磁场(通常控制为0)

由于变换后得到的是直流分量,非常适合用PID控制器进行调节。本工程采用绝对式PID(即位置式PID),直接输出控制量,无累积误差风险。

3.2 逆变器驱动:SVPWM

变换后的Iq/Id指令通过反Park变换反Clark变换,重新生成三相电压指令。这些指令通过SVPWM(空间矢量脉宽调制)算法,转化为六路PWM波形驱动三相逆变器。

SVPWM的优势

  • 母线电压利用率高(比SPWM高约15%)
  • 谐波失真小,电流波形更正弦
  • 理论上可生成任意方向、任意幅值的电压矢量(分辨率受PWM精度限制)

发波方式:本工程采用七段式SVPWM,相比五段式,虽然开关次数略多,但电流波形更平滑,谐波性能更好。


四、电流采样关键设计

4.1 采样方案

三相电流采样采用三电阻方案(根据硬件配置),通过ADC采集注入组实现。

4.2 采样时机

关键设计:采样点选在PWM周期的中间时刻

中心对齐PWM波形(互补驱动):

上桥原始PWM(模式1): 高电平 ┌─────┐          ┌─────┐
                          │     │          │     │
                          ┘     └──────────┘     └

下桥互补PWM:                     ┌──────────┐
                                │          │
                          ┘─────┘          └─────┘    
                                      ↑
                                采样点(中间时刻)

为什么在中间时刻采样?

  • 此时下桥NMOS处于导通状态(互补PWM为高电平)
  • 相电流稳定,无开关噪声干扰
  • 采样值最能代表该PWM周期内的平均电流

NMOS导通逻辑:NMOS为高电平导通,下桥互补PWM的中间高电平区间恰好对应下桥导通窗口。


五、核心难点:实时电角度的获取

这是FOC控制中最关键、也最容易出问题的环节。

5.1 为什么电角度如此重要?

FOC的所有坐标变换(Park/反Park)都依赖电角度θ。角度不准会导致:

问题 后果
角度偏差 Iq/Id无法正确解耦,转矩脉动增大
角度滞后 电流相位滞后,效率下降
角度跳变 电流突变,可能触发过流保护
角度丢失 电机失步,无法继续运转

5.2 不同阶段的角度获取方式

阶段 角度来源 精度 难点
霍尔角度闭环 霍尔传感器(60°分辨率) 需要插值算法平滑角度
编码器角度闭环 磁编码器/光电编码器 需要初始位置标定
无感观测器 滑模观测器(SMO)估算 低速区失效,需高频注入辅助

5.3 角度的实时性要求

在一个FOC控制周期内(通常为PWM周期,如10kHz = 100μs),需要完成:

  1. 读取当前角度
  2. 执行电流采样
  3. 完成Clark/Park变换
  4. 执行PID计算
  5. 完成反Park/反Clark变换
  6. 更新SVPWM占空比

其中角度获取不能成为瓶颈。任何延迟都会导致控制滞后,影响系统稳定性。

5.4 角度处理的常见问题与对策

问题 对策
角度跳变(如霍尔60°步进) 采用低通滤波或角度预测插值
角度量化噪声(低分辨率编码器) 采用滑动平均或卡尔曼滤波
角度微分求速度时的噪声放大 使用带限幅的差分或跟踪微分器
编码器零点偏移 上电时执行角度校准流程

六、后续优化方向

  • [ ]