CN117168530B - 磁编码器的自校准方法、磁编码器及电机 - Google Patents
磁编码器的自校准方法、磁编码器及电机 Download PDFInfo
- Publication number
- CN117168530B CN117168530B CN202311457221.7A CN202311457221A CN117168530B CN 117168530 B CN117168530 B CN 117168530B CN 202311457221 A CN202311457221 A CN 202311457221A CN 117168530 B CN117168530 B CN 117168530B
- Authority
- CN
- China
- Prior art keywords
- angle
- magnetic encoder
- value
- reference point
- nonlinear
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004364 calculation method Methods 0.000 claims abstract description 102
- 238000001914 filtration Methods 0.000 claims abstract description 30
- 238000012937 correction Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 24
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000001514 detection method Methods 0.000 description 28
- 230000003287 optical effect Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000005259 measurement Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 230000006641 stabilisation Effects 0.000 description 4
- 238000011105 stabilization Methods 0.000 description 4
- 238000011088 calibration curve Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Abstract
本发明公开了一种磁编码器的自校准方法、磁编码器及电机,校准方法包括:在所述转轴旋转方向上均匀设置N个参考点,对应N个非线性角度误差参考值,每个非线性角度误差参考值代表对应参考点消除非线性角度误差前的角度值,设置N个时间戳寄存器,所述时间戳寄存器记录所述参考点的时间戳,通过两个时间戳寄存器的时间戳差值来计算转轴所转动的实际的角度,计算参考点的修正误差参考值,基于参考点的非线性角度误差参考值和修正误差参考值进行滤波计算,得到消除非线性角度误差的角度值,可得到N个参考点一一对应的N个消除非线性角度误差的角度值。本发明是一种成本低、精度高、确定性高的磁编码器的自校准方法、磁编码器及电机。
Description
技术领域
本发明属于对磁场信号进行检测处理的技术领域,更具体地,涉及一种成本低、精度高、确定性高的磁编码器的自校准方法、磁编码器及电机。
背景技术
本部分旨在向读者介绍本领域的各个方面,这些方面可能与以下描述的和/或请求保护的本原理的各个方面有关。该论述有助于向读者提供背景信息,以便于更好地理解本原理的各个方面。因此,应以该角度来阅读这些陈述,而不是作为对现有技术的承认。
在检测领域,已知使用编码器来检测运动体的位置、速度等物理量。当检测涉及到运动体的角位移等物理量时,通常使用旋转式编码器,而检测涉及到运动体的直线位移等物理量时,通常使用直线式编码器(即,线性编码器);旋转编码器还被称作旋转位置检测器,其检测运动体(正在旋转的物体) 的位置(角度)以及速度(旋转速度),而线性编码器还被称作例如线性位置检测器,其检测运动体的位置以及速度。
据其位置检测方法等,可以将编码器大体分为增量型编码器(在下文中也称作“增量编码器”)与绝对型编码器(在下文中也称作“绝对编码器”)。无论是旋转编码器或者线性编码器,抑或是增量式编码器还是绝对式编码器,均可以基于磁性或者光学这两种测量原理,即编码器可以分为磁性编码器和光学编码器。根据实际用途所需的特性来适当选择和使用上述多种编码器中的某种编码器。尤其是在执行诸如位置控制和速度控制的伺服电机(包括旋转电机与线性电机)中,编码器发挥重要作用,用于获取当前位置、速度等物理参数。
与光学编码器相比,磁性编码器具有良好的运行特性,例如,抗震、抗冲击、受灰尘、油渍、污染等环境影响低、易维护、耐用、可靠。磁性编码器一般通过磁传感器对磁传感器与磁介质之间的相对运动而产生的变化的磁场进行检测,并且利用信号处理电路对磁信号进行处理,从而计算出运动体的旋转角度(或线性位移量)、速度等物理参数。
然而,在实际应用中,由于各种原因,例如,环境温度、电磁干扰、热噪声等因素的影响,可能会对磁性编码器的检测精度产生不利影响,即磁编码器会有非线性误差。为此,有必要减轻甚至消除诸如环境温度、电磁干扰、热噪声等因素对磁性编码器的检测精度的影响,以尽可能地减少甚至消除非线性误差。
因此,亟需一种成本低、精度高、确定性高的磁编码器的自校准方法、磁编码器及电机。
发明内容
本发明的目的是提供一种成本低、精度高、确定性高的磁编码器的自校准方法、磁编码器及电机。
为了实现上述目的,第一方面,本发明的技术方案为:提供一种磁编码器的自校准方法,所述磁编码器用于检测并输出转轴的旋转角度,转轴的周期为P,包括:
步骤1,在0~360度上依次设置N个角度参考点,每个角度参考点对应具有1个非线性角度误差参考值,设置N个时间戳寄存器,所述时间戳寄存器中的每个对应地记录N个角度参考点中的其中一个所述角度参考点的时间戳,其中,每个角度参考点的时间戳为磁编码器的角度输出值经过每个角度参考点时的时间点;
步骤2,确定转轴转动是否处于匀速转动状态,若是,则进入步骤3;
步骤3,获得在先角度参考点对应的非线性角度误差参考值;
步骤4,基于在先角度参考点和在后角度参考点所对应的时间戳寄存器中记录的时间戳的差值、转轴的周期P,及在先角度参考点对应的非线性角度误差参考值,计算在后角度参考点的新的非线性角度误差参考值;
步骤5、基于参考点新的非线性角度误差参考值输出对应的修正值。
所述方法在步骤3之前,进一步包括:
基于时间戳寄存器所记录的信息确定磁编码器的输出是否稳定,若是,则进入步骤3。
步骤4包括如下步骤:通过两个时间戳寄存器的时间戳差值、转轴的周期P来计算转轴所转动的实际的角度 ,即利用下列计算式进行计算:
其中,表示两个时间戳寄存器的时间戳差值/>内转轴转动的实际角度,P为转轴转动一圈的周期,其中x为自然数,且0<x≤n。
N个角度参考点为均匀设置,且步骤4进一步包括如下步骤:通过下列计算式进行计算:
其中,为在后角度参考点/>对应的新的非线性角度误差参考值,/>为在两个时间戳寄存器记录的时间戳/>之间转轴转动的实际角度,/>表示在先角度参考点对应的非线性角度误差参考值。
步骤5进一步包括对新的非线性角度误差参考值进行滤波计算的步骤。
所述对新的非线性角度误差参考值进行滤波计算的步骤,具体为:
基于参考点ANG[n]的非线性角度误差参考值ref [n]和新的非线性角度误差参考值进行滤波计算,具体为通过IIR滤波计算。
通过IIR滤波计算,具体通过下列计算式进行:
其中为/>滤波后的值,/>为IIR滤波器系数,且0</>≤1。
依次对各角度参考点的新的非线性角度误差参考值进行滤波计算后,得到对应的滤波后的非线性角度误差参考值,并用所述滤波后的非线性角度误差参考值ref`[n]更新所述非线性角度误差参考值/>。
步骤5中还包括对N个滤波后的值{ref`[0],ref`[1]…ref`[n-1],ref`[n]…ref`[N-1]}计算每个参考点的平均修正误差参考值,即:
其中,。
步骤5中基于参考点新的非线性角度误差参考值输出对应的修正值,具体通过以下计算式进行:
其中,表示参考点的修正值。
的取值为/>,且q为大于等于0的整数。
步骤2,基于时间戳寄存器所记录的信息评判磁编码器的输出是否稳定,具体地通过如下方法进行:
通过两个角度参考点所对应的时间戳寄存器的时间戳差值,计算转轴的周期,并计算各个周期之间的差异性大小来判断磁编码器的输出是否稳定。
步骤2,所述计算转轴的周期具体通过如下方式进行:转轴转到第m个周期时,对于参考点ANG [n],设置参数P(n,m)为计算得到的转轴周期,TS(n,m)表示磁编码器的角度输出值在第m个周期经过参考点ANG [n]时记录的时间戳,表示,其中:
其中, m为自然数。
基于时间戳寄存器所记录的信息确定磁编码器的输出是否稳定,具体通过如下方法进行:通过相邻两个时间戳寄存器的时间戳差值TS[n]与TS[n-1]的差值,与对应相邻两个参考点ANG[n-1]、ANG [n]之间的角度值的关系,通过以下计算式确定磁编码器是否处于稳定状态:
若满足上述计算式(8),则表示磁编码器处于稳定状态,可以进行后续步骤,其中k的取值为0<k<1。
步骤1中,通过如下方法获得磁编码器的角度输出值经过每个角度参考点时的时间点:
监测磁编码器的角度输出值,若磁编码器的前一个角度输出值小于第n个角度参考点,并且紧邻的后一个角度输出值大于第n个角度参考点/>,则记录为磁编码器输出后一个角度输出值时的时间,以作为磁编码器的角度输出值经过每个角度参考点时的时间点。
步骤1中,通过如下方法获得磁编码器的角度输出值经过每个角度参考点时的时间点:
监测磁编码器的角度输出值,并记录磁编码器连续输出两个角度输出值时的时间,若磁编码器的前一个角度输出值小于第n个角度参考点,并且紧邻的后一个角度输出值大于第n个角度参考点/>,则对磁编码器输出前后两个角度输出值时记录的时间进行平均或加权平均,以作为磁编码器的角度输出值经过每个角度参考点时的时间点。
第二方面,本发明的技术方案为:提供一种磁编码器,包括磁传感器以及用于信号处理的信号处理电路,所述信号处理电路用于执行所述的磁编码器的自校准方法。
第三方面,本发明的技术方案为:提供一种电机,所述电机配设有磁编码器,所述磁编码器相对于所述电机的定子固定,所述电机的转轴设有磁体,所述磁体随所述转轴一起同步转动,所述磁编码器用于检测并输出所述磁体的旋转角度,所述信号处理电路用于执行所述的磁编码器的自校准方法。
本发明的有益效果:本发明通过相邻两个时间戳寄存器的时间戳差值来计算转轴所转动的实际的角度,计算参考点的修正误差参考值,基于参考点的非线性角度误差参考值和修正误差参考值进行滤波计算,得到消除非线性角度误差的参考点的角度值,如此可得到N个参考点一一对应的N个消除非线性角度误差的角度值,本发明基于时间戳寄存器,只需要电机在匀速运动状态下,对磁编码器输出的信号进行低通滤波,保留低频稳定成分即可用作参考信号,降低了非线性角度误差对测量的影响,本发明是一种成本低、精度高、确定性高的磁编码器的自校准方法、磁编码器及电机。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1给出磁编码器和磁体常用的几种安装位置的示意图。
图2所示为对拖的结构示意图。
图3所示为本发明实施例提供的电机和磁编码器的配置的示意图。
图4所示为实现本发明实施例的磁编码器的自校准方法的流程框图。
图5所示在转轴上标识参考点、非线性角度误差参考值、时间戳的示意图。
图6所示为应用本发明实施例提供的自校准方法的电路原理框图。
图7所示为本发明实施例提供的磁编码器的电路原理框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,若在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,若本发明涉及到术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
如上所述,磁编码器通过传感器检测变化的磁信号,并且将检测的磁信号提供给信号处理电路。作为示例,可以采用各种类型的传感器,例如,磁阻传感器、霍尔传感器等。
参考图1中的(a)、图1中的(b)、图1中的(c)、图1中的(d),作为示例,给出磁编码器30和磁体20常用的几种安装位置的示意图。图1中的(a)为在轴检测方案、图1中的(b)为离轴检测方案、图1中的(c)为侧轴检测方案、图1中的(d)为磁环检测方案。
本发明实施例提供的磁编码器30可以采用图1中的(a)所示的在轴检测方案,当然还可以采用其他3种检测方案。
在实际的检测过程中,无论采取哪种检测方案,磁编码器具有非线性角度误差,磁编码器的非线性角度误差是指在编码器测量输出与实际物理量之间存在的非线性关系导致的误差。当磁编码器输出与实际物理量之间的关系不是简单的线性关系时,就会产生非线性角度误差。这种误差通常是由于磁编码器的设计、制造或安装过程中的一些因素导致的,例如光学系统、磁性系统或机械结构的非线性特性。
编码器输出的角度与实际角度关系不是简单的线性关系一般无法用一个函数表达出,可以通过创建一个查找表,记录一些关键参考点,将编码器的输出映射到实际位置或角度。关键参考点之间角度可以在局部范围内使用多项式函数来拟合编码器的非线性输出,通过找到适当的多项式拟合,可以在整个测量范围内减少非线性角度误差,多项式拟合的阶数可以根据具体情况选择。
当需要修正磁编码器的非线性角度误差时,参考图2,可以使用光编码器来进行校准和修正这种方法称为“对拖”(Torching)。
参考图2,图2所示为对拖的结构示意图,对拖结构包括电机10,电机10的 转轴11还连接一个电机从动件10a,电机10和电机从动件10a分别配置1个光编码器12和磁编码器30。对拖的基本原理是在实际的磁编码器输出上叠加一个附加的光编码器。这样做的目的是为了测量磁编码器的实际输出,并与光编码器的准确输出进行比较。通过对比两者之间的差异,可以获取磁编码器的非线性角度误差,并建立校准曲线或查找表。具体是由以下步骤实现的:
1、安装光编码器:需要将一个光编码器与磁编码器同时安装在同一个旋转轴或运动平台上,即光编码器安转在电机上,磁编码器安装在电机从动件上,电机10和电机从动件10a同步转动。光编码器通常具有较高的准确性和分辨率,可以作为校准磁编码器的参考。
2、获取光编码器数据:电机的转轴旋转时,记录光编码器的输出数据,并将光编码器输出的数据作为准确的参考值。
3、获取磁编码器数据:同时记录磁编码器的输出数据。
4、比较数据:将光编码器输出的数据与磁编码器输出的数据进行比较。如果发现磁编码器的输出与光编码器的输出存在偏差或非线性角度误差,那么这些差异将用于修正磁编码器的测量值。
5、建立校准曲线或查找表:通过对比光编码器和磁编码器的输出数据,可以建立一个校准曲线或查找表,其中包含了磁编码器输出的非线性角度误差信息。这个曲线或查找表可以用于以后的磁编码器输出修正。
这种方法存在问题是:
1、成本高:需要增加一个光编码器,安装过程复杂,安装精度要求高,运行过程比较复杂;
2、确定性不高:如果不能确保安装准确或者光编自身的准确度,会让磁编校准后的信号也一样不准确。
因此,磁编码器在出厂前,会经过校准,以修正磁编码器的非线性角度误差,经过校准后,最好还需要对磁编码器输出的稳定性和准确性进行评判,以使磁编码器的稳定性和准确性得到进一步的保障。
需要说明的是,在正常的使用过程中,芯片的非线性误差不会发生变化。除非装配,温度,磁场等运行环境发生比较大的变化, 这时候芯片的输出并不会停止,而是持续输出。但是从芯片角度,它并不能直接知道现在运行环境是否发生比较大的变化,如果发生了较大的变化,则芯片的非线性误差会跟着发生较大的变化,芯片的输出会产生较大的错误。所以本申请的技术方案包含了一个检测系统是否稳定的方法(或者说包含一个稳定检测系统),去实时计算芯片所处的运行环境否是稳定, 只要检测到不稳定, 以最快的速度停止非线性误差查考值的计算,而在高速旋转的电机中,从转速不稳定到稳定的运行状态转变的时间段里,总有一小时间段内电机的转速是稳定的,在这一小时间段内,以最短的时间实现非线性误差查考值的计算。从而以最快速度适应这种变化,让使用者都感觉不到芯片的状态变化,非线性误差就全部修正完了。所以, 整个系统不会关闭或停止,而是通过稳定检测系统, 去自动关闭和打开非线性误差查考值计算,以使用者无感知的方式完成磁性编码器的校准。
参考图3,现对本发明实施例提供的电机进行说明。本发明的一个应用场景中,电机10配设有磁编码器30和信号处理电路40,磁编码器30相对于电机10的定子固定,电机10的转轴11设有磁体20,所述磁体20随所述转轴11同步转动,磁编码器30用于检测并输出磁体20的旋转角度,所述信号处理电路40用于执行所述的磁编码器30的校准方法。
关于磁编码器30相对于磁体20的位置,本发明实施例提供的磁编码器30可以采用在轴检测的方案,也可以采用离轴检测的方案。在轴检测和离轴检测是本领域的磁感应检测的两种不同的方式。
参考图3所示的实施例中,本发明提供的磁编码器30采用在轴检测的方案,磁编码器30位于磁体20的沿电机的输出轴的轴向一侧,以便于获得较高的角度检测精度。
下面具体地对本发明的技术方案进行说明,本发明实施例的技术方案为:提供一种磁编码器的自校准方法,所述磁编码器用于检测转轴的旋转角度磁编码器在转轴的转动过程中,检测并输出转轴的旋转角度。
当转轴在某段时间间隔内是匀速转动时,如果磁编码器是正常检测和输出的情况下,能够检测出转轴是处于匀速转动的状态。此时可以考察磁编码器的角度输出值是否能够稳定地输出,当磁编码器处于稳定状态时,使用本发明实施例所公开方法对磁编码器进行校准。
在本发明的实施例中,通过设置时间戳寄存器,既能检测磁编码器输出的稳定性,还能检测电机的转速稳定性。
需要说明的是,寄存器可以是CPU、MCU、FPGA、ASIC等器件内部或外部用来存放数据的一些存储区域,也可以是其他形式的存储区域,本发明不受寄存器的具体实现形式的限制。只要能用来存储数据以供后续读取的存储区域,都属于本申请文件“寄存器”的含义范围。寄存器用来存放参与运算的数据和运算结果,这些数据和运算结果可以被更新,也可以被输出以被其他装置读取。
需要说明的是,电机在转动的过程中,尤其在高速转动时,由于电机在转动过程中具有惯性作用,转轴匀速转动被认为是容易实现的。即使电机转动速度有波动,在其转动过程中也能在一定时间间隔内认为电机转动速度是匀速的。
参考图4、5对本发明进行说明:
S01,在所述转轴旋转的0~360度上依次设置N个角度参考点,每个角度参考点对应具有1个非线性角度误差参考值,设置N个时间戳寄存器,所述时间戳寄存器对应地记录N个角度参考点中的其中一个所述角度参考点的时间戳,其中,每个角度参考点的时间戳为磁编码器的角度输出值经过每个角度参考点时的时间点,并通过时间戳寄存器进行记录;
S02,确定电机转轴转动是否处于匀速转动状态,若是,则进入步骤S03;
S03,获得在先角度参考点对应的非线性角度误差参考值;
S04,基于在先角度参考点和在后角度参考点所对应的时间戳寄存器的时间戳差值、转轴的周期P,及在先角度参考点对应的非线性角度误差参考值,计算在后角度参考点的新的非线性角度误差参考值;
S05、基于参考点新的非线性角度误差参考值输出对应的修正值。
参见图5,假设在0~360度上依次设置N个参考点,这N个参考点分别对应一个确定的角度值。当电机转动时,在转轴转动的一个周期内,磁编码器的角度输出值依次地经过这N个参考点。当磁编码器的角度输出值依次地经过这N个参考点时,磁编码器与转轴之间的角度也依次地呈现了N个实际角度。可以近似地认为,若电机在某一时间间隔内为匀速转动,即使磁编码器存在非线性误差,磁编码器与转轴之间每次呈现某个实际角度时,磁编码器的角度输出值也只在一个很小范围内变化,也就是说,在磁编码器与转轴之间呈现某个实际角度时磁编码器的角度输出值可以看作是稳定的。因此,在确定电机转动为匀速后,可利用上述规律对磁编码器进行非线性误差校准。
在本发明实施例中,在0~360度上设置N个参考点,该N个参考点一一对应具有一个非线性角度误差参考值,则具有N个非线性角度误差参考值,且该N个参考点一一对应具有一个时间戳寄存器,则设置有N个时间戳寄存器。需要注意的是,对于磁编码器的后续电路来说,后续电路并不知道电机转轴与磁体(磁体与转轴是同步转动的)之间此时呈现哪个角度上,后续电路只能接收到磁编码器的角度输出值。由于即使存在非线性误差,当电机稳定地匀速旋转时,也可以认为磁编码器输出的某个确定角度值对应于转轴与磁编码器之间呈现的某个确定的真实角度。因此,可以通过磁编码器的角度输出值,来识别电机转轴是否转到了某个真实的角度值。为了方便计算,可以在磁编码器的输出角度值中均匀选取上述N个参考点。例如,如附图5所示,选取N=16,则选取磁编码器的角度输出值为0度、22.5度、45度、……315度、337.5度为参考点。需要注意的是,这样均匀选取的N个参考点在实际中并不对应转轴转动到的N个均匀的参考点,因为磁编码器输出的角度值包含非线性误差。而且,本发明实施例适用于具有任意非线性误差值的磁编码器,并不需要非线性误差的数值小于某个数值,本发明实施例的校准方法才能实行。另需要注意的是,即使从磁编码器的输出角度值中选取参考点,该参考点的选取也不需要均匀,只要选取彼此之间具有一定间隔的N个点即可,只是本领域技术人员能够了解,均匀取点的方式在运算上更为简便。
首先需要说明的是,本发明申请中,时间戳寄存器TS[n-1]和TS[n]表示相邻两个时间戳寄存器,例如n=8,n-1=7,即表示第7个和第8个时间戳寄存器,即TS[7]和TS[8]时间戳寄存器;而相邻两个时间戳寄存器的时间戳差值是:,例如,第8个和第7个时间戳寄存器的时间戳差值是:/>,非相邻的两个时间戳寄存器的时间戳差值的计算方法也是一样的。
参考图5,基于上述N=16且在磁编码器输出角度值中均匀选择参考点的方式,来说明本发明的一个实施例。
首先,在磁编码器的输出角度值0~360度上依次设置N个角度参考点:{ANG[0],ANG[1]…ANG [n-1],ANG [n] … ANG[N-1]}={ 0度、22.5度、45度、……315度、337.5度}。这N个参考点对应于转轴真实转到的N个角度参考点。
当电机启动后,非线性误差参考值{ref [0],ref [1]…ref [n-1],ref [n]…ref [N-1]}有个初始值,该初始值可以是之前存储好的值,也可以是全部预设为零或根据需要预设为其他数值。
当电机开始第一圈转动后,启动时间戳寄存器{TS[0],TS[1]…TS[n-1],TS[n]…TS[N-1]}的赋值,具体是选取转轴转动到某个参考点时的时间值,该时间值可以从系统中读取。然而,磁编码器持续地输出所测量到的角度值,该角度值包含有非线性误差。但由于磁编码器的工作频率远远高于电机转速,磁编码器输出的角度值实际上在非常小的角度值间隔内递增,可以通过以下方法来判断转轴是否转动到了某个参考点,例如,是否转动到了22.5度这一参考点:不断读取磁编码器的输出角度值,当前一个输出角度值小于或等于22.5度但后一个角度值大于或等于22.5度时,或者当前一个输出角度值大于或等于22.5度但后一个角度值小于或等于22.5度时,认为磁编码器的输出角度值经过了22.5度。在确定磁编码器的输出角度值经过了22.5度后,可以将输出后一个角度值时对应的时间读取进入TS[1],也可以将输出前一个角度值时对应的系统时间读取进入TS[1],或者将前后输出前后两个角度值对应的系统时间取平均或取加权平均得到的时间读取进入TS[1],加权平均中的权值可以根据磁编码器前后两次输出的角度值距离参考点角度值的距离远近来确定,本领域技术人员很容易设计这些运算以更有利于逼近真实的经过22.5度时的时间。以此类推,可以依次将TS[0]-TS[N-1]设置上时间戳值。
S02,确定转轴转动是否处于匀速转动状态,若是,则进入步骤S03。
当电机进入第i圈转动时,用同样方法取得电机经过22.5度的时间,并与时间戳寄存器中的TS[1]进行比较,这两个时间之间的差值如果大于一个最小的阈值Pmin,则被视为电机旋转一周的时间Pi(即第i圈的周期)。设置这两个时间之间的差值需大于一个最小的阈值Pmin才被视为旋转一周的时间这一要求,是因为由于存在噪声,信号有小概率会在角度参考点附近,例如22.5度附近,快速地左右抖动。这样就有可能导致两次经过22.5度的时间被记录下,但这两次时间间隔非常小,并不是一个周期。为了排除这一情况,根据电机实际使用中可能遇到的最大转速,设定一个最小阈值Pmin,只有两次经过某个角度参考值的时间大于Pmin,两个时间之间的差值才算为周期。例如工程实践中,电机实际使用中,最大可能转速一般不大于300krpm(krpm含义为千转每分钟),则Pmin 可以设置为60/300/1000=0.0002秒=200微秒(us),而一般信号处理电路的数据采集周期是0.5微秒(us),故所设定的Pmin是完全可行的。
为了减小噪声干扰,可以对计算得到的Pi做一次一阶无限冲击响应(IIR)滤波,如下式所示:
其中,为滤波系数,取值范围为0</><1。
理论上,当电机处于匀速转动时,转动一周的周期P是一个常数。由于不可避免地存在误差,实际上,对于所有的参考点而言转轴转动的每个周期P1、P2…Pi…PI之间会有差值,而每个周期之间的差值被控制在一个允许的范围内,方认为磁编码器的输出是准确的,其中,P1、P2…Pi…PI,分别表示为转轴在第1、2…i…I个转动周期,其中,i和I的取值范围为:2<i<I,且i和I均为自然数。
为了判断电机是否处于稳定状态,本轮得到的周期Pi可以与对历次得到的Pi做IIR运算后得到的值P进行比较,若差值在预设值范围内,则认为电机处于稳定状态(即处于匀速运转)。例如,当下述不等式成立时,认为电机处于稳定状态,例如通过下列计算式进行判断:
其中,P为对历次得到的Pi做IIR运算后得到的值,Pi为当前算得的电机转动周期,为预设值。
若上述不等式不成立,则认为电机尚不处于稳定状态,此时需等待电机进入稳定状态。将倒数稳定寄存器的值设置为一个比较大的整数(例如32),并在之后电机每次经过任意参考点时, 上述不等式成立, 将该倒数稳定寄存器的值减少1。即使上述不等式成立,但倒数稳定寄存器的值不为0,则依然不认为电机处于稳定状态,不计算非线性误差参考值。当倒数稳定寄存器的值为0,并且上述不等式成立,才进行后续针对非线性误差参考值的计算。若倒数稳定寄存器的值为0,但上述不等式依然成立,则再次将倒数稳定寄存器的值设置为一个比较大的整数(例如32),并重复上述过程以等待电机进入稳定状态。
判断电机进入稳定状态才进行非线性误差参考值计算的好处在于,如果系统发生突发性或者周期性高频率变化, 计算得到的各种数值误差会比较大,从而造成非线性误差参考值生成的误差。由于使用如本发明实施例所述的自校准方法,从电机开始转动到计算得到非线性误差参考值,具有一定滞后性,需要排除突发性或周期性的高频率变化,从而将滞后性降低到最小。因此,当系统处于不稳定状态时候, 自动停止参数生成, 避免因为不稳定造成系统波动;当系统重归稳定状态后, 自动打开参数生成,自动修正系统静态和低频非线性误差。
需要注意的是,还可以使用其他方法来判断电机是否处于稳定状态,例如,可以将本轮得到的周期Pi与上一轮得到的周期Pi-1进行比较。类似地,使用如下不等式来判断:
其中,Pi-1为上一轮算得的电机转动周期,Pi为当前算得的电机转动周期,为预设值。
但优选使用本轮得到的周期Pi与对历次得到的Pi做IIR运算后得到的值P做比较来判断电机转速是否稳定,因为Pi相当于一种平均值,使用平均值做分母,受噪声影响更小一点,判断更为稳定。
若电机进入稳定状态,则通过两个时间戳寄存器的时间戳差值来计算转轴所转动的实际角度,即:
其中,表示两个时间戳寄存器的时间戳差值/>内转轴转动的实际角度,P为转轴转动一圈的周期,其中x为自然数,且0<x≤n。
需要说明的是,在这一步骤中,基于两个角度参考点所对应的时间戳寄存器的时间戳差值,及转轴的周期P,计算转轴所转动的实际角度,该两个角度参考点可以不是相邻的角度参考点,也可以是相邻的两个参考点,例如ANG [n-1]和ANG [n]。
上述计算式(1)中,以x=1为例进行说明,当x=1时,取相邻两个角度参考点进行计算,即ANG [n-1]和ANG [n],相对应的两个时间戳寄存器为相邻两个时间戳寄存器,将转轴转动的第一方向设定为顺时针方向,以n=8为例进行说明,n=8时,即,,通过相邻两个时间戳寄存器的时间戳差值来计算转轴所转动的实际的角度,即:
参照计算式(1)可以得出计算式(1a),计算式(1a)中,表示相邻两个时间戳寄存器的时间戳差值,即TS[8]与TS[7]所记录的时间戳差值,例如可以在转轴转动开始时,将{TS[0],TS[1]…TS[n-1],TS[n]…TS[N-1]}的时间戳均置为0,转轴开始转动并开始计时,参考点ANG [7],ANG [8]的时间戳TS[7]与TS[8]为磁编码器的角度输出值经过该两个参考点ANG [7],ANG [8]时的时间点,并通过时间戳寄存器TS[7],TS[8]进行记录,且时间戳寄存器TS[7],TS[8]可以是每个周期更新1次的,例如磁编码器的角度输出值再次经过参考点ANG [7]和参考点ANG [8]时,再次将磁编码器的角度输出值经过该两个参考点ANG [7],ANG [8]时的时间点对时间戳寄存器TS[7]和TS[8]进行更新,如此,每个时间戳寄存器的时间戳可以是每个周期更新一次的。
如此,可以计算转轴的各个周期,例如计算参考点ANG [n]的第m个周期,其中参考点ANG [n]可以代表任一个参考点,具体地:以任一个参考点ANG [n]为例,P1、P2…Pi…PI表示磁编码器的输出在第1、2…i…I次经过参考点ANG [n]时所用的各个周期,其中,i和I的取值范围为:2<i<I,且i和I均为自然数。因此,P1、P2…Pi…PI中的各个数据差异性必须控制在一个范围内,否则认为磁编码器的输出不稳定。
为了更加详细地说明,设置两个参数:P(n,m)、TS(n,m),参数P(n,m)表示磁编码器的角度输出值相对于参考点ANG [n]的第m个周期;TS(n,m)表示磁编码器的角度输出值在第m个周期经过参考点ANG [n]的时间点,其中:
其中, m为自然数。
如此,TS(n,m-1)表示磁编码器输出的角度值在电机第m-1个转动周期中经过参考点ANG [n]的时间点:第m-1个周期,经过参考点ANG [n]的时间戳TS[n]= TS(n,m-1),转轴转动一圈,m-1作加1运算,即转轴转动一圈后,磁编码器输出的角度值经过参考点ANG [n]的时间为TS(n,m)。以ANG [7]为例,n=7,磁编码器输出的角度值在电机第m-1个转动周期中经过参考点ANG [7]的第1个周期的时间点为TS(7,1),第1周期时,将T(7,1)对TS[7]进行更新,第2周期时,将TS(7,2)对TS[7]进行更新,因此,;以ANG [8]为例,n=8,磁编码器输出的角度值在电机第1个转动周期中经过ANG [8]的时间点为TS(8,1),第1周期时,用TS(8,1)对TS[8]进行更新,第2周期时,用TS(8,2)对TS[8]进行更新,因此,。因此,第1个周期时/>= TS(8,1)-TS(7,1),表示第1周期内磁编码器的角度输出值经过参考点ANG [7]与ANG [8]的时间差值;第2个周期时,/>= TS(8,2)- TS(7,2)…;第i周期时,/>= TS(8,i)-TS(7,i)…;第I周期时,/>= TS(8,I)- TS(7,I),而相对于其他任两个相邻的参考点,例如参考点ANG [11]、ANG [12],相关的计算方法可以以此为参考进行计算,在此不再赘述。
需要说明的是,还可以以任一个参考点来计算转轴转动的周期:继续以参考点ANG [7]为例进行说明:当以参考点ANG [7]计算转轴转动的周期时,P(7,1)= TS(7,1)-TS(7,0),P(7,2)= TS(7,2)- TS(7,1),如此可以得到以参考点ANG [7]来计算的各个周期。参照参考点ANG [7]的计算方式,以其他参考点计算转轴的周期时,计算转轴的方式亦可参考ANG[7]的计算方式进行计算,在此不再赘述。在本发明实施例中,转轴在转动第m个周期时所计算得到的周期Pm可以选定一个参考点来计算,例如选定(0度),以计算得到的P(0,m)作为Pm;Pm也可以由以各参考点分别计算得到的P(n,m)经合适的运算得到,例如可以对它们取平均数或其他方式运算。
因此,计算式(1a)中,TS[8]与TS[7]为通过相应的时间戳寄存器进行记录,且由于转轴实际是处于匀速转动状态的,在本实施例中,P经过测量,并基于时间戳寄存器内记录的时间计算得到。如此,参考计算式(1a),可以计算得到的角度值。以上对如何得到/>进行说明,借鉴于/>的计算方式,如此容易得到,其他/>、…/>的角度值,在此不再赘述。
参考图5,步骤S03,获得在先角度参考点对应的非线性角度误差参考值。例如,获得在先角度参考点ref[0],它可以是上文说到的全部预设为零或根据需要预设为其他数值的初始值,也可以是用上一轮计算得到的经滤波计算后得到的非线性角度误差参考值更新后的值。
需要说明的是,步骤S04,在先角度参考点和在后角度参考点,不一定是相邻的两个角度参考点,也可以是相邻的角度参考点,例如可以是非相邻的角度参考点ANG [3]和角度参考点ANG [8],也可以是相邻的角度参考点ANG [4]和角度参考点ANG [5]。
因此,从参考点ANG [n-x]转动到ANG [n]的实际角度,是在两个时间戳寄存器的时间戳差值/>内转轴转动的实际角度。基于/>、转轴的周期P,及在先角度参考点ANG [n-x]对应的非线性角度误差参考值ref [n-x],可以计算出参考点ANG [n]的新的非线性角度误差参考值/>。
更具体地,在0~360度上均匀设置N个角度参考点:{ANG[0],ANG[1]…ANG [n-1],ANG [n] … ANG[N-1]}。通过下列计算式,计算参考点ANG [n]新的非线性角度误差参考值:
表示两个时间戳寄存器的时间戳差值/>内转轴转动的实际角度。
表示参考点ANG[n]新的非线性角度误差参考值,本实施例中,是将作为在先角度参考点对应的非线性角度误差参考值进行计算的,为了便于描述,参考图5,N=16,/>可以通过参考计算式(1)计算得到。因此,可以通过计算式(2)计算得到参考点ANG [n]的新的非线性角度误差参考值/>。
如图5所示的实施例中,在先角度参考点和在后角度参考点为相邻的角度参考点,从参考点ANG[0]开始计算,即此时,为/>,而/>为/>,当N=16时:
对参考点ANG[0],利用计算式(2)进行计算:
参照计算式(2)可以得出计算式(2a),而由步骤S04知道,可以参考计算式(1a)计算出来,上述计算式(2a)中,以/>为起始点,可以将其置0,认为如此,/>-22.5,此时可以将/>计算出来。
如此,将计算出来之后,参照/>的计算方法,复用上述公式(1a)、(2a),可以得到{/>、/>…/>}。
基于参考点ANG[n]的非线性角度误差参考值ref [n]和新的非线性角度误差参考值进行滤波计算,得到参考点ANG[n]消除非线性角度误差的角度值ref`[n],如此可得到N个参考点:{ANG[0],ANG[1]…ANG [n-1],ANG [n] … ANG[N-1]}一一对应的N个消除噪声后的非线性误差参考值:{ref`[0],ref`[1]…ref`[n-1],ref`[n]…ref`[N-1]}。经消除噪声后的非线性误差参考值更为准确,因此用于更新原非线性角度误差参考值ref [n],并且在每针对一个参考点ANG [n]计算得到经消除噪声后的非线性误差参考值ref`[n]时,就对原非线性角度误差参考值ref [n]进行更新,从而以最快速度获得准确的非线性误差参考值。
步骤S05、基于参考点新的非线性角度误差参考值输出对应的修正值。
通过步骤S01~S04的说明可以知道,在0~360度上均匀设置的N个参考点:{ANG[0],ANG[1]…ANG[n-1],ANG[n] … ANG[N-1]},对于每个参考点ANG [n],其对应一个非线性角度误差参考值ref[n],ref[n]的值是预先设定好的初始值,或者是上一次计算中被经消除噪声后的非线性误差参考值ref`[n]更新后得到的值。基于ref[n]可以计算该参考点新的非线性角度误差参考值,该新的非线性角度误差参考值/>包含有噪声,可以采取滤波计算将噪声滤除,得到参考点ANG[n]对应的除噪音后的ref`[n],该ref`[n]会更加真实地反应磁编码器输出角度值为该参考点时的非线性角度误差。在每针对一个参考点ANG [n]计算得到经消除噪声后的非线性误差参考值ref`[n]时,就对原非线性角度误差参考值ref [n]进行更新,从而以最快速度获得准确的非线性误差参考值。
因此,步骤S01~S05介绍的本发明的技术方案中,基于时间戳寄存器对转轴转动的周期进行记录,进而得到两个时间戳寄存器的时间戳差值内转轴转动的实际角度/>,以此为前提,结合非线性角度误差参考值ref [n],计算参考点ANG[n]的新的非线性角度误差参考值/>,并进一步得到经数字滤波处理后的值ref`[n],再用经数字滤波处理后的值ref`[n]对原非线性角度误差参考值ref [n]进行更新。
一个实施例中,步骤S05进一步包括对新的非线性角度误差参考值进行滤波计算的步骤。
所述对新的非线性角度误差参考值进行滤波计算的步骤,具体为:
基于参考点ANG[n]的非线性角度误差参考值ref [n]和新的非线性角度误差参考值进行滤波计算,具体为通过无限冲击响应(IIR)滤波计算。
进一步地,为了电路设计上的简便性,可以使用一阶IIR滤波运算来进行滤波计算,具体可以使用下列计算式进行计算:
其中为/>进行滤波后的值,/>为IIR滤波器系数,且0<≤1。
本实施例中,使用上述公开的方法,即通过计算式(1)-(3),可以获得N个参考点{ANG[0],ANG[1]…ANG [n-1], ANG [n] … ANG[N-1]}一一对应的N个消除噪声后的值{ref`[0],ref`[1]…ref`[n-1],ref`[n]…ref`[N-1]}。
一个实施例中,的取值为/>,且q为大于等于0的整数,例如,/>的取值为1/2,1/4,1/8,1/16,1/32中的一个,需要说明的是,本实施例中,可以根据需要来选择/>的取值。
在电机可以逆向转动的场景中,还可以通过在电机逆向转动过程中,类似地测量及计算相关数值,来对磁编码器进行非线性误差校准。一个实施例中,转轴以第二方向转动,且所述第二方向为第一方向的逆方向,通过相邻两个时间戳寄存器的时间戳、转轴的周期P来计算转轴所转动的实际的角度,即:
其中,表示两个时间戳寄存器的时间戳差值/>内转轴转动的实际角度,P为转轴转动一圈的周期,其中x为自然数,且0<x≤n。
以相邻的两个角度参考点为例来说明,角度参考点ANG [n-1]与ANG [n]之间的角度值,转轴以第一方向转动,可以认为是从参考点ANG[0]顺数至ANG[N]的方式转动,即从参考点ANG [n-1]转动到参考点ANG [n],并通过相邻两个时间戳寄存器的时间戳与/>的差值来计算转轴所转动的实际的角度;此外,转轴可以是以第二方向转动,即认为是从参考点ANG[N]倒数至ANG[0]的方式转动,即从参考点ANG [n]转动到参考点ANG [n-1],并通过两个时间戳寄存器的时间戳/>与/>的差值来计算转轴所转动的实际的角度。
本实施例中,参考图5,上述计算式(4)中,以x=1为例进行说明,当x=1时,该两个时间戳寄存器为相邻两个时间戳寄存器,由于将转轴转动的第一方向设定为顺时针方向,那么,将转轴转动的第二方向设定为逆时针方向,以n=4为例进行说明,n=4时,即,/>,磁编码器的角度输出值先通过参考点ANG[4],再通过参考点ANG[3],通过相邻两个时间戳寄存器的时间戳差值来计算转轴所转动的实际的角度,即:/>
计算式(4b)中,,即表示相邻两个时间戳寄存器的时间戳即TS[3]与TS[4]所记录的时间戳差值,例如可以在转轴转动开始时,将参考点ANG[15]的时间戳TS[15]置为0,转轴开始转动,磁编码器的角度输出值先经过参考点ANG[4],再经过参考点ANG[3],同样地参考点ANG [4],ANG [3]的时间戳TS[4]与TS[3]为磁编码器的角度输出值经过该两个参考点ANG [4],ANG [3]时的时间点,并通过时间戳寄存器TS[4],TS[3]进行记录。
因此,计算式(4b)中,TS[3]与TS[4]为通过相应的时间戳进行记录,且由于转轴实际是匀速转动的,认为P是已知(即为本发明的技术方案实施之前,先在其他设备上获取准确的转轴的周期P),或者由时间寄存器经过多次测量,并计算平均值得到。在本实施例中,可以得到的角度值。如此参照/>的计算方法,复用计算式(4)进行计算,不难得到其他相邻参考点的角度值,例如是/>、/>……的角度值,在此不在赘述。
以下实施例中用来说明如何得到N个相邻两个时间戳寄存器的时间戳差值内转轴所转动的实际的角度,以及计算得到N个参考点新的非线性角度误差参考值:通过复用计算式(1),从第0个参考点ANG[0]开始,即n=1,x=1,依次计算得到相邻两个时间戳寄存器的时间戳差值内转轴所转动的实际的角度:
{,/>…};复用计算式(2),从第0个参考点ANG[0]开始,依次计算得到N个相邻参考点ANG[n]新的非线性角度误差参考值。以N=16为例,从参考点ANG[0]开始,依次计算得到相邻两个时间戳寄存器的时间戳差值内转轴所转动的实际的角度:
{,/>…/>}
及16个参考点对应的新的非线性角度误差参考值:
{[0],/>[1]…/>[7],/>[8]…/>[15]。
一个实施例中,根据N个非线性角度误差参考值:{ref[0],ref [1]…ref [n-1],ref [n]…ref [N-1]},及N个新的非线性角度误差参考值:
{[0],/>[1]…/>[n-1],/>[n]…/>[N-1]},依次进行滤波计算,得到N个滤波后的值:{ref`[0],ref `[1]…ref `[n-1],ref` [n]…ref`[N-1]}。
一个实施例中,所述对新的非线性角度误差参考值进行滤波计算的步骤,具体地,对所述对新的非线性角度误差参考值依次进行滤波计算,得到N个滤波后的值,即为N个滤波后的值:{ref`[0],ref`[1]…ref`[n-1],ref`[n]…ref`[N-1]},具体地,以N=16为例,根据16个非线性角度误差参考值:{ref[0],ref [1]…ref [7], ref [8]…ref [15]},及16个新的非线性角度误差参考值:
{[0],/>[1]…/>[7],/>[8]…/>[15]},依次复用计算式(3)进行滤波计算,得到{ref`[0],ref`[1]…ref`[7],ref`[8]…ref`[15]}。
在本发明的一个实施例中,还包括对N个滤波后的值:{ref`[0],ref`[1]…ref`[n-1],ref`[n]…ref`[N-1]}计算每个参考点的平均修正误差参考值,即:
其中,。
以下实施例用来说明,对获得的N个滤波后的值{ref`[0],ref `[1]…ref `[n-1],ref` [n]…ref `[N-1]}如何进行处理。对计算出来的N个参考点对应的经滤波后的非线性角度误差参考值计算平均修正误差参考值,即当N=16时:
其中,。
步骤S05,基于参考点经滤波的非线性角度误差参考值输出对应的修正值。
具体地,基于N个参考点的平均修正误差参考值,输出参考点的修正值,即通过下列计算式进行计算:
其中,表示参考点的修正值。
相应地,基于16个参考点的平均修正误差参考值,输出参考点的修正值:{/>[0],/>[1]…/>[7],/>[8]…/>[15]}。
本实施例中,通过计算式(7)计算得到的参考点的修正值,其将比先前步骤获得的角度校准值准确度更高,更加接近真实的角度校准值,故输出作为在角度校准中使用的值。
在一个实施例中,在通过相邻两个时间戳寄存器的时间戳差值来计算转轴所转动的实际的角度之前,还包括步骤:通过相邻两个时间戳寄存器的时间戳差值,即TS[n]与TS[n-1]的差值,与对应相邻两个参考点ANG[n-1]、ANG [n]之间的角度值的关系评判磁编码器的角度输出值是否处于稳定状态,即通过下列计算式进行计算:
其中,ANG[n-1]、ANG [n]是预先选取好的角度参考值,例如对于N=16的情况,为0度、22.5度……337.5度中相邻的两个角度。若满足上述计算式(8),则表示磁编码器处于稳定状态,可以进行后续步骤,其中k的取值为0<k<1。
若满足上述计算式(8),则表示磁编码器处于稳定状态,其中 P为转轴转动一圈的周期,k的取值为0<k<1。P可以取先前步骤计算得出的数值;可以是测量其他物理量后计算得到的数值,例如测量电机在一个已知时间段内转过的次数从而计算得到P;还可以取预设值,例如对于定速转动的电机,可以是将根据电机标准转速计算出来的值预设在系统中。
需要说明的是,可以通过时间戳寄存器连续多个周期进行测试,若均满足计算式(8)则表示磁编码器处于稳定状态,例如,转轴连续转动r个周期,均能满足计算式(8),则表示磁编码器处于稳定状态,r为大于1的自然数,例如,r=30,40,50等等。
上述计算式(8)中,k的取值越小,说明磁编码器的稳定性越高,还可以根据不同应用场合的要求,对k值进行设定。
实际操作过程中,可以遍历所有的相邻两个参考点之间的时间戳的差值,与该两个参考点之间的角度值的关系,如均小于k,方才完成评判磁编码器是否处于稳定状态。也可以对每对相邻两个参考点,依次判断磁编码器输出是否稳定,每次判断为稳定即开启后续计算,即,对哪一对相邻参考点判断为磁编码器输出,就使用哪一对相邻参考点的时间戳数值来开启后续计算。
不难理解地,除了相邻的两个参考点,还包括任两个参考点,即包括非相邻的两个参考点,该两个参考点的时间戳的差值,与该两个参考点之间的角度值的关系,同样可参照上述公式进行评判磁编码器的角度输出值是否处于稳定状态。
一个实施例中,步骤S01,通过如下方法获得磁编码器的角度输出值经过每个角度参考点时的时间点:
监测磁编码器的角度输出值,若磁编码器的前一个角度输出值小于第n个角度参考点,并且紧邻的后一个角度输出值大于第n个角度参考点/>,则记录为磁编码器输出后一个角度输出值时的时间,以作为磁编码器的角度输出值经过每个角度参考点时的时间点。
一个实施例中,步骤S01,还可以通过如下方法获得磁编码器的角度输出值经过每个角度参考点时的时间点:
监测磁编码器的角度输出值,并记录磁编码器连续输出两个角度输出值时的时间,若磁编码器的前一个角度输出值小于第n个角度参考点,并且紧邻的后一个角度输出值大于第n个角度参考点/>,则对磁编码器输出前后两个角度输出值时记录的时间进行平均或加权平均,以作为磁编码器的角度输出值经过每个角度参考点时的时间点。
上面两个实施例介绍了如何获得磁编码器的角度输出值经过每个角度参考点时的时间点。
下面结合说明书附图6进行说明,图6所示为应用本发明实施例提供的自校准方法的电路原理框图。
具体地,参考图6,本实施例中,转轴旋转的过程中,磁编码器的角度输出值ang[i]会持续的对外输出,并分为两路输出,ang[i]的一路输出传输到一过参考点检测模块50,另一路输出传输到第一使能开关60。以角度参考点ANG[8]为例,若磁编码器的前一个角度输出值小于第8个角度参考点,并且紧邻的后一个角度输出值大于第8个角度参考点/>,此时,过参考点检测模块50闭合第一使能开关,并通过时间戳寄存器模块70中的时间戳寄存器TS[8]记录磁编码器输出后一个角度输出值时的时间,以作为磁编码器的角度输出值经过角度参考点ANG[8]时的时间点,并通过时间戳寄存器TS[8]进行记录。又或者,磁编码器的前一个角度输出值小于第8个角度参考点/>,并且紧邻的后一个角度输出值大于第8个角度参考点/>,则对磁编码器输出前后两个角度输出值时记录的时间进行平均或加权平均,过参考点检测模块50闭合第一使能开关,并通过时间戳寄存器模块70中的时间戳寄存器TS[8]记录磁编码器输出平均后的时间,以作为磁编码器的角度输出值经过角度参考点ANG[8]时的时间点,并通过时间戳寄存器TS[8]进行记录。
上述两个实施例中,对如何获得磁编码器的角度输出值经过角度参考点时的时间点,并通过时间戳寄存器TS[8]进行记录进行说明,对于其他角度参考点,均可以参照上述方法获得磁编码器的角度输出值经过每个角度参考点时的时间点,并通过相应的时间戳寄存器进行记录,在此不再赘述。
继续参考图6,如此,时间戳寄存器模块70内的各个时间戳寄存器{TS[0],TS[1]…TS[n-1],TS[n]…TS[N-1]}持续地更新各个角度参考点的时间戳。对于任一个角度参考点ANG[n],时间戳寄存器模块70同时对平均周期计算模块80和稳定检测模90块持续地输出角度参考点ANG[n]的周期P[n],平均周期计算模块80根据传输过来的角度参考点ANG[n]的每个周期P[n],计算转轴的平均周期(平均周期计算的方法可以参照前文所述,例如是对P[n]做一次一阶无限冲击响应(IIR)滤波,即: ),此外,稳定检测模块90对磁编码器的稳定性进行持续地检测,例如,可以是通过计算式进行判断,若满足该计算式,则认为磁编码器处于稳定状态,其中P[n]为通过时间戳寄存器模块70传递过来的参考点ANG[n]的每个周期。
当磁编码器处于稳定状态时,第二使能开关100闭合,校准参数点计算模块110内的各个角度参考点的非线性误差参考值{ref[0],ref [1]…ref [n-1],ref [n]…ref [N-1]}参照步骤S03~S05描述的方法进行更新并输出,再此不再赘述。
需要说明的是,步骤S03~S05描述的非线性误差参考值{ref[0],ref [1]…ref[n-1],ref [n]…ref [N-1]},及N个新的非线性角度误差参考值:{[0],/>[1]…/>[n-1],/>[n]…/>[N-1]},依次进行滤波,得到N个滤波后的值:{ref`[0],ref `[1]…ref `[n-1],ref` [n]…ref `[N-1]}。以上各个数值由于是不断更新的,可以在非线性误差参考值模块111上不断地迭代更新,而参考点的修正值:{/>[0],/>[1]…/>[n-1],/>[n]…/>[N-1]}则存储在修正值模块112。
需要说明的是,当磁编码器处于不稳定状态时,第二使能开关100打开,校准参数点计算模块110内的各个角度参考点的非线性误差参考值不进行更新和对外输出。
需要注意的是,磁编码器的输出是否稳定,与电机转速是否稳定,并非同一概念。前者主要由磁编码器本身特性及运行环境决定,后者反映电机是否在一定时间间隔内处于匀速转动状态。在本发明的实施例中,可以先判断电机转速是否稳定,再判断磁编码器输出是否稳定,再进行后续计算以校准磁编码器。对于经额外测试可以确定输出非常稳定的磁编码器,也可以不判断磁编码器输出是否稳定,也就是判断电机转速稳定后,即进行后续计算。对于定速转动的电机,由于本发明实施例的方法可以随时间无限进行下去,也可以对电机是否稳定(即电机是否处于匀速转动状态)不做判断,直接进行后续计算。这些步骤皆由电机系统中或磁编码器内部的电路和/或模块执行,对于电机的操作者来说完全无感。
本领域技术人员可以理解,本发明实施例的方法可以在电机转动的一定时间内运行,该一定时间可以根据需要设定或随时选定;也可以随时间无限进行下去,对于定速转动的电机,随时间无限进行下去可以最大发挥IIR的滤波功能,从而获得非常精准的非线性误差校正值。
一个实施例中,参考图7,图7所示为本发明实施例提供的磁编码器的电路原理框图。
图7所示的实施例,提供一种磁编码器30,包括磁传感器31以及用于信号处理的信号处理电路40,所述信号处理电路40用于执行所述的磁编码器30的校准方法。
一个实施例中,参考图3,提供一种电机10,所述电机10配设有磁编码器30,所述磁编码器30相对于所述电机10的定子固定,所述电机10的转轴11设有磁体20,所述磁体20随所述转轴11一起同步转动,所述磁编码器30用于检测并输出所述磁体20的旋转角度,所述信号处理电路40用于执行所述的磁编码器的自校准方法。
本领域技术人员可以理解,磁编码器30在电机10上的设置方式有多种,皆可运行本发明实施例公开的校准方法。本发明实施例公开的校准方法可以通过多种方式执行,可以在通用处理芯片中执行,可以在经嵌入式编程后的芯片中执行,可以在经硬件编程后的芯片中执行,可以在专用处理芯片中执行,还可以使用专门设计的处理电路来执行。在本申请文件中,以上用于实现本发明实施例的各种芯片、电路统称为信号处理电路。根据本发明实施例的公开,技术人员很容易通过以上各种方式来实现信号处理电路。而且,本发明实施例公开的校准方法可以在一个电路/模块中执行,也可以由多个电路和/或模块互相配合而执行。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
Claims (18)
1.一种磁编码器的自校准方法,所述磁编码器用于检测并输出转轴的旋转角度,转轴的周期为P,其特征在于,包括:
步骤1,在0~360度上依次设置N个角度参考点,每个角度参考点对应具有1个非线性角度误差参考值,设置N个时间戳寄存器,所述时间戳寄存器中的每个对应地记录N个角度参考点中的其中一个所述角度参考点的时间戳,其中,每个角度参考点的时间戳为磁编码器的角度输出值经过每个角度参考点时的时间点;
步骤2,确定转轴转动是否处于匀速转动状态,若是,则进入步骤3;
步骤3,获得在先角度参考点对应的非线性角度误差参考值;
步骤4,基于在先角度参考点和在后角度参考点所对应的时间戳寄存器中记录的时间戳的差值、转轴的周期P,及在先角度参考点对应的非线性角度误差参考值,计算在后角度参考点的新的非线性角度误差参考值;
步骤5、基于参考点新的非线性角度误差参考值输出对应的修正值。
2.如权利要求1所述的磁编码器的自校准方法,其特征在于,所述方法在步骤3之前,进一步包括:
基于时间戳寄存器所记录的信息确定磁编码器的输出是否稳定,若是,则进入步骤3。
3.如权利要求1所述的磁编码器的自校准方法,其特征在于,步骤4包括如下步骤:通过两个时间戳寄存器的时间戳差值、转轴的周期P来计算转轴所转动的实际的角度,即利用下列计算式进行计算:
,
其中,表示两个时间戳寄存器的时间戳差值/>内转轴转动的实际角度,P为转轴转动一圈的周期,其中x为自然数,且0<x≤n。
4.如权利要求3所述的磁编码器的自校准方法,其特征在于,
N个角度参考点为均匀设置,且步骤4进一步包括如下步骤:通过下列计算式进行计算:
,
其中,为在后角度参考点/>对应的新的非线性角度误差参考值,为在两个时间戳寄存器记录的时间戳/>之间转轴转动的实际角度,/>表示在先角度参考点对应的非线性角度误差参考值。
5.如权利要求1所述的磁编码器的自校准方法,其特征在于,步骤5进一步包括对新的非线性角度误差参考值进行滤波计算的步骤。
6.如权利要求5所述的磁编码器的自校准方法,其特征在于,所述对新的非线性角度误差参考值进行滤波计算的步骤,具体为:
基于参考点ANG[n]的非线性角度误差参考值ref [n]和新的非线性角度误差参考值进行滤波计算,具体为通过IIR滤波计算。
7.如权利要求5所述的磁编码器的自校准方法,其特征在于,通过IIR滤波计算,具体通过下列计算式进行:
其中为/>滤波后的值,/>为IIR滤波器系数,且0</>≤1。
8.如权利要求5所述的磁编码器的自校准方法,其特征在于,依次对各角度参考点的新的非线性角度误差参考值进行滤波计算后,得到对应的滤波后的非线性角度误差参考值,并用所述滤波后的非线性角度误差参考值ref`[n]更新所述非线性角度误差参考值/>。
9.如权利要求8所述的磁编码器的自校准方法,其特征在于,步骤5中还包括对N个滤波后的值{ref`[0],ref`[1]…ref`[n-1],ref`[n]…ref`[N-1]}计算每个参考点的平均修正误差参考值,即:
,
其中,。
10.如权利要求9所述的磁编码器的自校准方法,其特征在于,步骤5中基于参考点新的非线性角度误差参考值输出对应的修正值,具体通过以下计算式进行:
,
其中,表示参考点的修正值。
11.如权利要求7所述的磁编码器的自校准方法,其特征在于,的取值为/>,且q为大于等于0的整数。
12.如权利要求2所述的磁编码器的自校准方法,其特征在于,步骤2,基于时间戳寄存器所记录的信息评判磁编码器的输出是否稳定,具体地通过如下方法进行:
通过两个角度参考点所对应的时间戳寄存器的时间戳差值,计算转轴的周期,并计算各个周期之间的差异性大小来判断磁编码器的输出是否稳定。
13.如权利要求12所述的磁编码器的自校准方法,其特征在于,步骤2,所述计算转轴的周期具体通过如下方式进行:转轴转到第m个周期时,对于参考点ANG [n],设置参数P(n,m)为计算得到的转轴周期,TS(n,m)表示磁编码器的角度输出值在第m个周期经过参考点ANG [n]时记录的时间戳,其中:
其中, m为自然数。
14.如权利要求2所述的磁编码器的自校准方法,其特征在于,基于时间戳寄存器所记录的信息确定磁编码器的输出是否稳定,具体通过如下方法进行:通过相邻两个时间戳寄存器的时间戳差值TS[n]与TS[n-1]的差值,与对应相邻两个参考点ANG[n-1]、ANG [n]之间的角度值的关系,通过以下计算式确定磁编码器是否处于稳定状态:
,
若满足上述计算式(8),则表示磁编码器处于稳定状态,可以进行后续步骤,其中k的取值为0<k<1。
15.如权利要求1所述的磁编码器的自校准方法,其特征在于,步骤1中,通过如下方法获得磁编码器的角度输出值经过每个角度参考点时的时间点:
监测磁编码器的角度输出值,若磁编码器的前一个角度输出值小于第n个角度参考点,并且紧邻的后一个角度输出值大于第n个角度参考点/>,则记录为磁编码器输出后一个角度输出值时的时间,以作为磁编码器的角度输出值经过每个角度参考点时的时间点。
16.如权利要求1所述的磁编码器的自校准方法,其特征在于,步骤1中,通过如下方法获得磁编码器的角度输出值经过每个角度参考点时的时间点:
监测磁编码器的角度输出值,并记录磁编码器连续输出两个角度输出值时的时间,若磁编码器的前一个角度输出值小于第n个角度参考点,并且紧邻的后一个角度输出值大于第n个角度参考点/>,则对磁编码器输出前后两个角度输出值时记录的时间进行平均或加权平均,以作为磁编码器的角度输出值经过每个角度参考点时的时间点。
17.一种磁编码器,包括磁传感器以及用于信号处理的信号处理电路,其特征在于,所述信号处理电路用于执行如权利要求1~16任一项所述的磁编码器的自校准方法。
18.一种电机,其特征在于,所述电机配设有磁编码器和信号处理电路,所述磁编码器相对于所述电机的定子固定,所述电机的转轴设有磁体,所述磁体随所述转轴一起同步转动,所述磁编码器用于检测并输出所述磁体的旋转角度,所述信号处理电路用于执行如权利要求1~16任一项所述的磁编码器的自校准方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311457221.7A CN117168530B (zh) | 2023-11-03 | 2023-11-03 | 磁编码器的自校准方法、磁编码器及电机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311457221.7A CN117168530B (zh) | 2023-11-03 | 2023-11-03 | 磁编码器的自校准方法、磁编码器及电机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117168530A CN117168530A (zh) | 2023-12-05 |
CN117168530B true CN117168530B (zh) | 2024-01-26 |
Family
ID=88932202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311457221.7A Active CN117168530B (zh) | 2023-11-03 | 2023-11-03 | 磁编码器的自校准方法、磁编码器及电机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117168530B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117782187B (zh) * | 2024-02-23 | 2024-05-07 | 泉州昆泰芯微电子科技有限公司 | 一种编码器的非线性误差修正方法及编码器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109764880A (zh) * | 2019-02-19 | 2019-05-17 | 中国科学院自动化研究所 | 紧耦合车辆轮子编码器数据的视觉惯性测程方法及系统 |
CN113739828A (zh) * | 2020-05-29 | 2021-12-03 | 上海禾赛科技有限公司 | 测量光电编码器的码盘的角度的方法、电路、设备和介质 |
CN115979324A (zh) * | 2022-12-29 | 2023-04-18 | 上海兴感半导体有限公司 | 一种磁编码器的非线性校准方法及装置 |
CN116148824A (zh) * | 2023-04-17 | 2023-05-23 | 机科发展科技股份有限公司 | 一种激光无人叉车导航参数自动校准系统及方法 |
CN116892970A (zh) * | 2023-09-11 | 2023-10-17 | 泉州昆泰芯微电子科技有限公司 | 基于时间戳寄存器评判磁编码器稳定性的方法及电机 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840372B2 (en) * | 2007-07-06 | 2010-11-23 | The University Of British Columbia | Self-calibration method and apparatus for on-axis rotary encoders |
US20230194315A1 (en) * | 2021-12-22 | 2023-06-22 | Gm Cruise Holdings Llc | Rotary encoder calibration |
-
2023
- 2023-11-03 CN CN202311457221.7A patent/CN117168530B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109764880A (zh) * | 2019-02-19 | 2019-05-17 | 中国科学院自动化研究所 | 紧耦合车辆轮子编码器数据的视觉惯性测程方法及系统 |
CN113739828A (zh) * | 2020-05-29 | 2021-12-03 | 上海禾赛科技有限公司 | 测量光电编码器的码盘的角度的方法、电路、设备和介质 |
CN115979324A (zh) * | 2022-12-29 | 2023-04-18 | 上海兴感半导体有限公司 | 一种磁编码器的非线性校准方法及装置 |
CN116148824A (zh) * | 2023-04-17 | 2023-05-23 | 机科发展科技股份有限公司 | 一种激光无人叉车导航参数自动校准系统及方法 |
CN116892970A (zh) * | 2023-09-11 | 2023-10-17 | 泉州昆泰芯微电子科技有限公司 | 基于时间戳寄存器评判磁编码器稳定性的方法及电机 |
Non-Patent Citations (4)
Title |
---|
关节式三坐标测量机系统误差的补偿及其实验;吴汉欣, 张启先, 郑时雄;机器人(第05期);51-56 * |
吴汉欣,张启先,郑时雄.关节式三坐标测量机系统误差的补偿及其实验.机器人.1988,(第05期),51-56. * |
基于二次判决的差分匹配滤波器时间戳估计;宫峰勋;张万红;马艳秋;;中国民航大学学报(第01期);14-17, 22 * |
基于状态方程磁电编码器角度误差主动监督补偿方法研究;王磊;吴殿昊;李玉强;张永德;潘巍;;仪器仪表学报(第06期);96-107 * |
Also Published As
Publication number | Publication date |
---|---|
CN117168530A (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117168530B (zh) | 磁编码器的自校准方法、磁编码器及电机 | |
JP3826207B2 (ja) | 自己校正機能付き角度検出器 | |
US5930905A (en) | Method and device for angular measurement of a rotatable body | |
JP5038861B2 (ja) | 位置測定装置 | |
EP1830155A1 (en) | Rotation angle detection device and rotation angle correction method | |
US6532791B2 (en) | Method for increasing the positioning accuracy of an element which is movably arranged relative to a stator | |
US20120068694A1 (en) | Method of detecting absolute rotational position | |
US6640609B1 (en) | Spectral method for calibrating accelerometers | |
JP5288320B2 (ja) | 高速回転体の回転バランス計測装置及び方法 | |
JP2008051507A (ja) | エンコーダ信号の補正回路 | |
JP7363006B2 (ja) | 校正対象エンコーダの校正値生成方法、及び校正対象エンコーダの校正値生成システム | |
JP2006220529A (ja) | 絶対回転角度およびトルク検出装置 | |
JP2006029937A (ja) | 回転角度検出装置の回転角補正方法 | |
CN109804225B (zh) | 用于确定轴的绝对旋转角度的传感器系统、用于确定轴的绝对旋转角度的方法以及具有传感器系统的车辆 | |
JP2005181315A (ja) | 磁気位置センサ装置および方法 | |
JP2005181313A (ja) | 磁気位置センサ装置および方法 | |
JP2007064771A (ja) | エンコーダの誤差補正装置 | |
JP4797609B2 (ja) | 回転角度検出装置の温度特性補正方法および回転角度検出装置 | |
CN116892970B (zh) | 基于时间戳寄存器评判磁编码器稳定性的方法及电机 | |
US20020171417A1 (en) | Angle detector with magnetoresistive sensor elements | |
CN108196092B (zh) | 离心机工作半径标定方法、系统以及加速度计校准方法 | |
US11015958B2 (en) | Initialization method and initialization device | |
JP4794509B2 (ja) | レゾルバを用いて回転体の回転位置を検出するための装置 | |
CN111412939B (zh) | 用于编码器的实时校正方法及其系统 | |
CN117782187B (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 |