CN117589206A - 编码器的位置处理方法、编码器和计算机可读存储介质 - Google Patents
编码器的位置处理方法、编码器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117589206A CN117589206A CN202311574132.0A CN202311574132A CN117589206A CN 117589206 A CN117589206 A CN 117589206A CN 202311574132 A CN202311574132 A CN 202311574132A CN 117589206 A CN117589206 A CN 117589206A
- Authority
- CN
- China
- Prior art keywords
- inner ring
- sector
- signal
- outer ring
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000005192 partition Methods 0.000 claims description 93
- 230000006870 function Effects 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 38
- 238000010606 normalization Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 13
- 238000005314 correlation function Methods 0.000 claims description 12
- 238000000638 solvent extraction Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 description 13
- 239000002184 metal Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000001228 spectrum Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000001143 conditioned effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000010363 phase shift Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000010183 spectrum analysis Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003171 anti-complementary effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D5/00—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
- G01D5/12—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本申请涉及一种编码器的位置处理方法、编码器和计算机可读存储介质。方法包括:应用于编码器,编码器包括内圈和外圈,内圈和外圈均包括一个发射线圈和至少两个接收线圈;该方法包括:获取内圈信号,内圈信号包括内圈正弦信号和内圈余弦信号;基于内圈正弦信号和内圈余弦信号确定内圈位置;基于内圈位置和扇区对应的位置,确定内圈位置所对应的当前扇区;获取外圈信号,外圈信号包括外圈正弦信号和外圈余弦信号;基于外圈正弦信号和外圈余弦信号确定外圈位置;基于当前扇区和外圈位置,确定编码器的当前位置。采用上述编码器的位置处理方法能够提高编码器输出位置的准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其是一种编码器的位置处理方法、编码器和计算机可读存储介质。
背景技术
在工业发达并将持续发展的今天,工程技术人员对高精度以及高可靠性测量装置的需求越来越大。角位置与角速度测量装置是这些需求旺盛的测量装置中的一类。角位置与角速度测量装置在工业中使用十分广泛,尤其是在电机控制领域。高性能的伺服电机控制要求测量装置提供高精度以及高可靠性的位置与角速度测量。
而随着时代的发展,工业生产对角位置测量的要求越来越高,对角位置测量的高精度、快响应以及较强抗干扰性等严格要求使得一部分传统的角位置传感器无法较好地适应当今的产品需求。传统的编码器输出的位置不准确。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高编码器输出的位置准确性的编码器的位置处理方法、编码器和计算机可读存储介质。
一种编码器的位置处理方法,应用于编码器,所述编码器包括内圈和外圈,所述内圈和所述外圈均包括一个发射线圈和至少两个接收线圈;所述方法包括:
获取内圈信号,所述内圈信号包括内圈正弦信号和内圈余弦信号;
基于所述内圈正弦信号和所述内圈余弦信号确定内圈位置;
基于所述内圈位置和扇区对应的位置,确定所述内圈位置所对应的当前扇区;
获取外圈信号,所述外圈信号包括外圈正弦信号和外圈余弦信号;
基于所述外圈正弦信号和所述外圈余弦信号确定外圈位置;
基于所述当前扇区和所述外圈位置,确定所述编码器的当前位置。
一种编码器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例中各方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中各方法的步骤。
上述编码器的位置处理方法、编码器和计算机可读存储介质,基于含有内外线圈的编码器进行位置处理,通过内圈正弦信号和内圈余弦信号确定内圈位置,基于外圈正弦信号和外圈余弦信号确定外圈位置,并计算内圈位置所对应的当前扇区,基于当前扇区和外圈位置确定编码器的当前位置,分别进行了粗定位以及细定位,提高编码器输出的位置的准确性。
附图说明
图1为一个实施例中正弦信号和余弦信号的示意图;
图2为一个实施例中编码器的位置处理方法的流程示意图;
图3为一个实施例中根据表1画出的解算曲线示意图;
图4为另一个实施例中解算曲线示意图;
图5为一个实施例中扇区调整的原理示意图;
图6为一个实施例中拟合函数的曲线示意图;
图7为另一个实施例中编码器的角度处理方法示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
可以理解,以下实施例中的“连接”,如果被连接的电路、模块、单元等相互之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在一个实施例中,内圈是指编码器上靠近中心的一组线圈。内圈包括一个发射线圈和至少两个接收线圈。外圈是指编码器上远离中心的一组线圈。外圈同样包括一个发射线圈和至少两个接收线圈。以两个接收线圈为例,一个接收线圈用于产生正弦信号,另一个接收线圈用于产生余弦信号。那么内圈接收线圈所产生的信号即称为内圈信号,包括内圈正弦信号和内圈余弦信号。外圈接收线圈所产生的信号即称为外圈信号,包括外圈正弦信号和外圈余弦信号。即,内圈信号和外圈信号均为接收线圈所产生的信号。上述各信号均为电压信号。内圈位置是指内圈所指示的物体的位置。位置可理解为角度,也可以是直线位移等。本申请各实施例中均以位置为角度为例进行说明。
先介绍一下电感式编码器的基本原理:利用涡流的物理原理来检测在一组线圈上方移动的金属靶(即扇区)的位置。
首先位置传感器芯片会将交流电流输入到发射机线圈中并产生交变磁场。磁场在接收器线圈中感应出电压。在没有金属靶的情况下,由于线段之间的抗串行连接及平衡,对感应电压补偿后在每对端口上实现零输出。
如果将金属靶放置在线圈上方:
a.磁场在金属靶材的表面感应出涡流。
b.涡流产生反磁场,从而降低了下方的总磁通密度。
c.降低目标下方接收器线圈区域中感应的电压,从而在反串行线圈中产生电压不平衡。
d.输出电压信号,其幅度和极性随目标位置而改变。
位置传感器芯片对接收到的信号进行同步解调,然后对其进行滤波和输出以进行外部信号处理。由于两个接收器线圈的π/2相移,输出信号相对于目标位置也具有π/2相移,从而生成正弦信号和余弦信号。
如图1所示,为一个实施例中正弦信号和余弦信号的示意图。图1中以一个周期为例进行说明。图1的上图是内圈接收线圈所产生的电压信号,下图是外圈接收线圈所产生的电压信号。上下图中加粗的信号为正弦信号,未加粗的为余弦信号。由图1可知,在内圈信号的一个周期内,对应外圈N个外圈信号周期,也对应N个扇区。其中N≥2。扇区总个数N根据编码器的硬件确定,N也可为极对数。在一个外圈的扇区内,内圈角度为0~2π。本申请各实施例中均以N=4为例进行说明。那么一个内圈信号周期所表示的角度是2π,一个外圈信号周期以及一个扇区所对应的角度均是π/2。
基于此,如图2所示,为一个实施例中编码器的位置处理方法的流程示意图,包括以下步骤:
步骤202,获取内圈信号,内圈信号包括内圈正弦信号和内圈余弦信号。
具体地,当物体在编码器检测范围内时,编码器接收线圈会产生内圈信号和外圈信号,并且物体在不同的位置,线圈所产生的信号幅度有所不同。
内圈正弦信号和内圈余弦信号均可以是经过归一化处理后的信号。归一化处理即除去内圈信号的偏置以及将内圈正弦信号和内圈余弦信号的幅值调节为相匹配。
步骤204,基于内圈正弦信号和内圈余弦信号确定内圈位置。
其中,内圈位置是指内圈所指示的物体的位置。内圈位置可以是内圈机械角度,用于表示绝对角度。内圈位置取值范围为0~2π。
具体地,将内圈正弦信号和内圈余弦信号输入位置解算规则,获得内圈位置。其中,位置解算规则为:
Position内=arctan(Vsin内/Vcos内)
Vsin内表示内圈正弦信号的电压值,Vcos内表示内圈余弦信号的电压值。
步骤206,基于内圈位置和扇区对应的位置,确定内圈位置所对应的当前扇区。
具体地,扇区对应的位置指的是一个扇区也即一个外圈信号周期所表示的位置。以扇区对应的位置为π/2为例。当前扇区表示当前位于哪个扇区。并且当前扇区是整数,取值为0~N-1(扇区总个数N),如0~3。即当前扇区可位于扇区0、扇区1、扇区2或者扇区3。
内圈位置与扇区对应的位置之比取整后即为内圈位置所对应的当前扇区。例如,内圈位置为2π/3,扇区对应的位置为π/2,当前扇区=[2π/3/(π/2)]=1。([x]为取整)。
步骤208,获取外圈信号,外圈信号包括外圈正弦信号和外圈余弦信号。
具体地,外圈正弦信号和外圈余弦信号均可以是经过归一化处理后的信号。归一化处理即除去外圈信号的偏置以及将外圈正弦信号和外圈余弦信号的幅值调节为相匹配。
步骤210,基于外圈正弦信号和外圈余弦信号确定外圈位置。
其中,外圈位置可以是外圈相对角度,不表示机械角度。外圈位置取值范围为0~2π。
具体地,将外圈正弦信号和外圈余弦信号输入位置解算规则,获得外圈位置。其中,位置解算规则为:
Position外=arctan(Vsin外/Vcos外)
Vsin外表示外圈正弦信号的电压值,Vcos外表示外圈余弦信号的电压值。一般情况下,每个外圈信号周期内,外圈位置的范围均在0~2π范围内。而一个内圈信号周期对应N个外圈信号周期,因此在一个内圈信号周期内,外圈信号周期有N个0~2π
步骤212,基于当前扇区和外圈位置,确定编码器的当前位置。
具体地,内圈位置算出的是粗略位置,外圈位置可对粗略位置进行进一步地细化。基于当前扇区和扇区对应的位置,获得粗定位位置。外圈位置与扇区总个数N的比值,获得细定位位置。粗定位位置和细定位位置之和,即为编码器的当前位置。
本实施例中,基于含有内外线圈的编码器进行位置处理,通过内圈正弦信号和内圈余弦信号确定内圈位置,基于外圈正弦信号和外圈余弦信号确定外圈位置,并计算内圈位置所对应的当前扇区,基于当前扇区和外圈位置确定编码器的当前位置,分别进行了粗定位以及细定位,提高编码器输出的位置的准确性。
在一个实施例中,基于内圈正弦信号和内圈余弦信号确定内圈位置,包括:确定内圈信号对应的当前内圈分区;获取当前内圈分区对应的位置解算规则;基于当前内圈分区以及对应的位置解算规则,对内圈正弦信号和内圈余弦信号进行解算,获得内圈位置。
其中,当前内圈分区可根据需求分。具体当前内圈分区可以是8个。如内圈分区有[0,π/4)、[π/4,π/2)、[π/2,3π/4)、[3π/4,π)、[π,5π/4)、[5π/4,3π/2)、[3π/2,7π/4)、[7π/4,2π)一共8个,每π/4划分一个区间。
编码器可结合内圈正弦信号和内圈余弦信号确定内圈信号对应的当前内圈分区。
每个内圈分区均对应有一个位置解算规则。不同的内圈分区对应的位置解算规则可以相同,也可以不相同。内圈分区对应的位置解算规则用于在π/2倍数的位置避免出现无穷大的结果。即在π/2倍数的范围内将tan修改为cot或者-cot的算法。如在π/2和3π/2的位置附近,采用包含余切关系式的位置解算规则。最终获得的内圈位置在内圈分区对应的位置范围内。
表1
分区编号 | 分区 | 位置解算规则 |
0 | [0,π/4] | Position=arctan(Vsin/Vcos) |
1 | (π/4,π/2] | Position=arccot(Vcos/Vsin) |
2 | (π/2,3π/4] | Position=arccot(-Vcos/Vsin) |
3 | (3π/4,π] | Position=arctan(-Vsin/Vcos) |
4 | (π,5π/4] | Position=arctan(Vsin/Vcos) |
5 | (5π/4,3π/2] | Position=arccot(Vcos/Vsin) |
6 | (3π/2,7π/4] | Position=arccot(-Vcos/Vsin) |
7 | (7π/4,2π) | Position=arctan(-Vsin/Vcos) |
图3为一个实施例中根据表1画出的解算曲线示意图。由图3可以看出,Vsin/Vcos的示意图可如图3所示,之后再进行反正切或者反余切,即可获得内圈位置或外圈位置。
图4为另一个实施例中解算曲线示意图。由图4可以看出,仅需在π/2和3π/2的分区内避免出现无穷大的结果即可。位置解算规则不限于上述几种方式。
基于当前内圈分区对应的位置解算规则对内圈正弦信号和内圈余弦信号进行解算,确定处于该当前内圈分区内的位置,获得内圈位置。例如,当前内圈分区是1,即处于[π/4,π/2);基于内圈位置解算规则Position=arccot(Vcos/Vsin),可得到内圈位置;而由于当前内圈分区是1,因此解算的范围是[π/4,π/2),解算出的内圈位置位于[π/4,π/2)区间内。
可以理解的是,表1的分区以及对应的位置解算规则以及图3和图4,可适用于内圈信号,也可适用于外圈信号。例如,基于外圈正弦信号和外圈余弦信号确定外圈位置,包括:确定外圈信号对应的当前外圈分区;获取当前外圈分区对应的位置解算规则;基于当前外圈分区以及对应的位置解算规则,对外圈正弦信号和外圈余弦信号进行解算,获得外圈位置。
本实施例中,在一些分区内按照传统的方式解算出的位置误差较大,通过确定内圈信号对应的当前内圈分区,获得当前内圈分区对应的位置解算规则,基于当前内圈分区已经对应的位置解算规则,对内圈正弦信号和内圈余弦信号进行解算,获得内圈位置,可减少误差,提高位置的准确性。
在一个实施例中,确定内圈信号对应的当前内圈分区,包括:
确定内圈信号的电压值所满足的分区条件,将满足的分区条件对应的内圈分区作为当前内圈分区。
其中,分区可根据需求设置。如以π/4的间隔划分区间。如表2所示,为分区条件和当前内圈分区的表格示意。确定电压值所满足的分区条件是指正弦信号的电压值和余弦信号的电压值共同满足的分区条件。例如,当内圈正弦信号所处的电压值范围[0,√2/2)且内圈余弦信号所处的电压值范围为[√2/2,1)时,位于[0,π/4)区间,即分区0。
表2
可以理解的是,本实施例中的分区条件也可以应用于外圈。基于外圈正弦信号和外圈余弦信号进行分区处理,获得当前外圈分区,包括:确定外圈信号的电压值所满足的分区条件,将满足的分区条件对应的外圈分区作为当前外圈分区。
本实施例中,确定内圈信号的电压值所满足的分区条件,将满足的分区条件对应的内圈分区作为当前内圈分区,能够根据不同的分区选定不同的位置解算规则,从而提高编码器输出的位置的准确性。
在一个实施例中,分区条件包括内圈正弦信号的电压值与0之间的大小关系、内圈余弦信号的电压值与0之间的大小关系以及内圈正弦信号的电压值绝对值与内圈余弦信号的电压值绝对值之间的大小关系。
具体地,以内圈正弦信号的电压值大于0标记为1,内圈余弦信号的电压值大于0标记为1,内圈正弦信号的电压值绝对值大于内圈正弦信号的电压值绝对值为例列表,得到表3。
表3
表3中以Vsin>0、Vcos>0以及|Vsin|>|Vcos|作为条件。可以理解的是,也可以Vsin>0、Vcos>0以及|Vsin|<|Vcos|作为条件。可以Vsin<0、Vcos<0以及|Vsin|>|Vcos|作为条件。可以Vsin>0、Vcos>0以及|Vsin|<|Vcos|作为条件。
表3中110表示的数值是6、111所表示的数值是7……可知,满足不同的条件均有唯一值,也对应唯一一个区间。因此,可以内圈正弦信号的电压值大于或小于0、内圈余弦信号的电压值大于或小于0以及内圈正弦信号的电压值绝对值大于或小于内圈余弦信号的电压值绝对值作为分区的条件。
可以理解的是,本实施例中的分区条件也可以应用于外圈。分区条件包括外圈正弦信号的电压值与0之间的大小关系、外圈余弦信号的电压值与0之间的大小关系以及外圈正弦信号的电压值绝对值与外圈余弦信号的电压值绝对值之间的大小关系。
本实施例中,按照预设的三个条件进行分区,得到的内圈分区具有唯一性,能够有效表示各信号的特征,从而针对不同分区的信号进行不同解算,提高所获得的位置的准确性。
在一个实施例中,不同内圈分区的位置解算规则均以正切相关函数表示;且在π/2对应的内圈分区和3π/2对应的内圈分区均以包含余切关系式的正切相关函数表示。
具体地,由于硬件中计算cot和arccot函数耗时较长,因此,将有关cot函数的位置解算规则均以正切相关函数表示。对应于图3,位置解算规则如表4。避免在π/2和3π/2的位置出现无穷大的情况的具体操作是将位置解算规则中的部分式子设为Vcos/Vsin。
表4
序号 | 分区 | 位置解算规则 |
0 | [0,π/4) | Position=arctan(Vsin/Vcos) |
1 | [π/4,π/2) | Position=π/2-arctan(Vcos/Vsin) |
2 | [π/2,3π/4) | Position=π/2+arctan(-Vcos/Vsin) |
3 | [3π/4,π) | Position=π-arctan(-Vsin/Vcos) |
4 | [π,5π/4) | Position=π+arctan(Vsin/Vcos) |
5 | [5π/4,3π/2) | Position=3π/2-arctan(Vcos/Vsin) |
6 | [3π/2,7π/4) | Position=3π/2+arctan(-Vcos/Vsin) |
7 | [7π/4,2π) | Position=2π-arctan(-Vsin/Vcos) |
可以理解的是,上述分区只要避开在π/2和3π/2的位置出现无穷大的情况即可,例如分区编号0,分区可以改为[0,π/3),分区编号1对应[π/3,π)…等。
可以理解的是,本实施例同样适用于外圈分区。不同外圈分区的位置解算规则均以正切相关函数表示;且在π/2对应的内圈分区和3π/2对应的内圈分区均以包含余切关系式的正切相关函数表示。
本实施例中,在π/2对应的内圈分区和3π/对应的内圈分区采用传统方式解算之后所得的位置误差较大,因此采用包含余切关系式的函数进行计算,即设为设为Vcos/Vsin,以避免在这两处出现无穷大的情况;因硬件解算arccot函数费时较长,因此不同内圈分区的位置解算规则均以正切相关函数表示,并且在π/2和3π/2对应内圈分区以包含余切关系式的正切相关函数表示,能够提高编码器位置的准确性以及提高位置解算效率。
在一个实施例中,基于内圈位置和扇区对应的位置,确定内圈位置所对应的当前扇区,包括:
基于内圈位置和扇区对应的位置,确定内圈位置对应的参考扇区;
当内圈位置未处于外圈信号的扇区衔接范围内时,对参考扇区进行取整,获得当前扇区。
其中,当前扇区用于表示当前处于哪个扇区。参考扇区可以是小数,也可以是整数。
扇区衔接范围用于表示编码器的两个扇区之间的衔接处附近范围。如第1个外圈信号周期和第2个外圈信号周期连接处的范围即为扇区衔接范围,第2个外圈信号周期与第3个外圈信号周期连接处的范围也是扇区衔接范围。扇区衔接范围用数字表示即为k*2π/N±S(k=0,1,2,…,N-1,且k为整数),k取整数,是指第k个周期,S为判断阈值。
那么当内圈位置所处的外圈信号周期位置范围未在k*2π/N±S范围内时,即未在扇区衔接范围内,对参考扇区进行取整,获得当前扇区即可。例如,设内圈位置为3π/4,扇区对应的位置为π/2,以π/2为分隔,S为π/9,即内圈位置在[7π/18,11π/18]、[8π/9,10π/9]、[25π/18,29π/18]和[17π/9,2π]以及[0,π/9]的范围内,即位于扇区衔接范围。那么参考扇区为1.5,而3π/4未处于扇区衔接范围内,因此对1.5取整,当前扇区即为1。
可以理解的是,判断内圈位置是否在外圈信号的扇区衔接范围内,也可以基于参考扇区判断。以上述S=π/9为例,例如参考扇区的小数部分是否在[0,0.22],[0.78,1)的范围内,若不在,则内圈位置未在外圈信号的扇区衔接范围内。其中,0.22=(11π/18)/π/2(扇区对应的位置)-1,0.78=(7π/18)/π/2。
本实施例中,当内圈位置未在扇区衔接范围内时,说明该内圈位置和外圈位置是相匹配的,位置准确,因此可对参考扇区进行取整,获得当前扇区。
在一个实施例中,基于内圈位置和扇区对应的位置,确定内圈位置所对应的当前扇区,还包括:
当内圈位置处于外圈信号的扇区衔接范围内时,确定外圈位置所处的扇区衔接范围;扇区衔接范围包括起始位置范围和末尾位置范围;
当内圈位置和外圈位置均处于起始位置范围内或者均处于末尾位置范围内时,对参考扇区取整,获得当前扇区;
当内圈位置和外圈位置未处于同一位置范围内时,基于参考扇区进行扇区调整,获得当前扇区。
其中,编码器中预设外圈信号的起始位置范围和末尾位置范围。起始位置范围和末尾位置范围的判断方式是位于周期的开始,还是周期的末尾。如[k*2π/N,k*2π/N+S]是起始位置范围,[k*2π/N-S,k*2π/N]是末尾位置范围。[k*2π,k*2π+A]是起始位置范围,[k*2π-A,k*2π]是末尾位置范围。虽然二者的数值不同,但表示的是同一个范围。
例如,内圈位置在[7π/18,11π/18]的扇区衔接范围内,[7π/18,π/2)是末尾位置范围,[π/2,11π/18]是起始位置范围。
具体地,当内圈位置在外圈位置的扇区衔接范围内时,此时外圈位置也处于扇区衔接范围内。判断外圈位置所处的扇区衔接范围的方式是是否在k*2π±A的范围内,其中k*2π±A与k*2π/N±S所表示的扇区衔接范围是一致的。因此在S=π/9、N=4的情况下,A取π/9*4=4π/9。当外圈位置位于[0,4π/9]时,则位于起始位置范围。当外圈位置位于[14π/9,2π]时,则位于末尾位置范围。
当内圈位置和外圈位置处于同一位置范围,即均处于起始位置范围或均处于末尾位置范围时,说明二者相对应,此时扇区的划分是正确的,因此对扇区进行取整,获得实际的当前扇区。
当内圈位置和外圈位置未处于同一位置范围,即其中一个位置处于起始位置范围,另一个处于末尾位置范围时,说明二者不相对应,此时扇区的划分有误,因此需要基于参考扇区进行扇区调整,获得当前扇区。
本实施例中,由于在外圈信号周期的扇区衔接范围内误差较大,因此当内圈位置在扇区衔接范围内时需要进一步判断,而当内圈位置和外圈位置均处于起始位置范围或者均处于末尾位置范围时,二者几乎不受误差影响,因此对参考扇区取整即可;而当受到误差影响时,则会出现内外圈位置所处的位置范围不同的情况,因此需要基于参考扇区进行扇区调整,以获得准确的当前扇区。
在一个实施例中,当内圈位置和外圈位置未处于同一位置范围内时,基于参考扇区进行扇区调整,获得当前扇区,包括:
当内圈位置处于起始位置范围内,且外圈位置处于末尾位置范围内时,对参考扇区进行取整,将取整后的参考扇区调整至前一扇区,获得当前扇区;
当内圈位置处于末尾位置范围内,且外圈位置处于起始位置范围时,对参考扇区进行取整,将取整后的参考扇区调整至后一扇区,获得当前扇区。
具体地,如图5所示,为一个实施例中扇区调整的原理示意图。图5中竖虚线则为周期分隔线,也可称为扇区分隔线。图5中内圈位置①所在的位置处于第二个外圈信号周期的起始位置范围内,而对应的外圈位置①处于第一个外圈信号周期的末尾位置范围内,此时参考扇区假设为1.1,取整后为1,调整至前一扇区,因此当前扇区为0,即内圈完整经过0个扇区。依据外圈位置的结果,0个扇区是正确的。最终计算出的当前位置,即小于π/2。
图5中内圈位置②所在的位置处于第二个外圈信号周期的末尾位置范围内,而对应的外圈位置②处于第三个外圈信号周期的起始位置范围内,此时参考扇区假设为1.9,取整后为1,调整至后一扇区,因此当前扇区为2,即内圈完整经过2个扇区。依据外圈位置的结果,2个扇区是正确的。最终计算出的当前位置,即大于π。
本实施例中,当内圈位置处于起始位置范围内,且外圈位置处于末尾位置范围内时,以外圈位置为准,将取整后的参考扇区调整至前一扇区,即调整至外圈位置所在扇区,获得准确的当前扇区;当内圈位置处于末尾位置范围内,且外圈位置处于起始位置范围时,将取整后的参考扇区调整至后一扇区,即调整至外圈位置所在扇区,从而获得准确的当前扇区。
在一个实施例中,基于当前扇区和外圈位置,确定编码器的当前位置,包括:
确定当前扇区和扇区对应的位置之积,获得粗定位位置;
确定外圈位置和扇区总个数之比,获得细定位位置;扇区总个数是一个内圈信号周期对应外圈信号周期的个数;
确定粗定位位置和细定位位置之和,获得编码器的当前位置。
具体地,粗定位位置是指内圈所表示的位置。细定位位置是外圈所表示的位置。并且当前扇区表示表示当前位于哪个扇区,因此当前扇区和扇区对应的位置之积,则为粗定位位置。外圈位置和N之比,即为外圈在当前外圈信号周期内所表示的绝对位置。粗定位位置和细定位位置之和,即获得编码器的当前位置。
以一个内圈信号周期对应4个外圈信号周期(扇区)为例:
编码器当前位置=当前扇区×π/2+position外/4
本实施例中,通过内外线圈二者信号的相互配合,内圈位置的当前扇区和扇区对应的位置之积,获得粗定位位置,外圈位置和扇区总个数之比获得细定位位置,粗定位位置和细定位位置之和,获得编码器的当前位置,使得编码器所输出的位置更加准确。
在一个实施例中,内圈正弦信号和内圈余弦信号均是经过归一化处理的信号;
获取内圈正弦信号和内圈余弦信号,包括:
基于内圈正弦偏置电压将原内圈正弦信号进行偏置处理,获得内圈正弦信号;
基于内圈余弦偏置电压将原内圈余弦信号进行偏置处理后,基于内圈归一化因子将偏置处理后的原余弦信号进行归一化处理,获得内圈余弦信号。
其中,由于编码器系统以F Hz的频率匀速旋转。那么内圈正余弦的频率为F Hz,正余弦的频率为N*F Hz。为了尽可能的采到实际产生的Vsin和Vcos的幅值,每一个正余弦波都应采集足够的点数,这里假设想要对外圈的每一个正余弦波能够采集到M个点,采集P个正余弦波,每个采样点采样间隔相同,那么采样频率为N*F*M HZ,每采集到M个点就比较得到这M个点的Vsin和Vcos的最大最小值,将P个Vsin和Vcos的最大最小值取平均假设为Vsina、Vsinb、Vcosa、Vcosb。
可以得到Vsin和Vcos的偏置电压:
正弦偏置电压Vsin_offset=(Vsina+Vsinb)/2
余弦偏置电压Vcos_offset=(Vcosa+Vcosb)/2
Vsin和Vcos的幅值:
Vsin_pp=Vsina–Vsinb
Vcos_pp=Vcosa–Vcosb
Vsin和Vcos的归一化因子:
Q=Vsin_pp/Vcos_pp
那么,基于内圈正弦偏置电压将原内圈正弦信号进行偏置处理,获得内圈正弦信号:
V_sin=V_sin-Vsin_offset
基于内圈余弦偏置电压将原内圈余弦信号进行偏置处理后,基于归一化因子将偏置处理后的原余弦信号进行归一化处理,获得内圈余弦信号:
V_cos=Q*(V_cos-Vcos_offset)
可以理解的是,上述也同样适用于外圈信号。
本实施例中,基于偏置电压进行偏置处理,以及将余弦信号和正弦信号二者再次进行归一化处理,减少了误差。
在一个实施例中,该编码器的位置处理方法还包括:获取补偿函数,补偿函数中的函数补偿系数是将待处理位置数列和对应的补偿误差数列进行拟合处理后得到的;补偿误差数列是基于待处理位置数列和参考位置数列确定的;待处理位置数列是编码器所输出的;参考位置数列与待处理位置数列对应;
将当前位置输入补偿函数,获得位置补偿值;
基于位置补偿值对当前位置进行校准,获得目标位置。
具体地,补偿函数预先存储在待校准编码器中。
已知补偿函数为f(x)=a1*sin(b1*x+c1)+a2*sin(b2*x+c2)+a3*sin(b3*x+c3)+a4*sin(b4*x+c4)+a5*sin(b5*x+c5)+a6*sin(b6*x+c6)+a7*sin(b7*x+c7)+a8*sin(b8*x+c8)
并且其中的系数已知,因此x=当前位置,输入后所获得的f(x)值即为位置补偿值。
将当前位置加上该位置补偿值,即获得当前位置对应的目标位置。
本实施例中,通过获取补偿函数,将当前位置输入该补偿函数,获得位置补偿值,基于位置补偿值对当前位置进行校准,获得目标位置,能够准确探测出位置值。
参考位置数列可认为是正确位置的集合。参考位置数列中包括多个参考位置。参考位置具体是光电编码器旋转后所获得的位置。
待处理位置数列包含多个当前位置。当前位置是指待校准编码器基于参考位置旋转后所输出的位置。即一个参考位置对应一个当前位置。在一般情况下,当前位置和参考位置之间具有一定误差。
补偿误差数列中包含多个补偿误差值。待处理位置数列对应的补偿误差数列即一个当前位置具有对应的补偿误差值。
上位机可将待处理位置数列和参考位置数列中各元素分别作差,获得待处理位置数列对应的补偿误差数列。
上位机将待处理位置数列和对应的补偿误差数列进行拟合处理,获得补偿函数以及对应的函数补偿系数。上位机通过将待处理位置数列和对应的补偿误差数列进行正弦函数拟合,获得正弦补偿函数以及对应的函数补偿系数。具体可用sum of sin进行函数拟合。并且可采用多阶正弦函数进行拟合,例如二阶、六阶、七阶、八阶等。经过多次的反复测试,发现使用正弦函数拟合时拟合的效果较好,因此,通过将待处理位置数列和对应的补偿误差序列进行正弦函数拟合,获得的补偿函数准确,从而使得待校准编码器所获得的位置值更加精准。
将待处理位置数列和对应的补偿误差数列进行正弦函数拟合,获得函数补偿系数,包括:
获取第一系数集;第一系数集基于预设数量个占比最高的频率确定;预设数量个占比最高的频率基于频谱函数确定;频谱函数是对待处理位置数列和各待处理位置对应的时间进行快速傅里叶变换得到的;
将待处理位置数列和各待处理位置对应的时间,以及第一系数集进行正弦函数拟合,获得函数补偿系数。
其中,占比最高的频率是指频谱函数所表示的幅值最大所对应的频率。占比最高的频率即主要作用的频率。第一系数集是预先确定的。第一系数集中包含一个或多个第一系数。第一系数是指正弦函数的角频率ω。预设数量与正弦函数拟合的阶数相应。例如,正弦函数拟合是四阶,那么预设数量为4;正弦函数拟合是八阶,那么预设数量为8。
具体地,待处理位置数列是待校准编码器在旋转过程中定时采样输出的,即各待处理位置均有对应的时间,并且各时间不同。将待处理位置和对应的时间作为离散点,进行快速傅里叶变换,获得频谱函数。频谱函数揭示了幅值和频率的关系。幅值越大,说明该频率占的比例越多。基于频谱函数可从中确定预设数量个占比最高的频率。而第一系数b实际上是ω,与频率f相关,ω=2πf;因此得到f,计算ω=2πf,可确定b的值。
因此,在已知第一系数集的情况下,此时正弦函数表达式中仅剩第二系数集和第三系数集未解出,再将待处理位置数列和对应的补偿误差数列进行正弦函数拟合,获得函数补偿系数。
可选地,预设数量可以是8,将待处理位置数列和对应的补偿误差数列,以及第一系数集进行八阶正弦函数拟合,获得函数补偿系数。如图6所示,为一个实施例中拟合函数的曲线示意图。图6中x轴表示位置,y轴表示误差补偿值。黑色的点表示待处理位置与对应的误差补偿值。而曲线则是该补偿函数系数对应的补偿函数。由图6可以看出,拟合所得到的补偿函数基本与误差补偿值相符,说明基于该函数补偿系数进行校准能够很好地减小误差。
在一个实施例中,基于待处理位置数列和参考位置数列,确定待处理位置数列对应的补偿误差数列,包括:
基于待处理位置数列和参考位置数列进行作差处理,获得误差数列;
对误差数列求平均,获得误差平均值;
将误差数列中各元素减去误差平均值,获得补偿误差数列。
本实施例中,基于待处理位置数列和参考位置数列进行作差处理,所获得的误差数列求平均获得误差平均值,再将误差数列中各元素减去误差平均值,获得补偿误差数列,能够减少采样偏置,提高准确性。
在一个实施例中,待处理位置数列是配置光电编码器的主拖系统带动待校准编码器匀速旋转后得到的。
本实施例中,光电编码器的精度较高,能够保证主拖系统带动待校准编码器匀速旋转,因此确定的待处理位置数列和参考位置数列均是准确的,提高进行拟合的数据的准确性。
在一个实施例中,一般的编码器仅有单组线圈,一个金属靶。单组线圈如果仅有一个金属靶,会导致得到的角度精度差,如果增多金属靶的个数虽然会增加精度,但是却无法得到绝对位置,因此本申请实施例中采用两组线圈,一组在内圈,金属靶个数为1,一组在外圈,金属靶个数为N(N>1),既能保证精度又能保证获取到的是绝对位置。
在经过长期使用含有内外线圈的编码器后,进行误差分析,发现有以下几种误差:
误差分析1:由于实际产生的Vsin和Vcos的幅值、相位以及偏置电压并不理想,导致得到角度误差极大。
误差分析2:发现在kπ/2(k为正整数)时由于噪声的幅值较高而带来很大的角度误差。
误差分析3:由于内外圈噪声的影响,计算扇区(即金属靶)时可能会计算错误。
误差分析4:由于内外圈存在一定的耦合同样也会带来误差。
为解决以上的问题,提出了本申请实施例中的编码器角度处理方法。如图7所示,为另一个实施例中编码器的角度处理方法示意图。从角度解算开始具体说明编码器的角度处理过程。
一、归一化处理
内圈正弦偏置电压、内圈余弦偏置电压、内圈归一化因子、外圈正弦偏置电压、外圈余弦偏置电压、外圈归一化因子均预存在编码器中。
基于内圈正弦偏置电压将原内圈正弦信号进行偏置处理,获得内圈正弦信号:
V_sin=V_sin-Vsin_offset
基于内圈余弦偏置电压将原内圈余弦信号进行偏置处理后,基于归一化因子将偏置处理后的原余弦信号进行归一化处理,获得内圈余弦信号:
V_cos=Q*(V_cos-Vcos_offset)
通过进行归一化处理,解决误差分析1中存在的问题,且基于偏置电压进行偏置处理,以及将余弦信号和正弦信号二者再次进行归一化处理,过滤了波形,减少了误差,使得信号更加平滑准确。
二、角度处理
在编码器中,原理上内圈角度或外圈角度:
Position=arctan(Vsin/Vcos)
1.当前角度采样若干次进行滤波,再进行归一化处理。
2.内圈是实际的0~2π输出,外圈是N个0~2π,取N=4也就是一个波形的绝对角度是π/2。N编码器的金属靶数量确定。然而,外圈在计算Position外时,取的是相对角度,即0~2π。
内圈利用Vsin>0、Vcos>0、|Vsin|>|Vcos|这三个条件分为八个区域。如表2所示。
当前取内圈的Vsin和Vcos,利用Vsin>0、Vcos>0、|Vsin|>|Vcos|这三个条件判断属于哪个分区,如分区X。每个分区对应一个角度解算规则,分区是为了找不同的角度解算规则;满足不同条件时就采用不同的角度解算规则算内圈角度position内。如表4所示。通过避免在kπ/2位置的直接使用反正切函数进行解算,能够解决误差分析2提出的问题。
3.同样地,外圈利用Vsin>0、Vcos>0、|Vsin|>|Vcos|这三个条件分为八个区域。如表2所示。
当前取外圈的Vsin和Vcos值,利用Vsin>0、Vcos>0、|Vsin|>|Vcos|这三个条件判断属于哪个分区,如分区X。每个分区对应一个角度解算规则,分区是为了找不同的角度解算规则;满足不同条件时就对应不同的角度解算规则算内圈角度position外。如表4所示。
4.计算当前扇区,一个扇区对应着外圈的一个完整周期,用于表示当前位于哪个扇区,即位于哪个金属靶。
参考扇区=内圈角度/(π/2)其中,扇区主要看金属靶的个数;π/2=2π/靶个数。
角度值在k*2π/N±S(S为判断阈值)内时,也就是在扇区分割线附近时,可能会出现扇区计算错误的问题。因此内圈角度在k*2π/N±S(S为判断阈值)内时,或者说扇区的小数部分在0~0.22或者0.77~1的范围内时,需要根据外圈的角度值position外判断当前扇区,因此:
①判断内圈角度是否在[7π/18,11π/18]、[8π/9,10π/9]、[25π/18,29π/18]和[17π/9,2π]以及[0,π/9]的范围内,即位于扇区衔接范围内。若否,则执行步骤5计算出目标角度。
②若是,确定外圈角度所处的扇区衔接范围。当内圈角度在[7π/18,11π/18]、[8π/9,10π/9]、[25π/18,29π/18]和[17π/9,2π]以及[0,π/9]的范围内时,此时position外应当在0~4π/9的范围内;但若此时position外在7π/9~2π范围内,说明内圈扇区分错了,内圈扇区应该是前一个扇区。
因此当前扇区=取整后的参考扇区-1
③当内圈角度在[7π/18,11π/18]、[8π/9,10π/9]、[25π/18,29π/18]和[17π/9,2π]以及[0,π/9]的范围;但若此时position外在0~4π/9范围内,说明内圈扇区分错了,内圈扇区应该是后一个扇区。
因此当前扇区=取整后的参考扇区+1
通过内外圈角度进行扇区调整,即能够解决误差分析3中所发现的问题。
5.最后是计算编码器的当前角度。
编码器的当前角度:当前扇区×(π/2)+position外/4
三、函数补偿处理
可以理解的是,编码器中预存补偿函数。而补偿函数具体是上位机进行测量后获得的。将当前角度输入补偿函数获得角度补偿值。
以下说明补偿函数和各补偿系数的具体获取方式:
假设编码器旋转一圈,定时计算位置,输出了r个位置值分别为
Xn={X0,X1,X2,…,Xr-1}
将数列Xn传递给上位机,接下来的工作交给上位机来完成。
先以第一个位置值为起始值,以2π/r为公差得到一组数列
Gn={G0,G1,G2,…,Gr-1}
={X0,X0+2π/r,X0+4π/r,…,X0+(r-1)*2π/r}。
误差数列
Hn=Xn-Gn={H0,H1,H2,…,Hr-1}
={X0-G0,X1-G1,X2-G2,…,Xr-1–Gr-1}
计算误差数列的平均值:
H_average=(H0+H1+H2+…+Hr-1)/r
将误差数列Hn的每一个元素都减去平均值得到补偿误差数列Kn={K0,K1,K2,…,Kr-1}
={H0-H_average,H1-H_average,H2-H_average,…,Hr-1-H_average}
这里为了方便展示效果,利用matlab进行函数补偿曲线拟合,x轴为数列Xn,y轴为数列Kn。
经过测试,使用sum of sin进行函数拟合时拟合的效果较好,函数拟合的阶数越高能够抑制的频率点越多。在此选用8阶函数拟合。
拟合公式为:
f(x)=a1*sin(b1*x+c1)+a2*sin(b2*x+c2)+a3*sin(b3*x+c3)+a4*sin(b4*x+c4)+a5*sin(b5*x+c5)+a6*sin(b6*x+c6)+a7*sin(b7*x+c7)+a8*sin(b8*x+c8)
拟合前首先利用FFT(Fast Fourier transform,快速傅里叶变换)进行频谱分析,得到频谱幅值最高的8个点(这里取8个点是因为函数补偿选用的8阶)。经过实际的频谱分析,发现频率较高的点分别是1,9,10,11,20,30,40,80,将这8个点作为初始频率进行曲线拟合。
接下来上位机将函数拟合系数传递给编码器,编码器将归一化参数和函数拟合系数写入内部flash,校准流程完成。
四、得到目标角度。
基于角度补偿值对当前角度进行校准,获得目标角度。通过对当前角度进行校准,能够有效抵消内外圈耦合所带来的误差,以解决误差分析4中发现的问题。
本实施例中,经过归一化处理、角度处理、函数补偿处理后获得的目标角度,大大减少了误差,提高编码器所输出的角度的准确性。
在一个实施例中,一种编码器的位置处理方法,应用于编码器,编码器包括内圈和外圈,内圈和外圈均包括一个发射线圈和至少两个接收线圈。该编码器的位置处理方法包括:
步骤(a1),基于内圈正弦偏置电压将原内圈正弦信号进行偏置处理,获得内圈正弦信号。
步骤(a2),基于内圈余弦偏置电压将原内圈余弦信号进行偏置处理后,基于内圈归一化因子将偏置处理后的原余弦信号进行归一化处理,获得内圈余弦信号。
步骤(a3),确定内圈信号的电压值所满足的分区条件,将满足的分区条件对应的内圈分区作为当前内圈分区;分区条件包括内圈正弦信号的幅值与0之间的大小关系、内圈余弦信号的幅值与0之间的大小关系以及内圈正弦信号的幅值绝对值与内圈余弦信号的幅值绝对值之间的大小关系。
步骤(a4),获取当前内圈分区对应的位置解算规则;不同内圈分区的位置解算规则均以正切相关函数表示;不同内圈分区的位置解算规则均以正切相关函数表示且在π/2对应的内圈分区和3π/2对应的内圈分区均以包含余切关系式的正切相关函数表示。
步骤(a5),基于当前内圈分区以及对应的位置解算规则,对内圈正弦信号和内圈余弦信号进行解算,获得内圈位置。
步骤(a6),基于内圈位置和扇区对应的位置,确定内圈位置对应的参考扇区。
步骤(a7),当内圈位置未处于外圈信号的扇区衔接范围内时,对参考扇区进行取整,获得当前扇区。
步骤(a8),当内圈位置处于外圈信号的扇区衔接范围内时,确定外圈位置所处的扇区衔接范围。扇区衔接范围包括起始位置范围和末尾位置范围。
步骤(a9),当内圈位置和外圈位置均处于起始位置范围内或者均处于末尾位置范围内时,对参考扇区取整,获得当前扇区。
步骤(a10),当内圈位置处于起始位置范围内,且外圈位置处于末尾位置范围内时,对参考扇区进行取整,将取整后的参考扇区调整至前一扇区,获得当前扇区。
步骤(a11),当内圈位置处于末尾位置范围内,且外圈位置处于起始位置范围时,对参考扇区进行取整,将取整后的参考扇区调整至后一扇区,获得当前扇区。
步骤(a12),获取外圈信号,外圈信号包括外圈正弦信号和外圈余弦信号。
步骤(a13),基于外圈正弦信号和外圈余弦信号确定外圈位置。
步骤(a14),确定当前扇区和扇区对应的位置之积,获得粗定位位置。
步骤(a15),确定外圈位置和扇区总个数之比,获得细定位位置。扇区总个数是一个内圈信号周期对应外圈信号周期的个数。
步骤(a16),确定粗定位位置和细定位位置之和,获得编码器的当前位置。
步骤(a17),获取补偿函数,补偿函数中的函数补偿系数是将待处理位置数列和对应的补偿误差数列进行拟合处理后得到的;补偿误差数列是基于待处理位置数列和参考位置数列确定的;待处理位置数列是编码器所输出的;参考位置数列与待处理位置数列对应。
步骤(a18),将当前位置输入补偿函数,获得位置补偿值。
步骤(a19),基于位置补偿值对当前位置进行校准,获得目标位置。
本实施例中,通过上述位置处理方式,大大降低了编码器的误差,输出的位置更加准确。
应该理解的是,虽然上述图2和图5的流程图中各个步骤按照箭头的指示依次显示,步骤(a1)至步骤(a19)中的各个步骤按照标号指示依次显示,但是这些步骤并不是必然按照箭头或者数字指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种编码器,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例中流程。其中,本申请所提供的各实施例中所使用地对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (13)
1.一种编码器的位置处理方法,其特征在于,应用于编码器,所述编码器包括内圈和外圈,所述内圈和所述外圈均包括一个发射线圈和至少两个接收线圈;所述方法包括:
获取内圈信号,所述内圈信号包括内圈正弦信号和内圈余弦信号;
基于所述内圈正弦信号和所述内圈余弦信号确定内圈位置;
基于所述内圈位置和扇区对应的位置,确定所述内圈位置所对应的当前扇区;
获取外圈信号,所述外圈信号包括外圈正弦信号和外圈余弦信号;
基于所述外圈正弦信号和所述外圈余弦信号确定外圈位置;
基于所述当前扇区和所述外圈位置,确定所述编码器的当前位置。
2.根据权利要求1所述的方法,其特征在于,所述基于所述内圈正弦信号和所述内圈余弦信号确定内圈位置,包括:
确定所述内圈信号对应的当前内圈分区;
获取所述当前内圈分区对应的位置解算规则;
基于所述当前内圈分区以及所述对应的位置解算规则,对所述内圈正弦信号和所述内圈余弦信号进行解算,获得内圈位置。
3.根据权利要求2所述的方法,其特征在于,所述确定所述内圈信号对应的当前内圈分区,包括:
确定所述内圈信号的电压值所满足的分区条件,将满足的所述分区条件对应的内圈分区作为当前内圈分区。
4.根据权利要求3所述的方法,其特征在于,所述分区条件包括所述内圈正弦信号的电压值与0之间的大小关系、所述内圈余弦信号的电压值与0之间的大小关系、以及所述内圈正弦信号的电压值绝对值与所述内圈余弦信号的电压值绝对值之间的大小关系。
5.根据权利要求2所述的方法,其特征在于,不同所述内圈分区对应的位置解算规则均以正切相关函数表示,且在π/2对应的内圈分区和3π/2对应的内圈分区均以包含余切关系式的正切相关函数表示。
6.根据权利要求1所述的方法,其特征在于,所述基于所述内圈位置和扇区对应的位置,确定所述内圈位置所对应的当前扇区,包括:
基于所述内圈位置和扇区对应的位置,确定所述内圈位置对应的参考扇区;
当所述内圈位置未处于外圈信号的扇区衔接范围内时,对所述参考扇区进行取整,获得当前扇区。
7.根据权利要求6所述的方法,其特征在于,所述基于所述内圈位置和扇区对应的位置,确定所述内圈位置所对应的当前扇区,还包括:
当所述内圈位置处于所述外圈信号的扇区衔接范围内时,确定所述外圈位置所处的扇区衔接范围;所述扇区衔接范围包括起始位置范围和末尾位置范围;
当所述内圈位置和所述外圈位置均处于所述起始位置范围内或者均处于所述末尾位置范围内时,对所述参考扇区取整,获得当前扇区;
当所述内圈位置和所述外圈位置未处于同一位置范围内时,基于所述参考扇区进行扇区调整,获得当前扇区。
8.根据权利要求7所述的方法,其特征在于,所述当所述内圈位置和所述外圈位置未处于同一位置范围内时,基于所述参考扇区进行扇区调整,获得当前扇区,包括:
当所述内圈位置处于所述起始位置范围内,且所述外圈位置处于所述末尾位置范围内时,对所述参考扇区进行取整,将取整后的参考扇区调整至前一扇区,获得当前扇区;
当所述内圈位置处于所述末尾位置范围内,且所述外圈位置处于所述起始位置范围时,对所述参考扇区进行取整,将取整后的参考扇区调整至后一扇区,获得当前扇区。
9.根据权利要求1所述的方法,其特征在于,所述基于所述当前扇区和所述外圈位置,确定所述编码器的当前位置,包括:
确定所述当前扇区和扇区对应的位置之积,获得粗定位位置;
确定所述外圈位置和扇区总个数之比,获得细定位位置;
确定所述粗定位位置和所述细定位位置之和,获得所述编码器的当前位置。
10.根据权利要求1所述的方法,其特征在于,所述内圈正弦信号和内圈余弦信号均是经过归一化处理的信号;
所述获取内圈正弦信号和内圈余弦信号,包括:
基于内圈正弦偏置电压将原内圈正弦信号进行偏置处理,获得所述内圈正弦信号;
基于内圈余弦偏置电压将原内圈余弦信号进行偏置处理后,基于内圈归一化因子将偏置处理后的原余弦信号进行归一化处理,获得所述内圈余弦信号。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述方法还包括:
获取补偿函数,所述补偿函数中的函数补偿系数是将待处理位置数列和对应的补偿误差数列进行拟合处理后得到的;所述补偿误差数列是基于所述待处理位置数列和参考位置数列确定的;所述待处理位置数列是所述编码器所输出的;所述参考位置数列与所述待处理位置数列对应;
将所述当前位置输入所述补偿函数,获得位置补偿值;
基于所述位置补偿值对所述当前位置进行校准,获得目标位置。
12.一种编码器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311574132.0A CN117589206A (zh) | 2023-11-22 | 2023-11-22 | 编码器的位置处理方法、编码器和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311574132.0A CN117589206A (zh) | 2023-11-22 | 2023-11-22 | 编码器的位置处理方法、编码器和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117589206A true CN117589206A (zh) | 2024-02-23 |
Family
ID=89909467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311574132.0A Pending CN117589206A (zh) | 2023-11-22 | 2023-11-22 | 编码器的位置处理方法、编码器和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117589206A (zh) |
-
2023
- 2023-11-22 CN CN202311574132.0A patent/CN117589206A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397098B2 (en) | Method for detecting errors in a rotating position sensor system having sine and cosine signals | |
CN1773220B (zh) | 编码器输出信号校正设备和方法 | |
CN107830792B (zh) | 用于确定位置测量系统的位置指示器的位置的方法 | |
JP4277887B2 (ja) | エンコーダ信号の補正回路 | |
US20200370877A1 (en) | Magnetic position sensor system, device, magnet and method | |
WO2008020231A2 (en) | Methods of processing encoder signals | |
JP4240090B2 (ja) | エンコーダ信号の補正回路 | |
JPH07174586A (ja) | 増分位置検出器の可動周期目盛盤の絶対位置測定方法及びその装置 | |
US7187309B2 (en) | Angle computation method and apparatus for variable reluctance resolver | |
JP2014025871A (ja) | エンコーダ出力信号補正装置 | |
US10989566B2 (en) | Magnetic sensor system for measuring linear position | |
EP4047323A1 (en) | Inductive angular sensor method and system | |
US10989568B2 (en) | Position detection device and position detection method | |
CN110494716B (zh) | 位置检测装置和位置检测方法 | |
CN106989762B (zh) | 编码器 | |
CN117589206A (zh) | 编码器的位置处理方法、编码器和计算机可读存储介质 | |
US20240128902A1 (en) | Displacement detection device | |
CN115950345A (zh) | 测量数据处理器、位置测量设备和计算机实现的方法 | |
JPH0496131A (ja) | 位置信号の校正装置 | |
CN117589221A (zh) | 编码器校准方法、装置、上位机和存储介质 | |
JP2002315374A (ja) | モータ制御装置 | |
CN107702733B (zh) | 电磁感应式位置检测器 | |
CN112577555A (zh) | 无磁采样、正反向计量的智能水表 | |
CN117948872B (zh) | 一种基于lm法的电感式位置传感器校准方法及校准系统 | |
CN103673917A (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 |