亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于分布式模糊控制器的無(wú)線(xiàn)傳感器 網(wǎng)絡(luò)容錯(cuò)非均勻分簇算法

        2018-11-06 03:51:38王出航沈瑋娜胡黃水
        關(guān)鍵詞:能量消耗列表備份

        王出航, 沈瑋娜, 胡黃水

        (1. 長(zhǎng)春師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 , 長(zhǎng)春 130032; 2. 長(zhǎng)春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 長(zhǎng)春 130012)

        0 引 言

        無(wú)線(xiàn)傳感器網(wǎng)絡(luò)廣泛應(yīng)用于環(huán)境監(jiān)測(cè)、 應(yīng)急反應(yīng)、 軍事監(jiān)控以及太空探索等領(lǐng)域[1-2]. 有效節(jié)能是無(wú)線(xiàn)傳感器網(wǎng)絡(luò)需亟待解決的問(wèn)題, 而分簇是其有效方法之一[3-4]. 可將無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中地理位置相近的節(jié)點(diǎn)分成不同的簇, 每個(gè)簇中選出一個(gè)簇頭負(fù)責(zé)收集簇內(nèi)成員數(shù)據(jù)進(jìn)行融合, 然后發(fā)送至基站. 分簇算法可提高網(wǎng)絡(luò)的可擴(kuò)展性和能量效率, 減小路由延遲, 延長(zhǎng)網(wǎng)絡(luò)生命周期[2]. LEACH(low energy adaptive clustering hierarchy)[5]是最早被提出的一種經(jīng)典分簇算法, 其通過(guò)周期性隨機(jī)選擇簇頭節(jié)點(diǎn), 產(chǎn)生合適比例的簇頭, 從而均衡網(wǎng)絡(luò)能耗. 但LEACH算法中簇頭直接與基站通信, 且低能量的節(jié)點(diǎn)可能被選為簇頭, 導(dǎo)致簇頭尤其是遠(yuǎn)離基站的簇頭能量耗盡很快. 為了解決LEACH算法存在的缺陷, DSBCA算法[6]基于剩余能量、 節(jié)點(diǎn)連通密度和選舉時(shí)間參數(shù)計(jì)算節(jié)點(diǎn)權(quán)值, 權(quán)值大的節(jié)點(diǎn)被選為簇頭, 然后根據(jù)簇頭與基站的距離及其連通密度計(jì)算通信半徑, 組織簇成員, 從而形成更平衡的簇結(jié)構(gòu), 并延長(zhǎng)網(wǎng)絡(luò)的生命周期. 但DSBCA算法中簇頭仍直接與基站通信, 導(dǎo)致簇頭能量耗盡很快, 且簇頭的更換僅在簇內(nèi)進(jìn)行, 導(dǎo)致能耗不均衡. 文獻(xiàn)[7]提出了一種LEACH優(yōu)化分簇算法, 在簇頭選舉時(shí)考慮節(jié)點(diǎn)的剩余能量, 使剩余能量高的節(jié)點(diǎn)成為簇頭的幾率變大, 并通過(guò)直線(xiàn)方程求出簇頭的下一跳路由, 通過(guò)多跳的方式與基站進(jìn)行通信, 提高簇頭能量利用效率的同時(shí)增強(qiáng)了網(wǎng)絡(luò)可靠性. 但該算法中簇頭間采用多跳方式傳輸數(shù)據(jù), 導(dǎo)致鄰近基站的簇頭承擔(dān)較多數(shù)據(jù)中繼任務(wù)而過(guò)早能量耗盡, 產(chǎn)生“熱點(diǎn)”問(wèn)題. 以上均勻分簇方法通常適于節(jié)點(diǎn)分布均勻的無(wú)線(xiàn)傳感器網(wǎng)絡(luò), 而實(shí)際部署的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)通常節(jié)點(diǎn)分布不均勻.

        為了解決均勻分簇算法存在的“熱點(diǎn)”等問(wèn)題, 文獻(xiàn)[8]根據(jù)節(jié)點(diǎn)剩余能量、 節(jié)點(diǎn)到基站距離、 節(jié)點(diǎn)度和節(jié)點(diǎn)到簇頭距離等因素選擇簇頭, 從而將網(wǎng)絡(luò)劃分為大小不等的簇, 然后簇頭基于剩余能量、 到基站距離構(gòu)造基于最小生成樹(shù)的最優(yōu)傳輸路徑, 通過(guò)簇內(nèi)單跳、 簇間多跳的通信方式將數(shù)據(jù)傳輸?shù)交? 文獻(xiàn)[3]提出一種改進(jìn)的非均勻分簇路由算法WUCH, 考慮節(jié)點(diǎn)剩余能量和節(jié)點(diǎn)到基站的距離選舉簇頭, 將網(wǎng)絡(luò)分為不同規(guī)模的簇, 在規(guī)模較大的簇內(nèi)選取雙簇頭, 主簇頭負(fù)責(zé)收集簇內(nèi)數(shù)據(jù), 副簇頭負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù), 在數(shù)據(jù)傳輸階段構(gòu)造基于改進(jìn)的最小二叉樹(shù)進(jìn)行數(shù)據(jù)多跳傳輸, 減小規(guī)模較大簇的簇頭節(jié)點(diǎn)收集與傳輸數(shù)據(jù)的負(fù)擔(dān), 從而減小節(jié)點(diǎn)能量消耗. 上述算法中采用不同的競(jìng)爭(zhēng)半徑產(chǎn)生不均勻的簇, 競(jìng)爭(zhēng)半徑內(nèi)最優(yōu)的節(jié)點(diǎn)稱(chēng)為簇頭, 但計(jì)算競(jìng)爭(zhēng)半徑時(shí)很難確定最優(yōu)參數(shù). 此外, 基于競(jìng)爭(zhēng)的簇頭選舉會(huì)增加網(wǎng)絡(luò)開(kāi)銷(xiāo), 而且算法采用的路由方法比傳統(tǒng)的最短路徑多跳方法產(chǎn)生更多的信標(biāo)報(bào)文. 為了處理簇頭競(jìng)爭(zhēng)半徑計(jì)算中可能出現(xiàn)的不確定性, 文獻(xiàn)[9]提出了模糊能量感知的非均勻分簇(EAUCF)算法. EAUCF算法將節(jié)點(diǎn)剩余能量和節(jié)點(diǎn)與基站距離輸入模糊推理系統(tǒng), 計(jì)算得到節(jié)點(diǎn)的競(jìng)選半徑, 使競(jìng)選半徑范圍內(nèi)剩余能量高的節(jié)點(diǎn)成為簇頭, 成簇時(shí)非簇頭節(jié)點(diǎn)加入與簇頭距離近的簇, 仿真結(jié)果表明, 該算法具有良好的性能, 能有效延長(zhǎng)網(wǎng)絡(luò)生命周期. 但EAUCF算法中, 當(dāng)靠近基站節(jié)點(diǎn)較多時(shí), 將導(dǎo)致靠近基站的簇頭耗能極快. 為了克服該問(wèn)題, 文獻(xiàn)[10]提出了一種改進(jìn)的EAUCF算法----FBUC算法. 上述算法都是基于通信半徑來(lái)約束簇大小, 無(wú)法確保最優(yōu)的簇成員數(shù), 從而導(dǎo)致簇內(nèi)通信負(fù)載不均衡. 針對(duì)該問(wèn)題, 文獻(xiàn)[4]提出了一種基于模糊方法的負(fù)載均衡的非均勻分簇算法DUCF. DUCF算法中的模糊推理系統(tǒng)利用剩余能量、 節(jié)點(diǎn)度及節(jié)點(diǎn)與基站距離選舉簇頭, 輸出為節(jié)點(diǎn)成為簇頭的機(jī)會(huì)和簇大小值, 從而使不同簇具有不同簇大小以保證負(fù)載均衡, 并提高網(wǎng)絡(luò)生命周期.

        上述算法都假設(shè)節(jié)點(diǎn)只有在能量耗盡時(shí)才死亡. 而實(shí)際上, 無(wú)論簇頭還是成員節(jié)點(diǎn)由于多種原因(如電源不穩(wěn)、 物理?yè)p壞等)均可能失效和工作異常, 而一旦簇頭出現(xiàn)故障, 則其不能正確收集和轉(zhuǎn)發(fā)數(shù)據(jù), 從而極大降低網(wǎng)絡(luò)性能. 文獻(xiàn)[11]采用備份簇頭解決該問(wèn)題, 一旦簇頭發(fā)現(xiàn)其出現(xiàn)故障或能力低于某個(gè)級(jí)別, 則由備份簇頭接管其職責(zé), 使成簇更安全. 文獻(xiàn)[12]提出了一種采用備份簇頭列表的方法來(lái)容錯(cuò), 當(dāng)發(fā)現(xiàn)簇頭發(fā)生故障時(shí), 從備份簇頭列表中選出最優(yōu)的節(jié)點(diǎn)成為簇頭.

        本文融合文獻(xiàn)[4]和文獻(xiàn)[12]的思想, 提出一種分布式模糊控制的非均勻容錯(cuò)分簇(distributed fuzzy controller based unequal clustering algorithm with fault tolerance, DFUC)算法. 考慮節(jié)點(diǎn)的剩余能量、 節(jié)點(diǎn)中心度以及節(jié)點(diǎn)與基站距離, 運(yùn)用模糊控制器和節(jié)點(diǎn)本地信息計(jì)算節(jié)點(diǎn)成為簇頭的機(jī)會(huì)和簇大小值, 使具有最大機(jī)會(huì)值的節(jié)點(diǎn)成為簇頭, 并根據(jù)簇大小值決定某成員節(jié)點(diǎn)是否加入, 從而形成大小合適的簇. 在數(shù)據(jù)傳輸階段, 采用TDMA(time division multiple access)方式進(jìn)行簇內(nèi)數(shù)據(jù)的收集, 并容忍簇頭和成員節(jié)點(diǎn)的臨時(shí)和永久故障, 簇間采用最短路徑多跳方式進(jìn)行數(shù)據(jù)傳輸, 當(dāng)簇頭出現(xiàn)永久故障時(shí), 最優(yōu)的備份簇頭成為簇頭, 成員節(jié)點(diǎn)出現(xiàn)永久故障時(shí), 將該節(jié)點(diǎn)從網(wǎng)絡(luò)中移除.

        1 相關(guān)模型

        1.1 網(wǎng)絡(luò)模型

        DFUC算法通過(guò)形成大小合適的簇均衡能量消耗, 通過(guò)TMDA機(jī)制容錯(cuò), 從而延長(zhǎng)整個(gè)網(wǎng)絡(luò)的生命周期. 為簡(jiǎn)化, 假設(shè)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)具有如下性質(zhì):

        1) 網(wǎng)絡(luò)部署后所有節(jié)點(diǎn)都是靜態(tài)的, 節(jié)點(diǎn)能量受限而基站能量不受限;

        2) 網(wǎng)絡(luò)節(jié)點(diǎn)同構(gòu), 即具有相同的初始能量, 相同的處理、 存儲(chǔ)、 發(fā)送和接收能力;

        3) 節(jié)點(diǎn)間可通過(guò)接收信號(hào)強(qiáng)度指示RSSI計(jì)算近似距離;

        4) 網(wǎng)絡(luò)部署開(kāi)始時(shí), 基站先向全網(wǎng)節(jié)點(diǎn)發(fā)送HELLO報(bào)文, 然后每個(gè)節(jié)點(diǎn)以其通信半徑R廣播自己的HELLO報(bào)文, 基于這些交互信息, 每個(gè)節(jié)點(diǎn)計(jì)算得到與基站的距離及節(jié)點(diǎn)中心度;

        5) 每個(gè)節(jié)點(diǎn)具有唯一的標(biāo)識(shí), 則節(jié)點(diǎn)集可表示為S={s1,s2,…,sn}, 其中si表示第i個(gè)節(jié)點(diǎn).

        1.2 能量模型

        為便于性能分析和比較, 本文采用文獻(xiàn)[3-4]和文獻(xiàn)[12]中的能量模型, 即

        對(duì)于分簇?zé)o線(xiàn)傳感器網(wǎng)絡(luò), 在數(shù)據(jù)傳輸階段的能量消耗主要有兩個(gè)因素, 即簇內(nèi)傳輸和簇間傳輸. 其中簇內(nèi)傳輸?shù)哪芰肯腅intra由三部分構(gòu)成, 即

        Eintra=EMemToCh+EChrx+EDA,

        (3)

        其中:EMemToCh表示成員節(jié)點(diǎn)與簇頭通信的能量消耗;EChrx表示簇頭從其簇成員節(jié)點(diǎn)接收數(shù)據(jù)消耗的能量;EDA表示數(shù)據(jù)融合的能量消耗. 成員節(jié)點(diǎn)與簇頭通信的能量消耗EMemToCh為

        (4)

        其中:n表示網(wǎng)絡(luò)的簇頭數(shù);mi表示某簇i內(nèi)的成員節(jié)點(diǎn)數(shù), 每個(gè)簇可能都不相等;Etx表示第i個(gè)簇內(nèi)節(jié)點(diǎn)j發(fā)送數(shù)據(jù)到其簇頭消耗的能量. 簇頭從其簇成員節(jié)點(diǎn)接收數(shù)據(jù)消耗的能量EChrx為

        (5)

        其中:mi表示第i個(gè)簇內(nèi)成員節(jié)點(diǎn)數(shù);n表示網(wǎng)絡(luò)內(nèi)簇的數(shù)量;Erx表示接收能量. 數(shù)據(jù)融合的能量消耗EDA為

        (6)

        其中:k表示數(shù)據(jù)位數(shù);EpDb表示單位數(shù)據(jù)融合消耗的能量.

        同理, 簇間傳輸?shù)哪芰肯挠?jì)算也包括兩種情況, 如果簇頭直接與基站通信, 則其能量消耗Esinter為

        Esinter=Etx(CH,BS).

        (7)

        簇頭通過(guò)多跳方式與基站通信時(shí)的能量消耗Eminter為

        (8)

        其中:nm表示簇頭到基站的跳數(shù);CH(i)表示從簇頭到基站多跳路徑上的第i個(gè)簇頭.

        1.3 模糊控制器模型

        采用Mandani模糊控制器[4,9-10], 結(jié)構(gòu)如圖1所示. 由圖1可見(jiàn), 清晰輸入值剩余能量、 節(jié)點(diǎn)中心度、 節(jié)點(diǎn)到基站的距離被模糊推理引擎通過(guò)給定的隸屬度函數(shù)模糊化為合適的語(yǔ)言變量, 然后模糊輸入變量根據(jù)IF-THEN規(guī)則庫(kù)在推理系統(tǒng)中進(jìn)行控制處理. 輸出量為成為簇頭機(jī)會(huì)(chance)和簇大小(size), 模糊推理引擎的輸出仍然是模糊語(yǔ)言變量, 通過(guò)采用質(zhì)心法解模糊, 從而獲得清晰輸出量“機(jī)會(huì)”和“大小”值.

        圖1 模糊控制器結(jié)構(gòu)Fig.1 Structure of fuzzy controller

        2 DFUC算法設(shè)計(jì)

        DFUC算法采用模糊控制器計(jì)算節(jié)點(diǎn)成為簇頭的機(jī)會(huì)和簇大小值, 使具有最大機(jī)會(huì)值的節(jié)點(diǎn)成為簇頭, 并根據(jù)簇大小值形成所需規(guī)模的簇, 同時(shí)按各成員成為簇頭的機(jī)會(huì)大小值排序, 構(gòu)建備份簇頭列表. 采用TDMA方式進(jìn)行簇內(nèi)數(shù)據(jù)的收集, 當(dāng)簇頭出現(xiàn)永久故障時(shí), 最優(yōu)的備份簇頭成為新的簇頭. 算法分為簇形成階段和數(shù)據(jù)傳輸階段.

        2.1 簇形成階段

        在簇形成階段, 網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都有機(jī)會(huì)成為簇頭, 且每個(gè)節(jié)點(diǎn)在該階段都運(yùn)行如圖1所示的模糊控制器, 得到成為簇頭的機(jī)會(huì)和簇大小值. 該階段分成兩個(gè)子階段: 簇頭選舉子階段和簇建立子階段.

        2.1.1 簇頭選舉子階段 網(wǎng)絡(luò)中的所有節(jié)點(diǎn)先被指定為簇成員節(jié)點(diǎn), 然后為“剩余能量”、 “節(jié)點(diǎn)中心度”、 “節(jié)點(diǎn)到基站距離”這3個(gè)輸入變量指定模糊語(yǔ)言變量, 其中剩余能量“Energy”和節(jié)點(diǎn)中心度“centrality”的模糊語(yǔ)言變量為“低”、 “中”、 “高”(low, middle, high); 節(jié)點(diǎn)到基站距離“Distance”的模糊語(yǔ)言變量為“近”、 “中”、 “遠(yuǎn)”(near, middle, far). 且“低”、 “近”、 “高”、 “遠(yuǎn)”采用梯形隸屬函數(shù), 模糊語(yǔ)言“中”采用三角形隸屬函數(shù). 這些隸屬度函數(shù)基于文獻(xiàn)[4,9-10]的實(shí)驗(yàn)結(jié)果及本文的實(shí)驗(yàn)結(jié)果. 模糊輸出變量“成為簇頭的機(jī)會(huì)”“Chance”采用9個(gè)模糊變量, 即“很低”、 “低”、 “較低”、 “低中”、 “中”、 “高中”、 “較高”、 “高”、 “很高”(very low, low, rather low, low middle, middle, high middle, rather high, high, very high). 其中“很低”和“很高”采用梯形隸屬度函數(shù), 其他輸出語(yǔ)言變量采用三角形隸屬度函數(shù). 第二個(gè)輸出變量“簇大小”“Size”采用7個(gè)模糊語(yǔ)言變量, 分別是“很小”、 “小”、 “較小”、 “中”、 “較大”、 “大”、 “很大”(very small, small, rather small, middle, rather large, large, very large). 其中“很小”和“很大”采用梯形隸屬度函數(shù), 其他均采用三角形隸屬度函數(shù).

        清晰輸入值先被模糊推理引擎通過(guò)給定的隸屬度函數(shù)模糊化為合適的語(yǔ)言變量, 然后模糊輸入變量通過(guò)IF-THEN規(guī)則庫(kù)進(jìn)行處理. 共有27條規(guī)則, 表1列出了DFUC算法的模糊IF-THEN規(guī)則. 模糊推理引擎的輸出仍是一個(gè)模糊語(yǔ)言變量, 采用質(zhì)心法解模糊, 從而獲得清晰輸出量“機(jī)會(huì)”和“大小”.

        2.1.2 簇建立子階段 DFUC算法執(zhí)行過(guò)程中, 節(jié)點(diǎn)可能處于成員、 簇頭和備份簇頭3種狀態(tài)之一. 部署后, 所有節(jié)點(diǎn)處于成員狀態(tài), 并啟動(dòng)模糊控制器計(jì)算其成為簇頭的“機(jī)會(huì)”和簇“大小”. 之后所有節(jié)點(diǎn)向其通信半徑內(nèi)的鄰居節(jié)點(diǎn)廣播簇頭競(jìng)爭(zhēng)報(bào)文CH_CP, CH_CP報(bào)文由報(bào)文類(lèi)型、 節(jié)點(diǎn)ID及“機(jī)會(huì)”值構(gòu)成, 其中報(bào)文類(lèi)型表明這是一個(gè)簇頭競(jìng)爭(zhēng)報(bào)文. 具有比其他節(jié)點(diǎn)更高“機(jī)會(huì)”值的節(jié)點(diǎn)成為簇頭, 并廣播競(jìng)爭(zhēng)成功報(bào)文CH_SUCCESS, CH_SUCCESS報(bào)文由報(bào)文類(lèi)型、 節(jié)點(diǎn)ID構(gòu)成. 節(jié)點(diǎn)收到CH_SUCCESS后, 更新其附近簇頭列表, 并向距其最近的簇頭發(fā)送加入簇報(bào)文CH_JOIN, 其由報(bào)文類(lèi)型、 節(jié)點(diǎn)ID及簇頭ID構(gòu)成, 并將該簇頭從簇頭列表中刪除. 接收到CH_JOIN報(bào)文的簇頭檢查其“大小”以判斷是否接收新成員. 如果簇成員節(jié)點(diǎn)小于“大小”值, 發(fā)回成功加入報(bào)文CH_JOIN_SUCCESS, 其由報(bào)文類(lèi)型、 節(jié)點(diǎn)ID、 成員ID及分配的時(shí)隙構(gòu)成, 并將該成員依其機(jī)會(huì)值大小加入備份簇頭列表. 否則, 發(fā)回加入失敗報(bào)文CH_JOIN_FAIL, 包括報(bào)文類(lèi)型、 節(jié)點(diǎn)ID和成員ID構(gòu)成, 表明沒(méi)有新成員節(jié)點(diǎn)的空間了. 當(dāng)某個(gè)節(jié)點(diǎn)接收到CH_JOIN_FAIL報(bào)文時(shí), 如其簇頭列表非空, 則發(fā)送CH_JOIN報(bào)文給下一個(gè)最近的簇頭, 直至其加入到某個(gè)簇. 最差情況下, 簇頭列表空時(shí)節(jié)點(diǎn)仍無(wú)法加入到某簇, 則其自身選為簇頭. 簇形成后, 根據(jù)模糊控制器輸出每個(gè)節(jié)點(diǎn)的機(jī)會(huì)值大小, 按照機(jī)會(huì)值由高到低的原則形成備份簇頭列表, 各簇頭向簇內(nèi)廣播備份簇頭列表報(bào)文CH_Bch, 該報(bào)文包括報(bào)文類(lèi)型、 節(jié)點(diǎn)ID及備份簇頭列表. 接收到CH_Bch的節(jié)點(diǎn)保存?zhèn)浞荽仡^列表, 若節(jié)點(diǎn)ID與列表中第一個(gè)備份簇頭ID相同, 則成為備份簇頭, 其他節(jié)點(diǎn)標(biāo)記該節(jié)點(diǎn)為備份簇頭.

        表1 模糊規(guī)則

        DFUC算法的偽代碼如下.

        算法1DFUC算法.

        n=網(wǎng)絡(luò)節(jié)點(diǎn)數(shù);

        si=第i個(gè)傳感器節(jié)點(diǎn);

        si.state=init_state;

        fori=1 tondo

        si.RE=節(jié)點(diǎn)剩余能量,si.CD=節(jié)點(diǎn)中心度,si.DBS=節(jié)點(diǎn)到基站的距離;

        Chance, Size=FuzzyC(si.RE,si.CD,si.RE,si.DBS);

        end for

        forj=1 tondo

        向鄰居節(jié)點(diǎn)發(fā)送簇頭競(jìng)爭(zhēng)報(bào)文CH_CP=[MSG_TYPE,ID,Chance];

        根據(jù)競(jìng)爭(zhēng)報(bào)文生成鄰居節(jié)點(diǎn)列表ListN=[IDx,Chancex;IDy,Chancey;…]

        if (sj.Chance>Lista>sID.Chance)

        向鄰居節(jié)點(diǎn)廣播競(jìng)爭(zhēng)成功報(bào)文CH_SUCCESS=[MSG_TYPE,ID];

        sj.state=CH_state;

        else

        while (sj簇頭列表不為空)

        向距離最近的簇頭發(fā)送加入簇報(bào)文CH_JOIN=[MSG_TYPE,ID,CH_ID]

        if (該簇頭的成員數(shù)>size)

        該簇頭返回加入簇失敗報(bào)文CH_JOIN_FAIL=[MSG_TYPE,ID,CM_ID];

        將該簇頭從sj簇頭列表中刪除;

        else

        該簇頭返回加入簇成功報(bào)文CH_JOIN_SUCCESS=[MSG_TYPE,CM_ID,ID,Slot];

        根據(jù)鄰居列表ListN更新備份簇頭列表ListB;

        sj.state=CM_state;

        end if;

        else

        該節(jié)點(diǎn)聲明自己成為簇頭;

        sj.state=CH_state;

        end while;

        end if;

        end for.

        2.2 數(shù)據(jù)傳輸階段

        簇一旦建立, 簇成員節(jié)點(diǎn)即可基于分配的時(shí)隙開(kāi)始數(shù)據(jù)傳輸. 在該階段, 所有傳感器節(jié)點(diǎn)都在消耗能量, 因此, 無(wú)論是簇頭還是簇成員都可能出現(xiàn)能量耗盡的情形. 一旦有簇成員節(jié)點(diǎn)失效, 則節(jié)點(diǎn)中心度將發(fā)生變化, 從而影響節(jié)點(diǎn)成為簇頭機(jī)會(huì)和簇大小值, 而如果簇頭節(jié)點(diǎn)死亡, 則整個(gè)簇覆蓋區(qū)域都不能被監(jiān)測(cè). 因此, 對(duì)失效的簇頭和成員節(jié)點(diǎn)進(jìn)行處理非常必要. 為了維護(hù)創(chuàng)建的簇, 簇成員需經(jīng)常計(jì)算其模糊控制器輸出, 并將成為簇頭的機(jī)會(huì)值隨數(shù)據(jù)同時(shí)發(fā)送給簇頭. 簇頭基于接收的機(jī)會(huì)值更新備份簇頭列表, 更新的列表通過(guò)一個(gè)數(shù)據(jù)請(qǐng)求報(bào)文周期性發(fā)送給簇成員, 以確保實(shí)時(shí)更新最合適的備份簇頭, 從而實(shí)現(xiàn)當(dāng)簇頭死亡時(shí)其成員能盡快被通知, 以避免網(wǎng)絡(luò)中數(shù)據(jù)的丟失, 且成員死亡時(shí), 簇頭將其從備份簇頭列表中移除. 實(shí)現(xiàn)過(guò)程如圖2所示, 采用TDMA方式監(jiān)視簇頭和成員.

        圖2 數(shù)據(jù)傳輸與容錯(cuò)Fig.2 Data transmission and fault tolerance

        由圖2可見(jiàn), 成員一旦接收到一個(gè)數(shù)據(jù)請(qǐng)求報(bào)文則發(fā)送其數(shù)據(jù)包, 如果簇頭在幀尾沒(méi)有收到請(qǐng)求的數(shù)據(jù), 則給該成員打上錯(cuò)誤標(biāo)記. 簇頭在下一個(gè)周期時(shí)隙發(fā)出另一個(gè)請(qǐng)求, 如果還未收到請(qǐng)求的數(shù)據(jù), 則認(rèn)為該成員永久故障, 并將其從備份簇頭列表中移除. 同理, 成員在所分配的時(shí)隙等待來(lái)自其簇頭的數(shù)據(jù)請(qǐng)求, 如果成員在幀尾沒(méi)有接連收到數(shù)據(jù)請(qǐng)求報(bào)文, 則認(rèn)為簇頭可能出現(xiàn)臨時(shí)故障, 它將等待下一相應(yīng)時(shí)隙接收數(shù)據(jù)請(qǐng)求報(bào)文, 如果還未接收到數(shù)據(jù)請(qǐng)求報(bào)文, 則認(rèn)為簇頭出現(xiàn)永久故障. 于是, 成員檢查其接收的簇頭最近更新的備份簇頭列表, 并將第一個(gè)節(jié)點(diǎn)作為簇頭發(fā)出加入簇報(bào)文, 等待確認(rèn)報(bào)文. 該節(jié)點(diǎn)也可能失效, 一旦未接收到確認(rèn)報(bào)文, 則以列表的下一個(gè)節(jié)點(diǎn)為簇頭發(fā)出加入簇報(bào)文, 直至最后加入到某個(gè)簇頭.

        3 仿真實(shí)驗(yàn)與分析

        下面將本文DFUC算法與LEACH算法[5]、 DUCF算法[4]及WUCH算法[3]進(jìn)行性能比較. LEACH算法是一個(gè)標(biāo)準(zhǔn)分簇協(xié)議, WUCH算法是一種新的非均勻分簇協(xié)議, DUCF算法是無(wú)線(xiàn)傳感器網(wǎng)絡(luò)分布式基于模糊邏輯的非均勻分簇協(xié)議. 在MATLAB仿真環(huán)境下, 100個(gè)節(jié)點(diǎn)隨機(jī)分布在面積為(200×200)m2的測(cè)試區(qū)域中, 基站坐標(biāo)為(100,100). 仿真參數(shù)為: 數(shù)據(jù)位數(shù)為4 000, 節(jié)點(diǎn)初始能量為1 J,Eelec=50 nJ/bit,εfs=10 pJ/bit,εmp=0.001 3 pJ/bit,d0=87 m, 數(shù)據(jù)包大小為500個(gè)字節(jié), 控制包大小為25 個(gè)字節(jié).

        每個(gè)控制包大小為25個(gè)字節(jié), 數(shù)據(jù)包大小為500個(gè)字節(jié), 比控制報(bào)文大很多, 仿真實(shí)驗(yàn)中也包含了這些控制包的通信代價(jià), DFUC算法和DUCF算法中所有節(jié)點(diǎn)上的模糊控制器的運(yùn)行能耗忽略不計(jì), LEACH算法期望的簇頭百分?jǐn)?shù)為0.1, 傳感器節(jié)點(diǎn)的通信半徑取40 m, 以確保網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都能就近加入一個(gè)簇.圖3為存活節(jié)點(diǎn)數(shù)隨運(yùn)行輪數(shù)的變化曲線(xiàn),圖4為剩余總能量隨運(yùn)行輪數(shù)的變化曲線(xiàn).

        圖3 網(wǎng)絡(luò)存活節(jié)點(diǎn)數(shù)對(duì)比Fig.3 Comparison of number of network surviving nodes

        圖4 剩余總能量對(duì)比Fig.4 Comparison of total residual energy

        由圖3可見(jiàn), 隨著網(wǎng)絡(luò)運(yùn)行輪數(shù)的增加, DFUC算法與其他3種算法相比能很好地均衡網(wǎng)絡(luò)能耗, 從而有效延長(zhǎng)網(wǎng)絡(luò)生命周期. 這是因?yàn)镈FUC算法綜合考慮了節(jié)點(diǎn)剩余能量、 節(jié)點(diǎn)中心度及與基站的距離確定簇頭及簇的大小, 并在數(shù)據(jù)傳輸階段提高了容錯(cuò)能力, 降低了重新成簇的能耗.圖4對(duì)比了4種算法的剩余總能量隨運(yùn)行輪數(shù)增加的變化情況. 由圖4可見(jiàn), 由于DFUC算法在簇形成階段和數(shù)據(jù)傳輸階段綜合考慮了多種影響因素, 因此本文算法波動(dòng)較小、 生存時(shí)間更長(zhǎng).

        綜上所述, 本文提出了一種基于模糊控制理論的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)非均勻分簇算法DFUC, 基于剩余能量、 節(jié)點(diǎn)中心度、 節(jié)點(diǎn)與基站的距離等多個(gè)參數(shù), 通過(guò)模糊控制器計(jì)算輸出成為簇頭機(jī)會(huì)和簇大小值, 使最優(yōu)節(jié)點(diǎn)成為簇頭并限制簇的大小, 成員節(jié)點(diǎn)構(gòu)成備份簇頭列表. 通過(guò)TDMA機(jī)制, 實(shí)時(shí)更新該列表使最合適的節(jié)點(diǎn)成為備份簇頭. 一旦簇頭失效, 則其結(jié)果總能確保一個(gè)備份簇頭替代簇頭. 通過(guò)算法的網(wǎng)絡(luò)存活節(jié)點(diǎn)數(shù)及網(wǎng)絡(luò)剩余總能量進(jìn)行了仿真測(cè)試, 結(jié)果表明, 相對(duì)于LEACH算法、 DUCF算法與WUCH算法, DFUC算法可獲得較長(zhǎng)的生命周期, 性能優(yōu)于其他算法, 更適于實(shí)際應(yīng)用.

        猜你喜歡
        能量消耗列表備份
        巧用列表來(lái)推理
        “備份”25年:鄧清明圓夢(mèng)
        太極拳連續(xù)“云手”運(yùn)動(dòng)強(qiáng)度及其能量消耗探究
        中年女性間歇習(xí)練太極拳的強(qiáng)度、能量消耗與間歇恢復(fù)探究分析
        學(xué)習(xí)運(yùn)用列表法
        沒(méi)別的可吃
        擴(kuò)列吧
        淺析數(shù)據(jù)的備份策略
        科技視界(2015年6期)2015-08-15 00:54:11
        鋁誘導(dǎo)大豆根系有機(jī)酸分泌的能量消耗定量研究
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        国产成版人性视频免费版| 99蜜桃在线观看免费视频网站| 爽妇网国产精品| 日本av在线精品视频| 东京热加勒比久久精品| 黄桃av无码免费一区二区三区 | 久久精品女人天堂av| 免费高清日本中文| 色小姐在线视频中文字幕| 男吃奶玩乳尖高潮视频| 中国老妇女毛茸茸bbwbabes| 日韩精品网| 国产我不卡在线观看免费| 狠狠摸狠狠澡| a级毛片毛片免费观看久潮喷| 激情 一区二区| 男女激情视频网站免费在线| 日韩精品极品视频在线观看免费 | 亚洲 欧美 国产 日韩 精品| 亚洲精品一区二区三区播放| 国内嫩模自拍偷拍视频| 久久综合九色综合97欧美| 亚洲天堂手机在线| 高清亚洲精品一区二区三区| 精品久久有码中文字幕| 亚洲国产美女精品久久久 | 国产精品一级av一区二区| 黄片小视频免费观看完整版| 亚洲午夜无码av毛片久久| 亚洲AV无码一区二区二三区我| 国产偷国产偷亚洲高清| 99久久久久久亚洲精品| 在线观看中文字幕不卡二区| 男女啦啦啦视频在线观看| 日本无遮挡真人祼交视频| 久久av高潮av无码av喷吹| 日韩久久av电影| 日本成年一区久久综合| 人妻av鲁丝一区二区三区| 91精品全国免费观看青青| 日本亚洲视频免费在线看|