编码器的滤波方法和装置

文档序号:1300006 发布日期:2020-08-07 浏览:24次 >En<

阅读说明:本技术 编码器的滤波方法和装置 (Filtering method and device of encoder ) 是由 刘亮 罗达智 于 2020-04-14 设计创作,主要内容包括:本发明公开了一种编码器的滤波方法和装置。其中,该方法包括:控制电机进入自检模式,其中,在所述自检模式下控制所述电机上电并设置所述电机的转速为0;在所述自检模式下获取干扰数据,其中,所述干扰数据为对所述编码器的干扰所产生的数据;根据所述干扰数据调整所述编码器的属性信息,其中,所述属性信息包括:所述编码器中滤波器的低通滤波截止频率或所述编码器的通信时间。本发明解决了现有技术中通过在程序中设置一个固定的滤波频率来滤除编码器的干扰,导致去除干扰的效果不佳的技术问题。(The invention discloses a filtering method and a filtering device of an encoder. Wherein, the method comprises the following steps: controlling a motor to enter a self-checking mode, wherein the motor is controlled to be powered on and the rotating speed of the motor is set to be 0 in the self-checking mode; acquiring interference data in the self-checking mode, wherein the interference data is data generated by interference on the encoder; adjusting attribute information of the encoder according to the interference data, wherein the attribute information includes: a low pass filter cutoff frequency of a filter in the encoder or a communication time of the encoder. The invention solves the technical problem that the effect of removing the interference is poor because the interference of the encoder is filtered by setting a fixed filtering frequency in a program in the prior art.)

编码器的滤波方法和装置

技术领域

本发明涉及编码器领域,具体而言,涉及一种编码器的滤波方法和装置。

背景技术

电机编码器是一种适用于电机上将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。由于编码器的通信过程中存在一定干扰,因此通常会对该部分干扰进行滤除。

目前,滤除电机干扰的方式主要是用示波器测试编码器通信波形中干扰的频率,然后在程序中加低通滤波器,并对该滤波器设置固定的滤波频率,以将该频率的干扰滤掉。

但由于编码器中干扰的源头和路径被多种因素影响,因此每个产品中编码器上干扰的频率都具有差异,现有方案中一旦在滤波器的程序中固定一个滤波频率,则不能灵活的针对干扰的频率差异来有效滤波,从而导致对干扰的去除效果不佳。

针对现有技术中通过在程序中设置一个固定的滤波频率来滤除编码器的干扰,导致去除干扰的效果不佳的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种编码器的滤波方法和装置,以至少解决现有技术中通过在程序中设置一个固定的滤波频率来滤除编码器的干扰,导致去除干扰的效果不佳的技术问题。

根据本发明实施例的一个方面,提供了一种编码器的滤波方法,包括:控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0;在自检模式下获取干扰数据,其中,干扰数据为对编码器的干扰所产生的数据;根据干扰数据调整编码器的属性信息,其中,属性信息包括:编码器中滤波器的低通滤波截止频率或编码器的通信时间。

进一步地,在控制电机进入自检模式之前,上述方法还包括:在所述编码器上电后读取所述编码器的第一段数据;在所述自检模式下获取干扰数据,包括:在所述自检模式下读取所述编码器的第二段数据,并判断所述第二段数据中是否包含至少两次干扰;如果所述第二段数据中包含所述至少两次干扰,则基于所述第一段数据和所述第二段数据确定干扰频率;如果所述第二段数据中不包含所述至少两次干扰,则继续读取所述编码器的下一段数据,直至读取到所述至少两次干扰。

进一步地,基于第一段数据和第二段数据确定干扰频率,包括:获取第一段数据和第二段数据中,不同数值所在位置的间隔,其中,第一段数据和第二段数据均为预设位数的二进制数据;获取编码器的通信速率,其中,通信速率用于确定每一位数值的通信时间;根据通信速率和位置的间隔确定干扰周期,并根据干扰周期确定干扰频率。

进一步地,根据干扰数据调整编码器的属性信息,包括:调整滤波器的低通滤波截止频率为干扰频率。

