基于STM32的步进电机动态加减速控制

发表时间:2020/6/2   来源:《科学与技术》2020年3期   作者:姚海亮
[导读] 步进电机的原理是通过接受电能,将其转化为机械能的控制元件
       摘要:步进电机的原理是通过接受电能,将其转化为机械能的控制元件。为防止步进电机启动和停止时出现冲击而产生失步和震荡的现象,在步进电机的数控系统中,需要使用一种专用的加减速控制算法,通过控制驱动脉冲规律控制步进电机的加减速过程,本文就基于STM32的步进电机动态加减速控制展开探讨。
         关键词:步进电机;STM32芯片;加减速控制
         引言
         步进电机控制简便,在载荷容限内,转速、转角只取决于输入脉冲信号的频率和数量。在多步进电机控制系统中,随着控制节点的增多,控制信号及反馈信号大量增加,集中控制体系难以满足实时性、快速性及准确定的要求。分布式控制系统(DCS)采用微处理器完成控制节点反馈信息处理和控制信号发送,通过现场总线技术实现基于高性能中央微处理机的集中控制及上下位机的实时通信,简化了控制系统,降低控制的复杂性,且能提高系统的稳定性及灵活性。
         1总体设计
         系统以STM32F103RCT6为控制核心,DRV8841芯片为驱动器,完成对二相四线步进电机精确控制。其中软件采用电机细分控制技术和S曲线加减速算法完成对转速、转角和方向的控制,具体表现为通过改变4路输出SPWM脉冲信号的高低电平、占空比、个数和频率。当4路SPWM脉冲信号输入到DRV8841驱动器时,将被转化为步进电机4个绕组的电流信号,控制步进电机按设定的方向转动相应角度。为了达到准确定位的目的,软件通过改变4路SPWM脉冲信号高低电平,个数和占空比分别来控制绕组通电先后顺序和磁场强度,同时为了达到调速的目的,软件通过改变脉冲频率来控制电机转动的速度和加速度。
         2系统设计
         2.1主控站硬件设计
         主控站主要负责USB协议解析及通信转发,一方面将由上位机通过USB发送而来的数据包进行解析,执行开关量的控制任务、温度检测任务或者直接推送至CAN总线上,另一方面将CAN总线上发送至的数据包直接通过USB转发给上位机。主要包括了STM32控制模块、电源模块、USB通信模块、CAN通信模块、串口通信模块、温度检测模块及三极管开关模块.CAN主控制站采用STM32系列32位微控制器中的STM32F107VC,该控制器采用Cortex-M3内核,具有高性能、低功耗的优点,工作在72MHz,内部集成了GPIO、CAN、SPI、USART及USB等丰富外设,并采用嵌套向量中断控制器(NVIC),可以实现低延迟的中断处理和高效地处理晚到的中断。USB具有即插即用、传输速率高、抗干扰能力强及兼容性好等优先,本系统采用STM32F107内置的USB_OTG全速控制器实现与PC上位机的数据交换,在硬件上将USB_OTG配置成设备(USBSLAVE)模式。系统中采用广州致远所产的CAN通用收发器CTM8251结合STM32F107设计完成CAN模块,简化了系统设计。CTM8251带有信号隔离功能,可提高系统工作可靠性,此外,对两路差分信号分别进行了滤波,有效抑制信号的干扰。
        
         2.2系统软件设计
         系统以STM32F103RCT6为控制核心,DRV8841芯片为驱动器,完成对二相四线步进电机精确控制。其中软件采用电机细分控制技术和S曲线加减速算法完成对转速、转角和方向的控制,具体表现为通过改变4路输出SPWM脉冲信号的高低电平、占空比、个数和频率。当4路SPWM脉冲信号输入到DRV8841驱动器时,将被转化为步进电机4个绕组的电流信号,控制步进电机按设定的方向转动相应角度。为了达到准确定位的目的,软件通过改变4路SPWM脉冲信号高低电平,个数和占空比分别来控制绕组通电先后顺序和磁场强度,同时为了达到调速的目的,软件通过改变脉冲频率来控制电机转动的速度和加速度。
         3动态调速
         在实际运行过程中,频率的变化是离散的,需要对曲线离散取值。课题组采用等时间间隔数值的阶梯逼近升速S曲线取值,等脉冲数为阶梯实际维持长度的方案。对于阶梯的维持时间的长度有等时长和等脉冲数2种方案。(1)等时长方案。每个阶梯维持相同的时间,它能很好地反映S曲线的特性,但是第1个阶梯的脉冲数和最后1个阶梯的脉冲数相差很大。步进电机在调速时,步进电机的转子转过第1个步进角停下的位置时,转子会出现一定程度的震荡。为解决该震荡,需要增加几个同频脉冲使转子运行平稳,但同频脉冲过多并不会继续提高其平稳性。(2)等脉冲数方案。每个阶梯维持相同的脉冲数。在选取了合适的同频脉冲数后,能对S曲线的性能进一步优化,提高运行的效率。选取同频等脉冲数作为阶梯维持时间,能在保持近乎相同的性能下,提高运行效率。经试验测得,5作为同频脉冲数是一个较合适的值。取图4中S曲线与阶梯的接触点为离散的取值点,记为(tk,fk)。k表示S曲线上取的第k个点,fk表示第k个点运行的频率,tk表示第k个点时间的数值。图4中Δt表示等时间间隔数值,Δtk表示以(tk,fk)为起点的实际阶梯时间维持长度,即图中第k个灰柱条的宽度。
         第k个阶梯实际的维持时间为
        
         在tk点的实际运行时间为
        
         式中:tplusek表示第k个点单个脉冲持续的时间;tplusem表示第m个点单个脉冲持续的时间;w表示同一频率脉冲的个数。S曲线的理论取点(tk,fk)对应的实际运行点为(t'k,fk)。在动态调速过程中,脉冲频率(速度)增加的数值可以是0~90000Hz之间的任意值,所以不可能为每一个调速建立一个S曲线。为了实现范围调速,可以先建立一个通用的S曲线模型,然后对其进行拉伸、压缩以对应不同的调速。拉伸和压缩后的曲线仍会保留大部分原曲线特性。通过给S曲线函数乘以一个系数ε得到需要的增速,即在纵轴上对实际S曲线进行压缩。针对不同的增速,可选取相对应的等时间间隔数值Δt和同频脉冲数,保证动态调速的效率和稳定性。经多次试验表明,此方法有良好的动态调速性能。经过试验发现,可以先获得某一同频脉冲数下步进电机不发生堵转的初速度、增速和等时间间隔数值Δt的临界关系表。然后取临界等时间间隔数值Δt'的1/4为稳定等时间间隔数值Δt″,可得到初速度、增速和等时间间隔数值Δt稳定关系表。将初速度、增速和等时间间隔数值Δt稳定关系图表作为动态选择等时间间隔数值Δt的依据,协同优化后的S曲线算法写入内存,即可作为动态调速控制的核心,实现对步进电机进行平稳的动态调速。
         结语
         步进电机是一种将脉冲信号转换为相应角位移的执行元件,广泛应用于位置和速度要求精确控制的方面。在实际控制步进电机的转动时需要进行3个要素的设置:方向、转角和转速,其中方向取决于步进电机绕组上的通电的顺序,转角取决于电流流过定子绕组产生磁场的强度,而转速则取决于处理器发出的步进脉冲之间的时间间隔。因此,根据这3个要素来精确控制处理器输出SPWM脉冲信号高低电平,占空比、个数和频率,最终实现步进电机的精度调速和定位控制。
         参考文献
         [1]黄兆斌,黄云龙,余世明.几种步进电机加减速方法的对比研究及其应用[J].机电工程,2019,28(8):951-953.
         [2]王邦继,刘庆想,周磊,等.步进电机控制系统建模及加减速曲线优化[J].电机与控制学报,2018,22(1):37-42.
         [3]郭新贵,李从心.S曲线加减速算法研究[J].机床与液压,2018(5):60-62.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: