欢迎光临散文网 会员登陆 & 注册

手写STM32 FOC记录----- 速度环 + 位置环

2023-09-20 18:08 作者:茄子土豆地三鲜  | 我要投稿

        速度闭环控制框图如下,其实就是根据采集到的电机实时速度,和设定的速度进行PID调节,从而控制电机转动。


1、速度环控制

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


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

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


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


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

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

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

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

    

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


2、位置环

        位置闭环控制框图如下,与速度闭环同理,其实就是根据采集到的电机实时位置,和设定的位置进行PID调节,从而控制电机转动到指定位置。

 


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

   

  

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

 


        最终,位置环控制函数:

 


手写STM32 FOC记录----- 速度环 + 位置环的评论 (共 条)

分享到微博请遵守国家法律