CN109274299B - 一种数字步进驱动器振动处理技术及其处理方法 - Google Patents
一种数字步进驱动器振动处理技术及其处理方法 Download PDFInfo
- Publication number
- CN109274299B CN109274299B CN201811394448.0A CN201811394448A CN109274299B CN 109274299 B CN109274299 B CN 109274299B CN 201811394448 A CN201811394448 A CN 201811394448A CN 109274299 B CN109274299 B CN 109274299B
- Authority
- CN
- China
- Prior art keywords
- frequency
- driver
- value
- pwm carrier
- represented
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 29
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000005516 engineering process Methods 0.000 title claims description 8
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000003491 array Methods 0.000 claims description 21
- 238000012935 Averaging Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 2
- 230000010355 oscillation Effects 0.000 abstract description 5
- 230000002035 prolonged effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013016 damping Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012360 testing method 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/32—Reducing overshoot or oscillation, e.g. damping
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Control Of Stepping Motors (AREA)
Abstract
本发明的一种数字步进驱动器振动处理技术及其处理方法,其通过在步进驱动器内设置有四大功能模块,使步进驱动器能够自动捕获外部运动的控制器输入进来的脉冲信号的频率,同时,在步进驱动器的每个PWM载波中断处理函数中计算外部脉冲输入的平均频率及计算相应电机的步长值,并且作均分和纠正处理,如果外部输入脉冲频率在振动区域等于或接近PWM载波频率的整数倍时,其通过细微且规律地改变PWM载波频率Fc能使步进驱动器的性能得到显著的改善,特别对于低细分应用的场合,其有效地减少电机的谐波电流,并实现大幅度地减少电机的振动和降低电机的噪音,有利于延长步进电机的使用寿命,并解决了混合步进电机的转子会出现高频振荡的问题。
Description
技术领域
本发明涉及一种数字步进驱动器振动处理技术及其处理方法。
背景技术
混合步进电机的共振除了低速固有的自然振动频率原因外,还跟输入的脉冲频率和步进驱动器的PWM载波频率Fc有关。传统的混合步进驱动器根据外部运动控制器输入的每一个脉冲走预先设置的电角度,可以称为步长值,例如每个脉冲代表的电角度为1.8°时,步进驱动器在每个PWM载波周期中断接收到外部输入一个脉冲时就要控制步进电机走1.8°,收到两个脉冲走3.6°。但当输入的脉冲频率在振动区域,也就是PWM载波频率的整数倍或接近PWM载波频率的整数倍时,由于相位差的原因,每个PWM载波周期中断收到的脉冲个数会极度不均衡。例如当外部输入脉冲频率是PWM载波频率的2倍时,由于相位差的原因不可能每个PWM载波周期中断都会理想的收到2个脉冲,会出现这样一个最严重的情况:上一个PWM载波周期中断收到1个脉冲,当前PWM载波周期中断会收到3个脉冲,下一周又收到1个脉冲,如此反复。由此在每个PWM载波周期中断直接根据收到的外部脉冲个数计算出的步长值Step_Delta变化会更加剧烈,使混合步进电机的转子运动会出现高频振荡。公告号为CN 101702614 A的专利通过加入电子阻尼的方法来处理混合步进电机的转子振动,虽然它对混合步进的固有中速谐振具有一定的抑制效果,但是对于此情况该专利所述的方法几乎是毫无效果。
发明内容
本发明要解决的技术问题是提供一种数字步进驱动器振动处理技术及其处理方法,其通过在驱动器内部设计有四大功能模块,其包括外部输入脉冲频率捕获并存储模块、在PWM载波周期中断函数中计算平均频率和平均步长值Step模块、如果输入的脉冲频率在振动区域改变PWM的载波频率值Fc模块以及PWM电流控制模块,使得数字步进驱动器能够自动捕获由外部运动的控制器输入的脉冲频率并测量其平均频率,然后在PWM载波中断处理函数中对输入脉冲所代表的步长值作均分和纠正处理,当输入步进驱动器的脉冲频率接近PWM载波频率的整数倍时,细微地改变PWM的载波频率Fc便能有效地减少振动,从而实现改善其的运动性能,进而克服当输入的脉冲频率是PWM载波频率的整数倍或接近PWM载波频率的整数倍时,混合步进电机的转子会出现高频振荡的问题。本发明是通过以下技术方案来实现的:
一种数字步进驱动器的振动处理技术及其处理方法,首先设置一个计数器变量,当将计数器的变量采用n表示时,缓存数组所指向的变量表示为Pa[n],变量n的初始值为0,缓存数组指向的变量表示为Pa[0];当步进驱动器第一次接收到外部脉冲频率时,其首先会将捕获到的脉冲频率值存入缓存数组内,此时,计数器变量为0+1,即缓存数组指向的变量表示为Pa[1];当步进驱动器第二次接收到外部脉冲频率时,其又会自动将捕获到的外部脉冲频率值存入缓存数组内,此时,计数器变量为1+1,即缓存数组指向的变量表示为Pa[2],如此类推,当计数器变量为n时,缓存数组指向的变量表示为Pa[n];当步进驱动器再次收到外部脉冲频率输入时,其又会自动将捕获到的外部脉冲频率值存入缓存数组内,此时,计数器变量n变为n+1, 缓存数组指向的变量表示为Pa[n+1],直至计数器变量n达到最大的定义存储量N时,此时,计数器变量n会自动清0即n=0,而缓存数组又会自动重新回到Pa[0],即控制器又从第一个缓存数组变量Pa[0]开始重新将每个捕获到的外部输入脉冲频率存入到相应的缓存数组内,并更新原来的存储数据,如此类推。
定义最大存储量N的依据方法为:当将步进驱动器所允许的最大输入脉冲频率设置为Fin=500000HZ且将步进驱动器的PWM载波控制频率设置为Fc=20000HZ时,缓存数组最大的定义存储量N的计算公式设置为:
N>2*Fin/Fc=50。
只有当N满足上述公式时才能保证步进驱动器捕获到的外部脉冲频率的数组序列在PWM周期中断且尚未处理时不会被新的数值自动覆盖掉。
进一步地,在PWM载波周期中断中计算外部输入脉冲的频率和平均步长值,其处理过程如下:步骤一、在每个PWM载波周期中断时提取上一周期载波中断以来,步进驱动器所捕获到的所有外部输入脉冲频率值组成的序列,同时,记录当前的PWM载波周期步进驱动器捕获到的计数器变量及上一周期步进驱动器捕获到的计数器变量;当前的PWM载波中断周期步进驱动器记录的计数器变量值采用N1表示,上一周期步进驱动器记录的计数器变量值采用N0表示;当N0=N1时,说明外部输入的脉冲频率小于步进驱动器的载波频率Fc,即此期间没有向步进驱动器输入特定频率的脉冲,此时,不用重新计算输入步进驱动器的脉冲平均频率,步进驱动器的脉冲平均频率等于上一周期的平均频率。
当N1>N0时,提取步进驱动器所记录和捕获到的外部输入脉冲频率的缓存数组序列Pa[N0], Pa[N0+1],…,Pa[N1-1],并计算这些数组序列频率值的总和,数组序列频率值的总和采用PSum表示,其的计算公式表示为:
PSum=Pa[N0]+Pa[N0+1]+…+Pa[N1-1]。
同时,计算这些频率数组的个数,频率数组的个数采用Nsum表示,此时频率数组个数的计算公式设置为:
Nsum=N1-N0。
当N1<N0时,说明驱动器捕获外部输入脉冲频率时,计数器的变量n发生周期溢出,此时,提取步进驱动器捕获脉冲频率的缓存序列和计算这些数组变量的总和,其的总和采用Psum表示,并计算这些捕获到的频率数组的个数,此时的频率数组个数的计算公式表示为:
Nsum=N-N0+N1。
步骤二、根据步骤一所计算出的PWM周期中断期间的外部输入脉冲频率数组之和Psum以及这些频率数组的个数Nsum,计算 PWM载波中断间隔期间外部输入脉冲的频率平均值,频率平均值采用Fcap_Avr表示,其的计算公式为:
Fcap_Avr=PSum/Nsum。
步骤三、计算步进驱动器每个PWM载波周期的平均步长,每个PWM载波周期的平均步长的计算方法如下:根据前时刻t输入步进驱动器的外部脉冲个数Nsum直接计算出的总步长值采用Pul_Ref(t)表示,当前时刻t的步进驱动器根据平均步长计算出的总步长值采用Pul_Feed(t)表示,当前PWM载波中断的时刻t根据步进驱动器的外部输入脉冲个数Nsum所计算出的总步长值与当前时刻t步进驱动器根据平均步长计算出的总步长值之间的差值采用Pul_Err表示时,其的计算公式表示为:
Pul_Err=Pul_Ref(t)-Pul_Feed(t)。
当用户设置的步进驱动器对每一个外部输入脉冲所代表的电角度采用SGain表示,而步进驱动器每个载波周期的平均步长采用Step表示,SGain的物理量单位是:度/1个脉冲,SGain的值为小于等于90度/1个脉冲,同时,当前时刻t根据输入步进驱动器的脉冲个数Nsum直接计算的总步长值与当前时刻t控制器根据平均步长计算的总步长值之差值Pul_Err的控制比例系数采用Kp表示时,0<Kp<1,步进驱动器每个载波周期的平均步长的计算公式表示为:
Step=SGain*Fc/Fcap_Avr+Kp*Pul_Err,
Kp是对根据纠正步进驱动器输入脉冲个数Nsum来计算出的步长值进行平均化处理后引起的偏差,以保证采用平均步长值Step计算的总步长值不会偏离直接根据外部脉冲个数Nsum计算的总步长值;因此能通过计算出每个载波周期的平均步长Step来取代直接根据外部输入的脉冲数来计算出的步长值,步长值采用Step_Delta表示,其中,Step_Delta的计算公式为:
Step_Delta= Nsum *SGain。
步骤四、根据平均步长计算步进驱动器驱动电机的参考电流,参考电流包括A相电流和B相电流,参考电流的计算方法如下:首先,计算步进驱动器所有外部输入脉冲所代表的总电角度,当前载波周期时刻t的角度采用Step_Angle表示,PWM载波中断的周期时间采用Tpwm表示,当前时刻t的上一周期时刻的电角度采用Step_Angle(t-Tpwm),Step_Angle的计算公式设置为:
Step_Angle=Step_Angle(t-Tpwm)+Step,
A相电流采用Ia表示,其计算公式设置为:
Ia=Iap*Sin(Step_Angle),
B相电流采用Ib表示,其计算公式设置为:
Ib=Iap*Cos(Step_Angle),
其中,Iap由用户设置,是步进驱动器驱动电机的幅值电流;
步骤五、根据计算的参考电流在PWM载波中断时对步进驱动器进行一次电流控制,以驱动电机运行。
进一步地,该数字步进驱动器振动处理技术及其处理方法还包括通过输入频率有规律地在振动区域改变PWM载波频率Fc的值,其处理方法如下:根据公式Fcap_Avr=PSum/Nsum计算出脉冲的平均频率值,然后,将其与当前PWM载波控制频率值Fc作对比,并满足以下条件.:
-40HZ<Fcap_Avr-Fc<40HZ;
-80HZ<Fcap_Avr-2*Fc<80HZ;
-100HZ<Fcap_Avr-3*Fc<100HZ;
-150HZ<Fcap_Avr-4*Fc<150HZ;
当输入步进驱动器的脉冲频率不断增加时需要改变PWM载波控制频率Fc的值,改变PWM载波控制频率的值为Fc-50HZ;。
当输入步进驱动器的脉冲频率不断减少时需要改变PWM载波控制频率Fc的值,改变PWM载波控制频率的值为Fc+50HZ;其通过改变PWM载波频率后再输入脉冲的频率就不会接近PWM载波频率的整数倍。
进一步地,在每个PWM载波周期中断处理函数,每次改变PWM载波频率Fc的变化率设置为1HZ,此设计能有效地减少由于PWM载波频率变化在控制电流过程中产生的谐波。
本发明的有益效果为:其通过捕获输入步进驱动器的脉冲信号和测量其平均频率,并在PWM载波中断处理函数中作均分和纠正处理,以实现能细微地有规律性的改变PWM载波频率,防止外部输入脉冲频率接近PWM载波频率的整数倍,以减少电机的转子振动,特别对于低细分应用的场合,其有效地减少电机的谐波电流,从而实现能大大减少电机的振动和降低电机的噪音,延长步进电机的使用寿命,并成功解决了当输入的脉冲频率是PWM载波频率的整数倍或接近PWM载波频率的整数倍时,混合步进电机的转子会出现高频振荡的问题。
附图说明
为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。
图1为本发明的一种数字步进驱动器振动处理技术的功能结构连接示意图。
图2为本发明的一种数字步进驱动器的外部脉冲输入及自动捕获处理流程示意图。
图3为本发明的一种数字步进驱动器的PWM载波周期中断处理流程示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本发明的公开内容理解的更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。
参照图1所示,本发明的一种数字步进驱动器振动处理技术的结构,包括包括控制器,及与控制器连接的步进驱动器,及与步进驱动器连接设置的步进电机,所述步进驱动器内分别设置有第一模块、第二模块、第三模块和第四模块,所述第一模块是外部输入脉冲频率捕获并存储的模块,第二模块是在PWM载波周期中断函数中计算平均频率和平均步长值Step的模块,第三模块是指根据输入的脉冲频率在振动区域改变PWM的载波频率值Fc的模块,第四模块是PWM电流控制模块。第一模块能实时捕获、处理外部输入步进驱动器的脉冲频率并将其存入到相应的缓存数组内,其内置有计数器。第二模块能从捕获到的外部脉冲频率数据计算其频率平均值,进而计算步进驱动器的平均步长值,并将其计算得到的平均频率值传送给第三模块,最后,计算电角度和确定PWM载波控制频率Fc。第四模块用于电流控制,以驱动步进电机运行。
参照图1至图3所示,一种数字步进驱动器振动处理技术及其处理方法,首先预先定义N个存储数组,这些数组可以表示为Pa[0],Pa[1],…,Pa[N-1]。捕获外部输入脉冲频率的计数器变量采用n表示时,缓存数组指向的数组变量则为Pa[n],变量n的初始值为0,缓存数组的初始值也为0,此时,缓存数组指向的数组变量为Pa[0];有脉冲频率输入步进驱动器时,先把捕获到的外部脉冲频率存入数组变量Pa[0],然后计数器的变量n变为0+1,即n=0+1=1,变量数组指向为Pa[1];当第二次有脉冲输入步进驱动器时,其又把捕获到的外部脉冲频率存入数组变量Pa[1]内,然后计算器的变量n变为1+1,即表示为n=1+1=2,相应地,缓存数组指向数组变量为Pa[2],如此类推。当计算器变量n增加到上述所定义的缓存数组个数N时,n自动变为0,并重新开始下一轮的捕获外部输入脉冲频率。当再次发生外部脉冲输入事件时,其又将捕获到的脉冲频率值存入变量Pa[0]中,数组变量Pa[0]原先的值由于在PWM载波中断处理函数已经被提取处理过,所以新的外部脉冲频率值可以存入数组变量Pa[0]中,并自动将原来的值覆盖掉,如此反复不间断地自动捕获外部输入脉冲的频率值。
上述外部脉冲频率捕获模块所定义的最大缓存数组的数量N定义的方法如下:当步进驱动器所允许的最大输入脉冲频率设置为Fin=500000HZ且步进驱动器的PWM载波控制频率设置为Fc=20000HZ时,缓存数组的个数N应满足如下条件:
N>2*Fin/Fc=50,
当N满足此公式时才能保证由捕获到的外部脉冲频率构成的数组序列在PWM载波周期中断且尚未处理时不会被新捕获到的外部脉冲频率值所取代。
在PWM载波周期中断函数中计算平均频率和平均步长值Step,其具体过程是:在每个PWM载波周期中断时提取上一周期的载波中断以来,所捕获到的所有外部输入脉冲频率序列,同时,记录当前周期的载波中断所记录的计数器变量及上一周期载波中断记录到的计数器变量,当前周期载波中断的计数器变量n采用N1表示,上一周期载波中断的计数器变量n采用N0表示;当N0=N1时,说明外部输入的脉冲频率小于控制器的载波频率,即此期间没有向步进驱动器输入特定频率的脉冲,此时,不用重新计算输入步进驱动器的脉冲平均频率,步进驱动器的外部脉冲平均频率等于上一周期的脉冲平均频率。
当N1>N0时,提取控制器记录和捕获的缓存数组的缓存序列(即提取控制器从上一周期载波中断的计数器变量开始至当前周期载波中断的计数器变量记录和捕获的缓存数组的所有缓存序列)Pa[N0]、Pa[N0+1]、Pa[N0+2]……Pa[N1-1],并计算这些缓存序列个数之和,其计算公式为:
PSum=Pa[N0]+Pa[N0+1]+Pa[N0+2]+…+Pa[N1-1];
同时,相应的计算这些外部脉冲频率数组的个数,也就是外部输入的脉冲个数Nsum,Nsum的计算公式为:
Nsum=N1-N0;
当N1<N0时,说明捕获模块捕获外部脉冲频率时,计数器变量n发生有周期性溢出,此时,提取捕获到的外部脉冲频率构成的缓存序列Pa[N0]、Pa[N0+1],…,Pa[N-1],Pa[0]…,Pa[N1-1],并计算这些频率数组的个数,其计算公式表示为:
Nsum=N-N0+N1;
接着,根据以上所述求出的变量PSum和Nsum,计算PWM载波周期中断间隔期间外部输入的脉冲平均频率值,其计算公试设置为:
Fcap_Avr=PSum/Nsum;
然后求PWM载波周期中断间隔期间的平均步长值。步进驱动器对每一个外部输入脉冲所代表的电角度采用SGain表示(SGain的物理量单位是:度/1个脉冲,一般地,它的值小于等于90度/1个脉冲),如果直接根据外部输入的脉冲个数Nsum求步长增量Step_Delta,Step_Delta的计算公式为
Step_Delta=Nsum*SGain;
如果直接用Step_Delta求取步进驱动器的电角度会引起转子高频振动,为此必须用平均步长值Step取代,根据求出的外部脉冲平均频率Fcap_Avr和PWM载波频率Fc,平均步长值Step的计算公式为:
Step=SGain*Fc/Fcap_Avr+Kp*Pul_Err,
其中,Pul_Err为当前PWM载波中断的时刻t步进驱动器的外部输入脉冲个数Nsum所计算出的总步长值与当前时刻t控制器根据上式所求出的平均步长值Step计算出的总步长值之间的差值;当前时刻t根据输入步进驱动器的外部脉冲直接计算出的总步长值采用Pul_Ref(t)表示,而当前时刻t控制器根据平均步长值Step所计算出的总步长值采用Pul_Feed(t)表示,它们的计算公式表示如下:
Pul_Err=Pul_Ref(t)-Pul_Feed(t),
其中,Pul_Ref(t)=Pul_Ref(t-Tpwm)+ Nsum *SGain;
Pul_Feed(t)=Pul_Feed(t-Tpwm)+Step;
其中Tpwm是PWM载波中断的周期时间,Pul_Ref(t-Tpwm)表示时刻t的上一周期时刻t-Tpwm的值,Pul_Feed (t-Tpwm)表示时刻t的上一周期时刻t-Tpwm的值,Nsum是步骤一计算出的捕获到的外部输入脉冲频率所存入的数组个数,实际上也是两个PWM载波中断间隔期间步进驱动器接收到的外部输入脉冲个数,以下表示类同。
Kp是当前时刻t根据输入步进驱动器的脉冲个数Nsum直接计算出来的总步长值与当前时刻t控制器根据平均步长计算出来的总步长值之间差值的控制比例系数,0<Kp<1,Kp主要是用于纠正由步进驱动器的输入脉冲个数Nsum直接计算出的步长值由于在PWM载波周期进行平均化处理后引起的偏差,以保证采用平均步长值Step计算的总步长值不会偏离原来直接根据外部输入脉冲个数Nsum计算出的总步长值;因此可以通过计算出每个PWM载波周期的平均步长来取代直接根据外部输入的脉冲数Nsum来计算出的步长值Step_Delta。
所述PWM电流控制模块的具体实现方式为:根据平均步长计算经过步进驱动器的参考电流,参考电流包括A相电流和B相电流,参考电流的计算方法如下:首先,计算每个输入驱动器的脉冲所代表的走过的总角度,在时刻t该电角度可以采用Step_Angle,Step_Angle的计算公式设置为:
Step_Angle=Step_Angle(t-Tpwm)+Step,
其中Tpwm是PWM载波中断的周期时间,Step_Angle(t-Tpwm)表示该时刻t的上一周期时刻(t-Tpwm)的电角度。
A相电流采用Ia表示,其计算公式表示为:
Ia=Iap*Sin(Step_Angle);
B相电流采用Ib表示,其计算公式表示为:
Ib=Iap*Cos(Step_Angle),
其中,Iap是由用户设置的电流幅值。
最后,根据计算的参考电流在PWM载波中断时对步进驱动器进行一次电流控制,并以此电流来驱动步进电机运行。
PWM电流控制模块的处理方法如下:根据公式Fcap_Avr=PSum/Nsum计算得到输入驱动器的脉冲频率平均值,当其与当前PWM载波控制频率Fc满足以下条件(属于振动区域)时:
-40HZ<Fcap_Avr-Fc<40HZ;
-80HZ<Fcap_Avr-2*Fc<80HZ;
-100HZ<Fcap_Avr-3*Fc<100HZ;
-150HZ<Fcap_Avr-4*Fc<150HZ;
当输入步进驱动器的脉冲频率不断增加时需要改变PWM载波控制频率的值,改变PWM载波控制频率的值为Fc-50HZ。
当输入步进驱动器的脉冲频率不断减少时需要改变PWM载波控制频率的值,改变PWM载波控制频率的值为Fc+50HZ。
在其中一实施例中,每次改变PWM载波频率的变化率设置为1HZ。
本发明的有益效果为:通过捕获输入步进驱动器的脉冲频率并测量其平均频率,然后计算步长值,并在PWM载波中断处理函数中作均分和纠正处理,其实现细微地规律性改变PWM载波频率,使驱动器的性能会得到显著的改善,特别对于低细分应用的场合,其有效地减少电机的谐波电流,从而实现能大大减少电机的振动和降低电机的噪音,其能大大延长步进电机的使用寿命,并解决了当输入的脉冲频率是PWM载波频率的整数倍或接近PWM载波频率时,混合步进电机的转子会出现高频振荡的问题。
上述实施例,只是本发明的一个实例,并不是用来限制本发明的实施与权利范围,凡与本发明权利要求所述内容相同或等同的技术方案,均应包括在本发明保护范围内。
Claims (4)
1.一种数字步进驱动器振动处理技术的处理方法,其特征在于:该数字步进驱动器的振动处理技术的处理方法为:首先设置一个计数器变量,当将计数器的变量采用n表示时,缓存数组所指向的变量表示为Pa[n],变量n的初始值为0,缓存数组指向的变量表示为Pa[0];当步进驱动器第一次接收到外部脉冲频率时,其首先会将捕获到的脉冲频率值存入缓存数组内,此时,计数器变量为0+1,即缓存数组指向的变量表示为Pa[1];当步进驱动器第二次接收到外部脉冲频率时,其又会自动将捕获到的外部脉冲频率值存入缓存数组内,此时,计数器变量为1+1,即缓存数组指向的变量表示为Pa[2],如此类推,当计数器变量为n时,缓存数组指向的变量表示为Pa[n];当步进驱动器再次收到外部脉冲频率输入时,其又会自动将捕获到的外部脉冲频率值存入缓存数组内,此时,计数器变量n变为n+1, 缓存数组指向的变量表示为Pa[n+1],直至计数器变量n达到最大的定义存储量N时,此时,计数器变量n会自动清0即n=0,而缓存数组又会自动重新回到Pa[0],即控制器又从第一个缓存数组变量Pa[0]开始重新将每个捕获到的外部输入脉冲频率存入到相应的缓存数组内,并更新原来的存储数据,如此类推;
定义最大存储量N的依据方法为:当将步进驱动器所允许的最大输入脉冲频率设置为Fin=500000HZ且将步进驱动器的PWM载波控制频率设置为Fc=20000HZ时,缓存数组最大的定义存储量N的计算公式设置为:
N>2*Fin/Fc=50,
只有当N满足上述公式时才能保证步进驱动器捕获到的外部脉冲频率的数组序列在PWM周期中断且尚未处理时不会被新的数值自动覆盖掉。
2.根据权利要求1所述的一种数字步进驱动器振动处理技术的处理方法,其特征在于:在PWM载波周期中断中计算外部输入脉冲的频率和平均步长值,其处理过程如下:步骤一、在每个PWM载波周期中断时提取上一周期载波中断以来,步进驱动器所捕获到的所有外部输入脉冲频率值组成的序列,同时,记录当前的PWM载波周期步进驱动器捕获到的计数器变量及上一周期步进驱动器捕获到的计数器变量;当前的PWM载波中断周期步进驱动器记录的计数器变量值采用N1表示,上一周期步进驱动器记录的计数器变量值采用N0表示;当N0=N1时,说明外部输入的脉冲频率小于步进驱动器的载波频率Fc,即此期间没有向步进驱动器输入特定频率的脉冲,此时,不用重新计算输入步进驱动器的脉冲平均频率,步进驱动器的脉冲平均频率等于上一周期的平均频率;
当N1>N0时,提取步进驱动器所记录和捕获到的外部输入脉冲频率的缓存数组序列,并计算这些数组序列频率值的总和,数组序列频率值的总和采用PSum表示,同时,计算这些频率数组的个数,频率数组的个数采用Nsum表示,此时频率数组个数的计算公式设置为:
Nsum=N1-N0;
当N1<N0时,说明驱动器捕获外部输入脉冲频率时,计数器的变量n发生周期溢出,此时,提取步进驱动器捕获脉冲频率的缓存序列和计算这些数组变量的总和,其的总和采用Psum表示,并计算这些捕获到的频率数组的个数,此时的频率数组个数的计算公式表示为:
Nsum=N-N0+N1;
步骤二、根据步骤一所计算出的PWM周期中断期间的外部输入脉冲频率数组之和Psum以及这些频率数组的个数Nsum,计算 PWM载波中断间隔期间外部输入脉冲的频率平均值,频率平均值采用Fcap_Avr表示,其的计算公式为:
Fcap_Avr=PSum/Nsum;
步骤三、计算步进驱动器每个PWM载波周期的平均步长,每个PWM载波周期的平均步长的计算方法如下:根据前时刻t输入步进驱动器的外部脉冲个数Nsum直接计算出的总步长值采用Pul_Ref(t)表示,当前时刻t的步进驱动器根据平均步长计算出的总步长值采用Pul_Feed(t)表示,当前PWM载波中断的时刻t根据步进驱动器的外部输入脉冲个数Nsum所计算出的总步长值与当前时刻t步进驱动器根据平均步长计算出的总步长值之间的差值采用Pul_Err表示时,其的计算公式表示为:
Pul_Err=Pul_Ref(t)-Pul_Feed(t),
当用户设置的步进驱动器对每一个外部输入脉冲所代表的电角度采用SGain表示,而步进驱动器每个载波周期的平均步长采用Step表示,SGain的物理量单位是:度/1个脉冲,SGain的值为小于等于90度/1个脉冲,同时,当前时刻t根据输入步进驱动器的脉冲个数Nsum直接计算的总步长值与当前时刻t控制器根据平均步长计算的总步长值之差值Pul_Err的控制比例系数采用Kp表示时,0<Kp<1,步进驱动器每个载波周期的平均步长的计算公式表示为:
Step=SGain*Fc/Fcap_Avr+Kp*Pul_Err,
Kp是对根据纠正步进驱动器输入脉冲个数Nsum来计算出的步长值进行平均化处理后引起的偏差,以保证采用平均步长值Step计算的总步长值不会偏离直接根据外部脉冲个数Nsum计算的总步长值;因此能通过计算出每个载波周期的平均步长Step来取代直接根据外部输入的脉冲数来计算出的步长值,步长值采用Step_Delta表示,其中,Step_Delta的计算公式为
Step_Delta= Nsum *SGain;
步骤四、根据平均步长计算步进驱动器驱动电机的参考电流,参考电流包括A相电流和B相电流,参考电流的计算方法如下:首先,计算步进驱动器所有外部输入脉冲所代表的总电角度,当前载波周期时刻t的角度采用Step_Angle表示,PWM载波中断的周期时间采用Tpwm表示,当前时刻t的上一周期时刻的电角度采用Step_Angle(t-Tpwm),Step_Angle的计算公式设置为:
Step_Angle=Step_Angle(t-Tpwm)+Step,
A相电流采用Ia表示,其计算公式设置为:
Ia=Iap*Sin(Step_Angle),
B相电流采用Ib表示,其计算公式设置为:
Ib=Iap*Cos(Step_Angle),
其中,Iap由用户设置,是步进驱动器驱动电机的幅值电流;
步骤五、根据计算的参考电流在PWM载波中断时对步进驱动器进行一次电流控制,以驱动电机运行。
3.根据权利要求2所述的一种数字步进驱动器振动处理技术的处理方法,其特征在于:该数字步进驱动器振动处理技术及其处理方法还包括通过输入频率有规律地在振动区域改变PWM载波频率Fc的值,其处理方法如下:根据公式Fcap_Avr=PSum/Nsum计算出脉冲的平均频率值,然后,将其与当前PWM载波控制频率值Fc作对比,并满足以下条件.:
40HZ<Fcap_Avr-Fc<40HZ;
-80HZ<Fcap_Avr-2*Fc<80HZ;
-100HZ<Fcap_Avr-3*Fc<100HZ;
-150HZ<Fcap_Avr-4*Fc<150HZ;
当输入步进驱动器的脉冲频率不断增加时需要改变PWM载波控制频率Fc的值,改变PWM载波控制频率的值为Fc-50HZ;
当输入步进驱动器的脉冲频率不断减少时需要改变PWM载波控制频率Fc的值,改变PWM载波控制频率的值为Fc+50HZ;其通过改变PWM载波频率后再输入脉冲的频率就不会接近PWM载波频率的整数倍。
4.根据权利要求3所述的一种数字步进驱动器振动处理技术的处理方法,其特征在于:在每个PWM载波周期中断处理函数,每次改变PWM载波频率Fc的变化率设置为1HZ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811394448.0A CN109274299B (zh) | 2018-11-22 | 2018-11-22 | 一种数字步进驱动器振动处理技术及其处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811394448.0A CN109274299B (zh) | 2018-11-22 | 2018-11-22 | 一种数字步进驱动器振动处理技术及其处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109274299A CN109274299A (zh) | 2019-01-25 |
CN109274299B true CN109274299B (zh) | 2021-08-27 |
Family
ID=65190564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811394448.0A Active CN109274299B (zh) | 2018-11-22 | 2018-11-22 | 一种数字步进驱动器振动处理技术及其处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274299B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111987947B (zh) * | 2020-07-13 | 2022-06-10 | 深圳市兆威机电股份有限公司 | 步进电机及其启动控制方法、装置及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008268066A (ja) * | 2007-04-23 | 2008-11-06 | Tokiko Techno Kk | 超音波式渦流量計 |
CN101662272A (zh) * | 2008-08-26 | 2010-03-03 | 鸿富锦精密工业(深圳)有限公司 | 脉冲产生装置 |
CN102759730A (zh) * | 2012-07-16 | 2012-10-31 | 中国电子科技集团公司第十研究所 | 通用型超高精度动态模拟器 |
CN105141203A (zh) * | 2015-09-01 | 2015-12-09 | 深圳市施美森科技有限公司 | 电机的脉冲滤波系统、脉冲滤波方法及其控制系统 |
CN105897090A (zh) * | 2016-04-08 | 2016-08-24 | 深圳星火自动化科技有限公司 | 步进电机驱动器及其接收脉冲的处理方法 |
CN107800339A (zh) * | 2017-11-24 | 2018-03-13 | 中国科学院长春光学精密机械与物理研究所 | 一种基于恒流斩波细分的步进电机控制系统 |
-
2018
- 2018-11-22 CN CN201811394448.0A patent/CN109274299B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008268066A (ja) * | 2007-04-23 | 2008-11-06 | Tokiko Techno Kk | 超音波式渦流量計 |
CN101662272A (zh) * | 2008-08-26 | 2010-03-03 | 鸿富锦精密工业(深圳)有限公司 | 脉冲产生装置 |
CN102759730A (zh) * | 2012-07-16 | 2012-10-31 | 中国电子科技集团公司第十研究所 | 通用型超高精度动态模拟器 |
CN105141203A (zh) * | 2015-09-01 | 2015-12-09 | 深圳市施美森科技有限公司 | 电机的脉冲滤波系统、脉冲滤波方法及其控制系统 |
CN105897090A (zh) * | 2016-04-08 | 2016-08-24 | 深圳星火自动化科技有限公司 | 步进电机驱动器及其接收脉冲的处理方法 |
CN107800339A (zh) * | 2017-11-24 | 2018-03-13 | 中国科学院长春光学精密机械与物理研究所 | 一种基于恒流斩波细分的步进电机控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109274299A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110594956B (zh) | 一种过滤网脏堵检测方法、装置及空调器 | |
JP3437359B2 (ja) | 振動波駆動装置の制御装置 | |
CN109274299B (zh) | 一种数字步进驱动器振动处理技术及其处理方法 | |
CN110086382B (zh) | 无刷直流电机的控制方法、计算机装置及可读存储介质 | |
CN108847808A (zh) | 具有电压谐波整形的电机控制 | |
CN100385369C (zh) | 多段速智慧型风扇转速的控制装置与方法 | |
JP2015195710A (ja) | 電力変換装置及び電力変換装置の制御方法 | |
CN116381522A (zh) | 电池放电时的soc显示方法、装置、设备及存储介质 | |
US9991835B2 (en) | Control device for electric compressor | |
CN112072633B (zh) | 基于jd自适应的虚拟直流发电机控制方法及系统 | |
CN109305051A (zh) | 电机的控制方法、动力机构、电动车辆及可读存储介质 | |
CN109586625A (zh) | 一种无刷直流电机的驱动方法及装置 | |
US8513941B2 (en) | Power detection regulation device | |
CN113746389B (zh) | 空调器、母线电压补偿方法及装置、存储介质 | |
JP2629682B2 (ja) | 回転制御装置 | |
CN107134958B (zh) | 一种直流电动机控制方法及控制装置 | |
WO2018113862A1 (en) | Estimating a characteristic of a wind turbine electrical signal | |
CN113411029B (zh) | 一种电机控制方法、装置和电器设备 | |
JP4435909B2 (ja) | ステッピングモ―タの速度制御方法 | |
JP2010288370A (ja) | インバータの制御装置およびインバータを制御するための方法 | |
KR101481645B1 (ko) | 디지털 가버너 제어장치의 pid 게인의 오토튜닝 방법 | |
CN202856683U (zh) | 永磁同步电机控制装置 | |
CN108696224B (zh) | 降低电机损耗的方法和装置 | |
CN111900905B (zh) | 基于电压记忆采样的前馈控制方法、系统及装置 | |
CN111010060B (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 | ||
CP03 | Change of name, title or address |
Address after: 523000 Room 101, building 2, No. 5, Gaolong East Road, Gaopo Town, Dongguan City, Guangdong Province Patentee after: Guangdong Kaifu Electronic Technology Co.,Ltd. Address before: 523000 Dongguan Kaifu Electronic Technology Co., Ltd., Gaolong West Road, beilian village, Gaopo Town, Dongguan City, Guangdong Province Patentee before: DONGGUAN KAIFULL ELECTRONIC TECHNOLOGY CO.,LTD. |
|
CP03 | Change of name, title or address |