CN103925939A - 一种光电编码器全量程的标定补偿方法 - Google Patents
一种光电编码器全量程的标定补偿方法 Download PDFInfo
- Publication number
- CN103925939A CN103925939A CN201410143846.0A CN201410143846A CN103925939A CN 103925939 A CN103925939 A CN 103925939A CN 201410143846 A CN201410143846 A CN 201410143846A CN 103925939 A CN103925939 A CN 103925939A
- Authority
- CN
- China
- Prior art keywords
- photoelectric encoder
- neural network
- sample
- training
- fourier
- 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.)
- Granted
Links
Landscapes
- Optical Transform (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种光电编码器全量程的标定补偿方法。使用本发明能够对光电编码器全量程误差进行补偿,提高光电编码器精度。本发明针对全量程大样本点难以用神经网络处理的问题,通过分布式划分算法将全量程误差分成子块,采用傅立叶神经网络对每个子块的光电编码器误差建模,并采用Levenber-Marquard算法训练傅立叶神经网络的权值,得到较为精确的误差模型来补偿光电编码器的测量值,实现了对光电编码器的标定,达到改善光电编码器精度的目的。
Description
技术领域
本发明涉及光电编码器测量技术领域,具体涉及一种光电编码器全量程的标定补偿方法。
背景技术
光电编码器是一种将测量到的精密角度转换为数字量的装置。它是一种重要的数字式角度传感器,能够实时的测量连接轴所转过的角度,被广泛的运用于移动机器人、车辆、飞行器等的伺服系统中。但是,由于光电编码器制造过程中的工艺精度等因素的影响,光电编码器中存在着非线性误差,如何降低对其输出的精度的影响是工程应用中必须解决的问题。传统的标定与补偿算法仅仅是针对抽样采样点进行标定与补偿,不能做到对全量程非线性误差进行补偿。
目前,误差补偿与补偿技术层出不穷,常见方法为BP神经网络以及相关衍生算法。这些算法配合相应的高精度检测仪器,选取几十个点采样并进行标定与补偿。这些方法往往针对与特定的仪器针对特定的样本点。神经网络结构复杂,样本点数增加以至于难以计算,难以对全量程范围内所有点,或者可变间隔采样点数进行标定补偿。
发明内容
有鉴于此,本发明提供了一种光电编码器全量程的标定补偿方法,对大样本量进行划分,并对划分后的样本组分别进行神经网络建模并利用LM算法进行神经网络权值优化,对光电编码器全量程误差进行补偿,提高光电编码器精度。
1、一种光电编码器全量程的标定补偿方法,其特征在于,包括如下步骤:
步骤1,样本量的获取:
非匀速水平转动光电编码器转台一圈,获取电子光电编码器的测量值x以及对应的转台转角Y作为训练样本,其中x为需要补偿的光电编码器测量值,Y为光电编码器测量理想值;
步骤2,全量程误差划分:
以测量值x与对应的理想值Y作为总样本,将总样本分为N个小样本组,每个小样本组中的样本数为30~50;
步骤3,针对每个小样组,分别采用单输入单输出傅立叶神经网络建立误差补偿模型;其中,隐含层节点个数是2d+1;d∈[m/2,m];其中,p,q为正整数;m为小样本组中的样本数;round为向上取整函数;隐含层至输出层的连接权值为傅立叶级数的系数;
步骤4,采用Levenberg-Marquard算法训练神经网络中隐含层至输出层的连接权值;
步骤5,将经步骤4训练优化后得到的隐含层至输出层的连接权值代入傅立叶神经网络;
步骤6,将光电编码器的输入代入到傅立叶神经网络中,得到补偿后的光电编码器的输出方向角。
有益效果:
(1)本发明综合考虑了影响光电编码器测量精度的因素,提出了基于分布式划分算法和Levenberg-Marquard傅立叶神经网络的标定补偿方法对光电编码器测量值进行补偿,简化标定过程,只需在转台上随意旋转(无须匀速旋转)光电编码器一周获取训练样本和对应的真实值作为样本量;同时能更精确地抵消外界干扰,提高测量精度。
(2)本发明采用分布式划分的方式处理大数据量的问题,能够降低每次运算的存储空间,以及运算的复杂度。将分布处理的子网络汇总后,计算时间会随着细分的份数增加而降低。本发明确定了各小样本组的样本数量在30~50之间时,为大样本量划分提供依据,使得处理大样本量成为可能。
(3)本发明的补偿方法具有神经网络能以任意精度逼近非线性函数和较好泛化能力的优点,且网络结构较简单,易于实现,采用正交的傅立叶指数作为神经网络的激发函数,将非线性优化问题转化为线性优化问题,极大地提高收敛速度,避免陷入局部最小。本发明选取神经网络隐含层节点个数能显著降低Levenberg-Marquard算法的运算量,使神经网络处理大样本成为可能。
(4)本发明利用Levenberg-Marquard算法训练神经网络权值,避免了神经网络局部极小值问题,由于它利用了近似的二阶导数信息,因此比梯度法收敛速度要快得多,并且算法稳定。
附图说明
图1为本发明原理图。
图2为本发明流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种光电编码器全量程的标定补偿方法,针对全量程大样本点难以用神经网络处理的问题,通过分布式划分算法将全量程误差分成子块,采用傅立叶神经网络对每个子块的光电编码器误差建模,并采用Levenber-Marquard算法训练傅立叶神经网络的权值,得到较为精确的误差模型来补偿光电编码器的测量值,实现了对光电编码器的标定,达到改善光电编码器精度的目的。
具体步骤如下:
步骤1,样本量的获取。
将一款普通的光电编码器放置在室内环境下,非匀速水平转动转台一圈,获取电子光电编码器的测量值x以及对应的转台转角Y作为训练样本,其中x为需要补偿的光电编码器测量值,Y为光电编码器测量理想值。
步骤2,全量程误差划分。
由于神经网络处理大数据量能力不足,故将神经网络划分成N个子网络,N为正整数。将测量值x与对应的理想值Y作为总样本,对应地,将总样本分为N份。子块划分的份数由划分后总的训练的时间复杂度决定。本发明采用LM算法训练神经网络权值,LM算法训练的时间复杂度为O(x3),其中x表示采用LM算法所训练网络的神经节点数。经大量实验验证,本发明子神经网络节点个数取 d∈[m/2,m],其中,m为划分后小样板组的样本数,M为总样本数,N为划分的分数,p、q为正整数,round为向上取整函数,则将N份划分的份数汇总,可以确定训练的时间复杂度。为了比较不同划分方法的计算时间复杂度,采用下式计算相对时间复杂度:
其中,N1为将样本量划分为N1份,N2为将样本量划分为N2份。对上式等号左侧项的分子和分母同时除以其中取N2=1,也即划分比较的对象是不用划分的整体计算时间,N=N1。由于数值较大而q为常数,因此在相对时间复杂度比较时,后面的常数项忽略。因此,需要比较当M相同时且训练精度要求以及终止条件相同时,各个N取值下的训练时间复杂度。下表给出了总样本量为360个的样本,采用划分方法取划分分数的训练时间复杂度随划分分数N的变化趋势。对划分分数影响的关键是划分后子网络的节点个数。在N取1,2时,取整函数对子样本神经节点影响小,样本训练的时间复杂度近似依照1/N规律递减;当N取值渐渐增大时,取整函数对子样本神经节点数影响明显,如当N取4时,训练时间复杂度与N取3时相比没有显著下降。而N取6时反而出现了时间复杂度上生的问题。最佳的取值,在于与相邻点相比,寻得时间复杂度的的谷点值。当节点数为6或5时,训练的时间复杂度与相邻值相比均有显著下降。由上面的公式,代入得,子网络每份的大小为30~50左右为宜。
表1样本划分份数、节点个数以及时间复杂度关系量化表
以总样本360个测量值与理想值对为例,将其分为10组,每组36个数据。划分后,对每个小样本量分别采用傅里叶神经网络建模并进行补偿。
步骤3,采用傅立叶神经网络(FNN)建立误差补偿模型。
采用单输入单输出傅立叶神经网络(SISO-FNN)建立光电编码器方向角误差的模型。该网络为三层前向网络,三层分别为输入层、隐含层和输出层。与其他神经网络不同的是,FNN选用正交三角函数系{1,cos2πx/T,sin2πx/T,cos4πx/T,sin4πx/T,…,cos2nπx/T,sin2nπx/T}代替常用的sigmoid函数或者Gaussian函数作为神经网络各隐含层神经元的激发函数。其中,x为每个小样本组相应的测量值(以360°量程360个点为例,第一组x为0,1…35°,第二组x为36°,37°…72°,以此类推,共10组)。即神经网络隐含层的激发函数为
S1=1,S2h=cos(2hπx/T),S2h+1=sin(2hπx/T)(h=1,2,...,n) (1)
其中,T=360°,n是隐含层的神经节点个数。
选傅立叶级数的系数a0,ai,bi(i=1,2,3,…,n)作为隐含层至输出层的连接权值,即
w1=a0,w2h=ah,w2h+1=bh(h=1,2,…,n) (2)其中,
则各隐含层神经元的输出为:
Oj=Sjwj j=1,2,...,,2n+1 (5)
输出层的输出为
可以看到,式(6)与f(x)的傅立叶级数在形式上是等同的,因此傅立叶神经网络的输出等价于傅立叶级数。
步骤4,采用Levenberg-Marquard算法(LM算法)训练神经网络中隐含层至输出层的连接权值。
定义神经网络输出值yi与理想值Yi的误差并选择训练指标,即误差为:
ei=Yi-yi=Yi-f(xi),i=1,2,…,M (7)
其中M为训练样本的维数(即小样本组中样本个数),f(xi)为神经网络的映射函数。选择训练指标为:
其中,ek为光电编码器的目标精度。
采用Levenberg-Marquard算法(LM算法)训练神经网络权值。经大量的实验确定神经节点个数。神经节点个数为奇次项神经元节点数为d,偶次项神经节点数为d。实验证明,当(p,q均为正整数,m为小样本组中样本的数量)时,能显著降低Levenberg-Marquard算法的运算量,使神经网络处理大样本称为可能。
采用LM算法对小样本组进行训练。LM算法在有较强的全局搜索能力,能尽可能多地发现可能的全局最优点;而且,该算法能够提高算法收敛速度和求解精度,是目前最常采用的训练算法。
利用实验中获取的训练样本,建立精确的误差模型,来补偿光电编码器的输出。具体LM算法如下:
设ak,bk表示第k次迭代的权值和阈值组成的向量,第k+1次迭代的权值和阈值组成的向量为ak+1,bk+1,ak+1,bk+1可由下面的规则求得:
ak+1=ak+Δa (9)
bk+1=bk+Δb (10)
其中,Δa表示每次a迭代的增量,Δb表示每次b迭代的增量。e(x)表示误差向量。e(i)表示误差向量e(x)的第i个误差项。可以统一表示为:
xk+1=xk+Δx (11)
▽E=JT(x)e(x) (12)
▽E2=JT(x)e(x)+S(x) (13)
J(x)为雅可比矩阵,即
Δx=[JT(x)J(x)+μI]-1J(x)e(x) (16)
训练步骤如下:
(1)给出训练指标值E,如本例中,一个16位的光电编码器,其目标精度sk=360/65536=0.055,训练指标值经过大量实验验证,μ取0.01~1之间的值。本例中,取E=0.0001。依据经验,μ=0.01~0.1取值。初始化权值向量取为单位向量。神经网络节点数采用经验公式确定:其中m为输出量维数,n输入样本组数,d为隐含层神经元个数。
(2)计算网络输出及误差E(xk)
(3)计算雅可比矩阵
(4)计算Δx和E(xk)
(5)若E(xk)<E,则转至(6);否则计算x(k+1)以及相应的权值,进而计算误差指标函数E(xk+1)。直到迭代计算满足训练指标或者达到训练上限为止。
(6)停止。
步骤5,将经步骤4训练优化后得到的权值代入神经网络,得到较为精确的补偿模型,用于补偿光电编码器的输出方向角,使得光电编码器的输出更加接近理想值的方向角。
步骤6,将光电编码器的输入代入到傅立叶神经网络中,得到补偿后的光电编码器输出方向角。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种光电编码器全量程的标定补偿方法,其特征在于,包括如下步骤:
步骤1,样本量的获取:
非匀速水平转动光电编码器转台一圈,获取电子光电编码器的测量值x以及对应的转台转角Y作为训练样本,其中x为需要补偿的光电编码器测量值,Y为光电编码器测量理想值;
步骤2,全量程误差划分:
以测量值x与对应的理想值Y作为总样本,将总样本分为N个小样本组,每个小样本组中的样本数为30~50;
步骤3,针对每个小样组,分别采用单输入单输出傅立叶神经网络建立误差补偿模型;其中,隐含层节点个数是2d+1;d∈[m/2,m];其中,p,q为正整数;m为小样本组中的样本数;round为向上取整函数;隐含层至输出层的连接权值为傅立叶级数的系数;
步骤4,采用Levenberg-Marquard算法训练神经网络中隐含层至输出层的连接权值;
步骤5,将经步骤4训练优化后得到的隐含层至输出层的连接权值代入傅立叶神经网络;
步骤6,将光电编码器的输入代入到傅立叶神经网络中,得到补偿后的光电编码器的输出方向角。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410143846.0A CN103925939B (zh) | 2014-04-10 | 2014-04-10 | 一种光电编码器全量程的标定补偿方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410143846.0A CN103925939B (zh) | 2014-04-10 | 2014-04-10 | 一种光电编码器全量程的标定补偿方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103925939A true CN103925939A (zh) | 2014-07-16 |
CN103925939B CN103925939B (zh) | 2016-06-08 |
Family
ID=51144239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410143846.0A Active CN103925939B (zh) | 2014-04-10 | 2014-04-10 | 一种光电编码器全量程的标定补偿方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103925939B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105043433A (zh) * | 2015-08-28 | 2015-11-11 | 北京理工大学 | 一种基于神经网络的光电编码器快速补偿方法 |
CN107014339A (zh) * | 2017-04-26 | 2017-08-04 | 北京理工大学 | 一种用于大数据的高精度角度传感器误差补偿方法 |
CN107449460A (zh) * | 2017-07-07 | 2017-12-08 | 银弗(北京)科技有限公司 | 一种旋转编码器的补偿方法和补偿系统 |
CN109211175A (zh) * | 2018-09-18 | 2019-01-15 | 中国科学院长春光学精密机械与物理研究所 | 一种直线钢带编码器测角时盲区数据处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040162689A1 (en) * | 2003-02-18 | 2004-08-19 | Tiberiu Jamneala | Multiport network analyzer calibration employing reciprocity of a device |
CN1862229A (zh) * | 2006-06-27 | 2006-11-15 | 北京航空航天大学 | 一种基于神经网络的开环光纤陀螺输出误差补偿方法 |
CN101319890A (zh) * | 2008-07-18 | 2008-12-10 | 东南大学 | 工程科学信息处理的补偿方法 |
CN101566483A (zh) * | 2009-05-22 | 2009-10-28 | 哈尔滨工程大学 | 光纤陀螺捷联惯性测量系统振动误差补偿方法 |
CN102506914A (zh) * | 2011-11-04 | 2012-06-20 | 北京理工大学 | 一种光电编码器的误差补偿方法 |
CN102680016A (zh) * | 2012-05-14 | 2012-09-19 | 北京理工大学 | 一种光电编码器的误差补偿方法 |
-
2014
- 2014-04-10 CN CN201410143846.0A patent/CN103925939B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040162689A1 (en) * | 2003-02-18 | 2004-08-19 | Tiberiu Jamneala | Multiport network analyzer calibration employing reciprocity of a device |
CN1862229A (zh) * | 2006-06-27 | 2006-11-15 | 北京航空航天大学 | 一种基于神经网络的开环光纤陀螺输出误差补偿方法 |
CN101319890A (zh) * | 2008-07-18 | 2008-12-10 | 东南大学 | 工程科学信息处理的补偿方法 |
CN101566483A (zh) * | 2009-05-22 | 2009-10-28 | 哈尔滨工程大学 | 光纤陀螺捷联惯性测量系统振动误差补偿方法 |
CN102506914A (zh) * | 2011-11-04 | 2012-06-20 | 北京理工大学 | 一种光电编码器的误差补偿方法 |
CN102680016A (zh) * | 2012-05-14 | 2012-09-19 | 北京理工大学 | 一种光电编码器的误差补偿方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105043433A (zh) * | 2015-08-28 | 2015-11-11 | 北京理工大学 | 一种基于神经网络的光电编码器快速补偿方法 |
CN107014339A (zh) * | 2017-04-26 | 2017-08-04 | 北京理工大学 | 一种用于大数据的高精度角度传感器误差补偿方法 |
CN107014339B (zh) * | 2017-04-26 | 2019-11-22 | 北京理工大学 | 一种用于大数据的高精度角度传感器误差补偿方法 |
CN107449460A (zh) * | 2017-07-07 | 2017-12-08 | 银弗(北京)科技有限公司 | 一种旋转编码器的补偿方法和补偿系统 |
CN109211175A (zh) * | 2018-09-18 | 2019-01-15 | 中国科学院长春光学精密机械与物理研究所 | 一种直线钢带编码器测角时盲区数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103925939B (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105203104B (zh) | 一种适用于高精度惯导系统的重力场建模方法 | |
CN106767780B (zh) | 基于Chebyshev多项式插值逼近的扩展椭球集员滤波方法 | |
CN111695299B (zh) | 一种中尺度涡轨迹预测方法 | |
CN101438184B (zh) | 一种跟踪移动电子设备的状态的方法 | |
CN102122372A (zh) | 基于遗传算法的嵌入式大气数据传感系统测压孔布局方法 | |
CN103925939A (zh) | 一种光电编码器全量程的标定补偿方法 | |
CN109581281B (zh) | 基于到达时间差和到达频率差的移动目标定位方法 | |
Sushchenko et al. | Processing of redundant information in airborne electronic systems by means of neural networks | |
CN101701826A (zh) | 基于分层粒子滤波的被动多传感器目标跟踪方法 | |
CN103454677B (zh) | 基于粒子群与线性加法器结合的地震数据反演方法 | |
CN102297687A (zh) | 一种电子罗盘的标定方法 | |
CN103927442A (zh) | 一种基于测角变换的超短基线安装角度误差抗粗差校准方法 | |
CN107707220A (zh) | 一种应用在gnss/ins中的改进型ckf方法 | |
CN108508463B (zh) | 基于Fourier-Hermite正交多项式扩展椭球集员滤波方法 | |
CN107504974A (zh) | 地形分块与地形测点加权的地形匹配定位方法 | |
CN110132281A (zh) | 一种基于询问应答模式的水下高速目标高精度自主声学导航方法 | |
CN109557594B (zh) | 基于重力异常时变的重力基准图时变修正方法及系统 | |
CN106528933B (zh) | 一种整圈自由叶片的失谐参数模拟方法 | |
CN113639893B (zh) | 一种基于多气象因子的近地加权平均温度信息获取方法 | |
CN110186482B (zh) | 一种提高惯性制导航天器的落点精度的方法 | |
CN107589464A (zh) | 一种卫星测高重力数据与船测重力数据融合方法 | |
CN112084655A (zh) | 一种基于非单调线搜索的探地雷达参数反演方法 | |
CN102142102A (zh) | 基于遗传算法的嵌入式大气数据传感系统测压孔布局方法 | |
CN110502849A (zh) | 一种应用于四维变分同化系统的扰动模式构建方法 | |
CN106323280A (zh) | 用于bds和sins导航定位系统的滤波器和滤波方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |