CN113014163A - 步进电机的控制方法、装置及存储介质 - Google Patents
步进电机的控制方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113014163A CN113014163A CN202110362214.3A CN202110362214A CN113014163A CN 113014163 A CN113014163 A CN 113014163A CN 202110362214 A CN202110362214 A CN 202110362214A CN 113014163 A CN113014163 A CN 113014163A
- Authority
- CN
- China
- Prior art keywords
- pulse
- preset
- stepping motor
- width
- determining
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000001133 acceleration Effects 0.000 claims abstract description 142
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 230000009286 beneficial effect Effects 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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
本发明公开了一种步进电机的控制方法、装置及存储介质,其中,方法包括:根据步进电机的预设起始速度、预设终止速度、预设脉冲个数及步进电机的步距角,确定步进电机运行所需的预设加速度;根据预设加速度、当前脉冲个数n、步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式;确定脉冲宽度迭代初值;确定脉冲个数迭代初值;基于迭代公式、脉冲个数迭代初值及脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度;根据多个脉冲宽度控制步进电机运行。该方法可以确定脉冲宽度,有利于控制步进电机进行变加速运行,从而提高了步进电机的运行灵活性,使步进电机的运行更加满足实际需求。
Description
技术领域
本发明涉及电机技术领域,尤其涉及一种步进电机的控制方法、装置及存储介质。
背景技术
步进电机广泛应用于工业运动控制领域,通过向步进电机输出脉冲实现对步进电机控制,脉冲的频率控制步进电机运行速度,脉冲个数控制步进电机位置。相关技术中,步进电机的控制算法通常是控制步进电机由某一点运动到另外一点,其速度变化规律遵循匀加速、匀速、匀减速的梯形变化规律,起始点与终点的速度均零。这种只有位置控制的运动方式越来越不适用于机器人等需要多轴协同运动,电机运动曲线复杂的场合。
目前机器人等设备中出现了更多同时对速度与位置精确控制的需求,以提高末端执行器运动的柔顺行。新的需求中,往往要求电机的运动是一段复杂的速度时间曲线,上述控制算法控制灵活度较低,因此在新的应用需求下逐渐落后淘汰。
发明内容
本发明旨在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种步进电机的控制方法,有利于控制步进电机进行变加速运行,从而提高步进电机的运行灵活性,使步进电机的运行更加满足实际需求。
本发明的另一个目的在于提出一种步进电机的控制装置。
本发明的又一个目的在于提出一种计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种步进电机的控制方法,包括:
在步进电机处于匀加速或者匀减速运行的工况下,根据步进电机的预设起始速度、预设终止速度、步进电机运行所需的预设脉冲个数及步进电机的步距角,确定所述步进电机运行所需的预设加速度;
根据所述预设加速度、当前脉冲个数n、所述步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,其中,所述n为整数,所述第n+1个脉冲是指与第n个脉冲相邻的后一个脉冲;
根据所述预设起始速度、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定脉冲宽度迭代初值;
根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值;
基于所述迭代公式、所述脉冲个数迭代初值及所述脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度,直至脉冲个数达到所述预设脉冲个数;
根据所述多个脉冲宽度生成目标脉冲信号,基于所述目标脉冲信号,控制所述步进电机运行。
另外,根据本发明上述实施例的步进电机的控制方法还可以具有如下附加的技术特征:
根据本发明的一个实施例,所述根据所述预设加速度、当前脉冲个数n、步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,包括:
根据所述预设加速度、所述当前脉冲个数n、所述步距角及所述时钟频率确定第n个脉冲的第n宽度;
根据所述预设加速度、所述当前脉冲个数n、所述步距角及所述时钟频率确定第n+1个脉冲的第n+1宽度;
根据所述第n宽度及所述第n+1宽度,确定所述第n+1宽度与所述第n宽度间的迭代公式。
根据本发明的一个实施例,所述方法还包括:
根据步进电机的预设运行距离及所述步进电机的步距角,确定所述步进电机运行所需的预设脉冲个数。
根据本发明的一个实施例,所述方法还包括:
基于所述预设加速度、所述脉冲宽度迭代初值、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定参考脉冲个数;
基于所述参考脉冲个数、所述预设加速度、所述步进电机的步距角及所述脉冲控制器的时钟频率,对所述脉冲宽度迭代初值进行校正。
根据本发明的一个实施例,在所述预设运动模式是匀加速运动时,所述匀加速运动对应的预设参数包括:所述预设终止速度、所述预设加速度、所述步距角及所述预设脉冲个数;所述根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值,包括:
在所述步进电机的预设运动模式为匀加速运动的情况下,根据所述预设终止速度、所述预设加速度、所述步距角及所述预设脉冲个数,确定所述脉冲个数迭代初值。
根据本发明的一个实施例,在所述预设运动模式是匀减速运动时,所述匀减速运动对应的预设参数包括:所述预设起始速度、所述预设加速度及所述步距角;所述根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值,包括:
在所述步进电机的预设运动模式为匀减速运动的情况下,根据所述预设起始速度、所述预设加速度及所述步距角,确定所述脉冲个数迭代初值。
根据本发明的一个实施例,所述根据所述预设加速度、所述当前脉冲个数n、所述步距角及所述时钟频率确定第n个脉冲的第n宽度,包括:
根据所述等差数列表达式确定所述等差数列的公差;
根据所述等差数列的公差和所述初始值确定所述第n个脉冲的第n宽度。
为达上述目的,本发明第二方面实施例提出了一种步进电机的控制装置,包括:
第一确定模块,用于在步进电机处于匀加速或者匀减速运行的工况下,根据步进电机的预设起始速度、预设终止速度、步进电机运行所需的预设脉冲个数及步进电机的步距角,确定所述步进电机运行所需的预设加速度;
第二确定模块,用于根据所述预设加速度、当前脉冲个数n、所述步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,其中,所述n为整数,所述第n+1个脉冲是指与第n个脉冲相邻的后一个脉冲;
第三确定模块,用于根据所述预设起始速度、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定脉冲宽度迭代初值;
第四确定模块,用于根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值;
第五确定模块,用于基于所述迭代公式、所述脉冲个数迭代初值及所述脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度,直至脉冲个数达到所述预设脉冲个数;
第一控制模块,用于根据所述多个脉冲宽度生成目标脉冲信号,基于所述目标脉冲信号,控制所述步进电机运行。
另外,根据本发明上述实施例的步进电机的控制装置还可以具有如下附加的技术特征:
根据本发明的一个实施例,步进电机的控制装置还包括:第六确定模块,用于基于所述预设加速度、所述脉冲宽度迭代初值、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定参考脉冲个数;第一校正模块,用于基于所述参考脉冲个数、所述预设加速度、所述步进电机的步距角及脉冲控制器的时钟频率,对所述脉冲宽度迭代初值进行校正。
为达上述目的,本发明第三方面实施例提出了一种计算机可读存储介质,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面实施例所提出的方法。
根据本发明实施例的控制方案,可以确定脉冲宽度迭代初值、脉冲个数迭代初值及脉冲宽度与脉冲个数之间的迭代公式,进而通过迭代公式迭代计算脉冲宽度,以通过确定脉冲宽度实现对步进电机的控制,有利于控制步进电机进行变加速运行,从而提高了步进电机的运行灵活性,使步进电机的运行更加满足实际需求。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明实施例的步进电机的控制方法的流程示意图;
图2是本发明一个实施例的确定迭代公式的流程示意图;
图3是本发明一个示例的步进电机运行时的速度-时间曲线图;
图4是本发明另一个示例的步进电机运行时的速度-时间曲线图;
图5是本发明实施例的步进电机的控制装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明实施例提出了一种步进电机的控制方法,以解决相关技术中相关技术中步进电机控制的灵活性较低的问题。
下面参考附图描述本发明实施例的步进电机的控制方法、装置及存储介质。
需要说明的是,在步进电机新的需求中,往往要求电机的运动是一段复杂的速度时间曲线。本发明通过对速度时间曲线离散,以线段进行局部拟合,便实现了一阶插值计算。将运动控制问题就变为已知起始速度、终点速度、运行距离,给出步进电机匀加减速或匀速的脉冲计算方案。因为运动曲线是分段的,不同段的加速度大小是不同的,所以电机的加速度是变化的。本发明提出的计算方法,相比于现有的梯形计算方法具有更高的灵活性,可实现任意的速度、位置控制,可在此基础上结合运动规划算法,以使步进电机实现复杂的速度曲线。本发明实施例也可应用于步进电机梯形加减速控制,能够实现单个步进电机速度与位置的连续变化的控制需求。以此为基础,通过运动线性插值可以实现多个步进电机的协调控制,使其满足复杂的运动学关系。
图1是本发明实施例的步进电机的控制方法的流程示意图。
如图1所示,该方法包括以下步骤:
S101,在步进电机处于匀加速或者匀减速运行的工况下,根据步进电机的预设起始速度、预设终止速度、步进电机运行所需的预设脉冲个数及步进电机的步距角,确定步进电机运行所需的预设加速度。
本发明实施例中,可将控制步进电机运行所需的脉冲个数称为预设脉冲个数,可将步进电机运行所需的加速度称为预设加速度。
其中,预设起始速度、预设终止速度,可以是用户根据实际需求预先设定的,本发明实施例对此不做任何限制。步距角是步进电机的固有属性,对于确定的步进电机而言,其步距角是确定的。预设脉冲个数可以根据步进电机所需的预设运行距离确定。
在一个示例中,根据步进电机的预设运行距离及步进电机的步距角,确定步进电机运行所需的预设脉冲个数m。
其中,预设起始速度可以理解为步进电机开始运行时初始时刻的速度,预设起始速度可以等于零,也可以不等于零,即预设起始速度可以是任意实数,预设运行距离可以理解为步进电机需要运行的距离(位置),终止速度可以理解为步进电机的终止速度。
具体地,可首先获取步进电机的预设起始速度、预设终止速度、预设运行距离及预设脉冲个数,之后,根据预设运行距离与步进电机的步距角的乘积得到预设脉冲个数m,然后根据预设起始速度、预设终止速度、预设脉冲个数及步进电机的步距角,确定步进电机运行所需的预设加速度
其中,ωstart为预设起始速度,ωend为预设终止速度,α为步进电机的步距角,m为预设脉冲个数。
需要说明的是,本发明实施例中的速度可以是表征步进电机运行速度的任何速度,例如可以是步进电机的角速度,也可以是步进电机所带执行机构,例如当步进电机驱动机器人运行时,本发明实施例中的速度可以是机器人的运行速度,对此本发明实施例不做任何限制。
S102,根据预设加速度、当前脉冲个数n、步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,其中,n为整数,第n+1个脉冲是指与第n个脉冲相邻的后一个脉冲。
其中,脉冲控制器可以理解为产生脉冲信号的控制器,对于确定的脉冲控制器而言,其时钟频率可以是确定的。
具体地,在步进电机处于匀加速或者匀减速运行的工况下,控制步进电机运行的脉冲信号的第n个脉冲(当前脉冲)的第n宽度可以根据n的值、预设加速度、步进电机的步距角及脉冲控制器的时钟频率计算,第n+1个脉冲的第n+1宽度可以根据n+1的值、预设加速度、步进电机的步距角及脉冲控制器的时钟频率计算。因此,第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的比值满足迭代公式,进而可以根据第n+1宽度与第n宽度间的比值确定出该迭代公式。
S103,根据预设起始速度、步进电机的步距角及脉冲控制器的时钟频率,确定脉冲宽度迭代初值。
其中,脉冲宽度迭代初值,可以理解为控制步进电机运行时的脉冲信号的初始脉冲宽度,即第一个脉冲的宽度CstartN。
需要说明的是,迭代公式是在步进电机的起始速度为零,且在匀加速或者匀减速的工况下确定出的,而本发明实施例可控制电机进行于任意起始速度变加速,而Cn具有离散性,又因为算法中采用了近似迭代计算的方法,若迭代初始值计算不准,则会产生较大计算误差,因此为了提高迭代计算的准确性,需要准确计算脉冲宽度迭代初值CstartN。
具体地,可根据以下公式(2)计算脉冲宽度迭代初值CstartN:
其中,ωstart预设起始速度,α为步进电机的步距角,f为脉冲控制器的时钟频率。
S104,根据步进电机的预设运动模式及预设运动模式对应的预设参数,确定脉冲个数迭代初值。
其中,预设运动模式可以是指步进电机需要进行的运动模式,可以包括匀加速运动和匀减速运动。预设参数,可以理解为在对应的运动模式下,可以确定脉冲个数迭代初值的参数。
其中,脉冲个数迭代初值,可以理解为控制步进电机运行时的脉冲信号的初始脉冲个数startN。
具体地,在确定脉冲个数迭代初值之前,可根据预设加速度确定需要控制步进电机进行匀加速运行还是匀减速运动,若步进电机需要进行匀加速运行,则可根据预设终止速度、预设加速度、步距角α及预设脉冲个数m,确定脉冲个数迭代初值startN;若步进电机需要进行匀减速运行,则可根据预设起始速度、预设加速度及步距角,确定脉冲个数迭代初值startN。
S105,基于迭代公式、脉冲个数迭代初值及脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度,直至脉冲个数达到预设脉冲个数。
具体地,在计算出脉冲宽度迭代初值CstartN和脉冲个数迭代初值之后,可将脉冲宽度迭代初值CstartN代入迭代公式,即作为迭代公式中的宽度迭代初值,将脉冲个数迭代初值startN代入迭代公式,即作为迭代公式中的n值的迭代初值,计算出下一个脉冲宽度,如此迭代计算,即可计算出多个脉冲宽度,直至输出的脉冲个数达到预设脉冲个数m时,退出计算。
S106,根据多个脉冲宽度生成目标脉冲信号,基于目标脉冲信号,控制步进电机运行。
具体地,在确定出多个脉冲宽度之后,可根据多个脉冲宽度生成目标脉冲信号,通过该目标脉冲信号控制步进电机运行,从而使得步进电机以预设加速度从预设起始速度运行至预设终止速度。
相较于相关技术中的梯形控制算法,本发明实施例的控制方法不仅可以在初始速度为任意实数的基础上,控制步进电机运行,而且有利于使步进电机进行连续变加速运行,即多段匀加速运行、多段匀减速运行、或者匀速与匀加速、匀减速运行,此时,相邻的两段匀速、匀加速或者匀减速的转折时刻即为变加速时刻。
需要说明的是,在变加速时刻,可根据本发明实施例的方式计算脉冲宽度迭代初值和脉冲个数迭代初值,之后基于迭代公式计算脉冲宽度,进而根据脉冲宽度生成目标脉冲信号,通过目标脉冲信号控制步进电机运行。
通过使用本发明实施例的控制方法,采用近似迭代的脉冲宽度计算方案,降低了计算成本,使得该算法可以在嵌入式微处理器上快速运行,并适用于高频率的脉冲输出场合,可以使步进电机满足实际应用中的复杂需求,同时随着步进电机的使用,可以降低运动伺服系统的成本。
本发明实施例的步进电机的控制方法,可以确定脉冲宽度迭代初值、脉冲个数迭代初值及脉冲宽度与脉冲个数之间的迭代公式,进而通过迭代公式迭代计算脉冲宽度,以通过确定脉冲宽度实现对步进电机的控制,有利于控制步进电机进行变加速运行,从而提高了步进电机的运行灵活性,使步进电机的运行更加满足实际需求。
在本发明的一个实施例中,如图2所示,上述步骤S102,可以包括以下步骤:
S201,根据预设加速度、当前脉冲个数n、步距角及时钟频率确定第n个脉冲的第n宽度。
可以理解的是,步进电机的步距角属于步进电机固有的属性,即对于确定的步进电机而言,其步距角可以是确定的;脉冲控制器可以理解为产生脉冲信号的控制器,对于确定的脉冲控制器而言,其时钟频率可以是确定的。
需要说明的是,在步进电机处于匀加速或者匀减速运行的工况下,步进电机在转动时,可根据预设加速度、当前脉冲个数n、步进电机的步距角α及脉冲控制器的时钟频率f确定第n个脉冲的第n宽度,通过以下公式(3)计算第n宽度:
S202,根据预设加速度、当前脉冲个数n、步距角及时钟频率确定第n+1个脉冲的第n+1宽度。
其中,第n宽度可以理解为第n个脉冲的脉冲宽度,同理,第n+1宽度可以理解为第n+1个脉冲的脉冲宽度。
S203,根据第n宽度及第n+1宽度,确定第n+1宽度与第n宽度间的迭代公式。
也就是说,第n+1宽度与第n宽度间的宽度比值满足以下迭代公式:
其中,n为脉冲个数,Cn+1为第n+1个脉冲的脉冲宽度(即第n+1宽度),Cn为第n个脉冲的脉冲宽度(即第n宽度)。
由此,在步进电机需要匀加速运行或者匀减速运行时,可以根据迭代公式(4)迭代计算脉冲宽度,进而根据脉冲宽度生成脉冲信号,采用脉冲信号控制步进电机完成匀加速或者匀减速运行。
需要说明的是,迭代公式(4)是在步进电机的起始速度为零,且在匀加速或者匀减速的工况下确定出的,而本发明实施例控制电机进行变加速,而根据公式(3)可知,Cn具有离散性,又因为算法中采用了近似迭代计算的方法,若迭代初始值计算不准,则会产生较大计算误差,因此为了提高迭代计算的准确性,需要准确计算变加速时刻的初始脉冲宽度CstartN。即需要计算准确的CstartN(根据公式(2)计算的CstartN准确性较低),之后,还需要计算较准确的与CstartN对应(即变加速时刻)的脉冲个数迭代初值startN。
可根据公式(2)计算CstartN。在通常情况下,由式(2)取整后得到的CstartN不够准确,例如,特别的,当Cn较大时,Cn的分布间距较大,由式(2)取整后得到的CstartN较Cn有较大偏差,此时可对CstartN进行校正,下面进行具体说明。
即在本发明的一个示例中,步进电机的控制方法,还可包括:基于预设加速度、脉冲宽度迭代初值、步进电机的步距角及脉冲控制器的时钟频率,确定参考脉冲个数;基于参考脉冲个数、预设加速度、步进电机的步距角及脉冲控制器的时钟频率,对脉冲宽度迭代初值进行校正。
具体地,可根据以下公式(5)计算参考脉冲个数n1:
之后,可将n1代入公式(3),即可计算出更加准确的CstartN。即根据以下公式(6)计算脉冲宽度迭代初值CstartN:
由此,根据公式(2)、(5)和(6)确定脉冲宽度迭代初值CstartN,可得到更为准确的脉冲宽度迭代初值,提高了迭代计算脉冲宽度的准确性。
需要说明的是,本发明实施例中还可在n1较小(例如,n1≤10)时,通过公式(6)对脉冲宽度迭代初值CstartN进行校正,也可以不用区分n1的大小,即可在任何情况下,通过公式(6)对脉冲宽度迭代初值CstartN进行校正。
需要说明的是,为了降低浮点数计算引起的误差,提高计算脉冲个数迭代初值startN的准确性,可通过以下示例计算脉冲个数迭代初值startN。
在本发明的一个示例中,在预设运动模式是匀加速运动时,匀加速运动对应的预设参数包括:预设终止速度、预设加速度、步距角及预设脉冲个数。此种状况下,根据步进电机的预设运动模式及预设运动模式对应的预设参数,可包括:在步进电机的预设运动模式为匀加速运动的情况下,根据预设终止速度、预设加速度、步距角α及预设脉冲个数m,确定脉冲个数迭代初值startN。
具体地,在步进电机以预设加速度进行匀加速运动的情况下,即ωend=max(ωstart,ωend),可根据公式(7)计算变加速时刻的脉冲个数迭代初值startN:
在本发明的一个示例中,在预设运动模式是匀减速运动时,匀减速运动对应的预设参数包括:预设起始速度、预设加速度及步距角。此时,根据步进电机的预设运动模式及预设运动模式对应的预设参数,确定脉冲个数迭代初值,可包括:在步进电机的预设运动模式为匀减速运动的情况下,根据预设起始速度、预设加速度及步距角,确定脉冲个数迭代初值startN。
具体地,若ωstart=max(ωstart,ωend),即步进电机需要以预设加速度进行匀减速运动时,则可根据公式(8)计算变加速时刻的脉冲个数startN:
也就是说,在确定迭代公式中CstartN对应的初始n值时,由于ωend也是离散的,因此,为了提高计算精度,可计算max(ωstart,ωend)所对应的n值,以计算较为准确的初始脉冲个数startN。
在根据公式(7)或者公式(8)较为准确的计算出变加速时刻的迭代初值startN、且根据公式(2)或者公式(2)、(5)及(6)计算出CstartN之后,根据迭代公式(4)迭代计算脉冲宽度,直至输出脉冲等于预设脉冲个数m时,得到多个脉冲宽度。
在得到多个脉冲宽度之后,根据多个脉冲宽度生成目标脉冲信号,目标脉冲信号可控制步进电机以预设加速度运行,直至运行的距离达到预设运行距离,且速度达到ωend。
需要说明的是,本发明实施例中的迭代公式(4),可以是在步进电机处于匀加速或者匀减速运行的工况下,根据预设加速度、步进电机的步距角、步进电机的角位移及脉冲控制器的时钟频率之间的相互联系进行确定。
即在本发明的一个示例中,上述步骤S201,即根据预设加速度、当前脉冲个数n、步进电机的步距角α及脉冲控制器的时钟频率f确定第n个脉冲的第n宽度,可包括:根据预设加速度、步进电机的步距角α及脉冲控制器的时钟频率f,得到第n个脉冲的第n宽度与第n+1个脉冲的第n+1宽度间的表达式,其中,表达式为第n宽度平方的倒数的等差数列表达式;根据等差数列表达式确定等差数列的公差;确定脉冲个数趋向于0时第n宽度平方的倒数的初始值;根据等差数列的公差和初始值确定第n个脉冲的第n宽度。
具体地,在步进电机处于匀加速或者匀减速运行的工况下,进行以下公式的推导:
步进电机在转动时,其角位移θ与步距角α满足公式:
θ=n·α (9)
在步进电机匀加速运行时,其瞬时速度ωn与初始速度ω0满足公式:
第n个脉冲的第n宽度Cn与角速度ωn的关系为:
其中,f为脉冲控制器的时钟频率。
根据公式(10)和(11)可以推导出公式:
其中,Cn为第n个脉冲的第n宽度,Cn+1为第n+1个脉冲的第n+1宽度。
由公式(12)和(13)得:
由公式(14)可以确定第n个脉冲的第n宽度Cn为:
进而根据公式(3)得到迭代公式(4),根据迭代公式(4)就可以推导出每一个脉冲所对应的脉冲宽度,进而实现对整个步进电机匀加减速的控制。
根据本发明实施例的控制方法,可以对步进电机实现多段变加速控制,例如可实现图3和图4的速度-时间曲线控制方式。下面结合图3和图4所示的速度-时间曲线为例描述本发明实施例的控制方法:
如图3所示,根据本发明实施例的控制方法可控制步进电机实现变加速运行。
在具体控制时,在t1时刻(变加速时刻),根据公式(2)计算出脉冲宽度迭代初值CstartN,并通过公式(5)和(6)对脉冲宽度迭代初值进行校正,并根据公式(7)较为准确的计算出变加速时刻的脉冲个数迭代初值startN。
t1-t2时间段,以startN和CstartN为初始值,根据迭代公式(4)迭代计算该时间段中每个脉冲的脉冲宽度,直至输出脉冲等于预设脉冲个数m时,得到多个脉冲宽度,根据多个脉冲宽度生成目标脉冲信号,目标脉冲信号可控制步进电机以预设加速度进行匀加速运行,直至速度达到ωend。
如图4所示,在具体控制时,在t1时刻(变加速时刻),根据公式(2)计算出脉冲宽度迭代初值CstartN、并通过公式(5)和(6)对脉冲宽度迭代初值进行校正,并根据公式(8)较为准确的计算出变加速时刻的脉冲个数迭代初值startN。
t1-t2时间段,以startN和CstartN为初始值,根据迭代公式(4)迭代计算该时间段中每个脉冲的脉冲宽度,直至输出脉冲等于预设脉冲个数m时,得到多个脉冲宽度,根据多个脉冲宽度生成目标脉冲信号,目标脉冲信号可控制步进电机以预设加速度进行匀减速运行,直至速度达到ωend。
需要说明的是,图3和图4中,速度从ωstart变至ωend的过程中,ωstart和ωend的方向一致,即正负性相同。当ωstart和ωend的方向不一致时,以速度为零将变速过程分割为两段上述同方向变加速过程,并切换脉冲输出的极性,或改变步进电机驱动器的控制方向后,可根据本发明实施例的控制方法进行控制。
需要说明的是,本发明实施例仅描述了步进电机进行两段变加速运行过程的示例,即进行一次加速度的变化,根据类似的实施方式,通过本发明实施例的控制方法还可以进行多段变加速运行,例如进行两次、三次等多次加速度的变化。从而有利于控制步进电机实现复杂的速度曲线运行,提高步进电机的运行灵活性。
综上所述,本发明实施例利用一阶插值计算的思想对复杂的速度时间曲线离散,近似为局部线段的起始点、终止点的速度、位移的控制,使用匀加速连接起始点和终止点。采用公式推导给出了近似迭代的脉冲宽度计算方案,降低了计算成本,使得该算法可以在嵌入式微处理器上快速运行,并适用于高频率的脉冲输出场合。因为采用近似迭代算法,加上脉冲宽度的离散型,增加了变加速度时起始点脉冲宽度的计算难度,考虑到这一问题,也给出了相应的提高脉冲精度的计算方案。
本发明还提出了一种步进电机的控制装置。
图5是本发明实施例的步进电机的控制装置的结构框图。
如图5所示,该步进电机的控制装置100包括:第一确定模块110、第二确定模块120、第三确定模块130、第四确定模块140、第五确定模块150及第一控制模块160。
第一确定模块110,用于在步进电机处于匀加速或者匀减速运行的工况下,根据步进电机的预设起始速度、预设终止速度、步进电机运行所需的预设脉冲个数及步进电机的步距角,确定所述步进电机运行所需的预设加速度;
第二确定模块120,用于根据预设加速度、当前脉冲个数n、步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,其中,所述n整数,所述第n+1个脉冲是指与第n个脉冲相邻的后一个脉冲;
第三确定模块130,用于根据所述预设起始速度、所述步进电机的步距角及脉冲控制器的时钟频率,确定脉冲宽度迭代初值;
第四确定模块140,用于根据步进电机的预设运动模式及预设运动模式对应的预设参数,确定脉冲个数迭代初值;
第五确定模块150,用于基于所述迭代公式、所述脉冲个数迭代初值及所述脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度,直至脉冲个数达到所述预设脉冲个数;
第一控制模块160,用于根据所述多个脉冲宽度生成目标脉冲信号,基于所述目标脉冲信号,控制所述步进电机运行。
在本发明的一个实施例中,步进电机的控制装置100还可包括:第六确定模块,用于基于所述预设加速度、所述脉冲宽度迭代初值、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定参考脉冲个数;第一校正模块,用于基于所述参考脉冲个数、所述预设加速度、所述步进电机的步距角及脉冲控制器的时钟频率,对所述脉冲宽度迭代初值进行校正。
需要说明的是,步进电机的控制装置的其他具体实施方式可参见上述步进电机的控制方法的具体实施方式,为避免冗余,此处不再赘述。
本发明实施例的步进电机的控制装置,通过确定脉冲宽度实现对步进电机的控制,有利于控制步进电机进行变加速运行,从而提高了步进电机的运行灵活性,使步进电机的运行更加满足实际需求。
为了实现上述实施例,本发明还提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本发明上述的步进电机的控制方法。
该电子设备,在处理器执行指令时,通过确定脉冲宽度实现对步进电机的控制,有利于控制步进电机进行变加速运行,从而提高了步进电机的运行灵活性,使步进电机的运行更加满足实际需求。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种步进电机的控制方法,其特征在于,包括:
在步进电机处于匀加速或者匀减速运行的工况下,根据步进电机的预设起始速度、预设终止速度、步进电机运行所需的预设脉冲个数及步进电机的步距角,确定所述步进电机运行所需的预设加速度;
根据所述预设加速度、当前脉冲个数n、所述步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,其中,所述n为整数,所述第n+1个脉冲是指与第n个脉冲相邻的后一个脉冲;
根据所述预设起始速度、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定脉冲宽度迭代初值;
根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值;
基于所述迭代公式、所述脉冲个数迭代初值及所述脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度,直至脉冲个数达到所述预设脉冲个数;
根据所述多个脉冲宽度生成目标脉冲信号,基于所述目标脉冲信号,控制所述步进电机运行。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设加速度、当前脉冲个数n、所述步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,包括:
根据所述预设加速度、所述当前脉冲个数n、所述步距角及所述时钟频率确定第n个脉冲的第n宽度;
根据所述预设加速度、所述当前脉冲个数n、所述步距角及所述时钟频率确定第n+1个脉冲的第n+1宽度;
根据所述第n宽度及所述第n+1宽度,确定所述第n+1宽度与所述第n宽度间的迭代公式。
3.根据权利要求1所述的方法,其特征在于,还包括:
根据步进电机的预设运行距离及所述步进电机的步距角,确定所述步进电机运行所需的预设脉冲个数。
4.根据权利要求1所述的方法,其特征在于,还包括:
基于所述预设加速度、所述脉冲宽度迭代初值、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定参考脉冲个数;
基于所述参考脉冲个数、所述预设加速度、所述步进电机的步距角及所述脉冲控制器的时钟频率,对所述脉冲宽度迭代初值进行校正。
5.根据权利要求1所述的方法,其特征在于,在所述预设运动模式是匀加速运动时,所述匀加速运动对应的预设参数包括:所述预设终止速度、所述预设加速度、所述步距角及所述预设脉冲个数;
所述根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值,包括:
在所述步进电机的预设运动模式为匀加速运动的情况下,根据所述预设终止速度、所述预设加速度、所述步距角及所述预设脉冲个数,确定所述脉冲个数迭代初值。
6.根据权利要求1所述的方法,其特征在于,在所述预设运动模式是匀减速运动时,所述匀减速运动对应的预设参数包括:所述预设起始速度、所述预设加速度及所述步距角;
所述根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值,包括:
在所述步进电机的预设运动模式为匀减速运动的情况下,根据所述预设起始速度、所述预设加速度及所述步距角,确定所述脉冲个数迭代初值。
8.一种步进电机的控制装置,其特征在于,包括:
第一确定模块,用于在步进电机处于匀加速或者匀减速运行的工况下,根据步进电机的预设起始速度、预设终止速度、步进电机运行所需的预设脉冲个数及步进电机的步距角,确定所述步进电机运行所需的预设加速度;
第二确定模块,用于根据所述预设加速度、当前脉冲个数n、所述步进电机的步距角及脉冲控制器的时钟频率,确定第n+1个脉冲的第n+1宽度与第n个脉冲的第n宽度间的迭代公式,其中,所述n为整数,所述第n+1个脉冲是指与第n个脉冲相邻的后一个脉冲;
第三确定模块,用于根据所述预设起始速度、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定脉冲宽度迭代初值;
第四确定模块,用于根据所述步进电机的预设运动模式及所述预设运动模式对应的预设参数,确定脉冲个数迭代初值;
第五确定模块,用于基于所述迭代公式、所述脉冲个数迭代初值及所述脉冲宽度迭代初值,采用迭代计算方式确定多个脉冲宽度,直至脉冲个数达到所述预设脉冲个数;
第一控制模块,用于根据所述多个脉冲宽度生成目标脉冲信号,基于所述目标脉冲信号,控制所述步进电机运行。
9.根据权利要求8所述的装置,其特征在于,还包括:
第六确定模块,用于基于所述预设加速度、所述脉冲宽度迭代初值、所述步进电机的步距角及所述脉冲控制器的时钟频率,确定参考脉冲个数;
第一校正模块,用于基于所述参考脉冲个数、所述预设加速度、所述步进电机的步距角及脉冲控制器的时钟频率,对所述脉冲宽度迭代初值进行校正。
10.一种计算机可读存储介质,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110362214.3A CN113014163B (zh) | 2021-04-02 | 2021-04-02 | 步进电机的控制方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110362214.3A CN113014163B (zh) | 2021-04-02 | 2021-04-02 | 步进电机的控制方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014163A true CN113014163A (zh) | 2021-06-22 |
CN113014163B CN113014163B (zh) | 2022-07-29 |
Family
ID=76387955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110362214.3A Active CN113014163B (zh) | 2021-04-02 | 2021-04-02 | 步进电机的控制方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014163B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113533769A (zh) * | 2021-06-30 | 2021-10-22 | 上海联影医疗科技股份有限公司 | 电机测速方法、装置、计算机设备和存储介质 |
CN114884408A (zh) * | 2022-05-20 | 2022-08-09 | 深圳数联天下智能科技有限公司 | 步进电机运转的控制方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0200314A2 (en) * | 1985-04-01 | 1986-11-05 | Cemtronics, Inc. | Electric motor control system |
US20020171381A1 (en) * | 2001-03-26 | 2002-11-21 | Shinichi Miyazaki | Sensorless motor driving apparatus |
US20090051310A1 (en) * | 2007-08-22 | 2009-02-26 | Sundeep Chandhoke | Closed Loop Stepper Motor Control |
CN106385211A (zh) * | 2016-10-09 | 2017-02-08 | 重庆大学 | 一种步进电机负载转矩估计方法 |
DE102018105347A1 (de) * | 2017-03-08 | 2018-09-13 | Minebea Mitsumi Inc. | Motorantriebssteuervorrichtung, Steuerverfahren der Motorantriebssteuervorrichtung, Steuerprogramm der Motorantriebssteuervorrichtung und Verfahren zur Bestimmung des Teilers eines Grundschrittwinkels |
JP2018182895A (ja) * | 2017-04-12 | 2018-11-15 | キヤノン株式会社 | モータ制御装置、方法及びプログラム |
-
2021
- 2021-04-02 CN CN202110362214.3A patent/CN113014163B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0200314A2 (en) * | 1985-04-01 | 1986-11-05 | Cemtronics, Inc. | Electric motor control system |
US20020171381A1 (en) * | 2001-03-26 | 2002-11-21 | Shinichi Miyazaki | Sensorless motor driving apparatus |
US20090051310A1 (en) * | 2007-08-22 | 2009-02-26 | Sundeep Chandhoke | Closed Loop Stepper Motor Control |
CN106385211A (zh) * | 2016-10-09 | 2017-02-08 | 重庆大学 | 一种步进电机负载转矩估计方法 |
DE102018105347A1 (de) * | 2017-03-08 | 2018-09-13 | Minebea Mitsumi Inc. | Motorantriebssteuervorrichtung, Steuerverfahren der Motorantriebssteuervorrichtung, Steuerprogramm der Motorantriebssteuervorrichtung und Verfahren zur Bestimmung des Teilers eines Grundschrittwinkels |
JP2018182895A (ja) * | 2017-04-12 | 2018-11-15 | キヤノン株式会社 | モータ制御装置、方法及びプログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113533769A (zh) * | 2021-06-30 | 2021-10-22 | 上海联影医疗科技股份有限公司 | 电机测速方法、装置、计算机设备和存储介质 |
CN114884408A (zh) * | 2022-05-20 | 2022-08-09 | 深圳数联天下智能科技有限公司 | 步进电机运转的控制方法、装置、设备和介质 |
CN114884408B (zh) * | 2022-05-20 | 2024-04-09 | 深圳数联天下智能科技有限公司 | 步进电机运转的控制方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113014163B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014163B (zh) | 步进电机的控制方法、装置及存储介质 | |
CN108549328B (zh) | 自适应速度规划方法及系统 | |
US20130317646A1 (en) | Robot program changing device | |
CN103064344B (zh) | 一种基于nurbs曲线插补的速度平滑控制方法 | |
EP2022608B1 (en) | Improved blending algorithm for trajectory planning | |
CN105353725A (zh) | 用于工业机器人的过辅助点姿态空间圆弧插补方法 | |
WO2013140679A1 (ja) | 軌跡制御装置 | |
CN104191428A (zh) | 一种基于scara机械手的运动轨迹规划方法及系统 | |
US8901871B2 (en) | Robust controller for electro-mechanical actuators employing sliding and second control modes | |
JP2009053926A (ja) | 経路計画装置及び経路計画方法 | |
CN114603558B (zh) | 混合空间过渡轨迹规划方法及装置 | |
CN114884408A (zh) | 步进电机运转的控制方法、装置、设备和介质 | |
CN109313429B (zh) | S型速度规划方法、装置、系统、机器人以及数控机床 | |
CN103454979B (zh) | 一种封装成PLCOpen指令的变速曲线圆弧快速插补方法 | |
CN102859864A (zh) | 用于调节位置和/或速度的方法 | |
CN110053042B (zh) | 机器人控制装置 | |
CN115580184A (zh) | 驱控一体式步进电机的控制方法、点胶设备 | |
JP2737725B2 (ja) | ロボット制御装置及び方法 | |
JP2003076410A (ja) | 速度制御装置、速度制御方法およびその方法をコンピュータに実行させるプログラム | |
JPS5858609A (ja) | 産業用ロボツト軌跡補間方法 | |
JP5679898B2 (ja) | 軌跡制御装置 | |
JPH02148111A (ja) | ロボットの制御方法及びその装置 | |
US20230287660A1 (en) | Work control method, work control system, work control apparatus, and non-transitory computer readable medium storing work control program | |
JP2012061560A (ja) | ロボットの制御装置 | |
US20230268805A1 (en) | Method for Determining an Air Gap Between a Trasnport Rotor and a Stator Segment Aided by an Automation Device |
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 |