[0048] 以下对本发明作进一步说明。
[0049] 如图1所示,一种无线传感器网络检测地下管廊的方法,具体步骤如下:
[0050] 步骤一、在地下管廊中设置汇聚节点和n个普通节点。普通节点分为气体传感器(本实施例中采用硫化氢气体传感器)、压力传感器、温湿度传感器与烟雾传感器。汇聚节点为收发、处理数据的基站,且位于地下管廊正中心位置。
[0051] 遍历无线传感器网络中所有存活的普通节点。确定各普通节点的邻居节点数量。若一个普通节点位于另一个普通节点所能传输的范围内,则这两个节点互为各自的邻居节点。测量各普通节点向自身对应的所有邻居节点传输数据所需的时长。将0赋值给轮数r。
[0052] 步骤二、计算每个普通节点的簇适应度。第i个普通节点簇适应度T(i)的表达式如下:
[0053]
[0054] 其中,α为第一加权因子;β为第二加权因子;α+β=1;p为期望的簇头节点占所有节点的比重,0<p≤0.2;S(i)E为第i个普通节点的剩余能量;E(i)max为第i个普通节点的初始能量;Nei(i)Num为第i个普通节点的邻居节点数量;round(1/p)为1/p的四舍五入所得整数;mod(r,round(1/p))表示以round(1/p)为周期的离散函数,mod(r,round(1/p))表达式如下:
[0055]其中,v=0,1,2,…。
[0056] 将n个普通节点按照簇适应度从大到小的顺序进行排列,选出前a个普通节点作为簇头节点,其余普通节点作为非簇头节点。簇头数a的表达式如下:
[0057]
[0058] a个簇头节点对应a个簇(即普通节点的集合)。所有非簇头节点分别加入距离自身最近的簇头节点对应的簇。若一个非簇头节点是对应簇头节点的邻居节点,则该非簇头节点为单跳节点。若一个非簇头节点不是对应簇头节点的邻居节点,则该非簇头节点为多跳节点。
[0059] 单跳节点的信息传输路径为直接传输给对应的簇头节点。多跳节点的信息传输路径为先传输给中继节点,再由中继节点传输给对应的簇头节点。中继节点为距离对应多跳节点到簇头节点连线最近的单跳节点。
[0060] 步骤三、建立以汇聚节点为坐标原点、管廊长度方向为X轴方向、管廊宽度方向为Y轴方向的平面直角坐标系。对a个簇头节点依次进行排序。将1赋值给j。
[0061] 步骤四、若汇聚节点位于第j个簇头节点的传输范围内,则第j个簇头节点的信息传输路径为直接传输给汇聚节点,并直接进入步骤七。
[0062] 若汇聚节点位于第j个簇头节点的通讯范围外,则确定第j个簇头节点的坐标(xj,yj)。确定位于目标中继范围内的各簇头节点坐标。目标中继范围为以平面直角坐标系坐标原点及第j个簇头节点为两个角,长度方向平行于平面直角坐标系X轴的矩形范围。即目标中继范围内各簇头节点的横坐标均在xj到0之间,目标中继范围内各簇头节点的纵坐标均在yj到0之间。
[0063] 确定m条以第j个簇头节点为起点、汇聚节点为终点的待定传输路径。待定传输路径内簇头节点及汇聚节点均作为待定传输路径的单位节点。待定传输路径中后一个单位节点位于前一个单位节点的传输范围内,且后一个单位节点的横坐标比前一个单位节点的横坐标更趋近于零,后一个单位节点的纵坐标比前一个单位节点的纵坐标更趋近于零。将1赋值给k。
[0064] 步骤五、对第j个簇头节点对应的第k条待定传输路径内Nk个单位节点沿数据传输方向依次进行排序。Nk为第j个簇头节点对应的第k条待定传输路径内单位节点的数量。
[0065] 计算第j个簇头节点对应的第k条待定传输路径的链路选择因子LSI(k)[0066]
[0067] 其中,SCHE(q)为第k条待定传输路径内第q个单位节点的剩余能量。Cost(q,q+1)为指第q‑1个单位节点向第q个单位节点之间传输L大小的数据时所消耗的能量,Cost(q,q+1)的表达式如下:
[0068]
[0069] 其中,L为普通节点单次传输的平均数据大小,L等于2000bits或4000bits;Eelec为第q个单位节点每发送1bit信息所消耗的能量;d(q,q+1)为第k条待定传输路径内第q个单位节点与第q+1个单位节点之间的距离;εfs为间距小于d0的两个普通节点间传输1bit数据所2
消耗的能量,εfs=10pJ/bit/m ;εmp为间距大于d0的两个普通节点间传输1bit数据所消耗的
4
能量,εmp=0.0013pJ/bit/m;临界值
[0070] 计算传输时延DELAY(k)如下式,
[0071]
[0072] 其中,t(q,q+1)为第k条待定传输路径内第q个单位节点向第q+1个单位节点发送数据所需的时长(该时长在步骤一中已经求出)。
[0073] 计算第k条待定传输路径的链路性能LP(k)=0.7×LSI(k)+0.3×DELAY(k);之后进入步骤六。
[0074] 步骤六、若k<m,则将k增大1并重复执行步骤五,否则进入步骤七。
[0075] 步骤七、对比m条待定传输路径链路性能LP(k)的大小。链路性能最小的那条待定传输路径作为第j个簇头节点的信息传输路径。由于链路性能LP(k)将链路选择因子和累计时延相结合,两者的权重各占0.7和0.3,故能够综合考虑传输能耗的传输时长,选出更具可靠性的传输路径。进入步骤八。
[0076] 步骤八、若j<a,则将j增大1并重复执行步骤四至七,否则,进入步骤九。
[0077] 步骤九、所有簇头节点及非簇头节点进行三分钟的检测后,各个簇内的非簇头节点将自身检测到的数据沿自身的数据传输路径传输给对应的簇头节点。各簇头节点将自身检测到的数据及接收到的数据沿自身的数据传输路径传输给汇聚节点。
[0078] 汇聚节点根据接收到的数据通过内置的卷积神经网络判断廊道内是否发生火灾、是否发生管廊结构损坏、是否发生可燃气体泄漏,并将判断结果上传指挥中心,以便指挥中心根据判断结果进行决策。之后,将轮数r增大1,并进入步骤十。
[0079] 卷积神经网络在计算发生管廊结构损坏的概率、气体含量超标概率及发生火灾的概率前需进行训练。训练的所需数据集是在模拟环境下进行采集的。数据集随机取85%数据集用于训练,15%用于测试。精度达到b后,卷积神经网络即可进行实际使用(一般b≥92%即可)。
[0080] 各个普通节点进行数据采集并对采集数据进行预处理(去噪、去除冗余),其采样频率为1024Hz,采样时间为3min。属于压力传感器的普通节点及属于气体传感器的普通节点对应的卷积神经网络模型结构均为32×32×1→28×28×5→14×14×5→10×10×1→100→10→2→2(softmax的输出),进而得到发生管廊结构损坏的概率及气体含量超标的概率
[0081] 属于温度传感器的普通节点、属于湿度传感器的普通节点及属于烟雾传感器的普通节点组合起来检测是否发生火灾。该三种传感器综合后对应的卷积神经网络模型结构均为32×32×3→28×28×15→14×14×15→10×10×3→300→100→10→2→2(softmax的输出),进而得到发生火灾的概率。
[0082] 步骤十、统计各簇头节点的剩余能量SCHE(q)。若所有簇头节点的剩余能量均大于T(a,r),则重复执行步骤九。否则,重复执行步骤二至九。
[0083] T(a,r)的表达式如下:
[0084]
[0085] 其中,SCHEN表示当前所有簇头节点剩余能量的总和;a表示当前簇头节点的个数。
[0086] 在传统分簇算法中,一轮检测结束后不加任何条件判断,而是直接进行新一轮的分簇。这样虽然简化了算法的步骤,但重新分簇不但花费时间,而且还会在选取的过程中也会损耗不少的能量。而本发明根据簇头剩余能量的的多少进行判断是否重新分簇,进而达到节省能量的目的。