进一步地,根据干扰数据调整编码器的属性信息,包括:将干扰周期与编码器的通信周期进行比较;如果干扰周期大于通信周期,调整编码器通信的起始时间,以使干扰落在通信时间的空闲时间内,其中,通信时间包括有效时间和空闲时间;如果干扰周期小于通信周期,基于干扰频率确定低通滤波截止频率。

进一步地,在自检模式下获取干扰数据,包括:禁止所述编码器向所述编码器所属的驱动器发送数据,并读取所述编码器的通信芯片在指定引脚上的第一段数据,并判断所述指定引脚上的第一段数据中是否包含至少两次干扰;如果所述指定引脚上的第一段数据中包含所述至少两次干扰,则基于所述指定引脚上的第一段数据确定干扰周期;如果所述指定引脚上的第一段数据中不包含所述至少两次干扰,则继续读取所述指定引脚上的下一段数据,直至读取到所述至少两次干扰。

进一步地,根据干扰数据调整编码器的属性信息,包括:将干扰周期与编码器的通信周期进行比较;根据比较结果调整编码器的属性信息。

进一步地,根据比较结果调整编码器的属性信息,包括:如果干扰周期大于通信周期,调整编码器通信的起始时间,以使干扰落在通信时间的空闲时间内,其中,通信时间包括有效时间和空闲时间;如果干扰周期小于通信周期,根据干扰周期确定干扰频率,并基于干扰频率确定低通滤波截止频率。

根据本发明实施例的一个方面,提供了一种编码器的滤波装置,包括:控制模块,用于控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0;获取模块,用于在自检模式下获取干扰数据,其中,干扰数据为由于电机干扰所产生的数据;调整模块,用于根据干扰数据调整编码器的属性信息,其中,属性信息包括:编码器中滤波器的低通滤波截止频率或编码器的通信时间。

根据本发明实施例的一个方面,提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。

根据本发明实施例的一个方面,提供了一种编码器,包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。

在本发明实施例中,控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0;在自检模式下获取干扰数据,其中,干扰数据为对编码器的干扰所产生的数据;根据干扰数据调整编码器的属性信息,其中,属性信息包括:编码器中滤波器的低通滤波截止频率或编码器的通信时间。上述方案通过编码器每次启动后控制编码器的电机上电并设置电机转速为0,来获取编码器当前的干扰数据,并基于该干扰数据确定此次编码器去除干扰的策略,从而能够实现对编码器的自适应去噪,提高编码器去噪的效果,解决了现有技术中通过在程序中设置一个固定的滤波频率来滤除编码器的干扰,导致去除干扰的效果不佳的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的编码器的滤波方法的流程图;

图2是根据本申请实施例的一种编码器自适应滤波的示意图;

图3是一种编码器通信的示意图;

图4是根据本申请实施例的一种多轴伺服驱动器编码器抗干扰的示意图;

图5是根据本申请实施例的另一种多轴伺服驱动器编码器抗干扰的示意图;以及

图6是根据本发明实施例的编码器的滤波装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种编码器的滤波方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的编码器的滤波方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0。

具体的,上述自检模式用于表示编码器在每次启动后首先进入的模式,在经过自检模式后,编码器才能够正常运转。本实施例中,编码器在进入自检模式后,编码器的电机会上电,但转速为0,即使能但电机不转。

在一种可选的实施例中,每次控制编码器启动后,编码器的电机上电并以0转速运转。

步骤S104,在自检模式下获取干扰数据,其中,干扰数据为对编码器的干扰所产生的数据。

当电机上电但转速为0的情况下,由于电机实际并没有运转,因此并不会产生数据,因此此时所产生的数据为干扰数据,该干扰数据由对编码器的干扰所产生,可以包括电机本身对编码器的干扰,也可以包括外接环境、通信路径等多种因素对编码器的干扰。

在一种可选的实施例中,可以在编码器进入自检模式下,读取编码器的数据,并将该数据与在编码器上电后所读取的数据进行比较,由于电机转速为0,因此两次读数的差异是由干扰所引起的,因此获取两次读数的差值,即可以作为上述干扰数据。

需要说明的是,由于编码器的干扰是复杂且多样的,例如,编码器每次使用时所处的环境并不一定相同,且电机在每次使用时所产生的干扰也并不一定相同,因此上述方案在编码器每次启动后,控制电机进入自检模式,以获取此次的干扰数据,进而利用此次的干扰数据来进行编码器属性的调整。

