一种电机转速检测方法与流程

文档序号:16670312发布日期:2019-01-18 23:32阅读:718来源:国知局
一种电机转速检测方法与流程

本发明涉及伺服运动控制检测技术,尤其涉及电机转速的检测。



背景技术:

在伺服运动控制领域,常常使用电机作为机械结构运动的驱动装置,通过控制电机的运动就能够精确控制伺服结构的运动,电机的控制最根本的是转速的控制,通过经典的自动控制原理我们可以知道,控制电机转速是通过电机的速度环路实现的,需要在电机转动过程中去实时检测电机的当前转速,和设定转速进行对比,然后进行跟速度环的一些算法(如经典的pid控制算法),最后达到稳定转速的目的。

检测电机速度有很多种办法,比较常见的是给电机加上编码器,如增量式编码器。一般增量式编码器输出有a相、b相和z相,当电机轴转动时带动编码器转动,编码器会输出脉冲波形,转速越高,单位时间类输出的脉冲数量越多,而电机转动方向则通过a相脉冲和b相脉冲相位来表示,正转时a相脉冲领先b相90°,反转时b相脉冲领先a相90°,而z相脉冲是电机每转动一周周期性地输出一个脉冲。电机的转速是一个矢量,包含方向和转速大小,两个量必须都正确,才能表示一个速度。转速大小可通过定时器数脉冲的方式得到,对于高转速电机,一般几个脉冲的误差,对于速度大小的影响可以忽略,但是如果转速方向测量出现错误,可能带来速度环失效,尤其是当速度值比较大时搞错方向会使程序认为给定速度和测量转速差值很大,发出错误的控制指令,使电机错误动作,甚至失控造成机械结构的振荡。电机作为一个电磁元件,其内部一般都有换向电刷,工作起来电磁干扰比较严重,有可能对编码器的输出脉冲波形产生干扰,有时候编码器由于振动也会造成原始输出也会错误,如果过度依赖编码器的输出波形的稳定性,在硬件层面需要会对编码器波形进行滤波,但是是否完全滤除干扰无法得到保证,即使绝大部分干扰都能滤除,只要有硬件层面滤波失效可能转速方向判断失误,就有可能造成电机不正常工作异常,但如果编码器本身输出问题,硬件电路是无法补偿的。

故需要一种新的技术方案以解决上述问题。



技术实现要素:

发明目的:本发明提供一种电机转速检测方法,通过对电机转速数据的分析判断出电机转速的方向为速度检测在软件层面提供保障,能够解决电机转速测量过程中遇到如波形抖动或者电磁干扰造成测速错误的技术问题。

技术方案:本发明电机转速检测方法可采用以下技术方案,包括以下步骤:

一种电机转速检测方法,包括以下步骤:

(1)、通过电机增量式编码器连续获取单位时间内的电机转数,即本次计数值和上次技术值,并得到相邻两次获取的电机转数差值;电机增量式编码器的分辨率为1024线,即电机轴每转一圈就会输出1024个脉冲波形,通过脉冲数的变化量来计算转速;

(2)、确定定时器计数值单位时间的变化量极值,该极值为1024*单位时间内电机理论转数最大值;如果电机转数差值的绝对值小于或等于该极值,则认为得到的相邻两次获取的电机转数为电机转速的真实数值;如果电机转速差值的绝对值大于该极值,则认为得到的相邻两次获取的电机转数错误,进入步骤(3);

(3)、如果电机转数差值小于等于0,则单位时间内的转数增量=本次计数值+216-上次计数值;如果电机转数差值大于0,则单位时间内的转数增量=上次计数值+216-本次计数值;通过以上任意的单位时间内的转数增量的绝对值除以单位时间,得到的电机转数作为真实数值。

有益效果:本发明电机转速的检测方法通过定时器数脉冲方式,这也是测量电机速度大小的基本方式,不仅可以得到速度大小,通过对数据的有效分析也可以准确无误的判断出电机转速的方向为速度检测在软件层面提供保障,能够彻底解决电机转速测量过程中遇到如波形抖动或者电磁干扰造成测速错误。

进一步的,步骤(1)中,采用mcu的定时器来数脉冲。

