时间:2024-07-28
史明泉,崔丽珍,赫佳星
(内蒙古科技大学信息工程学院,内蒙 古包头 014010)
煤矿安全一直是一个热门话题,在煤炭开采过程中,由于煤矿井下巷道狭窄,交错纵横且光线暗淡,这给井下人员及矿车定位带来了诸多困难[1],因而井下定位成为亟待解决的问题。目前关于受限空间内定位的相关研究有很多,然而由于煤矿井下特殊的环境,普通的定位方法无法直接应用。ZigBee技术具有能耗低、效率高、抗干扰能力强和组网能力强等优点,能在煤矿井下稳定工作,传送性能非常好,故本文选取ZigBee作为无线传输方式。基于ZigBee的定位原理是根据信标节点的接收信号强度值(received signal strength indication,RSSI)计算,得到定位节点的位置坐标。根据RSSI值进行室内定位目前主要有两种方法:①基于相对位置的定位方法,利用RSSI值计算信标节点与待定位节点之间的距离来定位,比较常见的有三边定位及其改进算法;②基于位置指纹的定位方法,离线阶段,将各个采集点的RSSI值和相应的坐标保存到数据库中;在线阶段,将采集到的RSSI值与指纹库进行匹配找到定位节点的位置信息[2-3]。基于相对位置的定位方法对环境依赖程度较高,在井下环境中,由于信号衰落,损耗系数的不确定及多径效应引起的传播模型不准确等因素,定位精度不高。本文采用基于位置指纹和神经网络相结合的定位方法,采集定位环境中的位置指纹,根据已有的数据训练神经网络,建立RSSI值与实际坐标之间的映射关系。定位时采用训练好的神经网络预测待测节点的位置坐标。
近些年来,为进一步提高定位精度,利用神经网络、机器学习等人工智能理论进行室内定位,成为一个热门的研究领域。JEON等[4]利用支持向量机(support vector machine,SVM)学习并建立信号强度与位置信息之间的非线性关系,然后利用训练好的支持向量机预测待测节点的位置信息,对测距误差具有较高的容忍度;LIU等[5]提出的定位算法将次锚节点和BP(back propagation)网络结合,因为BP网络具有较高的并行性,其节点具有多跳性,在硬件环境不高的情况下,能够准确定位待测节点,该算法尽管硬件开销小,运算复杂度低,但定位精度较低,误差较大;张会清等[6]将泰勒级数和BP神经网络相结合来进行定位,用BP神经网络对RSSI测距模型中的相关参数进行优化,通过泰勒级数的展开来提高定位精度。但该算法采用的RSSI测距模型运算复杂度较高,导致节点的能耗增加,节点不能长时间工作,这在煤矿井下这样的恶劣环境中是不允许的,而且BP神经网络收敛速度不快、容易陷入局部最小值。
广义回归神经网络(generalized regression neural network,GRNN)的非线性映射能力很强,具有高度的鲁棒性和容错性,相比传统BP网络,GRNN有较强的数据拟合能力和较快的学习速度,特别是当训练样本较小时,可以获得较好的回归预测效果,煤矿井下环境恶劣,测试人员采集数据相对困难,因而GRNN网络非常适合解决井下定位问题。本文将煤矿井下信标节点接收到的RSSI值作为神经网络的输入,将采集节点的位置坐标作为网络输出,训练GRNN神经网络,获得RSSI值与节点坐标之间的网络模型。GRNN模型结构简单,只需一个参数,即平滑因子σ。因而,GRNN模型的预测性能在很大程度上取决于σ的选择,平滑因子σ一般由先验知识或者个人经验来选择,学习效率低下、人为主观影响较大[7]。因而,本文将粒子群优化(particle swarm optimization,PSO)算法引入到GRNN模型中,采用粒子群算法优化GRNN模型参数,提高GRNN回归预测效果,准确定位未知节点坐标位置。
如图1所示,GRNN神经网络由输入层、模式层、求和层和输出层共四层构成。
图1 GRNN网络结构图Fig.1 Network structure of GRNN
(1)
假定f(x,y)服从正态分布,计算见式(2)。
(2)
(3)
求和层包含两种类型的神经元,计算见式(4)。
(4)
一种神经元将模式层中所有神经元的输出值加权求和,计算见式(5)。
(5)
另一种神经元将模式层中所有神经元的输出值作为连接权值,把模式层中相应的神经元进行加权求和,计算见式(6)。
(6)
输出层的神经元将求和层中两个神经元的值相除,得到输出结果见式(7)。
(7)
粒子群优化算法PSO是由E-berhart博士和Kennedy博士发明的一种新的全局优化进化算法,它源于对鸟类捕食行为的模拟[8-10],广泛地应用在系统辨识[11]、神经网络训练[12]等领域。
与蚁群算法类似,粒子群优化算法假设一个群体(粒子群)用来描述待寻优的问题,粒子群的个体(粒子)表示问题的一个值,比如本算法中粒子代表GRNN网络的一个平滑因子。每个粒子有速度和位置两个参数,以粒子作为自变量构建适应度函数,粒子的优劣通过适应度函数值来衡量。算法首先初始化一个随机的粒子群,设定最大迭代次数,在每一次迭代中,首先每个粒子寻找自身的最优解,即个体极值pBest。然后比较每个pBest,寻找当前的整个群体的最优值,即全局极值gBest。粒子根据这两个极值,利用式(8)和式(9)来更新自己的状态。
Vk+1=ω×Vk+c1×rand×(pBest-Xk)+
c2×rand×(gBest-Xk)
(8)
Xk+1=Xk+Vk+1
(9)
式中:Vk为第k次迭代粒子的速度;Vk+1为第k+1次迭代粒子的速度;Xk是第k次迭代粒子的位置;Xk+1是第k+1次迭代粒子的位置;rand为[0,1]之间的随机数;c1为记忆因子;c2为进化因子;ω为加权系数。
更新过程中,粒子每一维的速度限制在[Vmin,Vmax]之间,其中Vmin为最小速率,Vmax为最大速率。粒子每一维的位置也被限制在允许范围之内。每一次迭代中,pBest和gBest都在不断更新。最后当达到最大迭代次数,最终的gBest就是算法的最优解。
基于GRNN神经网络的井下定位模型,首先根据井下环境特征,每隔一定距离采集RSSI值并记录对应的坐标值,将样本数据保存到数据库中。算法分为训练阶段和测试阶段,训练阶段利用训练样本构建PSO-GRNN网络模型,该模型具有最小的定位误差;测试阶段,将待定位节点的RSSI值输入至训练好的PSO-GRNN定位模型中,神经网络的输出即为待测节点的预测坐标。方案流程如图2所示。
图2 PSO-GRNN方案流程图Fig.2 The process of PSO-GRNN
GRNN网络模型采用MATLAB函数net=newgrnn(P,T,spread)构建,其中P为神经网络的输入,T为神经网络的输出,spread为平滑因子。测试输出采用函数Y=sim(net,P),其中net为newgrnn函数生成的GRNN网络架构,P为测试输入,Y为测试输出。一般通过手动调整spread,来获得最优的网络架构,但该方法存在效率低,精度差等问题。本质上,σ的选择归结为一个优化问题,即找到一个合适的σ,使得测试样本的网络输出值(预测坐标)与实际值(实际坐标)的误差最小。因此,本文采用PSO全局寻优算法对spread进行优化调整,避免了由于手动调整带来的效率低下等问题。
PSO-GRNN定位算法的具体步骤如下所述。
1) 设置粒子群算法的基本参数,种群个体数量为sizepop,迭代次数为maxgen,粒子位置的最大值为popmax,粒子位置的最小值为popmin,粒子的最大速度为Vmax,粒子的最小速度为Vmin,记忆因子为c1,进化因子为c2。
2) 构建粒子群算法的适应度函数。PSO-GRNN定位算法的适应度函数表示为:定位节点的GRNN网络输出值(预测坐标)和节点的实际坐标的均方根误差。
具体实现是将样本随机分为A、B两组,A为训练样本,B为测试样本。通过A训练得到的网络结构,计算见式(10)。
(10)
测试阶段:B的RSSI值作为该网络的输入,网络的输出即为测试样本B对应的预测坐标值,预测坐标值与测试样本的实际坐标值的均方根误差函数作为适应度函数,计算见式(11)。
(11)
3) 比较第k个粒子所有位置的适应度值,找出最小的适应度值pBestValue(k),对应的个体最优位置为pBest。
4) 比较所有粒子在其最优位置的适应度值pBestValue(k),找出最小值,对应的位置即为整个种群的最优位置gBest。
5) 更新粒子位置和速度,计算见式(12)和式(13)。
Vk+1=ω×Vk+c1×rand×(pBest-Xk)+
c2×rand×(gBest-Xk)
(12)
Xk+1=Xk+Vk+1
(13)
6) 达到迭代次数,采用搜索到的最佳gBest作为平滑因子构建GRNN,计算见式(14)。
net=newgrnn(P,T,gBest)
(14)
为了验证PSO-GRNN算法在井下环境的定位效果,选取实验环境为一个80 m×4 m的狭长地下通道。沿着狭长的通道,每隔1 m设置1个数据采集点,共有81个数据采集点,定位节点使用CC2530 ZigBee节点,随身携带。通道壁每隔20 m放置1个CC2530 ZigBee节点,作为信标节点(AP),用来接收定位节点发送的数据,共4个AP,4个AP分别通过有线的方式连接到网关。定位节点随身携带,测试人员从(0,0)位置出发,以2.5 m/s的速度匀速前进,终点位置为(0,80 m)。在每一个数据采集点处,定位节点向4个信标节点分别发送50个数据包,信标节点接收到数据后,解析出RSSI值,将RSSI值传送到网关,形成如[RSSI1,RSSI2,RSSI3,RSSI4,(X,Y)]的样本数据,共81个,存放在数据库中。从81组样本中随机抽取65组样本作为训练样本,以[RSSI1,RSSI2,RSSI3,RSSI4]作为PSO-GRNN网络模型的输入,训练神经网络,由于数据采集点坐标的X值都为0,故问题简化为将数据采集点的纵坐标Y作为输出。设定最大迭代次数为50,最终得到最优的网络输出,即定位坐标与实际坐标的误差最小。再用剩余的16组数据作为测试数据,验证该网络的定位结果是否与实际坐标相符。
为了比较三种算法的定位效果,随机从81个样本中抽取16个样本,[RSSI1,RSSI2,RSSI3,RSSI4]分别作为三种网络模型的输入,模型的输出为定位坐标。图3为BP的定位图。
图3 BP网络的定位结果Fig.3 Localization results of BP
图4为GRNN的定位图,默认GRNN网络的平滑因子spread=1。
图5为PSO-GRNN的定位图,经过优化得到当spread=0.582 7时,均方误差RMse=2.193 7,达到最小。图6为PSO的优化结果。
图4 GRNN网络的定位结果Fig.4 Localization results of GRNN
图5 PSO-GRNN网络的定位结果Fig.5 Localization results of PSO-GRNN
图6 PSO优化结果Fig.6 Optimized result of PSO
比较图3、图4和图5发现:采用BP模型实际坐标与预测坐标的最大误差9 m,最小误差1 m,误差在2 m内的只有4个样本;采用未经优化的GRNN模型的最大误差9 m,最小误差1 m,误差在2 m内的有5个样本;采用PSO-GRNN模型的最大误差4 m,最小误差0m,误差在2 m内的有12个样本。
通过均方根误差也可以比较各种算法的定位精度,均方误差的公式计算见式(14)。
(14)
由此可见,PSO-GRNN模型比BP模型和未经优化的GRNN模型有更高的定位精度,均方根误差为2.1937,满足煤矿井下定位需求。
三种模型的运行时间见表2。
由表2可知,PSO-GRNN模型经过优化得到最优性能的同时,付出了时间的代价,该模型寻优时间为4.531 3 s,比未经优化的GRNN模型慢;BP模型由于需要计算大量的阈值和权值,网络结构较复杂,时间为8.406 3 s,效率低下。
表1 各模型的均方根误差Table 1 Mean square error of each model
表2 各模型训练寻优时间Table 2 Training time of each model
本文提出的PSO-GRNN煤矿井下定位算法,考虑井下实际的接收信号模型,使用RSSI值作为神经网络的输入,实际坐标作为网络输出,建立网络模型;利用PSO算法寻找GRNN网络的最优平滑因子,提高PSO-GRNN网络模型的定位精度。仿真结果表明,相比未经优化的GRNN模型及BP模型,PSO-GRNN模型的定位精度显著提高;进一步比较三种算法的运行效率,可以看出PSO-GRNN模型比BP模型所需时间小很多,比BP模型效率更高,而且算法复杂度低,能很好地应用在煤矿井下。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!