单片机
返回首页

手写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代码控制和相关参数也有所不同,

 

        最终,位置环控制函数:


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 锂离子/锂聚合物USB电池充电器

  • 6晶体管H桥

  • AVR LCD温度计—LM35

  • AVR PC步进电机驱动器

  • AVR温度计TCN75

  • JDM2 PIC 18F 编程器

    相关电子头条文章