蘇州博睿測控設(shè)備有限公司 韓會榮
本文設(shè)計了一種無線傳感器與執(zhí)行器網(wǎng)絡(luò)的移動充電方法,根據(jù)節(jié)點的能量情況和當(dāng)前位置正確選擇下一個充電候選節(jié)點。本文算法在保證執(zhí)行器節(jié)點不發(fā)生故障的前提下,盡量減少故障傳感器節(jié)點的數(shù)量。仿真實驗證明了本文算法的優(yōu)勢,有效降低了傳感器節(jié)點的故障率,并實現(xiàn)延遲充電與成本的平衡。
無線傳感器與執(zhí)行器網(wǎng)絡(luò)(WSANs)是無線傳感器網(wǎng)絡(luò)(WSNs)的衍生產(chǎn)品。除了傳感器外,還有一些具有計算和通信能力的執(zhí)行器節(jié)點加入到網(wǎng)絡(luò)中。執(zhí)行器節(jié)點被組織成一個內(nèi)部網(wǎng)絡(luò),執(zhí)行器可以相互合作和通信。此外,每個執(zhí)行器覆蓋一個特定的區(qū)域,負(fù)責(zé)該區(qū)域的事件。通常,傳感器節(jié)點將事件傳送到最近的執(zhí)行器節(jié)點,執(zhí)行器節(jié)點對事件進行初步處理,然后將處理后的數(shù)據(jù)通過內(nèi)部網(wǎng)絡(luò)發(fā)送給基站(BS)。傳感器節(jié)點一般是不動的,但執(zhí)行器可以隨機移動。執(zhí)行器節(jié)點的電池容量比傳感器節(jié)點大得多,故執(zhí)行器節(jié)點需要更多的充電時間才能變成滿能量。
在WSANs中,執(zhí)行器節(jié)點與傳感器節(jié)點都有能量約束。雖然WSNs的能量補充已有深入研究,但WSNs的充電方法不能很好地應(yīng)用于WSANs。其主要原因是:第一,執(zhí)行器節(jié)點在整個網(wǎng)絡(luò)中起著至關(guān)重要的作用。一旦執(zhí)行器節(jié)點死亡,整個網(wǎng)絡(luò)的性能將受到很大影響。第二,與傳感器相比,執(zhí)行器完全充電的時間要長得多,在這種情況下,我們要保證執(zhí)行器節(jié)點不死,并保證沒有及時充電而死亡的傳感器節(jié)點數(shù)量降到最低。第三,執(zhí)行器節(jié)點在網(wǎng)絡(luò)中是可移動的。因此,應(yīng)該考慮執(zhí)行器的精確跟蹤問題從而有效的對其進行充電。
圖1 WSANs網(wǎng)絡(luò)模型
如圖1所示,網(wǎng)絡(luò)由一個BS、一個MV、一組傳感器節(jié)點和若干執(zhí)行器節(jié)點組成。集合S={s1,s2,s3,...,sn}表示傳感器節(jié)點集,集合A={a1,a2,a3,...,am}中的節(jié)點為執(zhí)行器節(jié)點,其中m遠(yuǎn)小于n。整個網(wǎng)絡(luò)被劃分為若干個子網(wǎng),每個子網(wǎng)中部署一個執(zhí)行器節(jié)點,每個執(zhí)行器節(jié)點根據(jù)隨機航點移動模型在自己的區(qū)域內(nèi)移動。傳感器節(jié)點在整個網(wǎng)絡(luò)中隨機分布,不可移動。BS位于網(wǎng)絡(luò)中心,其具有足夠的能量和較強的通信能力,可以直接與MV通信。MV是一種強大的充電設(shè)備,它以恒定的速度V在網(wǎng)絡(luò)中移動以便及時為每個節(jié)點充電。在這里,我們假設(shè)MV的能量足以為網(wǎng)絡(luò)中的節(jié)點充電。
在這個網(wǎng)絡(luò)中,每個節(jié)點都持續(xù)監(jiān)測自己的能量情況。一旦它檢測到能量小于閾值,它就會將充電信息及時發(fā)送給BS,BS及時轉(zhuǎn)發(fā)給MV,MV負(fù)責(zé)選擇下一個充電節(jié)點。
每個節(jié)點的能耗率和同一節(jié)點在不同時間的能耗是不同的。為了避免節(jié)點死亡,及時掌握能耗尤為重要。為了讓BS掌握每個節(jié)點的當(dāng)前能源狀況,每個節(jié)點定期向BS傳遞包含消息。例如,來自節(jié)點i的消息格式可以表示為<IDi,REin,tin,task>,其中IDi代表節(jié)點i,REin代表其第n條記錄的當(dāng)前能量值,tin代表該消息的時間標(biāo)記,task是要執(zhí)行的任務(wù)信息。對于節(jié)點i,讓Rin代表其當(dāng)前能耗率的估計值,當(dāng)n=1時:
代入根據(jù)指數(shù)加權(quán)平均法,得:
第一步:計算每個請求節(jié)點等待的最小值。當(dāng)一個節(jié)點(如節(jié)點j)被收取為候選節(jié)點時,MV將計算其他剩余請求節(jié)點的最短等待時間。如果j是一個傳感器節(jié)點,則節(jié)點i的最小等待時間命名為W(j,i),如式(3):
當(dāng)j是一個執(zhí)行器節(jié)點時,為了減少該執(zhí)行器充電過程中的死節(jié)點數(shù)量,有w(j,i):
其中t(M V,j)和t(j,i)分別代表M V從M V當(dāng)前位置到節(jié)點j的行駛時間和M V從節(jié)點j到節(jié)點i的行駛時間。、分別表示MV對傳感器節(jié)點和執(zhí)行器節(jié)點的充電時間,E和E'代表傳感器節(jié)點和執(zhí)行器節(jié)點的電池容量。α為0~1之間的參數(shù),aE'代表執(zhí)行器的充電上限。REj(t)表示節(jié)點i的最新剩余能量值,Rj為其能量消耗率,tj為節(jié)點j發(fā)送最后一次充電請求的時間,μ為MV的充電速率。
第二步:統(tǒng)計死節(jié)點數(shù)。當(dāng)節(jié)點j作為候選節(jié)點時,在當(dāng)前時間t內(nèi),確保節(jié)點i不死,要求,即當(dāng)節(jié)點j即將被充電時,節(jié)點i不會死亡。當(dāng)j要充電時,死掉的節(jié)點總數(shù)被命名為Nnum,i。
第三步:計算一個節(jié)點到另一個節(jié)點路程。由于傳感器節(jié)點是靜止的,因此可以很容易地計算出任意兩個傳感器之間的距離。但是對于執(zhí)行器節(jié)點而言,為了計算傳感器與執(zhí)行器之間的路程,首先必須確定執(zhí)行器的當(dāng)前位置坐標(biāo)。讓(xg,yg)、(xp,yp)分別代表執(zhí)行器節(jié)點的起始位置G和下一個目標(biāo)位置P的坐標(biāo)。C為執(zhí)行器節(jié)點在時間t的當(dāng)前位置,有:
其中,yc可以類比得出。tg代表執(zhí)行器節(jié)點離開G的時間,之后可以計算出任意兩個節(jié)點之間的距離。
第四步:計算充電度量值?,F(xiàn)在我們計算每個節(jié)點的充電度量值,用于下一步充電節(jié)點的選擇。對于節(jié)點i,度量值為的倒數(shù)。
其中distance(MV,i)表示MV與節(jié)點i之間的距離,β為權(quán)重系數(shù)。MV根據(jù)這個充電指標(biāo)值選擇下一個節(jié)點。通常情況下,選擇度量值最大的節(jié)點作為候選節(jié)點。因為度量值越大,Nnum,i和distance(MV,i)的值越小。也就是說,造成死節(jié)點較少,且距離MV較近的節(jié)點更有可能首先被充電。
第五步:考慮應(yīng)急執(zhí)行器。在我們的算法中,為了保證應(yīng)急執(zhí)行器節(jié)點及時充電,每個執(zhí)行器節(jié)點都不斷更新自己的能量數(shù)值。一旦它檢測到自己的剩余能量低于臨界閾值δ,它就會及時發(fā)送緊急信息給BS,BS立即將緊急信息傳送給MV,然后MV選擇這個執(zhí)行器作為下一個充電節(jié)點。如果有一個以上的執(zhí)行器節(jié)點在緊急情況下,MV優(yōu)先考慮最先發(fā)出緊急信息的執(zhí)行機構(gòu)。
圖2 算法的表現(xiàn)評價對比
由于執(zhí)行器節(jié)點始終處于移動狀態(tài),因此需要預(yù)測執(zhí)行器的充電位置,然后實行充電。假設(shè)選擇執(zhí)行器i作為下一個充電節(jié)點,MV首先會檢查distance(MV,i)是否小于V與Ti,s的乘積。其中,Ti,s為執(zhí)行器在源點S的停留時間,如果滿足該公式,則說明MV到達(dá)S點時,執(zhí)行器i暫時沒有離開這里,所以MV選擇對S點的執(zhí)行器節(jié)點進行充電;如果不為真,則MV應(yīng)直接移動到執(zhí)行器i的下一個目的地點D前,當(dāng)執(zhí)行器i到達(dá)那里時,對其進行充電。一旦執(zhí)行器i移動到遠(yuǎn)離MV的充電范圍,要繼續(xù)進行充電,MV要檢查distance(MV,i)小于V與Ti,s的乘積是否成立。
式(6)中v'為執(zhí)行機構(gòu)的移動速度,Ti,D為在D點的停留時間,如果式(6)為真,MV應(yīng)移動到D點,繼續(xù)給執(zhí)行機構(gòu)i充電;如果不移動,MV必須停留在S點,因為當(dāng)MV到達(dá)D點時,執(zhí)行機構(gòu)i不在那里。只有當(dāng)MV獲得下一個目的地的地理信息時,它將移動到那里來充電。當(dāng)執(zhí)行器i離開時,MV會繼續(xù)尋找下一個執(zhí)行器。根據(jù)公式(6),在充電位置對執(zhí)行器i進行充電,直到其剩余的電量達(dá)到一定程度,能量達(dá)到上限。
以Java作為EMC功能測試的對象,與FCFS、NJNP和FEMER相比,從傳感器故障率(%)、平均充電延遲(單位s)兩個方面通過對比來對EMC的性能實行評定。在仿真中,我們將執(zhí)行器節(jié)點的數(shù)量從一增加到十個。如圖2所示,四種算法的傳感器故障率隨著執(zhí)行器節(jié)點數(shù)量的增長而增長。EMC的表現(xiàn)優(yōu)于FCFS、NJNP和FEMER策略,首先,這是因為我們設(shè)置了執(zhí)行器的充電上限閾值,可以有效降低執(zhí)行器充電時間過長而導(dǎo)致的傳感器節(jié)點故障。其次,這是因為我們可以對能量貯存的情況進行估計,根據(jù)預(yù)測值合理選擇下一個充電節(jié)點。四種方案的平均充電延時如圖2。除了FCFS的充電延遲先增加后減少外,其他方案的充電延遲隨充電節(jié)點數(shù)量的增加而增加。在EMC中,由于執(zhí)行器節(jié)點有充電上限,可避免傳感器死亡,所以它在四種算法中具有明顯的優(yōu)勢。
結(jié)論:本文描述了一種新型的移動能量補充方法,根據(jù)預(yù)測各節(jié)點當(dāng)前的能量狀況及其與MV的距離進行充電節(jié)點選擇。EMC有效減少了平均充電延遲,降低了傳感器的故障率。