CN111262483A - 电机运动控制方法 - Google Patents
电机运动控制方法 Download PDFInfo
- Publication number
- CN111262483A CN111262483A CN202010079915.1A CN202010079915A CN111262483A CN 111262483 A CN111262483 A CN 111262483A CN 202010079915 A CN202010079915 A CN 202010079915A CN 111262483 A CN111262483 A CN 111262483A
- Authority
- CN
- China
- Prior art keywords
- value
- acceleration
- speed
- parameter
- current
- 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 74
- 230000033001 locomotion Effects 0.000 title claims abstract description 71
- 230000001133 acceleration Effects 0.000 claims abstract description 240
- 238000006073 displacement reaction Methods 0.000 claims abstract description 102
- 230000036461 convulsion Effects 0.000 claims description 23
- 230000003247 decreasing effect Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 abstract description 33
- 238000009825 accumulation Methods 0.000 abstract description 10
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 22
- 238000007689 inspection Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000013016 damping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011089 mechanical engineering Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000011410 subtraction method Methods 0.000 description 1
- 230000001960 triggered 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
-
- 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/04—Arrangements for starting
-
- 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/36—Protection against faults, e.g. against overheating or step-out; Indicating faults
-
- 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/36—Protection against faults, e.g. against overheating or step-out; Indicating faults
- H02P8/38—Protection against faults, e.g. against overheating or step-out; Indicating faults the fault being step-out
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Control Of Stepping Motors (AREA)
Abstract
本发明提供了一种电机运动控制方法,通过曲线控制方式,实现电机的速度单步变频。该方法包括如下步骤:在一个计算周期内,当前时刻速度以加速度值自累加,当前时刻位移以当前速度值自累加;当当前位移累加溢出时,产生一个控制脉冲,控制电机运动。其中溢出值设置为与计算频率值在数值上相等。
Description
技术领域
本发明涉及控制技术领域,特别涉及控制系统中的电机运动控制方法,更特别地,本发明涉及用于步进电机驱动中的加减速控制方法。
背景技术
步进电机、伺服电机、无刷电机、直线电机等在控制和检测检验系统和设备中经常用作执行机构。而且在一般的控制和检测检验系统和设备中,往往有多个此类执行机构,通常需要同时控制多个此类执行机构带动不同的结构部件执行各种复杂的运动。
以步进电机为例,步进电机的旋转是通过给步进电机施以适当频率和顺序的控制脉冲,以固定的角度一步一步运动的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度,从而达到调速的目的。
在步进电机的启动阶段,由于电机本身及其负载的机械惯性以及电机内部的反向电动势的阻尼作用,电机控制频率不宜过高,否则会发生堵转和丢步现象。在启动之后的高速运动阶段,如果控制频率不够高,又会限制电机的旋转速度,影响运动效率。在停止阶段,如果在高速运动阶段的控制频率下突然停止,由于电机本身及其负载的机械惯性容易发生过冲。
为实现步进电机的精确、快速、平稳运动,须采用变频控制方式,在加速、匀速、减速等不同的运动阶段,给电机施以不同频率的控制脉冲。跟步进电机一样,伺服电机、无刷电机、直线电机等执行机构的加减速控制是控制和检验检测设备实现高速精确定位和平滑运动的关键所在。
现有技术中,用于步进电机加减速控制的曲线通常有:梯形曲线、 S型曲线、指数型曲线、以及三角函数曲线等。用于步进电机的加减速控制的主控单元通常有单片机(MCU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑控制器(PLC)等。其中FPGA 由于其并行控制及逻辑可编程等特点,能够更灵活且更低成本地实现多个步进电机的同时控制,因而被广泛应用于检验设备的控制过程中。
重庆大学机械工程学院的简毅、刘宝发表于2012年第3期《轻工机械》上的论文《基于AT91SAM9261的步进电机S曲线加减速控制研究与实现》公开了一种基于嵌入式片上系统AT91SAM9261的S曲线加减速控制算法,以及利用该算法实现步进电机无柔性冲击的加减速控制的具体方法。在该方法中,根据步进电机的加加速度、加速度、速度、位移等数学关系,计算对应时间点的速度,并控制电机的转速。该方法原理及实现较为简单,但为了提高速度控制精度,在计算过程中需要使用复杂的浮点数乘除、开方等运算,使主控单元资源消耗大,且计算耗时长,效率低,不利于在FPGA上实现,同时由于计算时间间隔长会造成单个计算周期内出现运动多步的情况,使速度曲线平滑性低、同时也会造成位移结束时,速度曲线拖拉、断尾等现象(如图1、图2所示)。
现有技术中还存在一种步进电机加减速控制方法,即查表法,其中使用MATLAB等软件工具在PC上预先计算出相应加减速速度值并制作成表格,将该表格存储于主控单元内,主控单元在具体控制过程中通过查表来实现步进电机加减速运动。该方法限制了步进电机加减速过程总步数、加速度等,使用缺乏灵活性。
因此,需要一种方法,在提高控制的精度和平稳性的同时,实现操作的简便和灵活性。
发明内容
为了解决上述问题,本发明提出一种新的高精度单步变频电机运动控制方法。
根据本发明,提供了一种电机运动控制方法,在该方法中,以单步位移溢出产生电机运动的控制信号。
在其中一个实施例中,本发明的电机运动控制方法包括以下步骤:根据上一时刻位移值与当前时刻速度值确定当前时刻位移值;根据所述当前时刻位移值和预设溢出值判断该当前时刻位移值是否溢出;若溢出,则输出所述控制信号,控制所述电机运动。
为了获得简化控制程序、减轻控制系统运算负担的效果,上述方法中所述的预设溢出值可以设置为在数值上与控制算法的计算频率值相等。
在其中一个实施例中,本发明的上述方法还包括根据上一时刻速度值和加速度值确定所述当前时刻速度值。
在电机运动过程中,为了实现电机运动的平稳性,避免失步、过充,本发明的上述方法还包括判断电机当前的运动状态,并根据当前的运动状态施以相应的控制措施。所述运动状态可以包括加速状态和减速状态。
在其中一个实施例中,在所述加速状态,所述根据上一时刻速度值和加速度值确定所述当前时刻速度值包括:所述上一时刻速度值的第一速度参数与所述加速度值相加,得到所述当前时刻速度值的第一速度参数;根据所述当前时刻速度值的第一速度参数和所述预设溢出值判断所述当前时刻速度值是否溢出;若溢出,则所述当前时刻速度值的所述第一速度参数减少所述预设溢出值,所述当前时刻速度值的第二速度参数增加一个单位值。
为进一步提高电机运动的平稳性,减少不同运动状态之间过渡时的柔性冲击,上述加速状态可以包括加加速状态和减加速状态,并且本发明的上述方法中,在所述上一时刻速度值的第一速度参数与所述加速度值相加,得到所述当前时刻速度值的第一速度参数的步骤之前,还包括:根据上一时刻加速度值和加加速度值确定当前时刻加速度值。
在其中一个实施例中,在所述加加速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:所述上一时刻加速度值的第一加速度参数与所述加加速度值相加,得到所述当前时刻加速度值的所述第一加速度参数;根据所述当前时刻加速度值的所述第一加速度参数和所述预设溢出值判断该当前时刻加速度值是否溢出;若溢出,则所述当前时刻加速度值的所述第一加速度参数减少所述预设溢出值,所述当前时刻加速度值的第二加速度参数增加一个单位值。
在其中一个实施例中,在所述减加速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:所述上一时刻加速度值的第一加速度参数与所述加加速度值相减,得到所述当前时刻加速度值的第一加速度参数;判断所述当前时刻加速度值的第一加速度参数是否为正值;若不为正值,则所述当前时刻加速度值的第一加速度参数增加所述预设溢出值,所述当前时刻加速度值的第二加速度参数减少一个单位值。
在其中一个实施例中,在所述减速状态,所述根据上一时刻速度值和加速度值确定所述当前时刻速度值包括:所述上一时刻速度值的第一速度参数与所述加速度值相减,得到所述当前时刻速度值的第一速度参数;判断该当前时刻速度值的第一速度参数是否为正值;若不为正值,则所述当前时刻速度值的第一速度参数增加所述预设溢出值,所述当前时刻速度值的第二速度参数减少一个单位值。
同样,为进一步提高电机运动的平稳性,减少不同运动状态之间过渡时的柔性冲击,上述减速状态可包括加减速状态和减减速状态,并且在所述上一时刻速度值的第一速度参数与所述加速度值相减,得到所述当前时刻速度值的第一速度参数的步骤之前,还包括:根据上一时刻加速度值和加加速度值确定当前时刻加速度值。
在其中一个实施例中,在所述加减速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:所述上一时刻加速度值的第一加速度参数与所述加加速度值相加,得到所述当前时刻加速度值的第一加速度参数;根据所述当前时刻加速度值的第一加速度参数和所述预设溢出值判断该当前时刻加速度值是否溢出;若溢出,则所述当前时刻加速度值的第一加速度参数减少所述预设溢出值,所述当前时刻加速度值的第二加速度参数增加一个单位值。
在其中一个实施例中,在所述减减速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:所述上一时刻加速度值的第一加速度参数与所述加加速度值相减,得到所述当前时刻加速度值的第一加速度参数;判断该当前时刻加速度值的第一加速度参数是否为正;若不为正,则所述当前时刻加速度值的第一加速度参数增加预设溢出值,当前时刻加速度值的第二加速度参数减少一个单位值。
在其中一个实施例中,所述根据上一时刻位移值与当前时刻速度值确定当前时刻位移值包括:所述上一时刻位移值的第一位移参数与所述当前时刻速度值的第二速度参数相加,得到所述当前时刻位移值的第一位移参数;根据所述当前时刻位移值的第一位移参数与所述预设溢出值判断所述当前时刻位移值是否溢出;若溢出,则所述当前时刻位移值的第一位移参数减少所述预设溢出值,所述当前时刻位移值的第二位移参数增加一个单位值。
在本发明的上述方法中,在时间单位相同时,所述计算频率值优选大于或等于电机的最大运动速度值。
根据以上方法,本发明以单步位移溢出产生电机运动控制信号实现速度单步变频,同时通过设置溢出值为计算频率值,可显著减小运动速度与理论速度的误差。同时由于其极大地简化了速度、加速度、位移等物理量的计算过程,使得本发明的方法特别适合利用FPGA实现高精度单步变频电机运动控制。
附图说明
下面将参考附图,结合具体实施例,对本发明的原理进行详细描述。其中:
图1示出了现有技术中的步进电机控制曲线的拖拉现象;
图2示出了现有技术中的步进电机控制曲线的断尾现象;
图3示出了本发明电机运动控制方法的流程图;
图4示出了根据本发明一个实施例实现步进电机梯形曲线加减速控制的流程图;
图5示出了根据上述实施例所实现的步进电机梯形加减速曲线示意图;
图6示出了根据本发明另一个实施例实现步进电机S形曲线加减速控制的流程图;
图7示出了根据上述实施例所实现的步进电机S形加减速曲线示意图;
图8示出了根据本发明所实现的步进电机加减速过程比较曲线示意图。
具体实施方式
下面结合附图,说明本发明的原理。虽然本发明的原理可以应用于步进电机、伺服电机、无刷电机、直线电机等各类执行机构,但为了便于描述,本说明书中以步进电机为例,加以描述。
图3示出根据本发明控制电机运动的方法。在该方法中,首先根据上一时刻位移值与当前时刻速度值确定当前时刻位移值。具体确定的方法可以有很多种。例如,其中一个实施例中,根据位移是速度的积分这一原理,用当前时刻速度自累加,迭代当前时刻的位移值。这种方式可以用简单的加减法实现复杂的浮点运算的效果,减轻控制装置的计算负担。
在每次迭代后,判断当前时刻位移值是否溢出。判断溢出的依据是当前时刻位移值与预设溢出值。在具体实施过程中,控制装置(例如 FPGA)中为当前时刻位移值分配一寄存器。该寄存器的高位例如可以存储当前时刻位移值的整数部分,低位可以存储当前时刻位移值的小数部分。当前时刻速度自累加在位移寄存器的低位进行,例如当累加超过预设溢出值时,判断溢出,高位进一。
一旦判断当前时刻位移值溢出,则输出控制信号,控制电机运动。
本发明的该方法可以运用于各类控制曲线。下面以分别梯形曲线和S形曲线为例加以说明。
实施例1:以梯形加减速曲线为例
图4示出根据本发明一个实施例实现步进电机梯形曲线加减速控制的流程图;图5示出根据该实施例所实现的步进电机梯形加减速曲线示意图。
如前所述,步进电机的旋转是通过给步进电机施以适当频率和顺序的控制脉冲,以固定的角度一步一步运动的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度,从而达到调速的目的。
在步进电机的启动阶段,由于电机本身及其负载的机械惯性以及电机内部的反向电动势的阻尼作用,电机控制频率不宜过高,否则会发生堵转和丢步现象。在启动之后的高速运动阶段,如果控制频率不够高,又会限制电机的旋转速度,影响运动效率。在停止阶段,如果在高速运动阶段的控制频率下突然停止,由于电机本身及其负载的机械惯性容易发生过冲。
因此提出梯形曲线控制法,在电机的启动阶段,随着电机运动速度的提高,逐步提高控制脉冲的频率;当达到电机的设计最高运动速度后,保持最高速度运动;而在停止阶段,逐步降低控制脉冲的频率,以使电机的运动速度逐步降低,直到停止。
梯形曲线加减速过程的特点是电机加速过程和减速过程均为直线,即:加速度为定值。根据速度等于加速度的积分,位移等于速度的积分这一原理,在数字控制系统中(例如在FPGA实现中),在加速阶段,电机运动每一步,速度按照恒定的加速度值递增,直到达到最大运动速度,或者进入减速阶段。在匀速运动阶段,维持电机运动速度不变。而在减速阶段,电机每运动一步,速度按照恒定的加速度值递减,直到速度为零。
在具体实现中,首先,控制或检验检测系统会根据控制或检测检验的需求,给步进电机的数控装置,例如FPGA发送指令,指示FPGA 控制步进电机运动预定的位移(步数),例如S步。接到运动指令后, FPGA首先在初始速度v0的基础上以恒定加速度a累加,同时当前时刻的位移值st以每次累加所得的当前速度vt累加,当st累加溢出时, FPGA输出一个控制脉冲,控制电机运动一步。
在这一过程中,FPGA还会根据当前时刻位移值st、当前速度vt判断步进电机的运动状态,例如加速状态、匀速状态、以及减速状态。
如图4所示,梯形曲线控制方式的一般为加速状态与减速状态对称,在实际操作中,对应于加速状态运动的步数与减速状态运动的步数相等,也就是这两个阶段的位移相等。所以,在一种方案中,如果步进电机的当前运动速度vt小于最大速度vmax,并且当前时刻位移值st小于目标位移值的一半S/2,则判断电机运动处于加速状态,继续执行速度累加和位移累加,当位移累加溢出时,输出一个控制脉冲,控制电机运动一步。如果当前时刻位移值st小于目标位移值的一半S/2,且当前运动速度vt达到最大速度vmax,则判断电机运动处于匀速状态,当前时刻速度vt不再累加,当前时刻位移以最大速度vmax累加。如果目标位移值S与当前时刻位移值st之差小于加速阶段运动的总步数,则判断电机运动处于减速状态。
梯形曲线是一个综合的概念,实际运动中,如果目标位移S很小,有可能电机运动速度尚未达到最大速度vmax即由加速状态进入减速状态,这样,就不会经历匀速运动状态。
此外,在任何时刻,如果人为干预指示电机停止,电机也会立即进入减速状态。
当电机运动进入减速状态时,当前时刻位移值st依然以对应的当前时刻速度值vt累加,而当前时刻速度值vt则以加速度值a递减。根据运动曲线的对称性,当位移达到目标位移值S时,速度递减到零。这种方式可以避免现有技术中出现的拖拉和断尾现象,避免过冲等现象发生。
当前时刻位移值st的累加根据位移等于速度的积分这一原理,由当前时刻速度vt循环自累加实现。在一种方案中,把FPGA中的位移寄存器分为高位和低位,分别对应于当前时刻位移值st的两个不同的参数(第一位移参数和第二位移参数),例如,低位可以对应于当前时刻位移值st的小数部分stx,即第一位移参数,高位可以对应于当前时刻位移值st的整数部分stz,即第二位移参数。当前时刻速度值vt循环自累加,作为小数部分stx,当其超过预设溢出值的时候,判断当前时刻位移值溢出。
同样,速度的累加也可以通过类似的方式实现,将FPGA中的速度寄存器分为高位和低位,分别对应于当前时刻速度值的两个不同的参数:第一速度参数和第二速度参数。第二速度参数例如可以对应于整数部分vtz第一速度参数例如可以对应于小数部分vtx。加速度值a自累加,作为当前时刻速度值的小数部分,当小数部分溢出时,速度增加一个单位值,例如增加1,即,速度增加1步每秒。当然,也可以根据具体情况设定其它值。
预设溢出值的选择对于本发明的实现至关重要。本发明人在实验中发现,将曲线计算频率f作为预设溢出值,可以达到很好的技术效果,显著减小运行速度与理论速度之间的误差。
利用以上的方法,一方面通过简单的加减法实现了乘除积分等需要大量浮点运算的控制计算,显著减轻了控制装置的计算负荷,使得该控制算法更适合于在FPGA等控制装置中实现。另一方面,以位移溢出作为控制脉冲的输出条件,实现了单步脉冲变频,使得对电机的控制更加平稳、精确和高效。
下面为本发明人利用FPGA作为控制装置所进行的梯形曲线控制的一个具体实验过程。
设曲线计算频率为f,对应的计算周期为Δt,加速度为a,初速度为v0,当前时刻速度整数部分为vtz,小数部分为vtx,最大速度为vmax,当前时刻位移整数部分为stz,小数部分为stx,加速阶段实际位移为sj,目标位移为s。在时间单位相同时,数值上vmax≤f。预设速度溢出值为 vf,位移溢出值为Sf。
步骤1:在计算开始时,首先将初速度v0赋值给vtz。
步骤2:加速阶段,利用速度是加速度的积分以及位移是速度的积分等原理,在每个计算周期Δt内执行以下运算和判断:
vtx=vtx+a;stx=stx+vtz;
若vtx≥vf,则执行运算vtz=vtz+1;vtx=vtx-vf;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf;同时控制步进电机移动一步;
判断减速条件是否满足,例如,是否存在减速指令?或者位移S 是否满足减速要求。本次实验中,如果当前时刻位移达到目标位移量S 的一半,则判断减速条件满足,电机进入减速阶段。另外,如果当前时刻电机运动速度达到最大运动速度vmax,则加速过程结束,在尚未满足减速条件的情况下,电机进入匀速运动。
具体判断过程可以如下实现:若vtz≥vmax且stz<s/2,则执行步骤3;若stz≥s/2,则执行步骤4;同时记录加速位移sj=stz;为减少资源消耗,式中除2运算可通过移位运算实现。
步骤3:匀速阶段,在每个计算周期Δt内执行运算和判断:
stx=stx+vtz;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf;同时控制步进电机移动一步;
若stz≥s-sj,则执行步骤4;
当电机速度达到最大速度后,加速度降为零,速度不再增加,电机以最大速度vmax匀速运动,直到满足降速条件。这里,减速阶段的触发是通过设置减速过程与加速过程对称来实现的。当然,也可以有其它的设置,例如限位光电信号等。
步骤4:减速阶段,在每个计算周期Δt内执行运算和判断:
vtx=vtx-a;stx=stx+vtz;
若vtx≤0,则执行运算vtz=vtz-1;vtx=vtx+vf;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf;同时控制步进电机移动一步;
若stz=s,则该次电机运动完成。
在上述计算过程中,溢出值vf、Sf等可以根据实际情况具体设置,也可以通过连续多次的实验比较,得出最佳的值。本发明人在实践过程中,发现将溢出值vf、Sf设置为在数值上等于曲线计算频率f,可以获得令人满意的效果。
优选地,在时间单位相同时,数值上a≤f。
具体地,本次实验中选取曲线计算频率为f=50MHz,对应的计算周期为Δt=20ns,加速度为a=64000step/s2,初速度为v0=0step/s,最大速度为vmax=64000step/s,目标位移为s=100000step,实验结果如图5所示。
实施例2:以S型加减速曲线为例
梯形曲线控制有效提高了步进电机控制的平稳性、精度、和效率。但是在梯形曲线不同运动状态之间过渡时,由于加速度的突变,依然会存在轻微的冲击,即柔性冲击。柔性冲击在一定程度上也会影响电机控制的速度和精度。
为了提高电机运动的速度和精度,减少柔性冲击,电机的加减速过程不一定要设置成直线形式的,例如梯形曲线,而是还可以设置为曲线形式的,例如S型曲线、指数形曲线等等。
图6示出根据本发明另一个实施例实现步进电机S形曲线加减速控制的流程图。图7示出根据上述实施例所实现的步进电机S形加减速曲线示意图。
与梯形曲线控制相比,S形曲线在加速阶段和减速阶段,其加速度不再是恒定的,而是随着速度和位移的变化而变化的。
其基本思想是,在加速状态,电机从静止状态启动后,速度以指数曲线增加(加速度递增),而当速度接近最高运动速度时,速度的变化逐渐减慢(加速度递减)。在减速状态,电机速度从最高运动速度开始,以指数曲线降低(加速度递增),而当速度接近静止状态时,速度的变化逐渐减慢(加速度递减)。
控制过程开始时,电机的当前时刻加速度值at以加加速度jk累加,当前时刻速度值vt以当前时刻加速度值at累加,当前时刻的位移值st以当前时刻速度值vt累加。当st累加溢出时,控制电机运动一步。
在控制电机运动的同时,根据当前时刻速度值vt与电机最大运动速度vmax的关系,判断电机的运动状态。在一种方案中,如果vt尚未达到最大速度的一半vmax/2,则判断电机处于加加速状态,当前时刻加速度值at继续以加加速度jk累加。如果vt达到了最大速度的一半vmax/2,则判断电机处于减加速状态,当前时刻加速度值at转而以加加速度jk递减。
按照这种方式,当vt达到了最大速度vmax时,当前时刻加速度值at恰好降到零,从而实现了加速度的平滑过渡,避免了柔性冲击。
在减速阶段,加速度也是从零开始以加加速度jk累加,速度从vmax开始以当前时刻加速度at逐步递减,此时电机处于加减速状态。当速度下降到最大速度的一半vmax/2,加速度开始加加速度jk递减,速度以当前时刻加速度at逐步递减。按照这种方式,当电机速度降到零时,当前时刻加速度值at恰好也降到零,避免断尾等现象,同样也避免了电机的柔性冲击。
在FPGA作为控制装置的情况下,FPGA中的加速度寄存器也可以分为高位和低位,分别对应于当前时刻加速度值at的整数部分atz和小数部分atx,加加速度值jk在atx上累加或累减,整数部分atz相应地增加或减少一个单位值。
下面为本发明人利用FPGA作为控制装置所进行的S形曲线控制的一个具体实验过程。
为说明方便,在S形加减速曲线实现过程中,也进行以下设置:设曲线计算频率为f,计算周期为Δt,加加速度为jk,初速度为v0,当前时刻加速度整数部分为atz,也可称为第二加速度参数,小数部分为 atx,也可称为第一加速度参数,当前时刻速度整数部分为vtz,小数部分为vtx,最大速度为vmax,当前时刻位移整数部分为stz,小数部分为 stx,加加速阶段实际位移为sjj,加速阶段实际位移为sj,目标位移为s。预设加速度溢出值为af,速度溢出值为vf,位移溢出值为Sf。
在时间单位相同时,数值上vmax≤f。则利用FPGA实现单步变频 5段s形加减速曲线(加加速段、减加速段、匀速段、加减速段、减减速段)流程如下:
优选地,在时间单位相同时数值上jk≤f。
步骤1:将初速度v0赋值给vtz,跳转到步骤2;
步骤2:加加速阶段,利用加速度是加加速度的积分,速度是加速度的积分以及位移是速度的积分等原理,在每个计算周期Δt内执行运算和判断:
atx=atx+jk;vtx=vtx+atz;stx=stx+vtz;
若atx≥af,则执行运算atz=atz+1;atx=atx-af;
若vtx≥vf,则执行运算vtz=vtz+1;vtx=vtx-vf;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf;同时控制步进电机移动一步;
若vtz≥vmax/2,则执行步骤3;同时记录加加速段位移sjj=stz;(为减少资源消耗,式中除2运算可通过移位运算实现)。
步骤3:减加速阶段,在每个计算周期Δt内执行运算和判断:
atx=atx-jk;vtx=vtx+atz;stx=stx+vtz;
若atx≤0,则执行运算atz=atz-1;atx=atx+af;
若vtx≥vf,则执行运算vtz=vtz+1;vtx=vtx-vf;
若stx≥f,则执行运算stz=stz+1;stx=stx-f;同时控制步进电机移动一步;
若vtz≥vmax,则执行步骤4;同时记录整个加速段位移sj=stz;
步骤4:匀速阶段,在每个计算周期Δt内执行运算和判断:
stx=stx+vtz;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf,同时控制步进电机移动一步;
若stz≥s-sj,则执行步骤5;
步骤5:加减速阶段,在每个计算周期Δt内执行运算和判断:
atx=atx+jk;vtx=vtx-atz;stx=stx+vtz;
若atx≥af,则执行运算atz=atz+1;atx=atx-af;
若vtx≤0,则执行运算vtz=vtz-1;vtx=vtx+vf;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf;同时控制步进电机移动一步;
若stz≥s-sjj,则执行步骤6;
步骤6:减减速阶段,在每个计算周期Δt内执行运算和判断:
atx=atx-jk;vtx=vtx-atz;stx=stx+vtz;
若atx≤0,则执行运算atz=atz-1;atx=atx+af;
若vtx≤0,则执行运算vtz=vtz-1;vtx=vtx+vf;
若stx≥Sf,则执行运算stz=stz+1;stx=stx-Sf;同时控制步进电机移动一步;
若stz=s,则该次电机运动完成;
在S形曲线控制中,不同运动状态之间的切换,同样可以由不同的事件和条件触发。例如,根据当前时刻速度与电机运动最大速度的关系、当前时刻位移值与目标位移的关系等。任何时刻人为输入的停机指令同样可以使电机在任何状态直接转入加减速状态或减减速状态。
在上述计算过程中,溢出值af、vf、Sf等可以根据实际情况具体设置,也可以通过连续多次的实验比较,得出最佳的值。本发明人在实践过程中,发现将溢出值af、vf、Sf设置为在数值上等于曲线计算频率f,可以获得令人满意的效果。
优选的在时间单位相同时,数值上a≤f。
具体地,实验中设置了曲线计算频率为f=50MHz,对应的计算周期为Δt=20ns,加加速度为jk=64000step/s3,初速度为v0=0step/s,最大速度为vmax=64000step/s,目标位移为s=200000step,则通过本发明实现的步进电机S形加减速曲线如图7所示。
本发明利用单步位移溢出产生电机运动控制脉冲,仅仅通过加减法及移位运算即可实现高精度单步变频步进电机加减速控制,且统一了不同曲线的实现方式,大大降低了主控单元资源消耗与计算时长,也提高了速度平滑性及速度精度(对比见图8),整个过程中位移误差控制在1步以内,解决了常规方法中位移结束时,速度曲线拖拉、断尾等现象。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。例如,以上描述了本发明的原理在梯形曲线加减速和S形曲线加减速控制中的运用。根据上面描述的原理,本领域的技术人员容易理解,本发明的原理同样可以用于指数型曲线、三角函数曲线等控制方案中。
此外,在上述实施例中,加速状态和减速状态对称。本领域的技术人员容易理解,在不对称的情况下,本发明的技术方案同样适用,并且同样可以获得相同的技术效果。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (14)
1.一种电机运动控制方法,其特征在于以单步位移溢出产生电机运动的控制信号。
2.根据权利要求1所述的方法,进一步包括:
根据上一时刻位移值与当前时刻速度值确定当前时刻位移值;
根据所述当前时刻位移值和预设溢出值判断该当前时刻位移值是否溢出;
若溢出,则输出所述控制信号,控制所述电机运动;
其中所述预设溢出值在数值上与计算频率值相等。
3.根据权利要求2所述的方法,进一步包括根据上一时刻速度值和加速度值确定所述当前时刻速度值。
4.根据权利要求3所述的方法,进一步包括判断电机当前的运动状态,所述运动状态至少包括加速状态和减速状态。
5.根据权利要求4所述的方法,其中在所述加速状态,所述根据上一时刻速度值和加速度值确定所述当前时刻速度值包括:
所述上一时刻速度值的第一速度参数与所述加速度值相加,得到所述当前时刻速度值的第一速度参数;
根据所述当前时刻速度值的第一速度参数和所述预设溢出值判断所述当前时刻速度值是否溢出;
若溢出,则所述当前时刻速度值的所述第一速度参数减少所述预设溢出值,所述当前时刻速度值的第二速度参数增加一个单位值。
6.根据权利要求5所述的方法,其中所述加速状态包括加加速状态和减加速状态,并且在所述上一时刻速度值的第一速度参数与所述加速度值相加,得到所述当前时刻速度值的第一速度参数的步骤之前,还包括:
根据上一时刻加速度值和加加速度值确定当前时刻加速度值。
7.根据权利要求6所述的方法,其中在所述加加速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:
所述上一时刻加速度值的第一加速度参数与所述加加速度值相加,得到所述当前时刻加速度值的所述第一加速度参数;
根据所述当前时刻加速度值的所述第一加速度参数和所述预设溢出值判断该当前时刻加速度值是否溢出;
若溢出,则所述当前时刻加速度值的所述第一加速度参数减少所述预设溢出值,所述当前时刻加速度值的第二加速度参数增加一个单位值。
8.根据权利要求6所述的方法,其中在所述减加速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:
所述上一时刻加速度值的第一加速度参数与所述加加速度值相减,得到所述当前时刻加速度值的第一加速度参数;
判断所述当前时刻加速度值的第一加速度参数是否为正值;
若不为正值,则所述当前时刻加速度值的第一加速度参数增加所述预设溢出值,所述当前时刻加速度值的第二加速度参数减少一个单位值。
9.根据权利要求4所述的方法,其中在所述减速状态,所述根据上一时刻速度值和加速度值确定所述当前时刻速度值包括:
所述上一时刻速度值的第一速度参数与所述加速度值相减,得到所述当前时刻速度值的第一速度参数;
判断该当前时刻速度值的第一速度参数是否为正值;
若不为正值,则所述当前时刻速度值的第一速度参数增加所述预设溢出值,所述当前时刻速度值的第二速度参数减少一个单位值。
10.根据权利要求9所述的方法,其中所述减速状态包括加减速状态和减减速状态,并且在所述上一时刻速度值的第一速度参数与所述加速度值相减,得到所述当前时刻速度值的第一速度参数的步骤之前,还包括:
根据上一时刻加速度值和加加速度值确定当前时刻加速度值。
11.根据权利要求10所述的方法,其中在所述加减速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:
所述上一时刻加速度值的第一加速度参数与所述加加速度值相加,得到所述当前时刻加速度值的第一加速度参数;
根据所述当前时刻加速度值的第一加速度参数和所述预设溢出值判断该当前时刻加速度值是否溢出;
若溢出,则所述当前时刻加速度值的第一加速度参数减少所述预设溢出值,所述当前时刻加速度值的第二加速度参数增加一个单位值。
12.根据权利要求10所述的方法,其中在所述减减速状态,所述根据上一时刻加速度值和加加速度值确定当前时刻加速度值包括:
所述上一时刻加速度值的第一加速度参数与所述加加速度值相减,得到所述当前时刻加速度值的第一加速度参数;
判断该当前时刻加速度值的第一加速度参数是否为正;
若不为正,则所述当前时刻加速度值的第一加速度参数增加预设溢出值,当前时刻加速度值的第二加速度参数减少一个单位值。
13.根据权利要求2-12任一项所述的方法,其中所述根据上一时刻位移值与当前时刻速度值确定当前时刻位移值包括:
所述上一时刻位移值的第一位移参数与所述当前时刻速度值的第二速度参数相加,得到所述当前时刻位移值的第一位移参数;
根据所述当前时刻位移值的第一位移参数与所述预设溢出值判断所述当前时刻位移值是否溢出;
若溢出,则所述当前时刻位移值的第一位移参数减少所述预设溢出值,所述当前时刻位移值的第二位移参数增加一个单位值。
14.根据权利要求13所述的方法,其中在时间单位相同时,所述计算频率值大于或等于电机的最大运动速度值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010079915.1A CN111262483B (zh) | 2020-02-04 | 2020-02-04 | 电机运动控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010079915.1A CN111262483B (zh) | 2020-02-04 | 2020-02-04 | 电机运动控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111262483A true CN111262483A (zh) | 2020-06-09 |
CN111262483B CN111262483B (zh) | 2022-02-08 |
Family
ID=70949215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010079915.1A Active CN111262483B (zh) | 2020-02-04 | 2020-02-04 | 电机运动控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111262483B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112701972A (zh) * | 2020-12-14 | 2021-04-23 | 合肥安迅精密技术有限公司 | 一种控制步进电机减速位移恒定的方法、存储介质及设备 |
CN114260863A (zh) * | 2020-09-16 | 2022-04-01 | 深圳市湘聚实业有限公司 | 一种迷宫密封式回转工作台及其控制方法 |
CN117081438A (zh) * | 2023-10-13 | 2023-11-17 | 季华实验室 | 基于fpga的步进电机开环定位控制方法及其相关设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4890048A (en) * | 1989-01-09 | 1989-12-26 | Hunter L Wayne | Low torque ripple stepping motor controller circuit |
CN1475885A (zh) * | 2003-07-29 | 2004-02-18 | 威盛电子股份有限公司 | 一种校正步进马达的控制方法及其相关装置 |
CN1767365A (zh) * | 2004-10-29 | 2006-05-03 | 日本伺服株式会社 | 马达控制装置 |
CN102223124A (zh) * | 2011-06-24 | 2011-10-19 | 天津市亚安科技电子有限公司 | 一种控制步进电机的装置 |
CN102497157A (zh) * | 2011-11-23 | 2012-06-13 | 哈尔滨工业大学 | 绕组分段直线电机的无传感器控制装置及控制方法 |
CN107270919A (zh) * | 2016-04-07 | 2017-10-20 | 高德信息技术有限公司 | 公交路线分级方法、装置以及公交路线导航方法、装置 |
CN108322112A (zh) * | 2018-02-28 | 2018-07-24 | 弗徕威智能机器人科技(上海)有限公司 | 一种步进电机的复合运动控制方法 |
CN109586628A (zh) * | 2018-11-15 | 2019-04-05 | 桂林优利特医疗电子有限公司 | 一种自适应的步进电机控制算法 |
-
2020
- 2020-02-04 CN CN202010079915.1A patent/CN111262483B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4890048A (en) * | 1989-01-09 | 1989-12-26 | Hunter L Wayne | Low torque ripple stepping motor controller circuit |
CN1475885A (zh) * | 2003-07-29 | 2004-02-18 | 威盛电子股份有限公司 | 一种校正步进马达的控制方法及其相关装置 |
CN1767365A (zh) * | 2004-10-29 | 2006-05-03 | 日本伺服株式会社 | 马达控制装置 |
CN102223124A (zh) * | 2011-06-24 | 2011-10-19 | 天津市亚安科技电子有限公司 | 一种控制步进电机的装置 |
CN102497157A (zh) * | 2011-11-23 | 2012-06-13 | 哈尔滨工业大学 | 绕组分段直线电机的无传感器控制装置及控制方法 |
CN107270919A (zh) * | 2016-04-07 | 2017-10-20 | 高德信息技术有限公司 | 公交路线分级方法、装置以及公交路线导航方法、装置 |
CN108322112A (zh) * | 2018-02-28 | 2018-07-24 | 弗徕威智能机器人科技(上海)有限公司 | 一种步进电机的复合运动控制方法 |
CN109586628A (zh) * | 2018-11-15 | 2019-04-05 | 桂林优利特医疗电子有限公司 | 一种自适应的步进电机控制算法 |
Non-Patent Citations (1)
Title |
---|
叶军: "我国电加工机床行业现状及发展综述", 《电加工与模具》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114260863A (zh) * | 2020-09-16 | 2022-04-01 | 深圳市湘聚实业有限公司 | 一种迷宫密封式回转工作台及其控制方法 |
CN112701972A (zh) * | 2020-12-14 | 2021-04-23 | 合肥安迅精密技术有限公司 | 一种控制步进电机减速位移恒定的方法、存储介质及设备 |
CN112701972B (zh) * | 2020-12-14 | 2023-08-15 | 合肥安迅精密技术有限公司 | 一种控制步进电机减速位移恒定的方法、存储介质及设备 |
CN117081438A (zh) * | 2023-10-13 | 2023-11-17 | 季华实验室 | 基于fpga的步进电机开环定位控制方法及其相关设备 |
CN117081438B (zh) * | 2023-10-13 | 2024-02-13 | 季华实验室 | 基于fpga的步进电机开环定位控制方法及其相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111262483B (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111262483B (zh) | 电机运动控制方法 | |
CN106168790B (zh) | 一种在线改变目标速度和位置的s形加减速控制方法 | |
CN111711387B (zh) | 一种智能手套机电机的柔性速度控制方法 | |
CN107368639B (zh) | 速度规划方法、装置、计算机设备和存储介质 | |
JP5343081B2 (ja) | 経路計画器用の加加速度制限軌道計画システムおよび方法 | |
CN102540978B (zh) | 面向高速加工的表面质量优先的样条曲线实时插补方法 | |
CN116330299B (zh) | 一种基于加速度平滑的工业机器人柔顺运动控制方法 | |
JP4889809B2 (ja) | 加減速制御装置 | |
CN111727411B (zh) | 设备运动控制方法、设备和存储装置 | |
CN111795198A (zh) | 一种基于速度控制器实现高速开关阀阀芯运动可控的方法 | |
CN113489393B (zh) | 一种永磁式步进电机细分驱动方法 | |
CN101689824A (zh) | 通过驱动分段的行程来校准步进电动机 | |
CN1856930A (zh) | 电动机的控制装置及其控制方法 | |
JP4542668B2 (ja) | パルス発振ic並びにそのicを使用したモータの位置決め制御方法とその装置 | |
US4703244A (en) | Pulse motor control apparatus | |
CN113359620B (zh) | 一种用于轴运动的软限位控制方法及基于rtx64的开放式运动控制器 | |
CN108762064B (zh) | 一种伺服驱动器的速度平滑方法 | |
CN109760053A (zh) | 一种桁架机械手的动态规划速度控制方法 | |
KR100761689B1 (ko) | 토크 제한 속도 프로파일 모터 구동 방법 및 장치 | |
Gong et al. | LabVIEW-base automatic rising and falling speed control of stepper motor | |
JP2019170114A (ja) | モータの制御装置、ロボットおよびモータの制御方法 | |
CN111371378B (zh) | 速度控制的方法和装置 | |
JP5028674B2 (ja) | 移動体の指令生成方法および指令生成装置 | |
KR910004655B1 (ko) | 주기 가변식 듀우티비 제어방법 | |
KR0122292B1 (ko) | 스텝모터의 선형가감속제어장치 및 방법 |
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 |