[发明专利]一种光电编码器的误差补偿方法有效
申请号: | 201210148442.1 | 申请日: | 2012-05-14 |
公开(公告)号: | CN102680016A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 邓方;王艳永;孙健;陈杰;王小刚 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G01D18/00 | 分类号: | G01D18/00;G01B11/26;G06N3/02 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 郭德忠;李爱英 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种光电编码器的误差补偿方法,该方法进行误差补偿的过程较为简单,以达到提高补偿精度的目的;该方法所涉及的设备包括光电编码器、转台和控制器,具体步骤为:控制器将各角度测量值为需要补偿的值x,各转台转角值为约定真值z,将z和x作差得到y;根据x和z,采用最小二乘法建立光电编码器的知识基模型并输出z′;根据x和y,采用改进的自适应神经模糊推理系统结构建立神经模糊模型并输出ynet(k);将所建立的知识基模型和神经模糊模型的输出进行相加得到z’+ynet(k);分别将光电编码器的各测量值输入已建立的知识基模型和神经模糊模型中进行补偿,控制器输出补偿后的值。 | ||
搜索关键词: | 一种 光电 编码器 误差 补偿 方法 | ||
【主权项】:
1.一种光电编码器的误差补偿方法,该方法所涉及的设备包括光电编码器、转台和控制器,其中,光电编码器安装在转台上且保持二者同轴,控制器通过数据线连接至光电编码器;该方法的具体步骤为:S00、获取训练样本;在常温的室内环境下,将与光电编码器同轴安装的转台,非匀速旋转转台一圈,在转台进行转动的过程中,可获得n个转台的转角值z1,…,zj,…,zn并输入至控制器,同时对应于每个转角值,光电编码器测得角度测量值x1,…,xj,…,xn,并通过数据线传输至控制器;控制器将角度测量值和转角值作为训练样本,其中,各角度测量值为需要补偿的值x=[x1,…,xj,…,xn]T,将约定真值z=[z1,…,zj,…,zn]T与x作差得到y=[y1,…,yj,…,yn]T=[z1-x1,…,zj-xj,…,zn-xn]T;S01、建立知识基模型;根据需要补偿的值x和z,采用最小二乘法建立光电编码器的知识基模型,该知识基模型的输出为z′=g(x),其中,g(·)为m次多项式,m=1~3,z′为约定真值z的拟合值;S02、建立神经模糊模型;在控制器上预设训练参数,包括训练次数epoch、训练误差目标值E0和初始步长S(1);同时根据需要补偿的值x和y,采用自适应神经模糊推理系统结构建立神经模糊模型,具体过程为:1)采用单输入单输出五层前向的自适应神经模糊推理系统,所选用的模糊推理规则为:若x为Ai,则有:fi(x)=pi(k)x+ri(k),其中,Ai为前题的模糊数,fi(x)为结论中的精确数,pi(k)和ri(k)均为后件参数,迭代次数k=1,2,...,epoch,i为模糊推理规则数,i=1,2,...,R,R为每层的节点数;所建立的神经模糊模型共五层,每层的输出分别为:第一层的输出函数为:
其中,ci(k)为隶属度函数
的中心,σi(k)为
的宽度,将ci(k)和σi(k)作为前件参数;第二层的输出函数为:O i 2 ( x ) = μ A i ( x ) = ω i = [ ω i 1 , . . . , ω ij , . . . , ω in ] T - - - ( 2 ) ]]> 其中,ω ij = e - [ x j - c i ( k ) ] 2 2 × [ σ i ( k ) ] 2 ; ]]> 第三层的输出函数为:O i 3 ( x ) = ω ‾ i = [ ω i 1 Σ i = 1 R ω i 1 , . . . , ω ij Σ i = 1 R ω ij , . . . , ω in Σ i = 1 R ω in ] T - - - ( 3 ) ]]> 第四层的输出函数为:O i 4 ( x ) = ω ‾ i f i ( x ) = ω ‾ i [ p i ( k ) x + r i ( k ) ] - - - ( 4 ) ]]> 第五层的输出函数为:O 1 5 ( x ) = y net ( k ) = f = Σ i = 1 R ω ‾ i f i ( x ) = Σ i = 1 R ω i f i ( x ) Σ i = 1 R ω i - - - ( 5 ) ]]> 由式(4)和(5),则有:f=A·X (6)其中,
X=[p1(k),r1(k),p2(k),r2(k),...,pR(k),rR(k)]T;2)选择误差函数为:
其中,ynetj(k)为第j个角度测量值所对应的神经模糊模型输出,y netj ( k ) = Σ i = 1 R ω i f i ( x j ) Σ i = 1 R ω i ; ]]> 3)令A·X=y,且
为A的第m+1个行向量,
为y的第m+1行元素,则有:S m + 1 = S m - S m · a m · a m T · S m 1 + a m T · S m · a m - - - ( 8 ) ]]>X m + 1 = X m + S m + 1 · a m · ( b m T - a m T · X m ) - - - ( 9 ) ]]> 其中,m=0,…,n-1;Sm为协方差矩阵,S0=106×I,I为2R×2R维的单位矩阵;X0=0;由式(8)和(9),得到2R×1的列向量X,由式(7)可知,列向量X中的元素即为后件参数pi(k)和ri(k);4)首先计算得到:∂ E ( k ) ∂ c i ( k ) = - 2 Σ j = 1 n [ y j - y netj ( k ) ] · x - c i ( k ) [ σ i ( k ) ] 2 · e - [ x - c i ( k ) ] 2 2 × [ σ i ( k ) ] 2 · [ p i ( k ) · x + r i ( k ) - y net ( k ) ω 1 + ω 2 + . . . + ω R ] - - - ( 10 ) ]]>∂ E ( k ) ∂ σ i ( k ) = - 2 Σ j = 1 n [ y j - y netj ( k ) ] · [ x - c i ( k ) ] 2 [ σ i ( k ) ] 3 · e - [ x - c i ( k ) ] 2 2 × [ σ i ( k ) ] 2 · [ p i ( k ) · x + r i ( k ) - y net ( k ) ω 1 + ω 2 + . . . + ω R ] - - - ( 11 ) ]]> 前件参数ci(k)和σi(k)的调整学习算法分别为:ci(k+1)=ci(k)+Δci(k) (12)σi(k+1)=σi(k)+Δσi(k) (13)其中,Δci(k)为ci(k)的变化量,Δσi(k)为σi(k)的变化量;结合动量附加法,则有:Δ c i ( k ) = λ · Δ c i ( k - 1 ) + λ 2 · Δ c i ( k - 2 ) - ( 1 - λ - λ 2 ) · β ( k ) · ∂ E ( k ) ∂ c i ( k ) - - - ( 14 ) ]]>Δ σ i ( k ) = λ · Δ σ i ( k - 1 ) + λ 2 · Δ σ i ( k - 2 ) - ( 1 - λ - λ 2 ) · β ( k ) · ∂ E ( k ) ∂ σ i ( k ) - - - ( 15 ) ]]> 其中,λ为动量因子;S(k)为步长;学习速率β(k)>0,且β ( k ) = S ( k ) Σ i = 1 R ( ( ∂ E ( k ) ∂ c i ( k ) ) 2 + ( ∂ E ( k ) ∂ σ i ( k ) ) 2 ) - - - ( 16 ) ]]> 5)开始进行训练,输入x和y至所建立的神经模糊模型;当k=1时,预设前件参数ci(k)的初始值为:c i ( 1 ) = min ( x ) + ( i - 1 ) × [ max ( x ) - min ( x ) ] R - 1 - - - ( 17 ) ]]> 其中,min(x)为x1,…,xj,…,xn中的最小值,max(x)为x1,…,xj,…,xn中的最大值;假设当k=1且i取1,2,...,R时,σi(k)相等,令隶属度函数
为0.5,由式(1)、(17)、(8)和(9),计算得到前件参数{ci(1),σi(1)}和后件参数{pi(1),ri(1)};结合式(5)和(7)得到:E ( 1 ) = Σ j = 1 n [ y j - y netj ( 1 ) ] 2 - - - ( 18 ) ]]> 将{pi(1),ri(1)}和{ci(1),σi(1)}均代入式(18),计算得到误差函数值E(1);6)将当前训练次数k和epoch进行比较:若k大于或等于epoch,则将E(k)与训练误差目标值E0作比较:若E(k)大于E0,则说明本次训练失败,返回S02重新设置训练参数,重新从步骤5)开始进行训练,否则,完成训练并转至S03;若k小于epoch,对k进行判断:若k大于或等于4,转至步骤8),否则,转至步骤7);7)k自增1,根据训练样本以及计算得到的后件参数{pi(k),ri(k)}并结合式(5)~(9)以及(10)~(16)计算得到E(k),转至步骤6);8)若计算得到的连续4个误差函数值:E(k)<E(k-1),E(k-2)<E(k-3)且E(k-1)>E(k-2),则令S(k+1)=S(k)×SD(k+1),其中,SD(k+1)为第k+1次训练时步长下降速率,
根据S(k+1)调整学习速率β(k+1)并转至步骤7);若计算得到的连续4个误差函数值:E(k)<E(k-1)<E(k-2)<E(k-3),则令S(k+1)=SR×S(k),其中,SR(k+1)为第k+1次训练时步长上升速率,S R ( k + 1 ) = max ( E ( k - 1 ) E ( k ) , E ( k - 2 ) E ( k - 1 ) , E ( k - 3 ) E ( k - 2 ) ) , ]]> 根据S(k+1)调整学习速率β(k+1)并转至步骤7);S03、将所建立的知识基模型和神经模糊模型的输出进行相加得到z’+ynet(k);S04、分别将光电编码器的各测量值输入已建立的知识基模型和神经模糊模型中进行补偿,控制器输出补偿后的值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210148442.1/,转载请声明来源钻瓜专利网。
- 上一篇:基于混沌理论的交通信息预测方法
- 下一篇:转换控制器