最小二乘法曲线拟合校正磁编码器的初值算法的制作方法

文档序号:16542824发布日期:2019-01-08 20:35阅读:718来源:国知局
最小二乘法曲线拟合校正磁编码器的初值算法的制作方法

本发明涉及最小二乘法曲线拟合校正磁编码器技术领域,具体涉及一种最小二乘法曲线拟合校正磁编码器的初值算法。



背景技术:

磁编码器是一种基于磁阻效应或霍尔效应的新型轴角传感器,被广泛应用于工业,农业以及航天领域。正余弦磁编码器的输出是转子角位置的正余弦信号。但由于纵多非理想因素的影响,磁编码器输出的正余弦信号往往存在直流误差,幅值误差和相位误差,直接进行解调必将造成较大的解调误差。而现有技术方案中通常依据具体使用环境仅从某一种主要误差考虑增加相关的硬件校正,调试手段也需要人工方式进行配合修正,为解决上述问题采用基于最小二乘法的曲线拟合对磁编码器进行校正。

但是对于非线性的周期性曲线的拟合,该算法是需要迭代的,也就是需要给定初值,而初值是否合适直接关系到迭代是否收敛,拟合是否成功。这种算法要求能够给定与最佳结果相近的初值,其中对于曲线的拟合,频率的估算复杂,影响磁编码器校正的准确率。



技术实现要素:

为解决上述技术问题,本发明提出了一种最小二乘法曲线拟合校正磁编码器的初值算法,以达到高效计算初值,提高最小二乘法曲线拟合校正磁编码器的效率和准确率的目的。

为达到上述目的,本发明的技术方案如下:一种最小二乘法曲线拟合校正磁编码器的初值算法,所述算法步骤如下:在拟合曲线的初始状态查找已知数据点的最值,假定最值为当前数据区间的极值,通过极值计算幅值a;计算曲线的分界零点,根据分界零点计算数据量的周期,将数据组在周期内的分布作为周期的初值进行多次拟合得到频率b;通过幅值a计算直流分量d;根据曲线的标准表达式推导计算相位c,将计算出的初值a、b、c、d带入最小二乘法进行曲线拟合。

进一步地,所述最值包括:最大值和最小值,所述极值包括:极大值和极小值,所述计算幅值a的具体方法是:(极大值-极小值)/2,假定当前数据区间的极大值和极小值就是最佳曲线的最大值和最小值(实际情况下待拟合点可能集中分布在一个波形的某一小段如1/4周期或1/8周期,在这一小段区间上的最大值和最小值称为极大值和极小值,也就是说它不一定是幅值),然后用极大值减去极小值得到纵坐标的范围,在假定的情况下幅值为最大值减去最小值的差的一半,这里就是幅值。

进一步地,所述分界零点是以x为零作为分界线,所述计算曲线的分界零点的方法是:取所有纵坐标求和后的平均值作为分界零点,在不能保证保证所有曲线都是以x=0作为分界线时,利用平均值计算分界零点。

进一步地,所述根据分界零点计算数据量的周期的具体方法是:将曲线上的点逐一与分界零点进行比较,当出现下一个点与上一个点正好处于分界零点两侧时,记录过零点个数的变量自增加一,定义过零点的个数cont_num,两次经过零点即为一个周期t,所以t=(cont_num-1)/2。

进一步地,所述将数据组在周期内的分布作为周期的初值进行多次拟合得到频率b的具体方法是:将数据组依次在1、1/2、1/3、……、1/i个周期进行拟合,直到拟合的手链度达到指定的精度,所述频率b=2*π*f,f=n/(1/(1+lum))=n*(1+lum),依次拟合时若上一次拟合失败则继续向下拟合,直到拟合成功。

进一步地,所述通过幅值a计算直流分量d的具体方法是:直流分量d=极大值-幅值a。进一步地,所述曲线的标准表达式为正弦曲线的标准表达式:y=a*sin(b*x+c)+d,所述根据曲线的标准表达式推导计算相位c的具体方法是:已知a,b,d,x,y,可得:c=asin((ydata[m]-d)/(1.0*a))-b*xdata[m]。

本发明具有如下优点:

(1).本发明通过对初值进行快速准确的计算,从而提高最小二乘法曲线拟合对磁编码器校正的效率和准确率。

(2).本发明可以自动调节频率,更灵活的利用最小二乘法在对曲线拟合计算。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例公开的最小二乘法曲线拟合校正磁编码器的初值算法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明提供了一种最小二乘法曲线拟合校正磁编码器的初值算法,其工作原理是通过对初值进行快速准确的计算,以达到高效计算初值,提高最小二乘法曲线拟合校正磁编码器的效率和准确率的目的。

下面结合实施例和具体实施方式对本发明作进一步详细的说明。

