APP下载

基于SG算法和BP神经网络的角度传感器信号处理研究

2020-03-10

机械与电子 2020年2期
关键词:阶数传感神经元

(内蒙古民族幼儿师范高等专科学校,内蒙古自治区 鄂尔多斯 017000)

0 引言

电解角度传感器具有良好的耐用性,因此在包括工业机械臂在内的多个领域得到广泛的应用[1]。众所周知,传感器精度是决定系统控制精度的主要因素,因此提高角度传感器的输出精度具有重要的现实意义。由于设计因素和材料因素的原因,电解角度传感器在不同环境温度下会出现误差,尤其在高层户外的环境,这种误差效果更为凸显。为此,提出一种提高角度传感器输出精度的解决方法。该方法首先使用SG算法[2]对原始传感信号进行预过滤处理,随后使用BP神经网络[3]对包含对角度传感器信号和环境温度传感信号多阶数输出信号进行误差估计,最终达到抵消温度误差、提高传感角度的目标。

1 电解角度传感器的工作原理

角度传感器广泛应用于天线定位、航空电子、坡度或倾斜监测和车辆姿态监测等领域。为保证角度传感器的工作可靠性,本文选用电解角度传感器。电解角度传感器结构独特,适用于窄角和宽角范围的测量,同时又保持了紧凑的尺寸和较高的精度,且具有成本低、批量生产可能、功耗低、重复性好和可靠性好等优点。电解角度传感器的工作原理如图1所示。传感器的主体是用各向异性KOH蚀刻法制备的填充导电电解质的大体积硅腔,并采用顶部玻璃薄片密封[4]。当角度传感器水平时,正极和负极均浸入电解液中,相对于普通电极,正极和负极之间产生平衡的电阻信号输出。当传感器倾斜时,电极的浸入表面积会发生变化,一个电极的浸入面积增加,另一个电极的浸入面积减小。电阻的不平衡比与倾角成正比,因此通过测量电阻即可得出倾角。

图1 电解角度传感器的工作原理

2 SG算法

作为局部多项式回归方法 SG滤波算法是通过最小二乘解[5]可以得到给定数据窗大小(2L+1)的优化曲线拟合多项式,因此,SG滤波器可以作为一个信号平滑算法[6]。假设a(k)是一组采样数据样本序列。每一个数据点(如k=0)周围有一组(2L+1)个样本,形成一个拟合多项式,表示为[7]

fi=a0+a1i+a2i2+…+apip=

(1)

SG算法通过将待处理数据中某一连续的数据点选用相应的拟合阶次进行最小二乘法多项式拟合,进而将拟合得到的曲线在数据中心点处的取值作为滤波后的数据值,并依此对其他待处理数据重复此过程。从而达到对所有数据进行滤波的目的。SG算法的具体滤波过程如下。

设x(n)中的一组数据为x(i),i=-M,…,0,…,M。通过构造一个p阶多项式fi来拟合x(i)。

(2)

ak(k=0,…,N)为拟合系数;N为多项式阶数。得到fi的目的是使如式(2)所示的误差项最小化。

(3)

(4)

通过确定多项式阶数N即可求出Fr和Sk+r。将其代入式(4)中则可计算求出拟合系数a0,a1和ap,从而确定拟合多项式fi。最后通过拟合多项式fi对输入的采样信号进行平滑计算从而求出滤波后的输出采样数据序列。

本文使用SG算法对传感器的采样数字信号进行滤波计算。当SG算法参数M=15且P=3 时,滤波前后的采样数据序列如图2所示。由图2可以看出,SG算法有效地减少传感器输出信号的拟合误差,为建立神经网络模型提供足够准确的传感数据。

图2 倾角传感器滤波预处理后误差对比

3 BP神经网络模型

由于传感器的导电电解质和正负电极在环境温度变化下会导致电阻率出现不同程度的变化,从而影响角度传感器的输出信号的精度[8],因此使用BP神经网络对输出信号所包含的角度信息进行纠正,以抵消环境温度对输出角度信号的干扰。所建立的3层BP神经网络结构如图3所示。为了实现从传感器输入信号和环境温度值到输出角度信号的复杂非线性映射,分别选择非线性tansig函数和线性purelin函数作为隐藏层和输出层的传递函数[9]。

图3 三层BP神经网络结构

设角度传感器的采样值序列为θ,其采样时间为10 s;t为采样通道总数,该信号已经被SG过滤算法处理;aj为第j个温度传感器的采样值序列,采样时间为10 s;k为采样通道总数。即

(5)

通过m阶非线性模型估计输出角度

(6)

(7)

(8)

从式(7)和图3可以看出,输入神经元的数量温度采集通道的数量和角度传感器的数量有关。输出层有3个神经元,代表3个方向的角度。中间层神经元数目n不确定。输入层和中间层神经元的数目对关节角估计的精度都有很大的影响,因此将根据网络性能选择合适的神经元数量。