步骤S106,根据干扰数据调整编码器的属性信息,其中,属性信息包括:编码器中滤波器的低通滤波截止频率或编码器的通信时间。

上述步骤提供了两种编码器去除干扰的方案。第一种方案中,调整滤波器的低通滤波截止频率,第二种方案中,调整编码器的通信时间。

在上述第一种方案中,可以通过干扰数据确定编码器的干扰频率,然后通过调整滤波器的低通滤波截止频率,来将该干扰频率滤除,从而达到了去除编码器干扰的效果。需要说明的是,虽然该方案是通过设置滤波器的低通截止频率来去除编码器的干扰,但其并非在程序中写入一个固定的低通滤波截止频率,而是在编码器每次启动后,通过上述步骤来确定编码器当前的干扰频率,从而能够实现编码器的自适应滤波,具有更好的去除干扰的效果。

在上述第二种方式中,可通过调整编码器的通信时间来去除编码器的干扰。编码器的通信时间包括有效时间和空闲时间,编码器在有效时间内发数据,在空闲时间内不发送数据,因此可以通过调整编码器的通信时间的方式,使干扰落在编码器不发送数据的空闲时间内,从而避免了干扰对编码器的影响,且该方案也是在编码器每次启动后来执行的,从而同样能够实现编码器的自适应滤波,具有更好的去除干扰的效果。

由上可知,本申请上述实施例控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0;在自检模式下获取干扰数据,其中,干扰数据为对编码器的干扰所产生的数据;根据干扰数据调整编码器的属性信息,其中,属性信息包括:编码器中滤波器的低通滤波截止频率或编码器的通信时间。上述方案通过编码器每次启动后控制编码器的电机上电并设置电机转速为0,来获取编码器当前的干扰数据,并基于该干扰数据确定此次编码器去除干扰的策略,从而能够实现对编码器的自适应去噪,提高编码器去噪的效果,解决了现有技术中通过在程序中设置一个固定的滤波频率来滤除编码器的干扰,导致去除干扰的效果不佳的技术问题。

作为一种可选的实施例,在控制电机进入自检模式之前,上述方法还包括:在所述编码器上电后读取所述编码器的第一段数据;在所述自检模式下获取干扰数据,包括:在所述自检模式下读取所述编码器的第二段数据,并判断所述第二段数据中是否包含至少两次干扰;如果所述第二段数据中包含所述至少两次干扰,则基于所述第一段数据和所述第二段数据确定干扰频率;如果所述第二段数据中不包含所述至少两次干扰,则继续读取所述编码器的下一段数据,直至读取到所述至少两次干扰。

具体的,上述第一段数据和上述第二段数据均用于反映电机的位置,但二者获取的时机不同,第一段数据是在电机上电之前获取的编码器读数,第二段数据输在编码器的电机上电但转速为0的情况下获取的编码器读数,因此二者的数据之差即可以反映干扰对编码器的影响。在确定干扰数据后,即可根据干扰数据确定当前编码器的干扰频率。

干扰频率和干扰周期需要至少两个相邻的干扰才能够确定。在上述方案中,在自检模式下,如果第二段数据中包含了至少两个干扰,则只需要读取第二段数据,而如果第二段数据中仅包含了一个干扰,则需要继续检测下一段数据,直至检测到两个干扰。

编码器的数据均为二进制数据,在一种可选的实施例中,如果第二段数据中,仅有一位与第一段数据不同,则说明该段第二段数据中仅包含一个干扰,需要检测下一段数据,而如果第二段数据中有多位与第一段数据都不同,则说明该第二段数据中包含多个干扰,仅检测第二段数据即可。

作为一种可选的实施例,基于第一段数据和第二段数据确定干扰频率,包括:获取第一段数据和第二段数据中,不同数值所在位置的间隔,其中,第一段数据和第二段数据均为预设位数的二进制数据;获取编码器的通信速率,其中,通信速率用于确定每一位数值的通信时间;根据通信速率和位置的间隔确定干扰周期,并根据干扰周期确定干扰频率。