进一步的,定时器具有编码器接口功能,该接口每检测到一个正向脉冲,定时器的计数值自增1,每检测一个反相脉冲,定时器计数值自减1,通过获取单位时间内脉冲数的变化量来计算速度。

进一步的,取单位时间为1ms。

进一步的,步骤(3)之后,将得到的电机转数真实数值保存为新的上次计数值再返回步骤(1),形成对电机的循环检测。

附图说明

图1为本发明中动中通搜星门限的更新方法的流程图。

具体实施方式

一种电机转速检测方法,包括以下步骤:

(1)、通过电机增量式编码器连续获取单位时间内的电机转数,即本次计数值和上次技术值,并得到相邻两次获取的电机转数差值;电机增量式编码器的分辨率为1024线,即电机轴每转一圈就会输出1024个脉冲波形,通过脉冲数的变化量来计算转速;其中,可采用mcu的定时器来数脉冲。定时器具有编码器接口功能,该接口每检测到一个正向脉冲,定时器的计数值自增1,每检测一个反相脉冲,定时器计数值自减1,通过获取单位时间内脉冲数的变化量来计算速度。

(2)、确定定时器计数值单位时间的变化量极值,该极值为1024*单位时间内电机理论转数最大值;如果电机转数差值的绝对值小于或等于该极值,则认为得到的相邻两次获取的电机转数为电机转速的真实数值;如果电机转速差值的绝对值大于该极值,则认为得到的相邻两次获取的电机转数错误,进入步骤(3);

(3)、如果电机转数差值小于等于0,则单位时间内的转数增量=本次计数值+216-上次计数值;如果电机转数差值大于0,则单位时间内的转数增量=上次计数值+216-本次计数值;通过以上任意的单位时间内的转数增量的绝对值除以单位时间,得到的电机转数作为真实数值。

经过上述步骤后,还可以增加一个步骤(4),即将得到的电机转数真实数值保存为新的上次计数值再返回步骤(1),形成对电机的循环检测。

请结合图1所示,本发明给出一种具体的应用实例供进一步说明以上技术方案。

以直流空心杯电机为例,假如电机最大转速为10000r/min,电机增量式编码器的分辨率为1024线,即电机轴每转一圈就会输出1024个脉冲波形,电机速度控制环的控制频率为1khz。我们使用mcu的定时器来数脉冲,定时器一般是16位定时器,都有编码器接口功能,该接口每检测到一个正向脉冲(a相脉冲领先b相脉冲),定时器的计数值自增1,每检测一个反相脉冲(b相脉冲领先a相脉冲),定时器计数值自减1,通过分析一段时间内脉冲数的变化量来计算速度,例如计数值增加了,我们认为是正向运动,且单位时间内的增加量即为速度大小,但是这样存在一个明显的问题,就是溢出问题,当电机保持单向运动,定时器的计数值会超过最大值(216-1)突变为0,或减小到最小值0后突变为(216-1),这也是很多人采用定时器数脉冲方式测试出来速度明显异常的根本原因所在,通过分析后可完全避免检测速度的错误,比当前定时器计数值如值接近最大值门限,电机小速度正转,1ms以后技术值变为比0稍微大点,那按照常理来看,计数值减小了,应该是反转,而且单位时间的变化量很大,转速值就很大,计算结果是反向大速度运动,而实际情况是小速度正向运动,所以必须要解决这种现象才能得到正确的转速。首先我们使用速度检测的频率为1khz,即1ms检测一次速度,由于电机理论转速有最大值,1ms时间电机转动的圈数也是有最大值的,本例中为0.167r,所以定时器计数值变化量在1ms内是不可能超过1024*0.167=171,如果超过此值,肯定是发生了计数器上溢出或者下溢出,必须对数据进行处理后才能得到正确的速度值大小和方向,通过分析定时器计数原理可知,通过求余运算可以获得准确的计数值增量,定时器向上溢出时,1ms内的增量=本次计数值+216-上次计数值,定时器向下溢出时,1ms内增量=上次计数值+216-本次计数值,通过此数据分析完全可以得到正确的电机转速值,且误差很小。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1