一旦建立了网络的精确结构,那么最重要的事情之一就是训练网络的权值和阈值。经过数据采集和预处理,利用处理后的角度传感信号和温度传感信号构造输入矩阵,利用处理后的3个维度的角度向量构造目标矩阵。所有的数据点也被划分为2个部分:训练和验证。在所有的实验中,每个实验提取20 s的信号,10 s用于训练,另外10 s用于验证。最陡下降反向传播是一种最基本的反向传播算法,其最大的缺点是在整个网络训练过程中学习速率保持不变,因此算法的实际性能对学习速率的正确选择非常敏感。一旦没有正确选择学习速率,可能会出现2个问题:当学习速率过大时,训练过程可能会发生振荡,变得不稳定;另一个问题是训练过程非常缓慢,网络收敛需要很长时间。事实上,由于最优学习速率随迭代次数的变化而变化,对于一定的网络,并没有固定的最优学习速率。针对最陡下降反向传播算法的不足,提出了一些改进算法。动量变学习速率BP算法(GDX)是改进的BP算法之一,也是本研究中使用的算法。

BP神经网络训练参数设定如表1所示。为了提高训练效率,本文对输入数据进行归一化处理,使得所有的输入数据取值区间限定在[0~1]之间。归一化计算

(9)

yi为归一化后数值;xi为原始数值;xmin为最小输入数值;xmax为最大输入数值。

表1 神经网络参数表

4 算法验证及分析

4.1 神经元数量的确定

如上所述,如果模型阶数和隐层神经元数目选择不当,角度估计误差会很大,因此需要在算法验证前首先在MATLAB环境下进行仿真实验以确定模型阶数和神经元数量。实验所用的网络模型为

net=newff(min max(traininput),[20,3],

{‘tansig’,‘purelin’},‘trainlm’)

(10)

net为目标BP神经网络模型;newff为在MATLAB 7.0中生成的BP神经网络函数;minmax()用以求解输入样本参数的最小值和最大值;[20,3]中“20”代表中间隐含层的神经元个数,“3”代表输出层神经元个数;{‘tansig’,‘purelin’}分别表示输入层到隐含层和隐含层到输出层的传递函数;‘trainlm’为本研究所设计的训练函数。

在模型阶数和隐层神经元数发生变化的设置下,进行4次反复试验,得出的角度平均估计均方根误差变化如图4所示。对图4进行分析可知模型阶数(即输入通道)并不是越多越好,冗余的采集数据会引起网络振荡。从图4a可以看出,选择模型阶数为20时,隐藏层神经元的最优数量为20,输入向量长度为60。由图4b可知,当隐藏层神经元数量为20时,最优模型阶数为20。由此可知最优的模型阶数和隐藏层均为20。

图4 当隐层神经元数目和模型阶数m变化时,角度估计均方根误差

4.2 算法验证

在温度精确的实验环境下将18个角度传感器固定在三轴转台上进行算法验证实验,同时在实验环境中设置2个温度传感器。转台的角度值作为算法输出的角度值的标准参照数值。实验共采集160组传感数据,每组数据包括10个角度传感数据和10个温度数据。然后使用SG算法对采集的传感数据序列进行平滑滤波处理。最后将处理后的传感数据分为2组:124组训练数据和36组测试数据。

训练过程中的BP神经网络的误差收敛曲线如图5所示。由图5可知,在完成165次迭代时,BP神经网络的输出误差降至0.000 099,显示出了令人满意的收敛速度。

图5 神经网络误差收敛曲线

使用测试数据对经过训练的BP神经网络进行测试的结果如表2所示。表2中真实值和拟合值均为3个方向角度的平均值。表中“组合模型”是采用完成训练的BP神经网络对经过SG算法处理的36组传感数据进行拟合的相对误差;“原始数据”为采集的原始角度传感数据的平均值;“SG算法”是对原始传感数据进行滤波后的平均值。对这3列数据进行分析能够得出以下结果:经过结合SG算法和BP神经网络组合模型处理后的传感数据具有最小的拟合误差。

表2 检验样本数据误差比较

5 结束语

本文针对角度传感器在实际使用中容易收到环境温度干扰出现误差的问题,提出采用SG算法和BP神经网络组合算法进行信号处理以降低误差干扰的解决思路。该方法是首先使用SG算法对传感信号进行平滑规律,然后使用BP神经网络对传感信号进行拟合估计。实验结果表明,在选择合适的传感数据采集通道数量和建立最优的BP神经网络规模的前提下,该方法输出的传感数据能够有效抵消环境温度的干扰。

猜你喜欢

阶数传感神经元
《传感技术学报》期刊征订
新型无酶便携式传感平台 两秒内测出果蔬农药残留
确定有限级数解的阶数上界的一种n阶展开方法
一个含有五项的分数阶混沌系统的动力学分析
IPv6与ZigBee无线传感网互联网关的研究
复变函数中孤立奇点的判别
跃动的神经元——波兰Brain Embassy联合办公
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用
毫米波导引头预定回路改进单神经元控制
侧脑室注射DIDS对缺血再灌注脑损伤大鼠神经元凋亡的拮抗作用