具体的,上述第一段数据和第二段数据均为二进制数据,二者的不同数值由干扰所产生,不同数值所在位置的间隔,即为两次干扰的时间间隔。而根据编码器的通信速率即可确定编码器每一位数值的通信时间,因此结合每一位数值通信的时间和不同数值所在位置的时间间隔,即可确定干扰周期,进而可以确定干扰频率。

在一种可选的实施例中,第二段数据包含三个干扰,因此仅检测第二段数据,在该示例中,第一段数据和第二段数据均为16为二进制数据,第一段数据为0000000000000000,第二段数据为0100000010000001,由此可见,第一段数据和第二段数据在第一位、第八位以及第十五为的数据不同,因此不同数值的间隔为7,如果编码器的通信速率为n s/位,则干扰周期即为7n,干扰频率即为1/7n。

在另一种可选的实施例中,第二段数据仅包含了一个干扰,因此检测了第三段数据,在该示例中的数据均为16位二进制数据,第一段数据为0000000000000000,第二段数据为0000000000001000,第三段数据为0000000010000000,由此可见,第一次干扰出现在第二段数据的3位,第二次干扰出现在第三段数据的第7位,因此两次干扰之间的间隔为20位,如果编码器的通信速率为n s/位,则干扰周期即为20n,干扰频率即为1/20n。

作为一种可选的实施例,根据干扰数据调整编码器的属性信息,包括:调整滤波器的低通滤波截止频率为干扰频率。

在上述方案中,设置滤波器的低通截止频率为干扰频率,从能够在编码器此次运行的过程中,将对编码器的干扰进行滤除。

图2是根据本申请实施例的一种编码器自适应滤波的示意图,下面结合图2对上述实施例的方案再进行详细说明。该方案包括:

S21,上电后读取编码器数据。

上述步骤所读取的数据即为第一段数据,反映的是电机的位置。

S22,使能电机,让电机不转,并读取编码器数据。

此时读取的编码器数据即为第二段数据,仍反映的是电机的位置,有电机使能后电机噪声会耦合到编码器通信波形上,此时再读取编码器数据包括:位置数据+干扰数据。

S23,将两次读取的数据比较,得到干扰的频率。

S24,根据S23得到的干扰频率,设置滤波器的低通滤波截止频率。

S25,待机,准备正常运行。

举一种例子,Scara四轴机器人上有4台电机,也就是说在机器运行后干扰(4台电机的噪声)非常大,对电机和驱动器之间的编码器通信干扰很严重,需要确定干扰频率并设置低通滤波的截止频率来衰减干扰,提供电路的抗干扰能力。但是PCB制造工艺和机器人接线安装的差别,导致每台机器人的干扰频率是不同的,若在程序中设置一个固定的低通滤波截止频率,则无法在实际场景有效衰减频率各异的干扰。通过本实施例的上述方案,首先利用电机启动前后,编码器通信数据的变化,来测试每台机器人的干扰频率,然后分别设置每台驱动器的低通滤波截止频率,则可以在实际场景中有效提高电路抗干扰能力。

本实施上述方案利用编码器通信的特点(编码器数据是0和1的数字量,反映的是电机的位置),同时让电机使能但不转动,既可以引入干扰,又不用改变编码器输出的数据,当干扰耦合到编码器数据上时,只要将使能前后接收到的编码器数据相比较,即可以得到干扰频率。具体操作开机后读取编码器通信的数据,然后使能电机(电机使能但不转动,引入干扰)再读取编码器通信的数据,比较两次通信的数据差异(差异由干扰带来,电机位置不变,位置信息数据不变),即可获得干扰的频率,并由此程序自动设定低通滤波截止频率。由此,使得设备能够在每次启动哦胡,根据使用场景,自动测定当前设备中的干扰频率,然后设定滤波参数,精准滤波,有效提高抗干扰能力,且驱动器自适应设定滤波参数,不用人工测试和设定,提高效率,并且能针对每台设备的差异精准滤波。

实施例2

根据本发明实施例,提供了一种另编码器的滤波方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该方法包括如下步骤:

步骤S102,控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0。

步骤S104,在自检模式下获取干扰数据,其中,干扰数据为对编码器的干扰所产生的数据。

步骤S106,根据干扰数据调整编码器的属性信息,其中,属性信息包括:滤波器的低通滤波截止频率或编码器的通信时间。

