CN115173758B - 一种步进电机速度控制方法、装置、设备及存储介质 - Google Patents
一种步进电机速度控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115173758B CN115173758B CN202210759959.8A CN202210759959A CN115173758B CN 115173758 B CN115173758 B CN 115173758B CN 202210759959 A CN202210759959 A CN 202210759959A CN 115173758 B CN115173758 B CN 115173758B
- Authority
- CN
- China
- Prior art keywords
- speed
- stepping motor
- value
- current
- timer
- 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 77
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 230000001133 acceleration Effects 0.000 claims abstract description 134
- 238000004364 calculation method Methods 0.000 claims abstract description 37
- 230000003247 decreasing effect Effects 0.000 claims description 61
- 230000015654 memory Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000002360 preparation method Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 230000036461 convulsion Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012888 cubic function Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012887 quadratic function Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
本发明公开了一种步进电机速度控制方法、装置、设备及存储介质,该方法包括:获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔;基于第一脉冲间隔与第二脉冲间隔,确定步进电机的当前所需运行步数;采集当前步进电机脉冲时刻,当当前步进电机脉冲时刻与预设时刻相同时,基于当前速度与当前所需运行步数进行中断处理,生成定时器计数数值;基于定时器计数数值对步进电机的速度进行控制。本方法通过中断处理生成定时器计数数值,避免了对步进电机每一步时间的计算,减轻了处理器负担,节约存储空间,并且利用定时器计数数值对步进电机的速度进行控制,提高了对步进电机加减速控制的精度。
Description
技术领域
本发明涉及步进电机技术领域,具体涉及一种步进电机速度控制方法、装置、设备及存储介质。
背景技术
步进电机是一种将电脉冲信号转变为角或者线位移的电磁执行机构,由于它在开环控制情况下也具有高精度、无积累误差等优点,被广泛应用于数控系统中,但是步进电机的矩频特性也导致电机在不同转速下所产生的力量的不同;另一方面,负载的物理特性决定了在静止和运动状态下对外所需的驱动力量的不同;一般而言,负载由静止到运动过程中,所需要的驱动力是由大到小的,这与电机由静止到运行产生的力矩由大变小的物理特性正好对应,所以,在正常的使用中,步进电机的驱动都需要加速和减速的运行过程。
在步进电机的使用过程中,除集成了加减速功能的芯片和驱动器以外,通常需要人为实现电机的速度控制;通常的步进电机的驱动电路主要组成部分都是一片单片机通过STEP(脉冲输入管脚,用于控制电机旋转的步数)和DIR(旋转方向控制管脚)与电机驱动芯片连接,再由驱动芯片产生驱动电流控制电机运行;由于步进电机是脉冲驱动,发送一个脉冲就促使电机运行一个步距角,随着脉冲频率的由慢变快,电机运行速度也由慢变快,这就实现了对电机的加速,相反,将发脉冲频率由快减慢,就实现了对电机的减速。
脉冲频率的变化如果按照直线的方式变化,就是直线加速,如果按照S型曲线的方式变化,就是S曲线加速,无论是哪种速度控制方式,在具体的编程实现方法中,一种实现方法是根据速度控制方式预先生成速度表,电机运行过程中按照速度表内的数值来依次设置产生脉冲频率的定时器,由此产生速度控制脉冲;另外一种方法是由单片机根据加减速计算方法实时产生定时器频率参数,由此来产生对应脉冲。
这两种产生速度控制的方法,第一种需要根据运行条件预先计算好速度表,速度表无法在运行过程中实时更改,导致运行效果单一,且会占用大片内存用于存储速度表;第二种方法对于像S曲线甚至高次曲线这样的速度控制方式,无法在限定的时限内灵活控制步进电机的速度。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中步进电机的速度控制方式无法在运行过程中实时更改,占用内存多,无法在限定的时限内灵活控制步进电机的速度的缺陷,从而提供一种步进电机速度控制方法、装置、设备及存储介质。
本发明实施例提供了一种步进电机速度控制方法,包括如下步骤:
获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔;
基于所述第一脉冲间隔与所述第二脉冲间隔,确定步进电机的当前所需运行步数;
采集当前步进电机脉冲时刻,当所述当前步进电机脉冲时刻与预设时刻相同时,基于所述当前速度与所述当前所需运行步数进行中断处理,生成定时器计数数值;
基于所述定时器计数数值对步进电机的速度进行控制。
本发明提供的一种步进电机速度控制方法,通过中断处理生成定时器计数数值,避免了对步进电机每一步时间的计算,减轻了处理器负担,节约存储空间,并且利用定时器计数数值对步进电机的速度进行控制,实现了步进电机在限定时间内对速度的实时更改,提高了对步进电机速度控制的精度。
可选地,所述基于所述当前速度与所述当前所需运行步数进行中断处理,生成定时器计数数值,包括:
将所述当前所需运行步数递减至零,并将所述当前速度增加或减少预设控制数值,生成步进电机运行速度;
采集定时器计数频率,利用所述定时器计数频率与所述步进电机运行速度生成所述定时器计数数值。
上述将当前速度增加或减少预设控制数值,生成步进电机运行速度,无需预计算速度表,节省内存空间,也无需复杂的数学运算,满足实时性要求,只需执行简单的加法和除法运算就可以实现对步进电机速度的控制,提高了控制的灵活性。
可选地,所述将所述当前速度增加或减少预设控制数值,生成步进电机运行速度,包括:
将所述当前速度增加或减少预设加速度数值,生成所述步进电机运行速度。
可选地,所述将所述当前速度增加或减少预设控制数值,生成步进电机运行速度,还包括:
将所述预设加速度数值增加或减少预设加加速数值,生成第一加速度控制数值,并将所述当前速度增加或减少所述第一加速度控制数值,生成所述步进电机运行速度。
可选地,所述将所述当前速度增加或减少预设控制数值,生成步进电机运行速度,还包括:
将所述预设加加速数值增加或减少预设常数数值,生成加加速控制数值,将所述预设加速度数值增加或减少所述加加速控制数值,生成第二加速度控制数值,并将所述当前速度增加或减少所述第二加速度控制数值,生成所述步进电机运行速度。
可选地,所述利用所述定时器计数频率与所述步进电机运行速度生成所述定时器计数数值,所述定时器计数数值的计算公式如下:
上式中,t定表示定时器计数数值,f表示定时器计数频率,V表示步进电机运行速度。
可选地,所述基于所述第一脉冲间隔与所述第二脉冲间隔,确定步进电机的当前所需运行步数,所述当前所需运行步数的计算公式如下:
上式中,ΔS表示当前所需运行步数,Δt表示第一脉冲间隔,tn表示第二脉冲间隔。
在本申请的第二个方面,还提出了一种步进电机速度控制装置,包括:
获取模块,用于获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔;
生成模块,用于基于所述第一脉冲间隔与所述第二脉冲间隔,确定步进电机的当前所需运行步数;
中断处理模块,用于采集当前步进电机脉冲时刻,当所述当前步进电机脉冲时刻与预设时刻相同时,基于所述当前速度与所述当前所需运行步数进行中断处理,生成定时器计数数值;
控制模块,用于基于所述定时器计数数值对步进电机的速度进行控制。
可选地,所述中断处理模块,包括:
递减单元,用于将所述当前所需运行步数递减至零,并将所述当前速度增加或减少预设控制数值,生成步进电机运行速度;
生成单元,用于采集定时器计数频率,利用所述定时器计数频率与所述步进电机运行速度生成所述定时器计数数值。
可选地,所述递减单元,包括:
将所述当前速度增加或减少预设加速度数值,生成所述步进电机运行速度。
可选地,所述递减单元,还包括:
将所述预设加速度数值增加或减少预设加加速数值,生成第一加速度控制数值,并将所述当前速度增加或减少所述第一加速度控制数值,生成所述步进电机运行速度。
可选地,所述递减单元,还包括:
将所述预设加加速数值增加或减少预设常数数值,生成加加速控制数值,将所述预设加速度数值增加或减少所述加加速控制数值,生成第二加速度控制数值,并将所述当前速度增加或减少所述第二加速度控制数值,生成所述步进电机运行速度。
可选地,所述生成单元,包括:
所述定时器计数数值的计算公式如下:
上式中,t定表示定时器计数数值,f表示定时器计数频率,V表示步进电机运行速度。
可选地,所述生成模块,包括:
所述当前所需运行步数的计算公式如下:
上式中,ΔS表示当前所需运行步数,Δt表示第一脉冲间隔,tn表示第二脉冲间隔。
在本申请的第三个方面,还提出了一种计算机设备,包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序,所述处理器被配置用于调用所述计算机程序,执行上述第一方面的方法。
在本申请的第四个方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中一种步进电机速度控制方法的流程图;
图2为本发明实施例1中驱动步进电机运行的示意图;
图3为本发明实施例1中步骤S103的流程图;
图4为本发明实施例1中直线加速的速度示意图;
图5为本发明实施例1中直线加速的加速度示意图;
图6为本发明实施例1中直线加速的加加速度示意图;
图7为本发明实施例1中S曲线加速的速度示意图;
图8为本发明实施例1中S曲线加速的加速度示意图;
图9为本发明实施例1中S曲线加速的加加速度示意图;
图10为本发明实施例1中高次曲线加速的速度示意图;
图11为本发明实施例1中高次曲线加速的加速度示意图;
图12为本发明实施例1中高次曲线加速的加加速度示意图;
图13为本发明实施例2中一种步进电机速度控制装置的原理框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本实施例提供一种步进电机速度控制方法,如图1所示,该方法包括但不限于如下的步骤S101~步骤S104。
S101、获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔。
具体的,将步进电机运行过程对应的时间进行等分,即运行过程划分为0,t1,t2,t3,t4,……tn,进而确定时间微分常数△t:△t表示时间间隔,即时间流逝△t后执行一次对速度的递增,根据速度公式v=at,△t就是将公式中连续变化的t进行微分,时间t为一系列离散值,再在这些离散时间点上求取对应的速度值,由于电机在最低运行频率时时间间隔最大,为满足最低运行频率下的速度调整,△t取步进电机最低速度时的一个脉冲间隔时间作为第一脉冲间隔,并且,确定当前速度对应的脉冲时刻所属的时间间隔,将该时间间隔作为第二脉冲间隔。
S102、基于上述第一脉冲间隔与上述第二脉冲间隔,确定步进电机的当前所需运行步数。
其中,在不同速度下,脉冲之间的时间间隔是不一样的,所以对每个时间间隔可以算出当前所需运行的步数△S,上述当前所需运行步数的计算公式如下:
上式中,ΔS表示当前所需运行步数,Δt表示第一脉冲间隔,tn表示第二脉冲间隔;其中,当tn=Δt时,ΔS=1。
S103、采集当前步进电机脉冲时刻,当上述当前步进电机脉冲时刻与预设时刻相同时,基于上述当前速度与上述当前所需运行步数进行中断处理,生成定时器计数数值;其中,该预设时刻指存在第二脉冲间隔下的脉冲结束时刻。
具体的,参照图2所示,脉冲产生部分由单片机内部的定时器构成,为控制步进电机精确定位运行,需对每个脉冲进行精确计数和控制,这部分由单片机的定时器构成时间计量,当达到设定的时间时,产生中断信号,在中断处理中,控制单片机与驱动器步进端口连接的输入输出端口(I/O)产生高低变化脉冲信号(即基于上述控制速度数值与上述下一时刻的运行步数数值确定该高低变化脉冲信号),将该高低脉冲信号通过驱动器确定步进电机进行速度控制;同时,在中断过程中完成对下一个脉冲时间的计算并将其设置为定时器新的计量值,使其在新的时间内产生中断。
进一步地,中断处理的算法可以采用直线加减速法,或S曲线加减速法,或高次曲线加减速法。
S104、基于上述定时器计数数值对步进电机的速度进行控制。
具体的,对步进电机运行速度继续进行递增或递减,再计算定时器计数数值,将定时器计数数值设置为定时器新的计数数值,然后退出中断,开始新一轮计数,以此类推,直到步进电机运行速度加速到最大速度,步进电机停止运行。
上述一种步进电机速度控制方法,通过中断处理生成定时器计数数值,避免了对步进电机每一步时间的计算,减轻了处理器负担,节约存储空间,并且利用定时器计数数值对步进电机的速度进行控制,实现了步进电机在限定时间内对速度的实时更改,提高了对步进电机加减速控制的精度。
优选地,参照图3所示,上述步骤S103,即基于上述当前速度与上述当前所需运行步数进行中断处理,生成定时器计数数值,包括:
S1031、将上述当前所需运行步数递减至零,并将上述当前速度增加或减少预设控制数值,生成步进电机运行速度。
其中,直线加速的公式为V当=at,S=1/2at2,其中V当为当前速度,a为预设加速度,t为时间,S为行程,此处即步进电机的步数,速度V是时间的一次方程;按照现有技术中对加减速控制的实现方法,需要根据V和S的两个等式联合算出每个步数时的V的值,需要在运行前一次性算完存储到内存中形成速度表,或者运行过程中每一步的中断中实时运算,由于运算过程中涉及开方运算,因此实时运算比较消耗运算资源。
进而,参照图4-6所示,直线加减速法为:步进电机开始运行时,先确定好△t,然后根据当前速度设置计算△S,然后在每次进入脉冲中断处理中对△S进行递减,当减到0时表示进入下一个△t,此时对速度进行递增或递减,再计算△S,然后运行,以此类推,直到加速到最大速度。
进一步地,对速度进行递增为:将上述当前速度数值增加或减少预设加速度数值,生成上述步进电机运行速度,其计算公式如下所示:
vt=vt-1+a直
上式中,vt-1表示当前速度数值,vt表示步进电机运行速度,a直表示预设加速度数值。
其中,只要速度变化曲线符合S曲线形状,都可以称之为S曲线加减速,常用的有Sigmoid函数(是一个在生物学中常见的S型函数,也称为S型生长曲线),二次曲线函数等;参照图7-9所示,以二次曲线为例,由于单纯的二次曲线是抛物线,因此构造S曲线的话,就要选取一段抛物线,然后再将这段抛物线复制反转后与原抛物线连接起来才能形成,具体步骤为:基于S曲线的对称性,在实现的过程中将加速过程分为两个阶段,由起始速度到1/2最大速度之间为加加速阶段,在这一阶段的表达式为:
as=jst
上式中,as为加速度增量数值,js为预设加加速数值(反映了电机的加速快慢程度,需要在实际环境中根据需求选取),t为时间。
由于as是时间变量,随着时间不断变化,因此在下一时刻速度Vs的时候需要通过积分的方式求解,求解公式如下所示:
Vs=∫asdt=∫jstdt=1/2jst2|0 t=1/2jst2
在这一个阶段,加速度是以恒定的方式增长的,因此反应到速度上就是时间的二次曲线;由1/2最大速度达到最大速度之间为减加速阶段,这个阶段加速度表达式为:
as=amax-jst
上式中,amax为在1/2最大速度时的加速度值。
Vs=V1+amaxt-1/2jst2
上式中,V1为1/2最大速度。
进而,将上述两个阶段的曲线连接起来即是S曲线。
进一步地,S曲线加减速法为:中断处理中对△S进行递减,当△S递减到0时进行参数计算:将上述预设加速度数值增加或减少预设加加速数值,生成第一加速度控制数值,其计算公式如下所示:
as=a预+js
上式中,a预=a直。
进而将上述当前速度数值增加或减少上述加速度增量数值,生成上述步进电机运行速度,步进电机运行速度vs的计算公式如下所示:
vs=v当+as
其中,由直线加减速和S曲线加减速可以看出,直线加速中加速度a直为常数,加加速j直可以看做0;S曲线加减速中,加加速js为常数,加速度as为js的一次函数;进而参照图10-12所示,高次曲线加速即将j高作为一次函数,a高即为二次函数,而速度则成为三次函数,以此类推为高次曲线加减速。
进一步地,高次曲线加减速法的计算过程为:当△S递减到0时进行参数计算,即将上述预设加加速数值增加或减少预设增量数值,生成加加速增量数值,其计算公式如下所示:
j高=j预+k
上式中,k为常数(根据实际环境人为设置),j高为加加速增量数值,j预为预设增量数值,j预=js。
进而,将上述预设加速度数值增加或减少上述加加速增量数值,生成第二加速度控制数值,其计算公式如下所示:
a高=a预+j高
进而将上述当前速度数值增加或减少上述第二加速度控制数值,生成上述步进电机运行速度v高,其计算公式如下所示:
v高=v当+a高
S1032、采集定时器计数频率,利用上述定时器计数频率与上述步进电机运行速度生成上述定时器计数数值。
具体的,为了将控制速度数值反映到对电机的控制上,需要对速度值进行转化,将其与实际控制系统中的特征值相对应,在单片机加减速控制的过程中,定时器计数数值越大,对应的脉冲频率越低,因此反应到电机上就是速度越低,相反速度越高。
进一步地,定时器计数数值的计算公式如下所示:
上式中,t定表示定时器计数数值,f表示定时器计数频率,V表示步进电机运行速度(即上述vt、或vs、或v高)。
上述无需预计算速度表,节省内存空间,也无需复杂的数学运算,满足实时性要求,只需执行简单的加法和除法运算就可以实现对步进电机速度的控制,提高了控制的灵活性。
实施例2
本实施例提供一种步进电机速度控制装置,如图13所示,包括:
获取模块131,用于获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔。
具体的,将步进电机运行过程对应的时间进行等分,即运行过程划分为0,t1,t2,t3,t4,……tn,进而确定时间微分常数△t:△t表示时间间隔,即时间流逝△t后执行一次对速度的递增,根据速度公式v=at,△t就是将公式中连续变化的t进行微分,时间t为一系列离散值,再在这些离散时间点上求取对应的速度值,由于电机在最低运行频率时时间间隔最大,为满足最低运行频率下的速度调整,△t取步进电机最低速度时的一个脉冲间隔时间作为第一脉冲间隔,并且,确定当前速度对应的脉冲时刻所属的时间间隔,将该时间间隔作为第二脉冲间隔。
生成模块132,用于基于上述第一脉冲间隔与上述第二脉冲间隔,确定步进电机的当前所需运行步数。
其中,在不同速度下,脉冲之间的时间间隔是不一样的,所以对每个时间间隔可以算出当前所需运行的步数△S,上述当前所需运行步数的计算公式如下:
上式中,ΔS表示当前所需运行步数,Δt表示第一脉冲间隔,tn表示第二脉冲间隔;其中,当tn=Δt时,ΔS=1。
中断处理模块133,用于采集当前步进电机脉冲时刻,当上述当前步进电机脉冲时刻与预设时刻相同时,基于上述当前速度与上述当前所需运行步数进行中断处理,生成定时器计数数值。
具体的,参照图2所示,脉冲产生部分由单片机内部的定时器构成,为控制步进电机精确定位运行,需对每个脉冲进行精确计数和控制,这部分由单片机的定时器构成时间计量,当达到设定的时间时,产生中断信号,在中断处理中,控制单片机与驱动器步进端口连接的输入输出端口(I/O)产生高低变化脉冲信号(即基于上述控制速度数值与上述下一时刻的运行步数数值确定该高低变化脉冲信号),将该高低脉冲信号通过驱动器确定步进电机进行加减速;同时,在中断过程中完成对下一个脉冲时间的计算并将其设置为定时器新的计量值,使其在新的时间内产生中断。
进一步地,中断过程中加减速处理的算法可以采用直线加减速法,或S曲线加减速法,或高次曲线加减速法。
控制模块134,用于基于上述定时器计数数值对步进电机的速度进行控制。
具体的,对步进电机运行速度继续进行递增或递减,再计算定时器计数数值,将定时器计数数值设置为定时器新的计数数值,然后退出中断,开始新一轮计数,以此类推,直到步进电机运行速度加速到最大速度,步进电机停止运行。
上述一种步进电机速度控制装置,通过中断处理生成定时器计数数值,避免了对步进电机每一步时间的计算,减轻了处理器负担,节约存储空间,并且利用定时器计数数值对步进电机的速度进行控制,实现了步进电机在限定时间内对速度的实时更改,提高了对步进电机加减速控制的精度。
优选地,上述中断处理模块133,包括:
递减单元1331,用于将上述当前所需运行步数递减至零,并将上述当前速度增加或减少预设控制数值,生成步进电机运行速度。
其中,直线加速的公式为V当=at,S=1/2at2,其中V当为当前速度,a为预设加速度,t为时间,S为行程,此处即步进电机的步数,速度V是时间的一次方程;按照现有技术中对加减速控制的实现方法,需要根据V和S的两个等式联合算出每个步数时的V的值,需要在运行前一次性算完存储到内存中形成速度表,或者运行过程中每一步的中断中实时运算,由于运算过程中涉及到开方运算,因此实时运算比较消耗运算资源。
进而,参照图4-6所示,直线加减速法为:步进电机开始运行时,先确定好△t,然后根据当前速度设置计算△S,然后在每次进入脉冲中断处理中对△S进行递减,当减到0时表示进入下一个△t,此时对速度进行递增或递减,再计算△S,然后运行,以此类推,直到加速到最大速度。
进一步地,对速度进行递增为:将上述当前速度数值增加或减少预设加速度数值,生成上述步进电机运行速度,其计算公式如下所示:
vt=vt-1+a直
上式中,vt-1表示当前速度数值,vt表示步进电机运行速度,a直表示预设加速度数值。
其中,只要速度变化曲线符合S曲线形状,都可以称之为S曲线加减速,常用的有Sigmoid函数(是一个在生物学中常见的S型函数,也称为S型生长曲线),二次曲线函数等;参照图7-9所示,以二次曲线为例,由于单纯的二次曲线是抛物线,因此构造S曲线的话,就要选取一段抛物线,然后再将这段抛物线复制反转后与原抛物线连接起来才能形成,具体步骤为:基于S曲线的对称性,在实现的过程中将加速过程分为两个阶段,由起始速度到1/2最大速度之间为加加速阶段,在这一阶段的表达式为:
as=jst
上式中,as为加速度增量数值,js为预设加加速数值(反映了电机的加速快慢程度,需要在实际环境中根据需求选取),t为时间。
由于as是时间变量,随着时间不断变化,因此在下一时刻速度Vs的时候需要通过积分的方式求解,求解公式如下所示:
Vs=∫asdt=∫jstdt=1/2jst2|0 t=1/2jst2
在这一个阶段,加速度是以恒定的方式增长的,因此反应到速度上就是时间的二次曲线;由1/2最大速度到最大速度之间为减加速阶段,这个阶段加速度表达式为:
as=amax-jst
上式中,amax为在1/2最大速度时的加速度值。
Vs=V1+amaxt-1/2jst2
上式中,V1为1/2最大速度。
进而,将上述两个阶段的曲线连接起来即是S曲线。
进一步地,S曲线加减速法为:中断处理中对△S进行递减,当△S递减到0时进行参数计算:将上述预设加速度数值增加或减少预设加加速数值,生成第一加速度控制数值,其计算公式如下所示:
as=a预+js
上式中,a预=a直。
进而将上述当前速度数值增加或减少上述加速度增量数值,生成上述步进电机运行速度,步进电机运行速度vs的计算公式如下所示:
vs=v当+as
其中,由直线加减速和S曲线加减速可以看出,直线加速中加速度a直为常数,加加速j直可以看做0;S曲线加减速中,加加速js为常数,加速度as为js的一次函数;进而参照图10-12所示,高次曲线加速即将j高作为一次函数,a高即为二次函数,而速度则成为三次函数,以此类推为高次曲线加减速。
进一步地,高次曲线加减速法的计算过程为:当△S递减到0时进行参数计算,即将上述预设加加速数值增加或减少预设增量数值,生成加加速增量数值,其计算公式如下所示:
j高=j预+k
上式中,k为常数(根据实际环境人为设置),j高为加加速增量数值,j预为预设增量数值,j预=js。
进而,将上述预设加速度数值增加或减少上述加加速增量数值,生成第二加速度控制数值,其计算公式如下所示:
a高=a预+j高
进而将上述当前速度数值增加或减少上述第二加速度控制数值,生成上述步进电机运行速度v高,其计算公式如下所示:
v高=v当+a高
生成单元1332,用于采集定时器计数频率,利用上述定时器计数频率与上述步进电机运行速度生成上述定时器计数数值。
具体的,为了将控制速度数值反映到对电机的控制上,需要对速度值进行转化,将其与实际控制系统中的特征值相对应,在单片机加减速控制的过程中,定时器计数数值越大,对应的脉冲频率越低,因此反应到电机上就是速度越低,相反速度越高。
进一步地,定时器计数数值的计算公式如下所示:
上式中,t定表示定时器计数数值,f表示定时器计数频率,V表示步进电机运行速度(即上述vt、或vs、或v高)。
实施例3
本实施例提供一种计算机设备,包括存储器和处理器,处理器用于读取存储器中存储的指令,以执行上述任意方法实施例中的一种步进电机速度控制方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
实施例4
本实施例提供一种计算机可读存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的一种步进电机速度控制方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (8)
1.一种步进电机速度控制方法,其特征在于,包括:
获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔;
基于所述第一脉冲间隔与所述第二脉冲间隔,确定步进电机的当前所需运行步数;其中,所述当前所需运行步数的计算公式如下:
上式中,ΔS表示当前所需运行步数,Δt表示第一脉冲间隔,tn表示第二脉冲间隔;
采集当前步进电机脉冲时刻,当所述当前步进电机脉冲时刻与预设时刻相同时,基于所述当前速度与所述当前所需运行步数进行中断处理,生成定时器计数数值;
基于所述定时器计数数值对步进电机的速度进行控制;
所述基于所述当前速度与所述当前所需运行步数进行中断处理,生成定时器计数数值,包括:
将所述当前所需运行步数递减至零,并将所述当前速度增加或减少预设控制数值,生成步进电机运行速度;
采集定时器计数频率,利用所述定时器计数频率与所述步进电机运行速度生成所述定时器计数数值。
2.根据权利要求1所述的一种步进电机速度控制方法,其特征在于,所述将所述当前速度增加或减少预设控制数值,生成步进电机运行速度,包括:
将所述当前速度增加或减少预设加速度数值,生成所述步进电机运行速度。
3.根据权利要求2所述的一种步进电机速度控制方法,其特征在于,所述将所述当前速度增加或减少预设控制数值,生成步进电机运行速度,还包括:
将所述预设加速度数值增加或减少预设加加速数值,生成第一加速度控制数值,并将所述当前速度增加或减少所述第一加速度控制数值,生成所述步进电机运行速度。
4.根据权利要求3所述的一种步进电机速度控制方法,其特征在于,所述将所述当前速度增加或减少预设控制数值,生成步进电机运行速度,还包括:
将所述预设加加速数值增加或减少预设常数数值,生成加加速控制数值,将所述预设加速度数值增加或减少所述加加速控制数值,生成第二加速度控制数值,并将所述当前速度增加或减少所述第二加速度控制数值,生成所述步进电机运行速度。
6.一种步进电机速度控制装置,其特征在于,包括:
获取模块,用于获取步进电机运行最低速度时的第一脉冲间隔与当前速度下的第二脉冲间隔;
生成模块,用于基于所述第一脉冲间隔与所述第二脉冲间隔,确定步进电机的当前所需运行步数;其中,所述当前所需运行步数的计算公式如下:
上式中,ΔS表示当前所需运行步数,Δt表示第一脉冲间隔,tn表示第二脉冲间隔;
中断处理模块,用于采集当前步进电机脉冲时刻,当所述当前步进电机脉冲时刻与预设时刻相同时,基于所述当前速度与所述当前所需运行步数进行中断处理,生成定时器计数数值;
控制模块,用于基于所述定时器计数数值对步进电机的速度进行控制;
所述中断处理模块,包括:
递减单元,用于将所述当前所需运行步数递减至零,并将所述当前速度增加或减少预设控制数值,生成步进电机运行速度;
生成单元,用于采集定时器计数频率,利用所述定时器计数频率与所述步进电机运行速度生成所述定时器计数数值。
7.一种计算机设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述处理器被配置用于调用所述计算机程序,执行如权利要求1-5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210759959.8A CN115173758B (zh) | 2022-06-29 | 2022-06-29 | 一种步进电机速度控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210759959.8A CN115173758B (zh) | 2022-06-29 | 2022-06-29 | 一种步进电机速度控制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115173758A CN115173758A (zh) | 2022-10-11 |
CN115173758B true CN115173758B (zh) | 2023-03-21 |
Family
ID=83489253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210759959.8A Active CN115173758B (zh) | 2022-06-29 | 2022-06-29 | 一种步进电机速度控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115173758B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106341063B (zh) * | 2016-09-09 | 2018-09-21 | 奇瑞汽车股份有限公司 | 步进电机加减速控制方法 |
CN107809193A (zh) * | 2017-11-03 | 2018-03-16 | 上海辛格林纳新时达电机有限公司 | 一种电机的运行控制方法、装置及电机驱动器 |
CN107800338B (zh) * | 2017-11-17 | 2020-06-09 | 深圳怡化电脑股份有限公司 | 基于fpga的步进电机升降速控制方法 |
CN114070140B (zh) * | 2021-11-15 | 2024-05-14 | 浙江众邦机电科技有限公司 | 一种步进电机的速度检测方法、装置、设备及存储介质 |
-
2022
- 2022-06-29 CN CN202210759959.8A patent/CN115173758B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115173758A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5343081B2 (ja) | 経路計画器用の加加速度制限軌道計画システムおよび方法 | |
CN101710814B (zh) | 产生任意频率脉冲的方法以及步进电机的升降速控制方法 | |
US6865425B2 (en) | State machine for a pulse output function | |
CA1124405A (en) | Absolute resolver digitizer | |
CN101373947B (zh) | 一种步进电机速度的控制方法、装置及系统 | |
US8829844B2 (en) | Intake profile for optimized utilization of motor characteristics | |
CN114077226B (zh) | S型曲线速度规划方法、控制终端及计算机可读存储介质 | |
GB1597138A (en) | Electronic pulse counter | |
CN107769643B (zh) | 一种步进电机控制方法、装置、步进电机及存储介质 | |
CN102843082A (zh) | 一种步进电机式汽车仪表指针自适应控制算法 | |
CN111727411A (zh) | 设备运动控制方法、设备和存储装置 | |
CN107800338B (zh) | 基于fpga的步进电机升降速控制方法 | |
CN115173758B (zh) | 一种步进电机速度控制方法、装置、设备及存储介质 | |
CN112491313A (zh) | 一种电机控制方法、装置、设备及计算机可读存储介质 | |
CN114884408A (zh) | 步进电机运转的控制方法、装置、设备和介质 | |
CN101017102A (zh) | 指示表的归零方法及应用该方法的指示表 | |
CN106374798B (zh) | 一种可变细分数的步进电机加减速控制方法 | |
US6747434B2 (en) | Methods and devices for controlling stepper motors | |
CN114839927A (zh) | S型曲线加减速规划方法、系统及存储介质 | |
US4890048A (en) | Low torque ripple stepping motor controller circuit | |
IL45683A (en) | System and method for regulating the speed change for a digital control device | |
CN111381565A (zh) | 三次多项式s曲线加减速的加加速度递归计算限制方法 | |
CN103414409A (zh) | 基于曲线拟合的步进电机预细分驱动方法 | |
CN101635551A (zh) | 无齿轮步进电机在仪表应用上的控制方法 | |
CN111357187B (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 |