基于STM32的二维滑台不规则轨迹精密控制
扫描二维码
随时随地手机看文章
摘要:在工业控制中,往往要求多个步进电机控制多维滑台,且能同时进行多维精密控制或者单维精密控制,这样才能精确控制滑台在多维上的轨迹。本文在分析STM32产生PWM波的频率和时序以及步进电机控制原理的基础上提出了一种通过程序设置实现定时器中断控制PWM数量的方法,从而精确控制PWM波频率及输出特定个数的PWM波,在机车牵引梁数控磨削设备的实际项目中实现步进电机精确控制二维滑台的不规则轨迹,并分析了系统的可靠性。该步进电机精密控制方法可推广到许多实际的应用项目中。
在现代工业控制中步进电机的控制是滑台控制的执行机构。区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机转速由脉冲信号的频率决定。
在很多情况下需要让步进电机控制滑台运动非常精确的距离,且运行轨迹是不规则的,运行时速度需可调。本文首先介绍系统的硬件电路原理;分析了控制滑台运行不规则轨迹的计算方法;在此基础上提出了用定时器中断的方法精确控制PWM数量;介绍了具体的软件实现方法并分析了系统测试结果。
1 系统硬件设计
本论文基于机车牵引梁数控磨削设备的电控设计,此设备用来磨削一个带弧线的六边形物体,因此要求设计两维滑台的电控部分,以精密控制磨削头的运行轨迹,经分析此轨迹呈不规则路线。系统硬件框图如图1所示,本系统的主控芯片是STM32F407,该芯片主频高达168 MHz,PWM定时器的频率同样可以达到168 MHz,在频率要求较高的设计中有较显著的优势。同时对于定时器中断控制PWM数量可以防止中断嵌套,且可以显著减少中断现场保护的开销,且该芯片支持SPI、CAN、I2C等多种协议。
主机和从机分别用两台两相步进电机来带动X轴和Y轴滑台,步进电机用M860驱动器来驱动。STM32主控板给驱动器发送PWM信号、方向和使能信号,驱动器经过光耦隔离并细分后来驱动步进电机。本系统主机和从机之间用CAN总线来进行通信,CAN总线具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点。主机和从机可以单独运行,只有当需要的时候采用CAN总线来进行同步。主机设置PWM的频率、滑台位置等数据以及发送开始运行、停止运行等信号,从机通过CAN总线接收相关数据和指令。当从机结束运行就会发送结束信号给主机。主机和从机之间通过CAN总线进行同步。
2 系统软件设计
2.1 二维滑台的运行模式
以二维滑台为研究对象,滑台由步进电机带动,滑台的运行模式中包含了二维滑台的单独运行和同时运行,假设滑台的齿距为10 mm(步进电机转动一圈,滑台前进10 mm)。
假设目标滑台前进距离为L。驱动器细分倍数为、步进电机总步数、PWM脉冲总个数为别为n、N、P。则
为了便于计算,此次设计将驱动器细分倍数设为5,则
P=N=100L (2)
即当滑台需要前进距离为Lmm时,则步进电机总步数以及PWM脉冲总个数也应该为100 L。
如图2所示是二维滑台的不规则运动轨迹,轨迹由直线、斜线、圆弧组成。各种轨迹实现方法如下:
1)斜线轨迹
由图2可知,二维滑台有同时运动和结束的过程,对于斜线部分X轴滑台运距离为n1的过程中Y轴滑台同时运行距离为n2。有公式2可知X轴滑台和Y轴滑台运行n1和n2的距离所需要的PWM的脉冲个数分别为P1、P2则有P1=100n1,P2=100n2,以X轴为基准,则
n2=n1·cosα (3)
P2=P1cosα (4)
STM32定时器产生的PWM频率由系统时钟f、预分频值M、计数周期T决定,系统时钟f和和预分频值M不变,以改变计数周期T来改变PWM的频率。
以X轴滑台为基准,Tx、Ty分别为X和Y轴定时器计数周期,Vx、Vy分别为X轴和Y轴定时器频率,则有
2)单滑台运动轨迹
如图2所示,对于距离为n3的部分,由于只需要在X轴方向上运动,由公式2可知需要的PWM数量为100n3,因此只需要设置X轴定时器的PWM频率为固定值。并且计数100n3个PWM数量然后停止,轨迹在X轴方向上运动的距离就为n3。
而对于距离为n4的部分,和n3部分唯一不同的地方就是此时只需在Y轴方向运动。因此只需要设置Y轴定时器的PWM频率为固定值,并且计数100n4个PWM然后停止。
3)圆弧轨迹
而圆弧部分是以直线切割的方式实现的,圆弧角度为90度,D点是圆弧的中心点,圆弧半径为55 mm。
D点以上以X轴为基准,假设X轴定时器产生的PWM频率为,每输出100个PWM时Y轴定时器频率变换一次。假设A点变换了n-1次PWM,而B点变换了n次PWM,则A点坐标为(100(n-1),Ya),B点坐标为(100n,Yb),圆弧半径为R,则有
但是由于圆弧中点对应的X轴的PWM数量往往不是100的倍数,所以假设C点是离中点D最近的点,C点变换了m次PWM,则C点X轴坐标为100m,D点X和Y轴的坐标都为,则有
在D点以下以Y轴为基准,假设Y轴定时器产生的PWM频率为Vy固定不变,每输出100个PWM时X轴定时器频率变换一次。假设E点变换了i-1次 PWM,而F点变换了i次PWM,则E点坐标为(Xe,Yd-100(i-1)),F点坐标为(Xf,Yd-100i),圆弧半径为R,则有
通过式(8)、(11)、(19),在程序的每一步中设置Tx、Ty的值来实现X、Y轴滑台以所要求的轨迹运动。
2.2 统软件流程图
如图3所示是系统软件的流程图,系统在初始化时为了防止意外的碰撞,需要寻找零点,寻找零点结束后进行滑台转速、轨迹中每一步PWM数量的设置,并通过 CAN总线将设置的数据发送给从机。设置完成后,当主机检测到物件过来的信号后,将开始运行的信号通过CAN总线发送给从机,使主机与从机同时开始运行,当从机运行完成后发送反馈信号给从机,主从机同时停止运行。当一次运行完成以后看情况确定是否需要重新设置参数,如果需要重新设置则进入滑台运行轨迹参数设置狂态,否则进入等待运行状态。
在主从机运行过程中,由滑台运行模式可知,滑台是以不规则的轨迹运行的。因此根据滑台的运行模式,在每一步运行之前需要计算滑台运行的距离及两个滑台的PWM频率。
3 系统测试
将该系统运用到实际的环境中,以垂直于地面放置的二维滑台为研究对象,使滑台以图2中的轨迹运行。在设备运行的起始点做标记,设置滑台运行在90秒/圈,45秒/圈30秒/圈三种速度下,并且分别运行10圈,15圈,20圈,25圈得到运行结束时与起始点的距离,如表1所示,同样转速时转动圈数越多误差越大;转动相同圈数的情况下,滑台转速越高误差也是越大。
经过实际分析得出,这些误差是由两方面造成的。一方面,由于滑台是垂直于地面放置,滑台在下降过程中难免会因为重力的作用而下降。另一方面,在定时器输出 PWM数量固定的情况下,由于在系统运动过程中需要改变经常需要改变PWM的频率,而改变一次PWM的频率会有1个CLOCK的延迟。
4 结束语
本文介绍了用STM32控制滑台运行不规则轨迹的计算方法,在此基础上提出了用定时器中断的方法精确控制PWM数量。通过精密控制X轴和Y轴的滑台,使磨削头能以直线、斜线和弧线的轨迹精确运动,达到成功磨削工件的目的。经过实际的测试表明该系统工作稳定,精确度较高。
本次设计是二维的滑台,但设计的思想和方法也可推广到三维滑台的控制设计。要想获得更精确的步进电机控制,可考虑使用DSP作为主控芯片,从而可以有更高的运算速度和控制精度。本论文精确控制两维滑台运行轨迹的方法可推广应用到许多步进电机控制的项目中,比如本实验室另一个项目——显微镜电动载物台的精密控制。