CN102506914B - 一种光电编码器的误差补偿方法 - Google Patents
一种光电编码器的误差补偿方法 Download PDFInfo
- Publication number
- CN102506914B CN102506914B CN201110345068.XA CN201110345068A CN102506914B CN 102506914 B CN102506914 B CN 102506914B CN 201110345068 A CN201110345068 A CN 201110345068A CN 102506914 B CN102506914 B CN 102506914B
- Authority
- CN
- China
- Prior art keywords
- neural network
- photoelectric encoder
- centerdot
- particle
- output
- 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.)
- Active
Links
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种光电编码器的误差补偿方法,该方法基于改进粒子群算法和傅里叶神经网络原理,用于提高光电编码器的测量精度,特别适用于要求低成本、精度较高的测角系统中。本发明采用傅立叶神经网络对电子罗盘误差建模,并采用改进粒子群算法对神经网络的权值进行优化,从而得到较为精确的误差模型来补偿光电编码器测量值。该方法建立的误差模型能实现样本空间的精确映射,具有较高的非线性逼近能力,且该方法避免陷入局部最小,克服了神经网络的收敛速度过慢,振荡等缺点,有效减小光电编码器的测量误差,大大提高了光电编码器的测量精度。
Description
技术领域
本发明属于角度测量领域,涉及一种基于傅立叶神经网络和改进粒子群算法的光电编码器的误差补偿方法。
背景技术
光电编码器是一种将角度信号按一定规律转换为易于采集、传输和处理的信号(一般为电信号),以确定角位移或方位角的器件或装置,它是一种重要的传感器,广泛应用于仪表测量、工业自动化、信号检测、机器人和航空航海等领域。目前,光电编码器按输出信号的性质分为模拟式与数字式两大类,模拟式又分为同步机、分解器、电位器、感应式传感器等;数字式分为脉冲盘式、接触编码式、光电编码式、电磁编码式和感应同步器等。随着科技发展和应用需要,对光电编码器在保证成本的条件下精度有了更高的要求。因此,如何降低干扰提高传感器的输出精度是工程应用中一个重要的问题。
目前对光电编码器进行补偿的主要方法有对硬件电路的改进、采用软件RBF(Radical Basis Function,径向基函数)神经网络以及借助其他高精度仪器校正的方法等,对硬件电路的改进需要对光电编码器进行拆解或改装,比较复杂;采用软件RBF神经网络补偿方法所达到的补偿精度不够;而借助高精度仪器校正的方法对校正仪器的要求较高,增加了补偿的经济要求。
发明内容
为了简化补偿步骤、提高补偿精度以及降低对所需仪器的要求,本发明提出了一种光电编码器的误差补偿方法,该补偿方法基于傅立叶神经网络和改进粒子群算法,通过傅立叶神经网络对光电编码器误差建模,该神经网络采用正交傅立叶级数作为网络激发函数,并采用改进粒子群算法训练网络的权值,得到较为精确的误差模型来补偿光电编码器的测量值,从而达到改善光电编码器精度的目的。
基于傅立叶神经网络和改进粒子群算法的光电编码器的误差补偿方法,主要包括获取训练样本、采用傅立叶神经网络建立误差补偿模型以及采用改进粒子群算法训练神经网络权值三大部分,实现的具体步骤如下:
步骤一、获取训练样本;
一款普通的二维固态磁阻光电编码器在不对外界磁场做任何处理的室内环境下,随手动转台水平非匀速旋转一圈,获取光电编码器的测量值x及其对应的转台转角Y作为训练样本;
步骤二、确定神经网络结构;
建立单输入单输出三层前向傅立叶神经网络作为光电编码器的误差补偿模型,隐含层各神经元的激发函数为:
S1=1,...,S2i=cos(2iπx/T),S2i+1=sin(2iπx/T),i=1,2,…,n
其中,T为角度传感器的测量周期;
选择傅立叶系数a0,...,ai,bi,i=1,2,3,…,n作为隐含层各神经元至输出层的连接权值,即:
其中f(x)为神经网络的输出;则隐含层各神经元至输出层的连接权值w1,..,w2i,w2i+1为:
w1=a0,...,w2i=ai,w2i+1=bi,i=1,2,…,n
此外,神经网络输入层到隐含层各神经元的连接权值为1;隐含层各神经元的输出为:
Oj=Sjwj j=1,2,…,2n+1
输出层采用线性神经元,则输出层的输出为:
步骤三、建立光电编码器误差模型并选择训练指标;
定义光电编码器的误差ei为神经网络输出值yi与理想值Yi的差,即
ei=Yi-yi=Yi-f(xi),i=1,2,…,M
其中,M为训练样本维数,i为变量;并选择训练指标J为:
步骤四:根据训练样本采用改进粒子群算法训练神经网络;
采用步骤一获取的训练样本,引入改进粒子群算法训练神经网络,优化神经网络隐含层各神经元至输出层的连接权值;
所述改进粒子群算法采用基于遗传交叉因子的改进粒子群优化算法,该算法通过交叉因子产生代表新解集的种群,从而使得后代种群更加适应环境,进而搜索到全局最优解;
其中,所述通过交叉因子产生代表新解集的种群的方法为:每一次迭代过程中,根据适应度从优到劣的规律对粒子进行排序,选前一半粒子直接进入下一代;然后将后一半粒子放入粒子选择池中两两配对,产生随机交叉位置进行遗传选择和交叉操作,生成和父代数目相同的子代,然后再和父代做比较,经排序选择适应度好的一半进入下一代;从而产生出数目保持不变的种群粒子进入下一次迭代;
基于遗传交叉因子的改进粒子群算法具体的初始化参数选择时,当群体规模的选择侧重于考虑减少运行时间,种群规模设为40;当群体规模的选择侧重于考虑高精度和高稳定性,则种群规模设为50到80;
步骤五、将优化后得到的神经网络权值代入神经网络,得到补偿模型;
步骤六、将光电编码器输出的测量值输入神经网络进行补偿,输出补偿后的值。
有益效果
1、本发明综合考虑影响光电编码器测量精度的因素,提出了基于傅立叶神经网络和改进粒子群法的误差补偿方法,该方法集中对光电编码器进行补偿,一方面简化补偿过程,即该方法只需将光电编码器随着测试台旋转一周获取训练样本和对应的真实值即可,降低了对所需补偿仪器的要求;另一方面具有更好的补偿效果,即该方法更精确地抵消外界干扰,提高了测量的精度。
2、采用改进粒子群算法训练神经网络权值,该算法在初始阶段有较强的全局搜索能力,能尽可能多地发现可能的全局最优点,而且在后续阶段有较强的局部搜索能力,提高算法收敛速度和求解精度;因此该算法有较强的全局搜索能力,能有效避免早熟收敛,而且算法的稳定性好。
3、该补偿方法采用的神经网络结构简单、易于实现,同时能以任意精度逼近非线性函数,具有较好泛化能力的优点。
4、该补偿方法采用正交的傅立叶函数作为神经网络的激发函数,将非线性优化问题转化为线性优化问题,极大地提高收敛速度,避免陷入局部最小。
附图说明
图1是光电编码器的误差补偿方法原理示意图;
图2是光电编码器的误差补偿方法程序流图。
具体实施方式
下面结合附图1对本发明作进一步说明,本发明具体实现步骤是:
第一步:获取训练样本:一款普通的二维固态磁阻光电编码器在不对外界磁场做任何处理的室内环境下,随手动转台水平非匀速旋转一圈,获取光电编码器的测量值x及其对应的转台转角Y作为训练样本。
第二步:确定神经网络结构:采用单输入单输出傅立叶神经网络建立光电编码器方向角误差的模型。该网络为三层前向网络,其三层分别为输入层、隐含层、输出层。与其他神经网络不同的是傅立叶神经网络选用正交三角函数系代替常用的sigmoid函数或者Gaussian函数作为神经网络各隐含层神经元的激发函数,并选傅立叶级数的系数a0,ai,bi,(i=1,2,3,…,n)作为隐含层至输出层的连接权值,神经网络输入层到隐含层各神经元为1,输出层采用线性神经元,则输出层的输出与f(x)的傅立叶级数在形式上是等同的,因此傅立叶神经网络的输出等价于傅立叶级数。
确定神经网络结构,具体步骤如下:
建立单输入单输出三层前向傅立叶神经网络作为光电编码器的误差补偿模型,隐含层各神经元的激发函数为:
S1=1,...,S2i=cos(2iπx/T),S2i+1=sin(2iπx/T),i=1,2,…,n (1)
其中,T为角度传感器的测量周期;
选择傅立叶系数a0,...,ai,bi,i=1,2,3,…,n作为隐含层各神经元至输出层的连接权值,即:
其中f(x)为神经网络的输出;则隐含层各神经元至输出层的连接权值w1,...,w2i,w2i+1为:
w1=a0,...,w2i=ai,w2i+1=bi,i=1,2,…,n (4)
此外,神经网络输入层到隐含层各神经元的连接权值为1;隐含层各神经元的输出为:
Oj=Sjwj j=1,2,…,2n+1(5)
输出层采用线性神经元,则输出层的输出为:
步骤三、建立光电编码器误差模型并选择训练指标;
定义光电编码器的误差ei为神经网络输出值yi与理想值Yi的差,即
ei=Yi-yi=Yi-f(xi),i=1,2,…,M (7)
其中,M为训练样本维数,i为变量;并选择训练指标J为:
步骤四:采用改进粒子群算法训练神经网络;
根据初始化的参数值和步骤一获取的训练样本,采用改进粒子群算法训练神经网络,获得隐含层各神经元至输出层的连接权值,从而得到较为精确的光电编码器补偿模型,用来补偿光电编码器的测量角;若用当前补偿模型补偿后得到的光电编码器测量角的精度不够,则重新选取初始化的参数值重新计算隐含层各神经元至输出层的连接权值,获取新的光电编码器补偿模型,直到采用该补偿模型补偿后的光电编码器测量值达到所需的补偿精度为止;
所述改进粒子群算法采用基于遗传交叉因子的改进粒子群优化算法,该算法结合遗传算法中的组合交叉和变异思想,通过交叉因子产生代表新解集的种群,从而使得后代种群更加适应环境,进而搜索到全局最优解;
其中,所述通过交叉因子产生代表新解集的种群的方法为:每一次迭代过程中,首先根据适应度从优到劣的规律对粒子进行排序,选前一半粒子直接进入下一代;然后将后一半粒子放入粒子选择池中两两配对,产生随机交叉位置进行遗传选择和交叉操作,生成和父代数目相同的子代,然后再和父代做比较,经排序选择适应度好的一半进入下一代;从而产生出数目保持不变的种群粒子进入下一次迭代;这样方法既可以增加粒子多样性,跳出局部最优,还可以加快收敛速度。
所述基于遗传交叉因子的改进粒子群算法具体的初始化参数选择原则如下:
(1)粒子维数D
粒子维数D即为傅立叶神经网络隐含层各神经元至输出层的连接权值的个数;
(2)群体规模N
群体规模的选择需综合考虑所需的精度、稳定性、运行时间以及维度;
进一步,群体规模的选择侧重于考虑减少运行时间,种群规模设为40;侧重于考虑高精度和高稳定性,则种群规模设为50到80;
(3)惯性权重ω
需要使算法具有较强全局搜索能力时,选择较大的ω;需要使算法具有较好的局部搜索能力时,选择较小的ω;
(4)个体学习因子c1和群体学习因子c2
个体学习因子c1用于控制个体的历史对粒子新位置的影响,而群体学习因子c2用于控制群体的历史对粒子新位置的影响;
(5)最大迭代次数G
最大进化代数G的选取根据神经网络训练指标和训练时间来综合选择;
采用带交叉因子的粒子群算法训练神经网络,参见附图2,具体步骤如下:
步骤1:初始化粒子群,包括每个粒子的随机位置和速度、粒子维数D、群体规模N、惯性权重ω、个体学习因子c1和群体学习因子c2、最大迭代次数G等。
步骤2:根据初始化的粒子群,设第1个粒子的粒子元素对应隐含层各神经元至输出层的连接权值,由此确定一个对应的神经网络;将M维训练样本代入神经网络,确定神经网络的输出;将神经网络输出代入公式(7),分别计算出M维训练样本对应的光电编码器的误差,然后通过公式(8)获得第1个粒子对应的训练指标;按照同样的方法计算剩下N-1个粒子的训练指标,比较这N个训练指标,然后将第i个粒子的当前位置设置为pi,根据各个粒子对应的最小的训练指标找出初始种群的最优位置设置为pg;其中,pi为第i个粒子的最优位置;pg为整个粒子群的最优位置;
步骤3:根据式(9)、(10)更新粒子群中每个粒子的速度v和位置h。
vi(t+1)=ω×vi(t)+c1×r1×(pi-hi(t))+c2×r2×(pg-hi(t))(9)
hhi(t+1)=hi(t)+vi(t+1)(10)
r1、r2是均匀分布在(0,1)区间的随机数,vi(t)为第t代第i个粒子的速度,vi(t+1)为第t+1代第i个粒子的速度,hi(t)为第t代第i个粒子的位置,hi(t+1)为第t+1代第i个粒子的位置。
步骤4:根据步骤2的计算方法,计算更新后的每个粒子对应的训练指标,将所计算得的训练指标进行排序,排序后将对应训练指标较优的前一半粒子保留直接进入下一代,后一半粒子放入一个池中两两配对,随机产生一个交叉位置,进行和遗传算法相同的选择和交叉操作,产生与父代数目相同的子代。
步骤5:根据步骤4获得的子代按照步骤2的方法计算每个粒子的对应的训练指标,然后与步骤4中获得的父代的训练指标作比较,选择子代和父代中粒子对应的训练指标较好的一半粒子进入下一代,从而保持群体规模N不变。
步骤6:比较步骤5所获得的下一代的粒子对应的训练指标,如果其中一新粒子的当前对应的训练指标优于其本身经历过的最好位置pi,则将其当前位置设为其新的最好位置。对整个种群中的每个粒子,将其对应的训练指标与全局经历过的最好位置pg作比较,如果其对应的训练指标优于整个种群的历史最好位置,就用整个粒子群中对应训练指标最好的粒子作为新群体的最好位置。
步骤7:检查终止条件,判断算法是否达到最大迭代次数或所需的训练指标,如果达到最大迭代次数或所需的训练指标,则训练过程结束;否则,跳转返回步骤3。
第五步:将优化后得到的权值代入神经网络,得到补偿模型,用于补偿光电编码器的输出。
步骤六、将光电编码器输出的测量值输入神经网络进行补偿,输出补偿后的值。
Claims (1)
1.一种光电编码器的误差补偿方法,其特征在于,该方法实现的具体步骤如下:
步骤一、获取训练样本;
一款普通的二维固态磁阻光电编码器在不对外界磁场做任何处理的室内环境下,随手动转台水平非匀速旋转一圈,获取光电编码器的测量值x及其对应的转台转角Y作为训练样本;
步骤二、确定神经网络结构;
建立单输入单输出三层前向傅立叶神经网络作为光电编码器的误差补偿模型,隐含层各神经元的激发函数为:
S1=1,...,S2i=cos(2iπx/T),S2i+1=sin(2iπx/T),i=1,2,…,n
其中,T为角度传感器的测量周期;
选择傅立叶系数a0,...,ai,bi,i=1,2,3,…,n作为隐含层各神经元至输出层的连接权值,即:
其中f(x)为神经网络的输出;则隐含层各神经元至输出层的连接权值w1,...,w2i,w2i+1为:
w1=a0,...,w2i=ai,w2i+1=bi,i=1,2,…,n
此外,神经网络输入层到隐含层各神经元的连接权值为1;隐含层各神经元的输出为:
Oj=Sjwj j=1,2,…,2n+1
输出层采用线性神经元,则输出层的输出为:
步骤三、建立光电编码器误差模型并选择训练指标;
定义光电编码器的误差ei为神经网络输出值yi与理想值Yi的差,即
ei=Yi-yi=Yi-f(xi),i=1,2,…,M
其中,M为训练样本维数,i为变量;并选择训练指标J为:
步骤四:根据训练样本采用改进粒子群算法训练神经网络;
采用步骤一获取的训练样本,引入改进粒子群算法训练神经网络,优化神经网络隐含层各神经元至输出层的连接权值;
所述改进粒子群算法采用基于遗传交叉因子的改进粒子群优化算法,该算法通过交叉因子产生代表新解集的种群,从而使得后代种群更加适应环境,进而搜索到全局最优解;
其中,所述通过交叉因子产生代表新解集的种群的方法为:每一次迭代过程中,根据适应度从优到劣的规律对粒子进行排序,选前一半粒子直接进入下一代;然后将后一半粒子放入粒子选择池中两两配对,产生随机交叉位置进行遗传选择和交叉操作,生成和父代数目相同的子代,然后再和父代做比较,经排序选择适应度好的一半进入下一代;从而产生出数目保持不变的种群粒子进入下一次迭代;
基于遗传交叉因子的改进粒子群算法具体的初始化参数选择时,当群体规模的选择侧重于考虑减少运行时间,种群规模设为40;当群体规模的选择侧重于考虑高精度和高稳定性,则种群规模设为50到80;
步骤五、将优化后得到的神经网络权值代入神经网络,得到补偿模型;
步骤六、将光电编码器输出的测量值输入神经网络进行补偿,输出补偿后的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110345068.XA CN102506914B (zh) | 2011-11-04 | 2011-11-04 | 一种光电编码器的误差补偿方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110345068.XA CN102506914B (zh) | 2011-11-04 | 2011-11-04 | 一种光电编码器的误差补偿方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102506914A CN102506914A (zh) | 2012-06-20 |
CN102506914B true CN102506914B (zh) | 2014-08-27 |
Family
ID=46219021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110345068.XA Active CN102506914B (zh) | 2011-11-04 | 2011-11-04 | 一种光电编码器的误差补偿方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102506914B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103925939B (zh) * | 2014-04-10 | 2016-06-08 | 北京理工大学 | 一种光电编码器全量程的标定补偿方法 |
CN103954316B (zh) * | 2014-04-30 | 2016-04-13 | 湖南大学 | 一种角度编码器的标定方法及装置 |
CN105043433B (zh) * | 2015-08-28 | 2016-12-21 | 北京理工大学 | 一种基于神经网络的光电编码器快速补偿方法 |
CN107449460A (zh) * | 2017-07-07 | 2017-12-08 | 银弗(北京)科技有限公司 | 一种旋转编码器的补偿方法和补偿系统 |
WO2019021845A1 (ja) * | 2017-07-27 | 2019-01-31 | 株式会社ニコン | 校正装置、エンコーダ装置、駆動装置、ステージ装置、ロボット装置、エンコーダ装置の製造方法、及び校正プログラム |
CN108448979B (zh) * | 2018-03-27 | 2021-10-22 | 北京工业大学 | 一种基于磁编码器误差神经网络补偿的永磁同步电机系统 |
EP3839443B1 (de) * | 2019-12-16 | 2022-06-08 | Sick Ag | Gebervorrichtung und verfahren zur bestimmung einer kinematischen grösse |
CN111366125B (zh) * | 2020-02-29 | 2021-10-08 | 上海市特种设备监督检验技术研究院 | 一种履带式起重机回转角度测量方法 |
CN117705164B (zh) * | 2024-02-06 | 2024-05-07 | 科瑞工业自动化系统(苏州)有限公司 | 一种光磁编码器误差补偿方法、系统及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862229A (zh) * | 2006-06-27 | 2006-11-15 | 北京航空航天大学 | 一种基于神经网络的开环光纤陀螺输出误差补偿方法 |
CN101319890A (zh) * | 2008-07-18 | 2008-12-10 | 东南大学 | 工程科学信息处理的补偿方法 |
-
2011
- 2011-11-04 CN CN201110345068.XA patent/CN102506914B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862229A (zh) * | 2006-06-27 | 2006-11-15 | 北京航空航天大学 | 一种基于神经网络的开环光纤陀螺输出误差补偿方法 |
CN101319890A (zh) * | 2008-07-18 | 2008-12-10 | 东南大学 | 工程科学信息处理的补偿方法 |
Non-Patent Citations (3)
Title |
---|
李季,等.基于遗传交叉因子的改进粒子群优化算法.《计算机工程》.2008,第34卷(第2期), * |
续志军,等.利用神经网络提高编码器精度的方法.《中国光学与应用光学》.2008,第1卷(第1期), * |
龚鹍,等.基于自适应差分进化算法和傅里叶神经网络的电子罗盘的标定.《中国自动化学会控制理论专业委员会B卷》.2011, * |
Also Published As
Publication number | Publication date |
---|---|
CN102506914A (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102506914B (zh) | 一种光电编码器的误差补偿方法 | |
CN109117951B (zh) | 基于bp神经网络的概率潮流在线计算方法 | |
CN102297687B (zh) | 一种电子罗盘的标定方法 | |
CN102680016B (zh) | 一种光电编码器的误差补偿方法 | |
Zamuda et al. | Constrained differential evolution optimization for underwater glider path planning in sub-mesoscale eddy sampling | |
CN100538276C (zh) | 一种基于集成神经网络的微小卫星用mems陀螺仪误差补偿方法 | |
CN105975795B (zh) | 一种高精度的多关节串联机械臂运动学反解解法 | |
CN110815225A (zh) | 电机驱动单机械臂系统的点对点迭代学习优化控制方法 | |
CN110046408A (zh) | 基于bp神经网络微分与区间分析的区间不确定性优化方法 | |
CN110375649B (zh) | 一种柔性臂坐标测量机的圆光栅偏心参数标定方法 | |
CN111090942B (zh) | 基于拓扑优化的高灵敏度压阻式单轴力传感器设计方法 | |
CN113609750B (zh) | 基于磁场传感信号机器学习的电流计算方法 | |
CN113609749B (zh) | 适用于多场景的基于磁场信号的电流计算方法 | |
CN108959787A (zh) | 考虑实际工况的宏宏双驱动系统的热变形预测方法及系统 | |
Hou et al. | Nonlinear error compensation of capacitive angular encoders based on improved particle swarm optimization support vector machines | |
CN103925939A (zh) | 一种光电编码器全量程的标定补偿方法 | |
CN112207800A (zh) | 三自由度转动曲柄连杆并联平台位姿控制方法 | |
CN111008549A (zh) | 基于样本熵和ifoa-grnn的uuv平台dvl信号失真重构方法 | |
CN108362307B (zh) | 星敏感器在轨姿态测量精度主成分因素的确定方法 | |
CN109579873A (zh) | 一种基于模糊逻辑系统的环形激光器温度建模及补偿方法 | |
CN110046412A (zh) | 一种基于优化bp神经网络的圆光栅测角误差修正方法 | |
CN114967472A (zh) | 一种无人机轨迹跟踪状态补偿深度确定性策略梯度控制方法 | |
CN114791334A (zh) | 一种压力传感器的标定简化方法 | |
Han et al. | A prediction method of ship motion based on LSTM neural network with variable step-variable sampling frequency characteristics | |
Anditio et al. | Integrating PSO optimized LQR controller with virtual sensor for quadrotor position control |
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 |