CN106887982B - 一种基于fpga的步进电机速度控制方法 - Google Patents
一种基于fpga的步进电机速度控制方法 Download PDFInfo
- Publication number
- CN106887982B CN106887982B CN201510939836.2A CN201510939836A CN106887982B CN 106887982 B CN106887982 B CN 106887982B CN 201510939836 A CN201510939836 A CN 201510939836A CN 106887982 B CN106887982 B CN 106887982B
- Authority
- CN
- China
- Prior art keywords
- stepper motor
- speed
- rotation
- fpga
- absolute value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000001133 acceleration Effects 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000005611 electricity Effects 0.000 description 3
- 238000011217 control strategy Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/14—Arrangements for controlling speed or speed and torque
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Control Of Stepping Motors (AREA)
Abstract
本发明实施例公开的一种基于FPGA的步进电机速度控制方法,涉及步进电机速度控制技术领域,能够实现在FPGA中使用单一控制结构对步进电机的速度进行控制。该方法计算目标角度值A1与当前角度值A0的步差绝对值X=|A1-A0|;当步差绝对值0<X≤M时,等待时间T后发出一次转动控制信号,然后X=X-1,若T<T1,则T=T+ΔT,若T≥T1,则T=T,当步差绝对值X>M时,等待时间T后发出一次转动控制信号,然后X=X-1,若T>T2,则T=T-ΔT,若T≤T2,则T=T,当X=0时,控制结束,转动停止,主要用于步进电机速度控制。
Description
技术领域
本发明涉及步进电机速度控制技术领域,尤其涉及一种基于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步时,电机加减速情况如下:
步计数 | 8 | 7 | 6 | 5 | 4 | 3 | |||||||
步间隔 | 32us | 28us | 24us | 20us | 16us | 20us | 24us |
步计数 | 2 | 1 | 0 | ||
步间隔 | 28us | 32us |
当转动7步时,电机加减速情况如下:
步计数 | 7 | 6 | 5 | 4 | 3 | 2 | |||||||
步间隔 | 32us | 28us | 24us | 20us | 24us | 28us | 32us |
步计数 | 1 | 0 | |
步间隔 | 32us |
当转动4步时,电机加减速情况如下:
步计数 | 4 | 3 | 2 | 1 | 0 | |||||
步间隔 | 32us | 32us | 32us | 32us | 32us |
如上针对一种实施例描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施例中使用,和/或与其它实施例中的特征相结合或替代其它实施例中的特征使用。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤、组件或其组合的存在或附加。
这些实施例的许多特征和优点根据该详细描述是清楚的,因此所附权利要求旨在覆盖这些实施例的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施例限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本发明未详细说明部分为本领域技术人员公知技术。
Claims (4)
1.一种基于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。
2.根据权利要求1所述的方法,其特征在于,当转动总步数X大于2M时,步进电机会由最低速加速转动M步后达到最高速,然后以最高速匀速转动X-2M步后开始减速,减速转动M步后达到最低速,然后停止转动。
3.根据权利要求2所述的方法,其特征在于,当转动总步数X大于M,小于等于2M时,步进电机会由最低速加速转动X-M步后开始减速,减速转动X-M步后达到最低速,然后以最低速匀速转动2M-X步后停止转动。
4.根据权利要求3所述的方法,其特征在于,当转动总步数X小于等于M时,步进电机以最低速匀速转动X步后停止转动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510939836.2A CN106887982B (zh) | 2015-12-15 | 2015-12-15 | 一种基于fpga的步进电机速度控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510939836.2A CN106887982B (zh) | 2015-12-15 | 2015-12-15 | 一种基于fpga的步进电机速度控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106887982A CN106887982A (zh) | 2017-06-23 |
CN106887982B true CN106887982B (zh) | 2019-01-22 |
Family
ID=59173978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510939836.2A Active CN106887982B (zh) | 2015-12-15 | 2015-12-15 | 一种基于fpga的步进电机速度控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106887982B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544573B (zh) * | 2017-08-29 | 2021-01-01 | 深圳怡化电脑股份有限公司 | 步进电机驱动的控制方法及系统 |
CN109687782B (zh) * | 2019-01-08 | 2021-06-04 | 蓝怡科技集团股份有限公司 | 一种步进电机的控制装置和控制系统 |
CN110995083B (zh) * | 2019-12-20 | 2023-01-06 | 湖南航天机电设备与特种材料研究所 | 一种用于三自惯组产品的高可靠锁紧控制方法及控制系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373947A (zh) * | 2007-08-22 | 2009-02-25 | 比亚迪股份有限公司 | 一种步进电机速度的控制方法、装置及系统 |
CN102843084A (zh) * | 2012-09-11 | 2012-12-26 | 济南优耐特汽车电子有限公司 | 一种步进电机的加减速驱动方法 |
JP2014176171A (ja) * | 2013-03-07 | 2014-09-22 | Hitachi High-Technologies Corp | パルスモータ制御装置 |
CN104660127A (zh) * | 2014-12-04 | 2015-05-27 | 重庆谱思机器人控制系统有限公司 | 一种步进电机控制器及其控制方法 |
CN104753415A (zh) * | 2013-12-31 | 2015-07-01 | 深圳迈瑞生物医疗电子股份有限公司 | 步进电机的启停控制方法、系统和步进电机 |
-
2015
- 2015-12-15 CN CN201510939836.2A patent/CN106887982B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373947A (zh) * | 2007-08-22 | 2009-02-25 | 比亚迪股份有限公司 | 一种步进电机速度的控制方法、装置及系统 |
CN102843084A (zh) * | 2012-09-11 | 2012-12-26 | 济南优耐特汽车电子有限公司 | 一种步进电机的加减速驱动方法 |
JP2014176171A (ja) * | 2013-03-07 | 2014-09-22 | Hitachi High-Technologies Corp | パルスモータ制御装置 |
CN104753415A (zh) * | 2013-12-31 | 2015-07-01 | 深圳迈瑞生物医疗电子股份有限公司 | 步进电机的启停控制方法、系统和步进电机 |
CN104660127A (zh) * | 2014-12-04 | 2015-05-27 | 重庆谱思机器人控制系统有限公司 | 一种步进电机控制器及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106887982A (zh) | 2017-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106887982B (zh) | 一种基于fpga的步进电机速度控制方法 | |
CN105564431B (zh) | 控制混合动力车的滑行运行的方法及执行该方法的装置 | |
CN107850887B (zh) | S型曲线规划方法、装置及数控机床 | |
US9979342B2 (en) | Switch reluctance motor wide speed-regulation range cross-control method | |
US11396312B2 (en) | Train overspeed protection method and apparatus | |
EP3088240B1 (en) | Driving curve creation device, driving assistance device, driving control device, and driving curve creation method | |
CN104554260B (zh) | 用于在超速管控路段内控制速度的系统和装置 | |
EP2789431A3 (en) | Control system and control method | |
CN107070327B (zh) | 一种步进电机控制方法及装置 | |
CN105313881B (zh) | 用于控制混合动力车的速度变化的方法和装置 | |
CN106671995B (zh) | 一种重载列车驾驶曲线建立方法及装置 | |
CN112666995B (zh) | 无人机的速度规划方法、装置、设备及存储介质 | |
CN109484427A (zh) | 一种列车制动方法和装置 | |
CN109765888B (zh) | 一种车辆控制方法、装置及系统 | |
CN112918519B (zh) | 二次短距离对标停车方法、列车控制系统及自动驾驶系统 | |
CN110217235B (zh) | 一种用于车辆起步的控制方法及控制系统 | |
CN105955203A (zh) | CANopen伺服系统中速度前馈和转矩前馈的处理方法 | |
CN109510532A (zh) | 一种步进电机的直线段梯形加减速控制算法 | |
CN104580917A (zh) | 一种快速自动聚焦方法及装置 | |
KR20150025920A (ko) | 친환경 차량의 모터 시스템 제어 장치 및 방법 | |
CN112455436A (zh) | 车辆减速控制方法及整车控制器 | |
CN105270204B (zh) | 用于驱动电动机的转矩控制装置和方法 | |
EP4047466A3 (en) | Host-storage system that includes a command queuing method and a method of adjusting the processing speed of multiple queues | |
CN106325222B (zh) | 进行基于表形式数据的运行的数值控制装置 | |
CN113401182A (zh) | 列车运行控制方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |