何世钧,谢圣东,熊中敏,唐莹莉,李 煜
(上海海洋大学信息学院,上海201306)
随着制造工艺的提高和集成电路技术的不断进步,传感器节点中传感模块和处理器模块的功耗已经变得很低,节点的主要能耗在无线通信模块上[1]。由于传感器节点的能量由电池提供并且难以得到补充,所以,功率控制技术是无线传感器网络(WSNs)中的一个重要研究课题[2]。其中,邻居节点级功率控制技术因其灵活性和分布式的特点成为功率控制技术中的一个研究热点。
邻居节点级功率控制技术是指在保证网络拓扑结构连通的基础上,每个节点使用可覆盖邻居节点的功率值发送数据,使节点的能量消耗最小,从而降低网络整体能耗。近年来,已提出的WSNs功率控制算法较多。文献[3]提出了本地平均(local mean algorithm,LMA)算法和本地邻居平均(local mean of neighbors,LMN)算法,这两种算法虽然通过少量的局部信息使网络性能达到了一定程度的优化,但是调整和收敛速度很慢且存在很大的冗余。文献[4]提出了基于控制理论中的PID控制邻居节点算法,该算法在网络启动能耗和时耗上有了进一步优化,但是局限性在于PID参数在整个控制过程中是不可调的,算法不能对发射功率进行实时有效的调整。
为此,本文建立了WSNs传输功率模型,并提出了一种基于单神经元PID的WSNs邻居节点级功率控制算法,能对网络中传感器节点的发射功率进行实时地调整且收敛速率较快,达到有效降低网络能耗的目的。
神经网络具有强鲁棒性、容错性、并行处理、自学习等特点,本文将神经元模型和PID 控制器结合并形成了具有自适应能力的单神经元PID邻居节点级功率控制算法,能够根据网络的变化情况实时地调整节点的发射功率,解决了PID控制算法中PID参数不可调的问题。该算法的控制结构图如图1所示。
图1 控制结构图Fig 1 Diagram of control structure
其中,e(k)为偏差信号,是教师信号;x1(k)=e(k),x2(k)=e(k)-e(k-1),x3(k)=e(k)-2e(k+1)-e(k-1);wi(k)为k时刻状态 xi(k)所对应的权值;ηI,ηP,ηD分别为积分、比例、微分的学习速率;KU为神经元的比例系数,KU>0。
其中,RSSI为节点的接收信号强度指示,dBm;PT为无线信号的发射功率,dBm;r为收发节点之间的距离,m;n为路径损耗指数,它的大小与环境相关[7]。由式(4)可知,在相同发射功率下,RSSI随着通信距离增大而明显降低,当RSSI降到一定值时,节点间的链路质量会很差,通信就可能发生中断。
本文采用RSSI作为邻居节点是否存在的依据,当接收节点的RSSI大于阈值Rth时认定其为邻居节点。节点通过保持一定的邻居节点个数保证网络的连通性,在文献[8]中已有相应的证明,即
其中,Plink为网络的连通率,Nneighbor为节点的邻居节点个数,m为网络中存在的节点个数。
每个节点所需的邻居节点数随着网络中生存节点个数的变化而变化,本文以RSSI为判断依据,将RSSI和网络连通率形成关联,建立WSNs传输功率模型。在保证网络连通性的前提下实时控制邻居节点数,调整节点发射功率以降低网络能耗。
该算法分为网络初始化、功率调整和动态实时跟踪三个阶段。算法执行流程如图2所示。
图2 算法流程图Fig 2 Algorithm flow chart
1)网络初始化阶段:每个节点以最小发射功率开始工作。依据使用的具体传感器节点确定接收灵敏度RSSI阈值Rth,当RSSI高于Rth时认定存在这个邻居节点。通过上述方式获取节点当前的邻居节点个数y(k)。对于Zig Bee节点,当接收节点的RSSI值大于-58 dBm时,绝大多数丢包率小于1%,此时可认为Zig Bee节点之间的通信具有较高的可靠性[9]。本文亦采用Rth为-58 dBm。
2)功率调整阶段:根据网络中节点的个数得出每个节点需要的邻居节点个数为r(k)=5.177 4 lg m,经比较得到误差节点个数为e(k)=r(k)-y(k)。当节点误差个数e(k)作为单神经元PID控制器的输入,对下个周期的发射功率p(k)进行调整时,单神经元PID控制器会利用其自学习和自适应能力准确快速地对发射功率进行调整,使节点在最短的时间内获取理想的邻居节点个数。若邻居节点个数已达到理想值,则当前调整阶段结束。
3)动态实时跟踪阶段:节点的数量在一段时间内若有变化,则所要求的邻居节点个数也会相应的变化,单神经元PID控制器会实时地跟踪调整发射功率,保证全网的连通性同时降低网络能耗。节点的数量若没有变化,则控制算法处于监听状态,节点以当前发射功率运行。
本文采用Matlab作为仿真工具,在Matlab中随机生成并分布有50个节点。主要仿真参数设置为区域大小为100 m×100 m;节点类型为CC2430;路径损耗指数为3;节点闲置状态消耗功率为10-6W;节点接收状态消耗功率为3×10-4W;节点初始能量为1 J;节点最大发射功率为10-3W;节点最小发射功率为3×10-6W。
为了验证本文提出的基于单神经元PID功率控制算法的优越性,在Matlab中仿真,并就网络初始化时调整的响应时间、网络中节点变化时实时跟踪调整的响应时间以及网络的总能耗与LMA,PID控制邻居节点算法进行了比较。
1)网络初始化时布放有50个节点,所以,需要的邻居节点数为8个。三种算法分别完成整个网络连接时,节点的发射功率调整时间响应的对比如图3所示。从图3中可见,单神经元PID控制算法用了3个周期完成网络连接,系统输出没有震荡,收敛速度很快;PID控制邻居节点算法用了10个周期;LMA用了22个周期,且LMA不能精准控制邻居数,只能将其控制在一定的范围之间。
图3 网络初始化时功率调整时间对比Fig 3 Comparison of power adjustment time in network initialization phase
2)随着网络的运行和节点能量的消耗,网络中生存节点的数量会不断减少。在仿真时设定网络中节点数量减少了,所需的邻居节点数从8个降到6个,三种算法的调整时间对比如图4所示。单神经元PID控制算法几乎是实时跟踪,会立即调整节点发射功率,使邻居节点数减少至6个;PID控制算法用了28个周期进行调整稳定,大量的时间耗费在后期消除震荡上;LMA则用了8个周期,稳定后仍未能达到实际控制效果。
图4 动态实时跟踪阶段功率调整时间对比Fig 4 Comparison of power adjustment time in dynamic real-time tracking phase
3)整个网络运行过程中,三种算法控制下的总能耗比较如图5所示。从图5中可见,当网络处于正常工作状态时,单神经元PID控制算法的能耗是PID控制邻居节点算法的84%,是LMA的75%;当网络处于跟踪调整阶段时,单神经元PID控制算法的能耗是PID控制邻居节点算法的82%,是LMA的69%。所以,单神经元PID控制算法较其他两种算法的功率控制效果好,实现了实时平稳地控制节点发射功率,有效地降低了网络总能耗。
图5 网络总能耗对比Fig 5 Comparison of total energy consumption of network
本文结合对WSNs传输功率模型的分析,将单神经元PID控制器引入到功率控制中,提出了基于单神经元PID的WSNs邻居节点级功率控制算法。仿真结果表明:该算法更优越,能根据网络连通性要求精准控制邻居节点的数量,调整传感器节点的功率,实时跟踪响应速度快,收敛性强。采用此方法可有效降低WSNs的整体能耗,延长网络生命周期。
[1]李 巧.工业无线网络功率控制策略研究[D].重庆:西南大学,2012:17.
[2]赵学健,庄 毅,赵 洁,等.无线传感器网络自适应功率控制策略[J].电子与信息学报,2010,32(9):2231-2235.
[3]Kubisch M,Karl H,Wolisz A,et al.Distributed algorithms for transmission power control in wireless sensor networks[C]∥Proc of Wireless Communications and Networking,New Orleans,LA,USA:IEEE Communications Society,2003:558-563.
[4]张建辉,申兴发,陈积明,等.基于PID算法的无线传感器网络传输功率控制研究[J].传感技术学报,2007,20(1):177-182.
[5]刘金琨.先进PID控制Matlab仿真[M].3版.北京:电子工业出版社,2011:301.
[6]黄庭培,李 栋,张招亮,等.突发性链路感知的自适应链路质量估计方法[J].通信学报,2012,33(6):30-39.
[7]文春武,宋 杰,姚家振.基于RSSI校正的无线传感器网络定位算法[J].传感器与微系统,2014,33(12):134-136.
[8]Xue F,Kumar P R.The number of neighbors needed for connectivity of wireless networks[J].Wireless Networks,2004,10(2):169-181.
[9]徐立鸿,早明华,蔚瑞华,等.温室无线传感器网络节点发射功率自适应控制算法[J].农业工程学报,2014,30(8):142-148.