一种光电编码器全量程的标定补偿方法
【专利摘要】本发明公开了一种光电编码器全量程的标定补偿方法。使用本发明能够对光电编码器全量程误差进行补偿,提高光电编码器精度。本发明针对全量程大样本点难以用神经网络处理的问题,通过分布式划分算法将全量程误差分成子块,采用傅立叶神经网络对每个子块的光电编码器误差建模,并采用Levenber-Marquard算法训练傅立叶神经网络的权值,得到较为精确的误差模型来补偿光电编码器的测量值,实现了对光电编码器的标定,达到改善光电编码器精度的目的。
【专利说明】一种光电编码器全量程的标定补偿方法
【技术领域】
[0001]本发明涉及光电编码器测量【技术领域】,具体涉及一种光电编码器全量程的标定补偿方法。
【背景技术】
[0002]光电编码器是一种将测量到的精密角度转换为数字量的装置。它是一种重要的数字式角度传感器,能够实时的测量连接轴所转过的角度,被广泛的运用于移动机器人、车辆、飞行器等的伺服系统中。但是,由于光电编码器制造过程中的工艺精度等因素的影响,光电编码器中存在着非线性误差,如何降低对其输出的精度的影响是工程应用中必须解决的问题。传统的标定与补偿算法仅仅是针对抽样采样点进行标定与补偿,不能做到对全量程非线性误差进行补偿。
[0003]目前,误差补偿与补偿技术层出不穷,常见方法为BP神经网络以及相关衍生算法。这些算法配合相应的高精度检测仪器,选取几十个点采样并进行标定与补偿。这些方法往往针对与特定的仪器针对特定的样本点。神经网络结构复杂,样本点数增加以至于难以计算,难以对全量程范围内所有点,或者可变间隔采样点数进行标定补偿。
【发明内容】
[0004]有鉴于此,本发明提供了一种光电编码器全量程的标定补偿方法,对大样本量进行划分,并对划分后的样本组分别进行神经网络建模并利用LM算法进行神经网络权值优化,对光电编码器全量程误差进行补偿,提高光电编码器精度。
[0005]1、一种光电编码器全量程的标定补偿方法,其特征在于,包括如下步骤:
[0006]步骤I,样本量的获取:
[0007]非匀速水平转动光电编码器转台一圈,获取电子光电编码器的测量值X以及对应的转台转角Y作为训练样本,其中X为需要补偿的光电编码器测量值,Y为光电编码器测量理想值;
[0008]步骤2,全量程误差划分:
[0009]以测量值X与对应的理想值Y作为总样本,将总样本分为N个小样本组,每个小样本组中的样本数为30~50 ;
[0010]步骤3,针对每个小样组,分别采用单输入单输出傅立叶神经网络建立误差补偿模型;其中,隐含层节点个数是2d+l x d ^rounds/pm+ q , d e [m/2, m];其中,p,q为正整数;
m为小样本组中的样本数;round为向上取整函数;隐含层至输出层的连接权值为傅立叶级数的系数;
[0011]步骤4,采用Levenberg-Marquard算法训练神经网络中隐含层至输出层的连接权值;
[0012]步骤5,将经步骤4训练优化后得到的隐含层至输出层的连接权值代入傅立叶神经网络;[0013]步骤6,将光电编码器的输入代入到傅立叶神经网络中,得到补偿后的光电编码器的输出方向角。
[0014]有益效果:
[0015](I)本发明综合考虑了影响光电编码器测量精度的因素,提出了基于分布式划分算法和Levenberg-Marquard傅立叶神经网络的标定补偿方法对光电编码器测量值进行补偿,简化标定过程,只需在转台上随意旋转(无须匀速旋转)光电编码器一周获取训练样本和对应的真实值作为样本量;同时能更精确地抵消外界干扰,提高测量精度。
[0016](2)本发明采用分布式划分的方式处理大数据量的问题,能够降低每次运算的存储空间,以及运算的复杂度。将分布处理的子网络汇总后,计算时间会随着细分的份数增加而降低。本发明确定了各小样本组的样本数量在30~50之间时,为大样本量划分提供依据,使得处理大样本量成为可能。
[0017](3)本发明的补偿方法具有神经网络能以任意精度逼近非线性函数和较好泛化能力的优点,且网络结构较简单,易于实现,采用正交的傅立叶指数作为神经网络的激发函数,将非线性优化问题转化为线性优化问题,极大地提高收敛速度,避免陷入局部最小。本
发明选取神经网络隐含层节点个数d = ^pm + q,能显著降低Levenberg-Marquard算法的运算量,使神经网络处理大样本成为可能。
[0018](4)本发明利用Levenberg-Marquard算法训练神经网络权值,避免了神经网络局部极小值问题,由于它利用了近似的二阶导数信息,因此比梯度法收敛速度要快得多,并且算法稳定。
【专利附图】
【附图说明】
[0019]图1为本发明原理图。
[0020]图2为本发明流程图。
【具体实施方式】
[0021]下面结合附图并举实施例,对本发明进行详细描述。
[0022]本发明提供了一种光电编码器全量程的标定补偿方法,针对全量程大样本点难以用神经网络处理的问题,通过分布式划分算法将全量程误差分成子块,采用傅立叶神经网络对每个子块的光电编码器误差建模,并采用Levenber-Marquard算法训练傅立叶神经网络的权值,得到较为精确的误差模型来补偿光电编码器的测量值,实现了对光电编码器的标定,达到改善光电编码器精度的目的。
[0023]具体步骤如下:
[0024]步骤1,样本量的获取。
[0025]将一款普通的光电编码器放置在室内环境下,非匀速水平转动转台一圈,获取电子光电编码器的测量值X以及对应的转台转角Y作为训练样本,其中X为需要补偿的光电编码器测量值,Y为光电编码器测量理想值。
[0026]步骤2,全量程误差划分。
[0027]由于神经网络处理大数据量能力不足,故将神经网络划分成N个子网络,N为正整数。将测量值X与对应的理想值Y作为总样本,对应地,将总样本分为N份。子块划分的份数由划分后总的训练的时间复杂度决定。本发明采用LM算法训练神经网络权值,LM算法训练的时间复杂度为0(x3),其中X表示采用LM算法所训练网络的神经节点数。经大
量实验验证,本发明子神经网络节点个数取
【权利要求】
1.一种光电编码器全量程的标定补偿方法,其特征在于,包括如下步骤: 步骤I,样本量的获取: 非匀速水平转动光电编码器转台一圈,获取电子光电编码器的测量值X以及对应的转台转角Y作为训练样本,其中X为需要补偿的光电编码器测量值,Y为光电编码器测量理想值; 步骤2,全量程误差划分: 以测量值X与对应的理想值Y作为总样本,将总样本分为N个小样本组,每个小样本组中的样本数为30?50 ; 步骤3,针对每个小样组,分别采用单输入单输出傅立叶神经网络建立误差补偿模型;其中,隐含层节点个数是2d+l ;d 二 wundyjpm + q , d e [m/2, m];其中,p,q为正整数;m为小样本组中的样本数;round为向上取整函数;隐含层至输出层的连接权值为傅立叶级数的系数; 步骤4,采用Levenberg-Marquard算法训练神经网络中隐含层至输出层的连接权值; 步骤5,将经步骤4训练优化后得到的隐含层至输出层的连接权值代入傅立叶神经网络; 步骤6,将光电编码器的输入代入到傅立叶神经网络中,得到补偿后的光电编码器的输出方向角。
【文档编号】G01D18/00GK103925939SQ201410143846
【公开日】2014年7月16日 申请日期:2014年4月10日 优先权日:2014年4月10日
【发明者】邓方, 闫宏航, 陈杰, 孙健, 窦丽华, 李勇 申请人:北京理工大学