|
|
13 часов назад | |
|---|---|---|
| Keil_Project | 13 часов назад | |
| Libraries | 13 часов назад | |
| datasheet | 13 часов назад | |
| motor | 13 часов назад | |
| user | 13 часов назад | |
| .gitignore | 13 часов назад | |
| keilkill.bat | 13 часов назад | |
| readme.md | 13 часов назад |
本仓库是一个从零开始的永磁同步电机(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控制的核心思想是:通过坐标变换,将三相交流电机的非线性、强耦合模型,转化为直流电机的线性、解耦模型进行控制。
具体实现路径:
变换后的效果:
由于变换后得到的是直流分量,非常适合用PID控制器进行调节。本工程采用绝对式PID(即位置式PID),直接输出控制量,无累积误差风险。
变换后的Iq/Id指令通过反Park变换和反Clark变换,重新生成三相电压指令。这些指令通过SVPWM(空间矢量脉宽调制)算法,转化为六路PWM波形驱动三相逆变器。
SVPWM的优势:
发波方式:本工程采用七段式SVPWM,相比五段式,虽然开关次数略多,但电流波形更平滑,谐波性能更好。
三相电流采样采用三电阻方案(根据硬件配置),通过ADC采集注入组实现。
关键设计:采样点选在PWM周期的中间时刻。
中心对齐PWM波形(互补驱动):
上桥原始PWM(模式1): 高电平 ┌─────┐ ┌─────┐
│ │ │ │
┘ └──────────┘ └
下桥互补PWM: ┌──────────┐
│ │
┘─────┘ └─────┘
↑
采样点(中间时刻)
为什么在中间时刻采样?
NMOS导通逻辑:NMOS为高电平导通,下桥互补PWM的中间高电平区间恰好对应下桥导通窗口。
这是FOC控制中最关键、也最容易出问题的环节。
FOC的所有坐标变换(Park/反Park)都依赖电角度θ。角度不准会导致:
| 问题 | 后果 |
|---|---|
| 角度偏差 | Iq/Id无法正确解耦,转矩脉动增大 |
| 角度滞后 | 电流相位滞后,效率下降 |
| 角度跳变 | 电流突变,可能触发过流保护 |
| 角度丢失 | 电机失步,无法继续运转 |
| 阶段 | 角度来源 | 精度 | 难点 |
|---|---|---|---|
| 霍尔角度闭环 | 霍尔传感器(60°分辨率) | 低 | 需要插值算法平滑角度 |
| 编码器角度闭环 | 磁编码器/光电编码器 | 高 | 需要初始位置标定 |
| 无感观测器 | 滑模观测器(SMO)估算 | 中 | 低速区失效,需高频注入辅助 |
在一个FOC控制周期内(通常为PWM周期,如10kHz = 100μs),需要完成:
其中角度获取不能成为瓶颈。任何延迟都会导致控制滞后,影响系统稳定性。
| 问题 | 对策 |
|---|---|
| 角度跳变(如霍尔60°步进) | 采用低通滤波或角度预测插值 |
| 角度量化噪声(低分辨率编码器) | 采用滑动平均或卡尔曼滤波 |
| 角度微分求速度时的噪声放大 | 使用带限幅的差分或跟踪微分器 |
| 编码器零点偏移 | 上电时执行角度校准流程 |