上述步骤S102至步骤S106与实施例1中的步骤S102至步骤S106相同,此处不再赘述。

作为一种可选的实施例,在控制电机进入自检模式之前,上述方法还包括:在所述编码器上电后读取所述编码器的第一段数据;在所述自检模式下获取干扰数据,包括:在所述自检模式下读取所述编码器的第二段数据,并判断所述第二段数据中是否包含至少两次干扰;如果所述第二段数据中包含所述至少两次干扰,则基于所述第一段数据和所述第二段数据确定干扰频率;如果所述第二段数据中不包含所述至少两次干扰,则继续读取所述编码器的下一段数据,直至读取到所述至少两次干扰。

作为一种可选的实施例,基于第一段数据和第二段数据确定干扰频率,包括:获取第一段数据和第二段数据中,不同数值所在位置的间隔,其中,第一段数据和第二段数据均为预设位数的二进制数据;获取编码器的通信速率,其中,通信速率用于确定每一位数值的通信时间;根据通信速率和位置的间隔确定干扰周期,并根据干扰周期确定干扰频率。

上述步骤仍与实施例1中的对应步骤相同,此处不再赘述。

作为一种可选的实施,根据干扰数据调整编码器的属性信息,包括:将干扰周期与编码器的通信周期进行比较;如果干扰周期大于通信周期,调整编码器通信的起始时间,以使干扰落在通信时间的空闲时间内,其中,通信时间包括有效时间和空闲时间;如果干扰周期小于通信周期,基于干扰频率确定低通滤波截止频率。

在上述步骤中,将干扰周期与编码器的通信周期进行比对,如果干扰周期大于通信周期,则说明两次干扰所间隔的时间大于通信周期,因此可以通过调整编码器通信的起始时间,来使干扰发生在通信时间的空闲时间内。

图3是一种编码器通信的示意图,结合图3所示,编码器的通信时间包括有效区和无效区两部分,分别对应有效时间和无效时间,在干扰周期大于通信周期的情况下,调整编码器通信的起始时间,来使编码器通信的有效时间和干扰发生的时间错开,即使干扰发生在无效时间内,即可避免干扰对编码器数据通信的影响。

而如果干扰周期小于通信周期,则无论如何调整通信的起始时间,都无法将通信时间的有效区避开干扰,因此通过在软件中设置滤波器的低通截止频率的方式,来自适应的滤除编码器的干扰。

图4是根据本申请实施例的一种多轴伺服驱动器编码器抗干扰的示意图,该实例中采用两轴伺服器的编码器进行抗干扰说明。该方案包括:

S41,上电后读取1轴的编码器数据。

上述编码器数据即为第一段数据,编码器的数据反映的是电机的位置;

S42,使能电机,让电机不转,并读取编码器数据。

此时读取的数据即为第二段数据,此时编码器数据仍表示的是电机的位置,电机使能后电机噪声会耦合到编码器通信波形上,此时读取的1轴的编码器数据包括:位置数据+干扰。

S43,将1轴的两次读取的数据比较,得到1轴的干扰频率及周期。

S44,将S43得到的1轴的干扰周期和编码器通信周期比较,若1轴的干扰周期大于编码器通信周期,则进入步骤S45,否则进入步骤S46。

S45,通过MCU控制编码器通信的起始时间,以使通信的有效数据区错开干扰,使得干扰影响通信的无效区。

S46,根据1轴的干扰频率设置1轴编码器通信软件滤波参数。

在上述步骤中,如果小于编码器通信周期,则无法让数据区错开干扰,因此通过设置滤波参数滤除编码器干扰。

步骤S47至步骤S412是对2轴的处理方法,与步骤S41至S46相同,此处不再赘述。

