手写STM32 FOC记录----- 电流环
2025-10-15 来源:bilibili
前面文章有画过FOC开环控制框图,如下。虽然开环电压控制的效果也还不错,但由于电机不是单纯的阻性负载,所以控制电压并不能得到一个完美的效果。我们最终目标是控制电流,有电流控制的foc才算完美。

下面来看看加上电流环的FOC控制框图,在开环的基础上,加上电流采集并做相应转换得到Id,Iq。FOC控制的最终目的是使Id尽可能接近0。使用电压开环控制时,由于种种原因,id并不是一直为0,可能存在偏移或是跳动,转速越高这种情况就越厉害,而使用电流闭环可以较好地遏制这种现象。

1、电流采集
在ADC中断回调函数中采集ABC三相电流,重构ADC中断回调函数,读取电压,根据硬件电路转换成电流值

前提是要采集电流偏置,即在电机停止的时候采集ABC三相的静态电压,最终转换成电流值。具体实现是,电机停止时采集1000次,取平均值得到三相电流偏置。最后在ADC采集时减去电流偏置就得到真实的电流值。

让电机开环转动起来,执行电流采样函数中断,测试vofa+输出电流Ia,Ib,Ic曲线如下:

对三相电流进行Clark变换之后得到的alpha,bate电流波形如下:

再对alpha,bate进行park变换得到如下波形,其中橙色线为Iq,蓝色线为Id,比较接近两条直线了。

经过克拉克变换以及帕克变换,我们的三相交流电流量已经变成了两个直流的电流量,电流环的目的,到这里就清楚了,就是为了使Id尽量接近0,而Iq尽量接近我们给定的值,少出现波动。最佳方式当然就是使用PID控制了,制作Id和Iq的两个PID控制环,实现对电流的稳定控制。
2、PID控制
首先要明确一点,对于电流环而言一般是不会使用微分项D的,至于为啥,我也描述不清楚,网上有很多资料可以参考。
这里通过先调试 D轴,将 Q轴的 PI控制器设置为零,这样可以排除 Q轴的影响,在单轴达到比较好的响应效果之后,将 D轴的 PI控制器参数拷贝一份送给Q轴的PI控制器即可。
D轴调试时,先只加入比例环节,可以将 的系数逐渐增大,会发现 反馈值逐渐靠近 给定值,再加入积分环节发现系统虽然存在超调,但是最终反馈可以稳定在给定值。加入积分环节时有个问题要注意,就是要对积分项进行限幅,否则,过大的积分会让电流环严重超调,而过小电机发挥不出力量。

以下是调试时部分波形,对于PID参数调试貌似也没有好的办法,只能根据数据一点点调试,一点点修改。

最终判断电流环生效的效果时,让电机电流闭环运行来后将电机堵转,最大电流会不会跟随给定的目前电流变化,Q轴目标电流越大,堵转电流越大。
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
- 蓝牙信道探测技术原理与开发套件实践
- 意法半导体中国本地造STM32微控制器启动规模量产