如图1所示,一种最小二乘法曲线拟合校正磁编码器的初值算法,所述方法步骤如下:在拟合曲线的初始状态查找已知数据点的最值,假定最值为当前数据区间的极值,通过极值计算幅值a;计算曲线的分界零点,根据分界零点计算数据量的周期,将数据组在周期内的分布作为周期的初值进行多次拟合得到频率b;通过幅值a计算直流分量d;根据曲线的标准表达式推导计算相位c,将计算出的初值a、b、c、d带入最小二乘法进行曲线拟合。

其中,所述最值包括:最大值和最小值,所述极值包括:极大值和极小值,所述计算幅值a的具体方法是:(极大值-极小值)/2,假定当前数据区间的极大值和极小值就是最佳曲线的最大值和最小值(实际情况下待拟合点可能集中分布在一个波形的某一小段如1/4周期或1/8周期,在这一小段区间上的最大值和最小值称为极大值和极小值,也就是说它不一定是幅值),然后用极大值减去极小值得到纵坐标的范围,在假定的情况下幅值为最大值减去最小值的差的一半,这里就是幅值。

其中,所述分界零点是以x为零作为分界线,所述计算曲线的分界零点的方法是:取所有纵坐标求和后的平均值作为分界零点,在不能保证保证所有曲线都是以x=0作为分界线时,利用平均值计算分界零点,分界零点为广义的零点,是正负半轴的分界,实际波形中并不能保证所有曲线都是以x=0作为分界线的。

其中,所述根据分界零点计算数据量的周期的具体方法是:将曲线上的点逐一与分界零点进行比较,当出现下一个点与上一个点正好处于分界零点两侧时,记录过零点个数的变量自增加一,定义过零点的个数cont_num,两次经过零点即为一个周期t,所以t=(cont_num-1)/2。

其中,将曲线上的点逐一与分界零点进行比较具体方法是:将第一个点的纵坐标与零点比较,若该点小于零点,则比较第二个点的纵坐标,若还小于零点,则继续比较第三个点;当发现第k个点大于零点时,对记录过零点数的变量加一,继续比较,依据正弦特点我们知道在数据量最终必然逐渐达到幅值而后再次向零点逼近,那么继续比较,则会出现某个点大于零点,而下一个点小于零点的情况;由以上计算可以得到,过零点的个数cont_num,两次经过零点即为一个周期t,所以t=(cont_num-1)/2。

其中,需要特别说明的是以上情况是假定周期个数大于1,实际拟合情况下所以点可能都在一个周期内,也就是说t=0;这种情况下将直接导致拟合结果的失败,针对单周期下需要再次处理,即设定当周期t<=0,时,强制使周期为1。因为要拟合必定要有数据,有数据,周期就一定不为0

其中,所述将数据组在周期内的分布作为周期的初值进行多次拟合得到频率b的具体方法是:将数据组依次在1、1/2、1/3、……、1/i(i为自然数)个周期进行拟合,直到拟合的手链度达到指定的精度,所述频率b=2*π*f,f=n/(1/(1+lum))=n*(1+lum),依次拟合时若上一次拟合失败则继续向下拟合,直到拟合成功,其中n为数据个数,lum初始值为0,失败一次自加一,在外循环进行。

其中,所述通过幅值a计算直流分量d的具体方法是:直流分量d=极大值-幅值a。

其中,所述曲线的标准表达式为正弦曲线的标准表达式:y=a*sin(b*x+c)+d,所述根据曲线的标准表达式推导计算相位c的具体方法是:已知a,b,d,x,y,可得:

c=asin((ydata[m]-d)/(1.0*a))-b*xdata[m],其中xdata[m]与ydata[m]就是数据的横纵坐标分别形成的数组,这里需要指出的是,通常我们选择第一个点的横纵坐标,但有种特例arcsin这个符号具有定义域,所以需要判断,

当((((ydata[m]-d)/a)>1)||(((ydata[m]-d)/a)<-1.000))满足时应该使用下一个点的横纵坐标即i++。

上述实施例是以正弦曲线为例,本发明适用于有公式且周期性变化的曲线,如正弦曲线、余弦曲线等。

对磁编码器进行校正,具体方法包括:步骤一、将磁编码器转换输出的电信号离散化,通过a/d进行周期采样,采样点数为n,得到数据序列对为(ti,vs[i]),i的取值范围为1,2,3….n;步骤二、分别对正弦信号和余弦信号的采样数据进行整体分析,分别估算出正弦曲线和余弦曲线的四个参数并以此作为最小二乘法的初值,进行曲线拟合,分别得到最小二乘法的正弦和余弦拟合曲线方程式。步骤三、以求得的正弦曲线方程式为基准,计算正弦曲线方程式与正弦方程式的幅值偏差,与相位偏差。从而进行补偿校正。

以上所述的仅是本发明所公开的一种最小二乘法曲线拟合校正磁编码器的初值算法的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

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