发明内容
针对上述问题,本发明提出一种方案,旨在校正磁电编码器的测量结果,使之在机械位置相同时,即使温度发生变化,测量结果仍然能基本保持不变,因此可以提高磁电编码器的测量精度。
本发明是这样构思的:
一种用于磁电编码器的自校正方法,包括:
测量以获得d轴霍尔值d测量和q轴霍尔值q测量;
利用d轴霍尔值d测量和q轴霍尔值q测量计算角度θ;
根据角度θ查询预先存储的该角度所对应的标准d轴霍尔值d标准和q轴霍尔值q标准;
利用测量得到的d轴霍尔值d测量和q轴霍尔值q测量以及标准d轴霍尔值d标准和q轴霍尔值q标准之间的相关性来校正测量得到的d轴霍尔值d测量和q轴霍尔值q测量;
根据校正后的d轴霍尔值和q轴霍尔值计算角度。
其中,测量得到的d轴霍尔值d测量和q轴霍尔值q测量以及标准d轴霍尔值d标准和q轴霍尔值q标准之间的相关性用下式来表示:
d标准=ω1d测量+ω2
q标准=ω3q测量+ω4
其中,ω1、ω2、ω3、ω4是权重系数;
所述校正包括:利用基于神经元理论的迭代算法计算最佳权重系数。
另一方面,本发明还提出一种用于磁电编码器的自校正装置,该自校正装置用于获得对磁电编码器测量获得的d轴霍尔值和q轴霍尔值进行校正的最佳权重系数,所述自校正装置包括:
参数存储单元,其用于存储初始权重系数和迭代步长T;
误差测度函数计算模块,其计算以权重系数校正的d轴霍尔值和q轴霍尔值与标准的d轴霍尔值和q轴霍尔值之间的误差;
判断模块,其判断误差是否小于预先设定的阈值;
梯度函数计算模块,其用于在所述误差不小于预先设定的阈值时,计算所述误差对当前权重系数的梯度;
权重系数更新模块,其在所述误差小于预先设定的阈值时,输出当前权重系数,作为最佳权重系数;在所述误差不小于预先设定的阈值时,利用所述梯度和迭代步长T更新当前权重系数。
进一步地,本发明也提出了一种磁电编码器,其包括传感器、模数转换器、角度计算模块、存储单元和上述的自校正装置。
优选地,可以采用以下步骤来计算最佳权重系数:
(1)构建下列误差函数,
(2)判断所计算的误差V(k)是否小于预先设定的阈值;
(3)在所述误差小于预先设定的阈值时,输出当前权重系数,作为最佳权重系数;
(4)在所述误差不小于预先设定的阈值时,计算所述误差对当前权重系数的梯度,利用所述梯度和预先存储的迭代步长更新当前权重系数,
其中,V(k)表示误差;ω1、ω2、ω3、ω4是权重系数;n表示数据采集点的个数,i表示第i个采集点;d标准i是标准温度下第i个采集点的d轴霍尔值;q标准i是标准温度下第i个采集点的q轴霍尔值;d测量i是磁电编码器测量的第i个采集点的d轴霍尔值;q测量i是磁电编码器测量的第i个采集点的q轴霍尔值。
本发明的方案还可以根据下式计算所述误差对当前权重系数的梯度:
其中,
是梯度;ω
1、ω
2、ω
3、ω
4是权重系数;n表示数据采集点的个数,i表示第i个采集点;d
标准i是标准温度下第i个采集点的d轴霍尔值;q
标准i是标准温度下第i个采集点的q轴霍尔值;d
测量i是磁电编码器测量的第i个采集点的d轴霍尔值;q
测量i是磁电编码器测量的第i个采集点的q轴霍尔值。
优选地,根据下式更新权重系数:
其中,k是指第k轮计算,T表示迭代步长。
在本发明优选的方案中,可以只采集局部范围内的数据,即,仅采集小于360°的某个角度所对应区间的信号,测量这些信号以获得它们所对应的霍尔值,例如,采集30°角所夹区域内的数据,或45°角所夹区域内的数据。
如果要求更高的精度,还可以采集整个圆周区域内的数据,即,360°范围内的数据。
此外,本发明提供的自校正方案可以由硬件、软件或软硬件结合的方式来实现。例如,可以用集成电路、现场可编程门阵列(FPGA)等方式实现。
本发明提供的自校正装置和方法通过对磁电编码器的测量值进行修正,使测量值尽可能逼近标准温度下的结果,使得磁电编码器尽可能不受温度、振动等外界因素的影响,从而提高了测量精度。
具体实施方式
以下,参考附图,详细描述本发明的实施例。
正如此前所述的那样,温度、振动等外界因素会造成磁电编码器中传感器的特性发生变化,进而影响测量结果,使得测量结果不能如实地反映被测对象的实际角度、位移等位置。图3示出的是给定标准温度(例如20℃)下,一整周的角度所对应的d轴霍尔值和q轴霍尔值的曲线分布,其呈圆形。然而,在温度变化后,例如在-40℃的温度下,一整周的角度所对应的d轴霍尔值和q轴霍尔值的曲线分布会发生偏移,如图4中的椭圆所示。从图4中不难看到,对于相同的135°角,温度是20℃下的d轴霍尔值d标准和q轴霍尔值q标准与温度是-40℃下的d轴霍尔值d测量和q轴霍尔值q测量不同。这是因为温度的变化导致了测量结果发生偏移。这样,磁电编码器利用测得的d轴霍尔值d测量和q轴霍尔值q测量所计算的角度将与实际角度不同。也就是说,温度发生变化时,即使被测对象的机械位置没有发生变化,磁电编码器所测量的结果也将发生变化,这显然是不符合实际情况的。
本发明旨在对外界环境因素造成的磁电编码器测量结果的偏移进行修正,即,将图4中所示的发生偏移的“椭圆”修正至标准温度下的“圆”,从而使磁电编码器所测量的结果能够尽可能如实地反映被测对象的实际位置。
从图4可知,当磁电编码器所处环境的温度偏离了标准温度时,一整周的角度所对应的d轴霍尔值和q轴霍尔值的分布都将会发生偏移,这种偏移包括零漂和温漂,这里,零漂是指基准零点的偏移,温漂是指输出幅值的比例的放大与缩小。于是,温度变化前后的d轴霍尔值和q轴霍尔值的相关性可以用下式表示:
d标准=ω1d测量+ω2
q标准=ω3q测量+ω4 (1)
其中:
d标准和q标准表示标准温度下的d轴霍尔值和q轴霍尔值;
d测量和q测量表示温度变化后的d轴霍尔值和q轴霍尔值;
ω1和ω3表示温漂权重系数;
ω2和ω4表示零漂权重系数。
因此,找到最佳的权重系数ω1、ω2、ω3和ω4,就可以基于上式来修正温度变化后的d轴霍尔值和q轴霍尔值,使之尽可能接近标准温度下的d轴霍尔值和q轴霍尔值,进而校正磁电编码器的测量结果。
图5示出根据本发明实施例的磁电编码器的结构示意图。本发明的磁电编码器可以对温度、振动等外界环境因素引起的测量结果的偏移自行校正,使输出的结果尽可能如实地反映被测对象的位置。为此,本发明的磁电编码器采集多个点的数据,利用迭代算法获得用以修正测量结果的权重系数。
如图5所示,根据本发明实施例的磁电编码器大体上包括传感器101、模数(A/D)转换器102、角度计算模块103、存储单元104和校正模块105。
传感器101可以是任何能检测磁通变化并将这种变化转化成电信号的磁敏元件,在本例中,例如是霍尔元件,其用于检测磁通的变化,将磁通的变化转换成电压信号。传感器101可以检测并获得多个采集点的数据。
A/D转换器102用于将传感器101检测获得的模拟电信号转换成数字信号,例如,将传感器101检测到的电压信号转换成d轴霍尔值和q轴霍尔值。
角度计算模块103用于根据d轴霍尔值(d)和q轴霍尔值(q)计算并输出角度θ。角度的计算采用下列反正切公式:
θ=arctan(q/d) (2)
角度计算模块103根据A/D转换器102输出的d轴霍尔值(d测量)和q轴霍尔值(q测量)计算所测量的角度θ测量。进一步地,角度计算模块103还利用校正模块105获得的权重系数ω(包括ω1,ω2、ω3和ω4)和公式(1)对d轴霍尔值(d测量)和q轴霍尔值(q测量)进行修正,以获得经过修正的d轴霍尔值(d)和q轴霍尔值(q),然后采用公式(2)进行计算,得到角度θ。
存储单元104用于存储给定标准温度下的角度及其对应的d轴霍尔值和q轴霍尔值。如所知的,给定的标准温度下,每个角度都对应一对d轴霍尔值和q轴霍尔值。在本例中,假定标准温度是20℃,存储单元104存储下表:
表1标准温度下,角度与霍尔值的对应表
也就是说,在本例中,存储单元104预先存储了20℃下,以0.1°为间隔的角度及其对应的霍尔值。根据该表格,可以插值计算出所有角度在温度为20℃的情况下所应该对应的标准d轴霍尔值(d标准)和q轴霍尔值(q标准)。
校正模块105用于获得权重系数ω(包括ω1,ω2、ω3和ω4),权重系数ω输出给角度计算模块103用于对所测量的d轴霍尔值(d测量)和q轴霍尔值(q测量)进行校正,使角度计算模块103所计算的角度不受温度、振动等外界因素的影响。
为了获得最佳的权重系数ω,校正模块105可以使用基于神经元理论的迭代算法。具体地,参见图6,图6示出根据本发明实施例的校正模块105的各个组成部分。
图6所示的校正模块105包括误差测度函数计算模块201、梯度函数计算模块202、权重系数更新模块203、判断模块204和参数存储单元205。
参数存储单元205用于存储预定的初始权重系数和迭代步长T,例如,初始权重系数ω1=1,ω2=0,ω3=1和ω4=0,迭代步长T=0.001。也就是说,在使用磁电编码器进行测量时,首先默认的是当前温度就是标准温度,于是,d测量=d标准;q测量=q标准。该参数存储单元205可以是存储单元104的一部分,也可以是独立存在的存储单元。
误差测度函数计算模块201用于接收所测量的d轴霍尔值(d测量)和q轴霍尔值(q测量),从存储单元104获得标准d轴霍尔值(d标准)和q轴霍尔值(q标准),并从参数存储单元205获得初始权重系数,利用这些数据根据下式计算获得误差V(k)。
这里,n是采集点的个数,d测量i是磁电编码器测量的第i个采集点的d轴霍尔值;q测量i是磁电编码器测量的第i个采集点的q轴霍尔值;d标准i是标准温度下第i个采集点的d轴霍尔值;q标准i是标准温度下第i个采集点的q轴霍尔值。
如上所述,标准的霍尔值是利用测量的霍尔值计算得到的角度,查询表1或利用表1插值计算得到的。
考虑到迭代算法的特点,n可以等于任何整数值,例如300、500、800、1000、2000,等等,更多或更少的数据采集点都是可以的。理论上,数据采集的越多,计算时间越长,但校正效果越好。
需要说明的是,数据采集点可以分布在360°对应的由整个椭圆或圆划定的面所构成的全域范围内,也可以分布在小于360°的某一个角度对应的、由该角度的两边和对角圆弧划定的面所构成的局域范围内。例如,在图4中,全域范围就是以所示椭圆为边界线的整个区域,而图4中阴影部分表示的数据采集区就是一个局域范围的例子。当然,局域范围可以是任何小于360°的角度划定的面区域,例如,可以是15°、30°、45°、60°划定的区域,还可以是90°、180°、270°、320°等更大的角度所划定的区域。绝大多数情况下没有必要在全域范围采集数据。相反,只需要在局域范围内采集n个数据就可以通过迭代算法计算得到最佳权重系数,进而利用该最佳权重系数校正一整周的d轴霍尔值和q轴霍尔值。数据采集区的大小可自行根据测量精度要求等进行选择,理论上讲,数据采集区越大,则校正结果越好,测量精度越高。
判断模块204判断每一轮计算过后的误差V(k)是否小于预先设定的阈值,如果小于,则表明此时的权重系数是最佳权重系数,于是,判断模块204指示权重系数更新模块203输出当前的权重系数,作为最佳权重系数。最佳权重系数输入到图5中所示的角度计算模块103,用以校正测得的d轴霍尔值和q轴霍尔值。
否则,权重系数更新模块203将所获得的权重系数输出给误差测度函数计算模块201,代替上一轮计算中所使用的权重系数进行下一轮的计算。如此迭代下去,直到所计算的误差V(k)小于预先设定的阈值为止。
为了减小迭代的轮数,还可以进一步找到误差测度函数对权重系数的最速下降方向。为此,建立误差测度函数对权重系数的梯度函数,梯度函数计算模块202根据下列梯度函数公式计算最速下降梯度:
这里,n仍然是采集点的个数。
上述所获得的梯度被输入到权重系数更新模块203,权重系数更新模块203进一步从参数存储单元205获得迭代步长T,根据以下公式更新权重系数:
其中,k是指第k轮计算。
于是,获得更新后的权重系数。如上所述,权重系数更新模块203将更新后的权重系数输出给误差测度函数计算模块201,代替上一轮计算中所使用的权重系数以进行下一轮的计算。这样,经过若干轮的计算,直到误差V(k)小于预先设定的阈值。此时的权重系数即是最佳权重系数。
需要说明的是,阈值是根据期望所达到的精度以及计算上的平衡所预先设定的,阈值过小可能永远达不到所要的结果,计算将永无止境;过大则影响精度,起不到校正的作用。考虑到这种情况,可以将阈值例如设置为100。本领域普通技术人员可以根据实际情况自行设定这个阈值。
这样,经过以上图6所示的校正模块105的计算,获得了最佳的权重系数。最佳权重系数输入到角度计算模块103,角度计算模块103利用公式
(1)获得校正后的d轴霍尔值和q轴霍尔值,进而利用公式(2)进行计算,获得最终的测量结果,这个测量结果经过校正,可以基本上消除温度、振动等外界环境因素的影响。
以下,参照图7,结合以上具有校正模块的磁电编码器来详细描述根据本发明实施例的自校正方法。
首先,如步骤S101所示,磁电编码器的传感器101检测磁通变化进而获得电压信号,这里,传感器101采集了n个点的数据,其中,这n个点可以处于全域范围内,也可以处于局域范围内,例如,在图4阴影部分表示的数据采集区中采集n个数据,于是,电压信号包括这n个点所对应的信号,A/D转换器102将这组电压信号转换成d轴霍尔值(d测量)和q轴霍尔值(q测量),于是,获得n对d轴霍尔值(d测量)和q轴霍尔值(q测量)。
如上所述,磁电编码器所处环境的温度很难与标准温度(例如,20℃)保持一致,并且温度也会随时间变化,因此,通常而言,所测得的霍尔值与标准霍尔值一般不同。
接下来,如步骤S102所示,角度计算模块103利用d轴霍尔值(d测量)和q轴霍尔值(q测量)计算获得角度θ测量。显然,这里根据d轴霍尔值(d测量)和q轴霍尔值(q测量)计算而获得的角度θ测量并不一定是准确的测量结果,需要进行修正。
然后,如步骤S103所示,获得角度θ测量之后,查询存储单元104所存储的对应表,如表1所示,可知角度θ测量所对应的标准d轴霍尔值(d标准)和q轴霍尔值(q标准)。
利用测量获得的d轴霍尔值(d测量)和q轴霍尔值(q测量)以及标准的d轴霍尔值(d标准)和q轴霍尔值(q标准),校正模块105计算最佳权重系数ω,包括温漂权重系数ω1和ω3和零漂权重系数ω2和ω4,如步骤S104所示。
利用最佳权重系数ω,根据公式(1)校正所测量的d轴霍尔值(d测量)和q轴霍尔值(q测量),如步骤S105所示。
角度计算模块103可以利用校正后的d轴霍尔值和q轴霍尔值根据公式(2)计算并输出角度,作为测量结果,如步骤S106所示。
在步骤S104中,校正模块105具体通过构建误差测度函数利用基于神经元理论的迭代算法来计算最佳权重系数,如图8所示的流程。
首先,构建如公式(3)所示的误差测度函数,将测量获得的d轴霍尔值(d测量)和q轴霍尔值(q测量)以及标准的d轴霍尔值(d标准)和q轴霍尔值(q标准)代入误差测度函数,计算误差V(k),如步骤S1041所示。
然后,判断误差是否有减小的趋势,例如,判断V(k)是否小于V(k-1),如步骤S1042所示。
如果V(k)小于V(k-1),则表明误差有减小的趋势,于是,根据公式(4)计算误差测度函数对权重系数的梯度,以此找到误差的最速下降趋势,以期可以用最少的迭代次数和最快的速度找到最佳的权重系数,如步骤S1043所示。
如果V(k)不小于V(k-1),则表明计算当前V(k)时所使用的权重系数,已经是最佳的权重系数,于是转到步骤S1047,输出该权重系数,作为最佳权重系数。
在步骤S1043中计算得到梯度之后,从参数存储单元205获取迭代步长T,如步骤S1044所示。利用公式(5),重新计算权重系数,即更新权重系数,进一步地,用更新后的权重系数代入误差测度函数(公式(3)),重新计算V(k),如步骤S1045所示。
然后,如步骤S1046所示,判断计算所得的误差V(k)是否小于阈值。
当此轮计算所得的误差V(k)小于阈值时,表明计算当前V(k)时所使用的权重系数,已经是最佳的权重系数,于是转到步骤S1047,输出该权重系数,作为最佳权重系数。如果此轮计算所得的误差V(k)不小于阈值,则计算返回步骤S1042,进行下一轮的计算。
通过构建误差测度函数,可以对通过测量获得的d轴霍尔值和q轴霍尔值进行校正,使之能尽可能地接近标准温度下的d轴霍尔值和q轴霍尔值,从而达到校正磁电编码器的测量结果的目的。
为了以最快的速度、用尽量少的迭代次数获得最佳权重系数,还可以建立如公式(4)的梯度函数,并利用公式(5)计算权重系数,其中,还可以进一步通过调整迭代步长T来调整计算速度和迭代次数。
经过上述校正,可以得到校正后的一整周角度所对应的霍尔值的曲线分布,如图9的虚线所示,与标准温度下的曲线分布相比,虽然不能完全重合,但与不经过校正的椭圆相比,误差已经小了很多,这使测量结果更加接近于真实情况,做到了精确测量。
利用上述的自校正装置和方法,可以实现对磁电编码器的测量结果的校正,使之在机械位置相同时,即使温度发生变化,测量结果仍然能基本保持不变,使之尽可能不受温度、震动等外界因素的影响,从而提高磁电编码器的测量精度。
应该理解,本文描述的上述方案可通过各种方式实现。例如,可以用硬件、软件或软硬件结合的方式来实现。对于硬件实现,可以在一个或者一个以上执行上述自校正方法的特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、其他电子单元或者其结合内实现。
需要说明的是,以上参照附图所描述的各个实施例仅用以说明本发明而非限制本发明的范围,本领域的普通技术人员应当理解,在不脱离本发明的精神和范围的前提下对本发明进行的修改或者等同替换,均应涵盖在本发明的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。