一種基于能耗均衡的分簇式無(wú)線傳感網(wǎng)數(shù)據(jù)收集方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種無(wú)線傳感網(wǎng)能耗均衡的數(shù)據(jù)收集方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)與無(wú)線通 信技術(shù)的交叉領(lǐng)域。
【背景技術(shù)】
[0002] 在科學(xué)技術(shù)飛速發(fā)展的今天,具有智能感知、自主組網(wǎng)、多跳傳輸能力的無(wú)線傳感 網(wǎng)(Wireless Sensor Networks,WSN)技術(shù),逐漸成為國(guó)內(nèi)外科技界研究的熱點(diǎn)。作為計(jì)算 機(jī)技術(shù)、無(wú)線通信技術(shù)、嵌入式設(shè)計(jì)技術(shù)、微電子技術(shù)等多學(xué)科的交叉技術(shù),無(wú)線傳感網(wǎng)技 術(shù)不僅拓展了人們獲取信息的能力和手段,更為重要的是,它將客觀世界的物理信息同傳 輸網(wǎng)絡(luò)緊密連接在了一起,為人們的生產(chǎn)生活提供了極為豐富的有益信息,大大提升了人 們的生活質(zhì)量和工作效率。
[0003] 另一方面,隨著大數(shù)據(jù)理論和技術(shù)的發(fā)展,"數(shù)據(jù)收集"問(wèn)題逐漸引起了人們的重 視。如何利用現(xiàn)有的各類(lèi)感知設(shè)備,高效率、高可靠、綠色節(jié)能地收集海量的、多樣化的感知 數(shù)據(jù),正在稱(chēng)為制約無(wú)線傳感網(wǎng)技術(shù)發(fā)展和應(yīng)用最為關(guān)鍵和核心的技術(shù)之一。
[0004] 星型無(wú)線傳感網(wǎng)結(jié)構(gòu)簡(jiǎn)單,組網(wǎng)靈活,是當(dāng)前小規(guī)模應(yīng)用中所采用的主要組網(wǎng)形 式。然而其卻無(wú)法適用于海量數(shù)據(jù)收集環(huán)境,且數(shù)據(jù)收集中心點(diǎn)負(fù)擔(dān)往往較重,不易實(shí)現(xiàn)能 耗均衡;鏈狀無(wú)線傳感網(wǎng)盡管采用鏈頭輪轉(zhuǎn)和多跳傳輸?shù)确绞?,降低了單一?jié)點(diǎn)在數(shù)據(jù)收 集過(guò)程中的負(fù)載,但其可靠性程度不高,魯棒性較弱;而在網(wǎng)狀無(wú)線傳感網(wǎng)中開(kāi)展數(shù)據(jù)收 集,則容易引起ig息內(nèi)爆。
[0005] 在無(wú)線傳感網(wǎng)的網(wǎng)絡(luò)模型中,簇狀結(jié)構(gòu)的網(wǎng)絡(luò)模型具有方便管理、易于實(shí)現(xiàn)、擴(kuò)展 性較好的優(yōu)點(diǎn)。此類(lèi)網(wǎng)絡(luò)模型,通常根據(jù)某種規(guī)則將網(wǎng)絡(luò)中的節(jié)點(diǎn)分為很多子集,各個(gè)子集 組成一個(gè)簇,每個(gè)簇由簇頭節(jié)點(diǎn)和簇內(nèi)節(jié)點(diǎn)組成。LEACH是最早提出的分簇算法,它能夠保 證各節(jié)點(diǎn)等概率地?fù)?dān)任簇頭,從而使得網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的能量相對(duì)均衡地消耗,但LEACH算 法所提的簇頭選舉機(jī)制沒(méi)有考慮節(jié)點(diǎn)的地理位置信息,不能保證簇頭均勻地分布在整個(gè)網(wǎng) 絡(luò)中,從而造成簇的大小不一致,各個(gè)簇的能量消耗不均。
[0006] 眾所周知,無(wú)線傳感網(wǎng)已經(jīng)并將繼續(xù)擁有廣闊的應(yīng)用場(chǎng)景,在軍事國(guó)防、工農(nóng)業(yè)控 制、城市管理、生物醫(yī)療、環(huán)境監(jiān)測(cè)、搶險(xiǎn)救災(zāi)、智能家居、智能電網(wǎng)等眾多領(lǐng)域,有足夠的用 武之地。而上述應(yīng)用場(chǎng)景和應(yīng)用領(lǐng)域中,需要考慮的首要問(wèn)題,無(wú)一例外,都將是數(shù)據(jù)收集 問(wèn)題。而發(fā)明能夠很好地解決上面的問(wèn)題。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明目的在于針對(duì)上述現(xiàn)有技術(shù)的不足,提出了一種基于能耗均衡的分簇式無(wú) 線傳感網(wǎng)數(shù)據(jù)收集方法,該方法原理類(lèi)似于k-means算法,通過(guò)不斷的計(jì)算各個(gè)簇的質(zhì)心坐 標(biāo)、不斷迭代簇頭節(jié)點(diǎn)的位置,從而形成多個(gè)分布均勻、結(jié)構(gòu)合理的簇結(jié)構(gòu)的數(shù)據(jù)收集模 型,并在此基礎(chǔ)上,選取各個(gè)簇頭的鄰居節(jié)點(diǎn)作為備選簇頭,簇頭和備選簇頭輪轉(zhuǎn)工作收集 數(shù)據(jù),進(jìn)一步均衡簇頭節(jié)點(diǎn)的能耗。
[0008] 本發(fā)明解決其技術(shù)問(wèn)題所采取的技術(shù)方案是:本發(fā)明利用隨機(jī)部署的無(wú)線傳感網(wǎng) 節(jié)點(diǎn),通過(guò)不斷計(jì)算各個(gè)簇的質(zhì)心坐標(biāo)、不斷迭代簇頭節(jié)點(diǎn)的位置,從而形成多個(gè)分布均 勻、結(jié)構(gòu)合理的簇結(jié)構(gòu)的數(shù)據(jù)收集模型;最后,在此基礎(chǔ)上,選取簇頭的鄰居節(jié)點(diǎn)作為備選 簇頭,簇頭和備選簇頭輪轉(zhuǎn)工作從而實(shí)現(xiàn)能耗均衡的無(wú)線傳感網(wǎng)絡(luò)的數(shù)據(jù)收集。
[0009] 方法流程:
[0010] 步驟1:在矩形平面網(wǎng)絡(luò)中,部署N個(gè)無(wú)線傳感網(wǎng)節(jié)點(diǎn),其中,節(jié)點(diǎn)的能量受限,且一 經(jīng)部署不能移動(dòng),各個(gè)節(jié)點(diǎn)已知自己的位置坐標(biāo);基站位于網(wǎng)絡(luò)外圍邊緣處;
[0011] 步驟2:網(wǎng)絡(luò)中的各節(jié)點(diǎn),隨機(jī)產(chǎn)生一個(gè)0-1之間的隨機(jī)數(shù),如果這個(gè)隨機(jī)數(shù)比閾值 小,則對(duì)外發(fā)布自己為臨時(shí)簇頭的廣播消息;
[0012] 步驟3:網(wǎng)絡(luò)中的剩余節(jié)點(diǎn),若收到臨時(shí)簇頭的廣播消息,則繼續(xù)對(duì)外廣播此消息 并向臨時(shí)簇頭節(jié)點(diǎn)發(fā)送臨時(shí)簇內(nèi)節(jié)點(diǎn)加入消息;
[0013]步驟4:各個(gè)簇頭節(jié)點(diǎn)將收到的臨時(shí)簇內(nèi)節(jié)點(diǎn)加入消息匯總,并計(jì)算簇的質(zhì)心坐 標(biāo);
[0014]步驟5:各個(gè)臨時(shí)簇頭節(jié)點(diǎn)將簇的質(zhì)心坐標(biāo)同本臨時(shí)簇內(nèi)節(jié)點(diǎn)的坐標(biāo)相比較,向距 離臨時(shí)簇的質(zhì)心坐標(biāo)最近的節(jié)點(diǎn)發(fā)送新臨時(shí)簇頭節(jié)點(diǎn)消息,從而確定新的臨時(shí)簇;
[0015]步驟6:距離臨時(shí)簇的質(zhì)心坐標(biāo)最近的節(jié)點(diǎn)收到新臨時(shí)簇頭節(jié)點(diǎn)消息后,宣布自己 為新的臨時(shí)簇頭節(jié)點(diǎn),同時(shí)對(duì)外廣播臨時(shí)簇頭聲明消息,重復(fù)步驟3-步驟5;
[0016] 步驟7:迭代執(zhí)行上述步驟,直至臨時(shí)簇頭的位置不再改變,或者迭代的輪數(shù)已達(dá) 到,這時(shí)臨時(shí)簇頭發(fā)布簇頭節(jié)點(diǎn)確定消息,從而確定簇頭節(jié)點(diǎn);
[0017] 步驟8:網(wǎng)絡(luò)中的其他節(jié)點(diǎn)根據(jù)收到的簇頭節(jié)點(diǎn)確定消息選擇距離自己最近的簇 頭組成簇,同時(shí)向簇頭發(fā)布簇內(nèi)節(jié)點(diǎn)確定消息,確定加入該簇;
[0018] 步驟9:簇頭節(jié)點(diǎn)選取其鄰居節(jié)點(diǎn)作為備選簇頭,同時(shí)根據(jù)各個(gè)節(jié)點(diǎn)的剩余能量計(jì) 算輪轉(zhuǎn)工作的時(shí)間;
[0019] 步驟10:簇頭和備選簇頭輪轉(zhuǎn)工作從而實(shí)現(xiàn)能耗均衡的數(shù)據(jù)收集。
[0020] 進(jìn)一步地,本發(fā)明的步驟2包括:
[0021] 步驟2-1:網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)公式:
(式中N 為節(jié)點(diǎn)的數(shù)量,dt〇BS為節(jié)點(diǎn)到基站的距離,f s、amp為不同信道傳播模型下的功率放大電路能 耗系數(shù))計(jì)算整個(gè)網(wǎng)絡(luò)中最優(yōu)的簇頭數(shù)量;
[0022] 步驟2-2:各個(gè)節(jié)點(diǎn)產(chǎn)生一個(gè)0-1之間的隨機(jī)數(shù),若隨機(jī)數(shù)小于Κ〇ρ?/Ν,則節(jié)點(diǎn)宣布 自己為臨時(shí)簇頭節(jié)點(diǎn);
[0023]步驟2-3:臨時(shí)簇頭節(jié)點(diǎn)對(duì)外廣播一個(gè)包含自己ID信息及坐標(biāo)位置的臨時(shí)簇頭消 息(TH_MSG),同時(shí)等待一段足夠長(zhǎng)的時(shí)間,以便收到所有的回復(fù)消息;
[0024]進(jìn)一步地,本發(fā)明的步驟3包括:
[0025]步驟3-1:網(wǎng)絡(luò)中的所有非臨時(shí)簇頭節(jié)點(diǎn),在收到臨時(shí)簇頭的廣播消息后將此消息 緩存下來(lái)并繼續(xù)對(duì)外廣播;
[0026]步驟3-2:非臨時(shí)簇頭節(jié)點(diǎn)將所有緩存的臨時(shí)簇頭消息進(jìn)行比較,選擇距離自己最 近的臨時(shí)簇頭發(fā)送臨時(shí)簇內(nèi)節(jié)點(diǎn)消息(TADD_MSG),此消息包含非臨時(shí)簇頭節(jié)點(diǎn)的ID、坐標(biāo) 以及臨時(shí)簇頭節(jié)點(diǎn)的ID信息;
[0027]本發(fā)明的步驟4包括:
[0028] 步驟4-1:各個(gè)臨時(shí)簇頭節(jié)點(diǎn)在等待一段時(shí)間后,將收集到的所有臨時(shí)簇內(nèi)節(jié)點(diǎn)消 息提取出坐標(biāo)信息;
[0029] 步驟4-2:將提取出的坐標(biāo)信息代入 計(jì)算簇的質(zhì)心 坐標(biāo)(x,y)。其中,xi和yi是各個(gè)臨時(shí)簇頭的橫縱坐標(biāo),k是簇內(nèi)臨時(shí)簇頭的個(gè)數(shù)。V〇是簇內(nèi)臨 時(shí)簇頭的集合;
[0030] 本發(fā)明的步驟5包括:
[0031] 步驟5-1:各個(gè)臨時(shí)簇頭節(jié)點(diǎn)將簇的質(zhì)心坐標(biāo)與緩存的臨時(shí)簇內(nèi)節(jié)點(diǎn)的坐標(biāo)進(jìn)行 比較,向距離簇的質(zhì)心坐標(biāo)最近的節(jié)點(diǎn)發(fā)送新臨時(shí)簇頭節(jié)點(diǎn)消息,新臨時(shí)簇頭節(jié)點(diǎn)消息包 含一個(gè)臨時(shí)簇頭節(jié)點(diǎn)的ID以及新臨時(shí)簇頭節(jié)點(diǎn)ID;
[0032] 本發(fā)明的步驟9包括:
[0033] 步驟9-1:選取簇頭節(jié)點(diǎn)的鄰居節(jié)點(diǎn)作為備選簇頭,同時(shí)根據(jù)各個(gè)節(jié)點(diǎn)的剩余能量 計(jì)算輪轉(zhuǎn)工作的時(shí)間,輪轉(zhuǎn)工作時(shí)間的計(jì)算由以下步驟9-2至9-5給出;
[0034] 步驟9-2:我們選取2個(gè)簇頭A、B輪轉(zhuǎn)工作以均衡簇頭節(jié)點(diǎn)的能量消耗,多個(gè)簇頭的 計(jì)算方法以此類(lèi)推;
[0035] 步驟9-3:在一個(gè)簇中,定義一跳到簇頭的節(jié)點(diǎn)所在樹(shù)形簇的第一層,兩跳到簇頭的 節(jié)點(diǎn)所在簇的第二層,以此類(lèi)推,第一層至最大層。令最大層層數(shù)為n,各層節(jié)點(diǎn)的總數(shù)分別 為lhlhb……ln,相鄰層之間數(shù)據(jù)的融合率為n,每個(gè)節(jié)點(diǎn)一輪感知到的數(shù)據(jù)量為m,則在
一輪的數(shù)據(jù)收集中簇頭節(jié)點(diǎn)收集到的數(shù)據(jù)總量
[0036] 步驟9-4:假設(shè)節(jié)點(diǎn)A出任簇頭的輪數(shù)為h,節(jié)點(diǎn)B出任簇頭的輪數(shù)為t2,;在下一輪 的網(wǎng)絡(luò)構(gòu)建時(shí),使節(jié)點(diǎn)A、B的剩余能量同時(shí)為E rciund以均衡簇頭的能耗;假設(shè)節(jié)點(diǎn)A、B之間不 存在通信,當(dāng)簇以節(jié)點(diǎn)A、B為簇頭分裂為兩個(gè)簇的時(shí)候,根據(jù)步驟9-3的公式可求出A、B收到 的數(shù)據(jù)量。令其分別表示為N(A)和N(B);
[0037] 步驟9-5:根據(jù)以上參數(shù),分別得出節(jié)點(diǎn)A在一輪中成為簇頭和非簇頭時(shí)的能耗,并 將它們分別定義為Eh-jPEc^。且滿足:
[0038] E