举一个例子,多轴合一伺服驱动器集成度很高,它将多个编码器电路集成到一个驱动器中,当驱动器工作驱动电机时,强烈的电磁噪声对电机和驱动器之间的编码器通信干扰很严重,而且多轴合一情况变得更复杂,为了保证设备正常工作,需提高编码器通信电路的抗干扰能力。但是PCB制造工艺和机器人接线安装的差别,导致每台多轴合一驱动器每个轴的干扰特性(频率,幅值)是不同的,若在程序中设置一个固定的低通滤波截止频率,则无法在实际场景有效衰减频率各异的干扰。通过本实施例的上述方案,首先利用电机使能前后,每个轴编码器通信数据的变化,来测试每个轴编码器通信上的干扰频率,然后将每个轴编码器通信上干扰周期和编码器通信周期进行比较,如果干扰周期更大,则通过MCU控制编码器通信的起始时间,以此让编码器通信的有效数据区错开干扰,使得干扰影响的只是通信的无效区,这样就可以增加通信的抗干扰能力;如果干扰周期小于编码器通信周期,则根据干扰的频率来设置MCU中软件滤波截止频率,这样可以在实际场景中有效灵活的滤除干扰,提高电路抗干扰能力。

本实施上述方案利用编码器通信的特点(编码器数据是0和1的数字量,反映的是电机的位置),同时让电机使能但不转动,既可以引入干扰,又不用改变编码器输出的数据,当干扰耦合到编码器数据上时,只要将使能前后接收到的编码器数据相比较,即可以得到干扰频率和周期。具体操作为开机后读取编码器通信的数据,然后使能电机(电机使能但不转动,引入干扰)再读取编码器通信的数据,比较两次通信的数据差异(差异由干扰带来,电机位置不变,位置信息数据不变),即可获得干扰的频率及周期。通过比较干扰的周期和编码器通信周期来合理高效的设置不同的策略,以此提高多轴合一驱动器的编码器抗干扰能力,从而能够使多轴合一伺服驱动器自动测定每个轴编码器通信中的干扰频率和周期,自主设定每个轴抗干扰的策略,合理高效的提高多轴伺服驱动器抗干扰能力,且无需不用人工测试和设定,提高效率,并且能针对每台设备每个轴的差异精准提高抗干扰能力。

实施例3

根据本发明实施例,提供了又一种另编码器的滤波方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该方法包括如下步骤:

步骤S102,控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0。

步骤S104,在自检模式下获取干扰数据,其中,干扰数据为对编码器的干扰所产生的数据。

步骤S106,根据干扰数据调整编码器的属性信息,其中,属性信息包括:滤波器的低通滤波截止频率或编码器的通信时间。

上述步骤S102至步骤S106与实施例1中的步骤S102至步骤S106相同,此处不再赘述。

作为一种可选的实施例,在自检模式下获取干扰数据,包括:禁止所述编码器向所述编码器所属的驱动器发送数据,并读取所述编码器的通信芯片在指定引脚上的第一段数据,并判断所述指定引脚上的第一段数据中是否包含至少两次干扰;如果所述指定引脚上的第一段数据中包含所述至少两次干扰,则基于所述指定引脚上的第一段数据确定干扰周期;如果所述指定引脚上的第一段数据中不包含所述至少两次干扰,则继续读取所述指定引脚上的下一段数据,直至读取到所述至少两次干扰。

在编码器不向驱动器发送数据时,其通信线路上没有有效数据,为常高电平或常低电平,而如果通信线路上不为常高或常低,则由于干扰所产生。因此可以通过驱动器的MCU读取编码器用于与驱动器通信的MCU芯片在指定引脚(用于通信的引脚)上的引脚状态,即可确定上述第一段数据,该引脚状态也是指定位数的二进制数据。

同样的,干扰频率和干扰周期需要至少两个相邻的干扰才能够确定。在上述方案中,如果指定引脚上的第一段数据中包含了至少两个干扰,则只需要读取指定引脚上的第一段数据,而如果指定引脚上的第一段数据中仅包含了一个干扰,则需要继续检测指定引脚上的第二段数据,直至检测到至少两个干扰数据。

作为一种可选的实施例,根据干扰数据调整编码器的属性信息,包括:将干扰周期与编码器的通信周期进行比较;根据比较结果调整编码器的属性信息。

在上述步骤中,根据干扰周期与通信周期的比较结果确定编码器去除干扰的策略。

作为一种可选的实施例,根据比较结果调整编码器的属性信息,包括:如果干扰周期大于通信周期,调整编码器通信的起始时间,以使干扰落在通信时间的空闲时间内,其中,通信时间包括有效时间和空闲时间;如果干扰周期小于通信周期,基于干扰频率确定低通滤波截止频率。

