引言
步进电机是通过输入脉冲信号来进行控制,电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。随着计算机技术的进步和生产自动化程度的提高,步进电机在国民经济各领域中被广泛使用。
在很多的实际应用中,常常需要多台步进电机工作于同一个系统中,但是每台步进电机的传动距离却各不相同。这种情况下,可以采用每台电机单独运行,顺序控制的方法,这种方法明显的缺点是效率低。针对这种情况,本文提出利用STM32系列单片机的先进特性如DMA以及多条PWM输出通道,在同一系统内进行多台步进电机同步运行的优化控制系统研究.
系统硬件设计
本系统采用STM32F10X系列单片机作为主控芯片,该芯片是一款ARMCortex—M3内核的处理器,很适合在控制领域应用,具有速度快,效率高,价格低,以及丰富的外设功能等优点。同时STM32具有自己独特的优点:在Cortex-M3架构上进行了多项改进,在提升性
能的同时,所有新功能都具有较低的功耗,其内核电压为1.8V,芯片电压为3。3V,可以选择 |
驱动器、3相步进驱动器、5相步进驱动器等不同种类,通常情况下,其驱动电流可调,驱动电流的细分数也可调。
本系统采用3台两相四线制步进电机,采用2HB504MA来驱动。系统总体方案如图1所示。
系统软件设计
2.1多台步进电机同步运行控制方法
要实现多台步进电机的同步运行,就需要实现多台步进电机的同时启动、加速、匀速、减速及制动。然而众所周知,步进电机在启动、停止以及改变速度都需要一个渐进的过程,它受到迁入频率、迁出频率等技术指标的,因此,控制步进电机驱动器的步进脉冲信号必须是一种频率可控,脉冲数量可控的脉冲信号。一个典型的步进电机的运行过程如图2所示,T1之前的时刻是步进电机的加速段,步进频率从V0上升到了V1,这里可以是线性升速或者其他升速曲线。T1到T2是匀速运行阶段,步进频率不变。T2到T3时刻是步进电机减速段[2].
如图所示
如果两台步进电机每次调整的PWM信号频率运行的时间相同,同时启动后的加速、匀速、减速过程经过相同的调整次数,则同时停止运转.即A电机各次调整后运行时间为:
t 11 ,t 12 ,t 1 n,B 电机各次调整后运行时间为:t 21 ,t 22 ,t 2 n ,使 | ||||||||
的电机步速V | 1, 2, | , 6 | 。 | |||||
每个步速运行下所走过的步数分别设置为 | N 1 | , | | 8, 8, 2, 12, 12, 12 | 。在各步速下 |
运行时,步进电机走过的步速占总步速的比重可以调整。进一步可得出
t | | N 1 | | | N M 1 1 | 1) ( T 1) , f | | | 1, 2, | | , 6 | | ||||||||||||||||
V 1 | | | 。 | |||||||||||||||||||||||||
第2 台步进电机每个步速运行下所走过的步进分别设 | N 2 | | , | | 8, 8, 2, 12, 12, 12 | |||||||||||||||||||||||
t | | N M 1 1 | | 1) ( T 1) | | N M 2 2 | | 1) ( T 1) | ||||||||||||||||||||
| f | f | | | ||||||||||||||||||||||||
Kede | M 2 | | N 1 ( M 2 | | 1) | | 1, | | | 1, 2, | | , 6 | ||||||||||||||||
| ||||||||||||||||||||||||||||
N 2 | | | | |
在程序设计中,通过计算并设计并设定 | M | , | M | , | t | t,即可实现对步进电机的同步控制。 |
依照此类方法可以实现对多台步进电机的同步控制[].
2。2 通过DMA功能实现优化控制
通常是通过定时器中断方式产生脉冲,升速或减速的频率和步数已经以数组的方式存储在单片机的FLASH中,数组中的数据必须结合电机的资料和反复的实验来确定最佳的值.把升减速表的第一个值装入定时器TIM1的装载寄存器,启动定时器TIM1,而后在每个定时器中断到来时,首先输出一个脉冲信号,然后根据已走的步数查表得出下一步进脉冲信号需要的频率来更新定时器的装载值,最后退出中断[]。这种方法的优点是适应性好,在中断中可以实现各种算法.缺点是CPU的占用率高,尤其是控制那些使用高细分数的步进电机控制器在高转速时,需要很高频率的脉冲信号,单片机运算时间被定时器中断大量占用,特别是系统中存在多台步进电机同时运行的情况。如图3所示,定时器中断与步进脉冲的关系。
定时器中断与步进脉冲的关系
针对这种多台步进电机同时运行,CPU占用率过高的情况,提出通过DMA功能实现优化控制.CPU最重要的工作是进行数据的运算,搬运数据是其众多职能中比较不重要的一种。DMA就是存储器直接存取,在搬运数据的效果上,使用DMA比使用CPU来执行显得快速而高效得多。
这种方法的基本思想就是:首先把存放步进脉冲频率表值得地址作为DMA通道的源地址,而把定时器的自动装载寄存器的地址作为DMA通道的目的地址;然后把定时器配置为PWM输出,使用主从触发模式,当定时器被更新时,输出一个PWM脉冲。每通过DMA自动装载定时器一次,就会输出一个PWM脉冲。如图4所示,DMA中断与步进脉冲的关系。
DMA中断与步进脉冲的关系
这种方法的优点就是:CPU占用率极低。同时,使用DMA的缺点就是灵活性差,需要在电机启动前计算好整个运动轨迹.这种控制方法无需CPU过多的干预,可以控制多台步进电机的运动,完成较为复杂的系统动作。
2.3 程序流程控制 |
电机运行时间后,实时读取相关位置信息通过计算并转化为步进电机运行步数,结合控制指令的步数,采取偏差控制的方法。若偏差ΔL1、ΔL2超出规定值,那么程序就会把ΔL1、ΔL2分别赋值给L1、L2,接下来循环执行上述程序,直至偏差达到允许值。实现目标的位置移动之后,返回信息给上位机,上位机就会把接下来的目标位置以及距离信息发到STM32主控板,如此循环下去直到完成总目标位置移动。系统程序流程控制图如图所示.
实验结果 |
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务