手写STM32 FOC记录----- 速度环 + 位置环
2025-10-15 来源:bilibili
速度闭环控制框图如下,其实就是根据采集到的电机实时速度,和设定的速度进行PID调节,从而控制电机转动。

1、速度环控制
在速度环控制之前,需要对电机进行爬坡操作,避免电机急停和急启,造成大电流产生并烧毁相关元器件,所以先实现一个电机爬坡函数:

速度采集,首先是计算速度,根据单位时间内的角度变化量计算出电机速度

然后给uq一个电压,让电机转动,此时使用vofa+输出电机速度波形

可以看到,此速度数据没办法直接使用,需要做滤波处理,编写滤波器窗口函数window_filter,滤波窗口数据宽度选择50,求一个速度平均值。

红色线为速度原始数据,绿色线为滤波之后的效果,可以看到,滤波效果非常明显

速度闭环 PID 控制,就是用速度测量值与目标值进行作差,得到控制偏差,然后通过对偏差的 PID 控制,使偏差趋向于零。速度环只采用PI控制,框图如下

用代码实现以上框图,根据实际才回来的速度情况,调一下速度闭环控制的PID参数,


最终得到的电机闭环控制函数为:

运行起来之后,调用速度闭环控制函数,进入debug模式,给定一个电机转速,电机会一直以该转速转动。使用可以使用转速表测试一下实际转速,因为电机在组装的时候结构上必然会存在误差,所以电机的转速会存在的误差,即使使用滤波算法使波形平稳,但是速度依然与实际转速存在差别,此时就需要在闭环控制时,根据给定转速与实际转速的差距,乘上一个补偿系数。
2、位置环
位置闭环控制框图如下,与速度闭环同理,其实就是根据采集到的电机实时位置,和设定的位置进行PID调节,从而控制电机转动到指定位置。

不同的使,位置闭环PID控制是P,I,D三者之和调节出来的效果,如下框图:

相应的PID代码控制和相关参数也有所不同,


最终,位置环控制函数:

- 意法半导体中国本地造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微控制器启动规模量产