在上述步骤中,将干扰周期与编码器的通信周期进行比对,如果干扰周期大于通信周期,则说明两次干扰所间隔的时间大于通信周期,因此可以通过调整编码器通信的起始时间,来使干扰发生在通信时间的空闲时间内。

图3是一种编码器通信的示意图,结合图3所示,编码器的通信时间包括有效区和无效区两部分,分别对应有效时间和无效时间,在干扰周期大于通信周期的情况下,调整编码器通信的起始时间,来使编码器通信的有效时间和干扰发生的时间错开,即使干扰发生在无效时间内,即可避免干扰对编码器数据通信的影响。

而如果干扰周期小于通信周期,则无论如何调整通信的起始时间,都无法将通信时间的有效区避开干扰,因此通过在软件中设置滤波器的低通截止频率的方式,来自适应的滤除编码器的干扰。

图5是根据本申请实施例的另一种多轴伺服驱动器编码器抗干扰的示意图,该实例中采用两轴伺服器的编码器进行抗干扰说明。该方案包括:

S51,使能电机,让电机不转。

此时电机噪声会耦合到编码器通信波形上。

S52,MCU发送指令给1轴对应的电机编码器,控制其不向多轴驱动器反馈数据。

在没有干扰的情况下,每个轴编码器通信线路上无有效数据,线路上电平是常高或者常低,如果此时通信线路不为常高或者常低,则为干扰所产生的信号。

S53,MCU读取和1轴编码器通信的MCU芯片的引脚状态。

由于电机噪声耦合到编码器通信线路上,所以该引脚的电平状态被干扰耦合,读取该引脚状态就能读取到干扰数据,即上述编码器的通信芯片在指定引脚上的第一段数据,进而得到干扰周期。

S54,将S53得到的1轴的干扰周期和编码器通信周期比较,若1轴的干扰周期大于编码器通信周期,则进入步骤S55,否则进入步骤S56。

S55,通过MCU控制编码器通信的起始时间,以使通信的有效数据区错开干扰,使得干扰影响通信的无效区。

S56,根据1轴的干扰频率设置1轴编码器通信软件滤波参数。

在上述步骤中,如果小于编码器通信周期,则无法让数据区错开干扰,因此通过设置滤波参数滤除编码器干扰。

步骤S57至步骤S512是对2轴的处理方法,与步骤S51至S56相同,此处不再赘述。

举一个例子,多轴合一伺服驱动器集成度很高,它将多个编码器电路集成到一个驱动器中,当驱动器工作驱动电机时,强烈的电磁噪声对电机和驱动器之间的编码器通信干扰很严重,而且多轴合一情况变得更复杂,为了保证设备正常工作,需提高编码器通信电路的抗干扰能力。但是PCB制造工艺和机器人接线安装的差别,导致每台多轴合一驱动器每个轴的干扰特性(频率,幅值)是不同的,驱动器若只有一种抗干扰的策略是无法满足复杂情况的使用,当在程序中设置一个固定的低通滤波截止频率,则无法在实际场景有效衰减频率各异的干扰。通过本实施例的上述方案,首先利用电机使能后,MCU控制每个轴对应电机编码器不反馈数据给多轴驱动器,然后MCU仍读取和每个轴编码器通信的MCU芯片的引脚状态,以此可以直接采样每个轴编码器通信线路上耦合的的干扰,并计算出干扰的频率,然后将每个轴编码器通信线路上的干扰周期和编码器通信周期进行比较,如果干扰周期更大,则通过MCU控制编码器通信的起始时间,以此让编码器通信的有效数据区错开干扰,使得干扰影响的只是通信的无效区,这样就可以增加通信的抗干扰能力;如果干扰周期小于编码器通信周期,则根据干扰的频率来设置MCU中软件滤波截止频率,这样可以在实际场景中有效灵活的滤除干扰,提高电路抗干扰能力。

