一种基于FPGA的步进电机速度控制方法与流程

文档序号:12729132阅读:869来源:国知局
一种基于FPGA的步进电机速度控制方法与流程
本发明涉及步进电机速度控制
技术领域
,尤其涉及一种基于FPGA的步进电机速度控制方法。
背景技术
:为避免步进电机在转动过程中由于惯性作用发生失步现象,步进电机在开始转动时应当由低速逐渐加速至高速,在停止转动时应当逐渐减速停止。采用分支控制结构在FPGA中实现会占用较多的硬件资源,使用单一控制结构更加节省硬件资源,但是,目前现有技术没有实现在FPGA中使用单一控制结构对步进电机的速度进行控制。技术实现要素:本发明的目的在于克服现有技术不足,提供了一种基于FPGA的步进电机速度控制方法,能够实现在FPGA中使用单一控制结构对步进电机的速度进行控制。本发明的技术解决方案:一方面,一种基于FPGA的步进电机速度控制方法,包括以下步骤:步骤1、设定加减速阈值为M,最大步间隔为T1,最小步间隔为T2,实时步间隔T=T1,加速减速阶段的步间隔之差ΔT=(T1-T2)/M;步骤2、接收目标角度值A1;步骤3、计算目标角度值A1与当前角度值A0的步差绝对值X=|A1-A0|;步骤4、当步差绝对值0<X≤M时,进入步骤5,当步差绝对值X>M时,进入步骤6,当X=0时,控制结束,转动停止;步骤5、等待时间T后发出一次转动控制信号,然后X=X-1,若T<T1, 则T=T+ΔT,若T≥T1,则T=T,进入步骤4;步骤6、等待时间T后发出一次转动控制信号,然后X=X-1,若T>T2,则T=T-ΔT,若T≤T2,则T=T,进入步骤4。进一步的,当转动总步数X大于2M时,步进电机会由最低速加速转动M步后达到最高速,然后以最高速匀速转动X-2M步后开始减速,减速转动M步后达到最低速,然后停止转动。进一步的,当转动总步数X大于M,小于等于2M时,步进电机会由最低速加速转动X-M步后开始减速,减速转动X-M步后达到最低速,然后以最低速匀速转动2M-X步后停止转动。进一步的,当转动总步数X小于等于M时,步进电机以最低速匀速转动X步后停止转动。另一方面,一种用于步进电机速度控制的FPGA控制电路,该电路包含如下功能模块:差值绝对值计算模块:用于计算目标角度与当前角度的步数差值绝对值;阈值比较模块:用于比较当前步差与阈值,从而决定加速、减速、保持当前速度或停止;步间计时模块:用于根据步间距计时控制电机转动信号输出。本发明实施例提供的一种基于FPGA的步进电机速度控制方法,采用FPGA对步进电机进行速度控制,使用单一控制结构,资源占用量少,而且能够根据转动步数的不同改变速度控制策略。附图说明所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。图1为本发明实施例提供的一种基于FPGA的步进电机速度控制方法的流程图;图2、图3、图4为本发明实施例中步进电机转动步数不同时的速度规划曲线;图5为本发明实施例中FPGA硬件实现框图。具体实施方式下面将结合附图对本发明的具体实施例进行详细说明。在下面的描述中,出于解释而非限制性的目的,阐述了具体细节,以帮助全面地理解本发明。然而,对本领域技术人员来说显而易见的是,也可以在脱离了这些具体细节的其它实施例中实践本发明。在此需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的设备结构和/或处理步骤,而省略了与本发明关系不大的其他细节。本发明实施例提供一种基于FPGA的步进电机速度控制方法,如图1所示,包括以下步骤:101、设定加减速阈值为M,最大步间隔为T1,最小步间隔为T2,实时步间隔T=T1,加速减速阶段的步间隔之差ΔT=(T1-T2)/M;102、接收目标角度值A1;103、计算目标角度值A1与当前角度值A0的步差绝对值X=|A1-A0|;104、判断当步差绝对值与M关系,当步差绝对值0<X≤M时,进入步骤105,当步差绝对值X>M时,进入步骤106,当X=0时,控制结束,转动停止;105、等待时间T后发出一次转动控制信号,然后X=X-1,若T<T1,则 T=T+ΔT,若T≥T1,则T=T,进入步骤104;106、等待时间T后发出一次转动控制信号,然后X=X-1,若T>T2,则T=T-ΔT,若T≤T2,则T=T,进入步骤104。进一步的,如图2、所示,当转动总步数X大于2M时,步进电机会由最低速加速转动M步后达到最高速,然后以最高速匀速转动X-2M步后开始减速,减速转动M步后达到最低速,然后停止转动。进一步的,如图3所示,当转动总步数X大于M,小于等于2M时,步进电机会由最低速加速转动X-M步后开始减速,减速转动X-M步后达到最低速,然后以最低速匀速转动2M-X步后停止转动。进一步的,如图4所示、当转动总步数X小于等于M时,步进电机以最低速匀速转动X步后停止转动。本发明实施例提供的一种基于FPGA的步进电机速度控制方法,采用FPGA对步进电机进行速度控制,使用单一控制结构,资源占用量少,而且能够根据转动步数的不同改变速度控制策略。为了实现上述方法,本发明实施例提供一种用于步进电机速度控制的FPGA控制电路,如图5所示,该电路包含如下功能模块:差值绝对值计算模块:用于计算目标角度与当前角度的步数差值绝对值;阈值比较模块:用于比较当前步差与阈值,从而决定加速、减速、保持当前速度或停止;步间计时模块:用于根据步间距计时控制电机转动信号输出。例如,设置加减速阈值M=4步,最大步差为T1=32us,最小步差T2=16us,当转动10步时,电机加减速情况如下:当转动8步时,电机加减速情况如下:步计数876543步间隔32us28us24us20us16us20us24us步计数210步间隔28us32us当转动7步时,电机加减速情况如下:步计数765432步间隔32us28us24us20us24us28us32us步计数10步间隔32us当转动4步时,电机加减速情况如下:步计数43210步间隔32us32us32us32us32us如上针对一种实施例描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施例中使用,和/或与其它实施例中的特征相结合或替代其它实 施例中的特征使用。应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤、组件或其组合的存在或附加。这些实施例的许多特征和优点根据该详细描述是清楚的,因此所附权利要求旨在覆盖这些实施例的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施例限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。本发明未详细说明部分为本领域技术人员公知技术。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1