本发明属于测量仪器领域,尤其涉及一种基于bp神经网络的圆光栅传感器测角误差修正方法。
背景技术:
关节类坐标测量机是现代制造业的一种重要的精密测量仪器,广泛应用在模具加工、汽车制造、航空航天等领域。该类仪器的测量精度受其旋转关节内安装的圆光栅传感器测角精度的显著影响,旋转关节中圆光栅传感器的测角精度受到环境温度的显著影响。在不同的工业现场,环境温度跨幅可能高达30℃,若测角误差修正模型中未包含工作环境温度参数,则当工业现场的环境温度与仪器进行标定时环境温度相差较大时,会引起显著的测角误差。
针对环境温度对安装在旋转关节中圆光栅传感器的测角误差修正问题,常用的方法是单读数头标定法,即采用单读数头的布置方案,使用多面棱体和自准直仪在标称的温度区间内取若干个温度值,进行标定,通过最小二乘法等算法建立误差修正函数与圆光栅传感器角度值、温度的函数关系,从而修正测角误差,但该方法由于使用单个读数头,当仪器经过长时间使用后,由于轴承磨损等原因导致工况出现变化,由于单读数头无法进行自修正,因此无法消除由此引起测角误差成分中较大的一次项谐波成分,产生较大的测角误差。另一种应用较为广泛的方法是多读数头均布方案,常用的是双读数头对径均布方案,对2个读数头的测角数据求和取均值进行自修正,理论上可以消除测角误差谐波成分中的奇次项,也可以消除工作环境温度变化引起测角误差的奇次项谐波成分,但是当环境温度改变,引起精密轴系机械结构变形,造成2个读数头之间夹角值的改变,导致测角误差的奇次项谐波成分无法完全消除,同时该方法无法消除偶次项谐波成分。
技术实现要素:
本发明的目的是为了解决这一问题,提供一种基于bp神经网络的圆光栅传感器测角误差修正方法,能够有效修正工况变化以及旋转关节机械结构变形引起的测角误差方法,保证了圆光栅的测角精度以及关节类坐标测量机长期在工业现场使用时的测量精度,具有重大的适用性。
为实现上述发明目的,本发明的技术方案是:
一种基于bp神经网络的圆光栅传感器测角误差修正方法,包括如下步骤,
步骤一,准备实验装置,将精密轴系固定在恒温箱中,精密轴系上安装两个读数头,通过夹具将23面棱体固定在精密轴系的旋转轴上,调整自准直仪和精密轴系的位置,使其能正常工作;
步骤二,标定测角误差值,在设定的温度下,同步记录2个读数头的测角数值h1k,h2k,k=1,2,···,23和自准直仪的水平方向示值γxk,标定测角误差离散值ε(θk);
步骤三,测角误差的函数关系,第一读数头的测角误差离散值进行傅里叶变换得到f(n),第二读数头和第一读数头的差值再进行傅里叶变换,得到与第一读数头测角离散值误差的函数关系;
步骤四,根据函数关系式,得到各个测角误差谐波成分阶数n所对应的夹角α值;
步骤五,分别在设定温度范围内每隔5℃重复进行上述步骤二至四多次,得到夹角的离散点αopq以及2个读数头的差值经傅里叶变换后e21的离散点e21opq;
步骤六,将2个读数头的测角差值离散点e21opq、夹角离散点αopq、实验组重复次数o、恒温箱内温度值p及测角误差阶数值q带入bp神经网络进行建模及测试,得到2个读数头的测角差值与环境温度t和谐波阶次n的关系e21(t,n),以及2个读数头的实际夹角与环境温度t和谐波阶次n的关系α(t,n);
步骤七,再将bp神经网络算法求出的e21(t,n)、α(t,n)带入关系式,得到该环境温度下的f(n),f(n)进行傅里叶逆变换得到第一读数头的测角误差ε(θ),即待修正圆光栅传感器的测角误差ε(θ)。
优选地,步骤1,2个读数头之间夹角α为144±0.5°。
优选地,步骤2,测角误差离散值为
优选地,步骤5,重复次数为3次。
优选地,所述bp神经网络算法,步骤如下,1)构建bp神经网络,2)训练bp神经网络,先bp神经网络初始化,bp神经网络训练,在bp神经网络测试。
与现有技术相比较,本发明的有益效果是:
该修正方法基于傅里叶变换中的传递函数,同时结合bp神经网络的圆光栅传感器测角误差修正,包括环境温度改变造成的测角误差成分在内的测角误差,能够有效修正由于轴承磨损等原因导致的工况变化以及消除环境温度变化引发的旋转关节机械结构变形引起的测角误差方法,保证了圆光栅的测角精度以及关节类坐标测量机长期在工业现场使用时的测量精度,具有重大的适用性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明基于优化bp神经网络的圆光栅测角误差修正方法的关节类坐标测量机旋转关节示意图。
图2为本发明基于优化bp神经网络的圆光栅测角误差修正方法的bp神经网络结构图。
图3为本发明基于优化bp神经网络的圆光栅测角误差修正方法的遗传算法优化bp神经网络算法的流程图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述。
本发明使用双读数头,通过傅里叶变换中的传递函数和bp神经网络,建立2个读数头的夹角与环境温度t和谐波阶次n的关系α(t,n),通过傅里叶逆变换求得圆光栅传感器的测角误差ε(θ)。
如图1所示,一种基于bp神经网络的圆光栅传感器测角误差修正方法,用于修正关节类坐标测量机中旋转关节内圆光栅传感器的测角误差,提高角度测量精度,具体包括如下步骤:
步骤一,准备实验装置,将精密轴系固定在温控箱3中,精密轴系的读数头支架上安装第一、第二读数头,2个读数头之间夹角的设计值α为144(±0.5)°,在精密轴系读中的旋转轴1上安装夹具,固定23面棱体2,通过夹具将23面棱体固定在精密轴系的旋转轴上,调整自准直仪5和精密轴系的位置,使其光路通过温控箱的开孔4垂直射入23面棱体的工作面,能正常工作。拧松固定23面棱体和夹具的螺母,调整23面棱体的位置,使得当圆光栅传感器1号读数头示值接近0°(小于0.01°)时,23面棱体的第1个工作面垂直于自准直仪光路,拧紧螺母,关上恒温箱箱门。
步骤二,标定测角误差值,在某一设定的温度下,同步记录2个读数头的测角数值h1k,h2k,k=1,2,···,23和自准直仪的水平方向示值γxk,标定测角误差离散值ε(θk);
在某一设定的温度下,通过电机,带动旋转轴,使得23面棱体从第1工作面至第23工作面依次垂直于自准直仪光路,表现为自准直仪的十字靶标经棱体工作面反射回来后出现在视场的中央。在这23个均布位置处,同步记录2个读数头的测角数值h1k,h2k,k=1,2,···,23和自准直仪的水平方向的示值γxk,令2个读数头的测角差值为δk,δk=h2k-h1k。
步骤三,测角误差的函数关系,第一读数头的测角误差离散值进行傅里叶变换得到f(n),第二读数头和第一读数头的差值再进行傅里叶变换,得到与第一读数头测角离散值误差的函数关系;
对第一读数头(参考读数头)测角数值h1k和γxk进行处理,得到当前温度下经23面棱体和自准直仪标定出的测角误差离散值ε(θk):
根据公式:
步骤四,根据函数关系式,得到各个测角误差谐波成分阶数n所对应的夹角α值;
根据公式:h1(θ)=θ+ε(θ),h2(θ)=θ+ε(θ+α),其中θ为旋转轴的转动角度,ε(θ)为1号读数头(参考读数头)的测角误差,δ(θ)=h2(θ)-h1(θ)=ε(θ+α)-ε(θ),对δ(θ)进行傅里叶变换可以得到e21(n),
e21(n)=(einα-1)f(n)=w21(n)f(n)。
根据公式:
步骤五,分别在设定温度范围内每隔5℃重复进行上述步骤二至四多次,得到夹角的离散点αopq以及2个读数头的差值经傅里叶变换后e21的离散点e21opq;
分别在10℃至40℃每隔5℃进行上述步骤二至步骤六,在每个温度下进行三次重复实验,得到夹角α关于温度t和阶数n的离散点αopq,o=1,2,3p=10,15,20,25,30,35,40q=1,2,···,11以及2个读数头的差值经傅里叶变换后e21关于温度t和阶数n的离散点e21opq。
步骤六,将2个读数头的测角差值离散点e21opq、夹角离散点αopq、实验组重复次数o、恒温箱内温度值p及测角误差阶数值q带入bp神经网络进行建模及测试,得到2个读数头的测角差值与环境温度t和谐波阶次n的关系e21(t,n),以及2个读数头的实际夹角与环境温度t和谐波阶次n的关系α(t,n);
如图2、图3所示,所述bp神经网络算法步骤如下:
1、bp神经网络构建
采用单一隐含层结构,输入层有2个节点,分别对应环境温度t和谐波阶次n,隐含层有10个节点,输出层有2个节点,分别对应e21和α。
隐含层的传递函数为正切s型传递函数tansig:
输出层的传递函数为线性传递函数purelin:g(x)=x。
令输出层第j个神经元阈值为θj,
第h个隐含层神经元阈值为γh,
输入层第i个节点与隐含层第h个节点之间的权重为vih,
隐含层第h个节点与输出层第j个节点的权重为whj,
隐含层第h个神经元接收到的输入为
隐含层第h个神经元的输出为bh=f(αh-γh),
输出层第j个神经元接收到的输入为
输出层第j个神经元的输出为yj=g(βj-θj)。
其中,x1为温度t,x2为阶数n,y1为e21,y2为α。
2、bp神经网络的训练
(1)bp神经网络初始化
根据标定得到的(11×7×3=)231组输入输出数据,从中随机选取200组数据作为网络训练数据,31组数据作为网络测试数据,对训练数据进行归一化处理,使用如下的归一化方法:
xk=(xk-xmin)/(xmax-xmin)
式中,xmin为数据序列中的最小数,xmax为序列中的最大数。配置网络参数,设置迭代次数、学习率和目标。
(2)bp神经网络训练
使用随机选取的200组数据进行神经网络训练,神经网络的初始参数为[0,1]内随机数,经过神经网络的输出为y%={y1%,y2%},其中yj%=g(βj-θj),对于训练数据集中的单个数据其误差
采用梯度下降法根据误差对神经网络中的参数进行反馈学习,神经网络中参数更新的公式为p←p+δp,采用levenberg-marquardt算法对神经网络进行训练,提高网络的收敛速度,减少训练误差,提高网络性能。
(3)bp神经网络测试
使用随机选取的31组数据对经训练后的神经网络进行测试,首先使用上述方法对测试数据进行归一化,预测输出,并对输出结果进行反归一化。将bp神经网络预测输出和期望输出进行做差,当相对误差小于3%时,即认为满足要求,若不满足要求,则重复步骤(2)至步骤(3),直到满足要求位置,即得到预期的神经网络。
步骤七,再将bp神经网络算法求出的e21(t,n)、α(t,n)带入关系式,得到该环境温度下的f(n),f(n)进行傅里叶逆变换得到第一读数头的测角误差ε(θ),即待修正圆光栅传感器的测角误差ε(θ)。
根据公式:
以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。