本实施上述方案利用编码器通信的特点,MCU能控制编码器通信的发送数据和接收数据;让电机使能但不转动,电机噪声干扰会耦合到每个轴的编码器通信线路上,MCU控制电机编码器不反馈数据给多轴驱动器,此时每个轴的编码器通信线路上只有干扰,读取MCU读取和每个轴编码器通信的MCU芯片的引脚状态,即可以得到干扰频率和周期。通过比较干扰的周期和编码器通信周期来合理高效的设置不同的策略,以此提高多轴合一驱动器的编码器抗干扰能力,从而能够使多轴合一伺服驱动器自动测定每个轴编码器通信中的干扰频率和周期,自主设定每个轴抗干扰的策略,合理高效的提高多轴伺服驱动器抗干扰能力,且无需不用人工测试和设定,提高效率,并且能针对每台设备每个轴的差异精准提高抗干扰能力。

实施例4

根据本发明实施例,提供了一种编码器的滤波装置的实施例,图6是根据本发明实施例的编码器的滤波装置的示意图,如图6所示,该装置包括:

控制模块60,用于控制电机进入自检模式,其中,在自检模式下控制电机上电并设置电机的转速为0。

获取模块62,用于在自检模式下获取干扰数据,其中,干扰数据为由于电机干扰所产生的数据。

调整模块64,用于根据干扰数据调整编码器的属性信息,其中,属性信息包括:滤波器的低通滤波截止频率或编码器的通信时间。

作为一种可选的实施例,上述装置还包括:读取模块,用于在控制电机进入自检模式之前,该装置还包括:在编码器上电后读取编码器的第一段数据;获取模块包括:读取子模块,用于在所述自检模式下读取所述编码器的第二段数据,并判断所述第二段数据中是否包含至少两次干扰;第一确定子模块,用于如果所述第二段数据中包含所述至少两次干扰,则基于所述第一段数据和所述第二段数据确定干扰频率;第一继续读取子模块,用于如果所述第二段数据中不包含所述至少两次干扰,则继续读取所述编码器的下一段数据,直至读取到所述至少两次干扰。

作为一种可选的实施例,确定子模块包括:第一获取子模块,用于获取第一段数据和第二段数据中,不同数值所在位置的间隔,其中,第一段数据和第二段数据均为预设位数的二进制数据;第二获取子模块,用于获取编码器的通信速率,其中,通信速率用于确定每一位数值的通信时间;第二确定子模块,用于根据通信速率和位置的间隔确定干扰周期,并根据干扰周期确定干扰频率。

作为一种可选的实施例,调整模块包括:第一调整子模块,用于调整滤波器的低通滤波截止频率为干扰频率。

作为一种可选的实施例,调整模块包括:第一比较子模块,用于将干扰周期与编码器的通信周期进行比较;第二调整子模块,用于如果干扰周期大于通信周期,调整编码器通信的起始时间,以使干扰落在通信时间的空闲时间内,其中,通信时间包括有效时间和空闲时间;第三确定子模块,用于如果干扰周期小于通信周期,根据干扰周期确定干扰频率,并基于干扰频率确定低通滤波截止频率。

作为一种可选的实施例,获取模块包括:禁止子模块,用于禁止所述编码器向所述编码器所属的驱动器发送数据,并读取所述编码器的通信芯片在指定引脚上的第一段数据,并判断所述指定引脚上的第一段数据中是否包含至少两次干扰;第四确定子模块,用于如果所述指定引脚上的第一段数据中包含所述至少两次干扰,则基于所述指定引脚上的第一段数据确定干扰周期;第二继续读取子模块,用于如果所述指定引脚上的第一段数据中不包含所述至少两次干扰,则继续读取所述指定引脚上的下一段数据,直至读取到所述至少两次干扰。

作为一种可选的实施例,调整模块包括:第二比较子模块,用于将干扰周期与编码器的通信周期进行比较;第三调整子模块,用于根据比较结果调整编码器的属性信息。

作为一种可选的实施例,第三调整子模块包括:调整单元,用于如果干扰周期大于通信周期,调整编码器通信的起始时间,以使干扰落在通信时间的空闲时间内,其中,通信时间包括有效时间和空闲时间;确定单元,用于如果干扰周期小于通信周期,根据干扰周期确定干扰频率,并基于干扰频率确定低通滤波截止频率。

实施例5

根据本发明实施例,提供了一种计算机存储介质,计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如实施例1所述的方法步骤。

实施例6

根据本发明实施例,提供了一种编码器,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如实施例1所述的方法步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种高概率宽带信号精确测量系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!