版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要SPIN協(xié)議,全稱sensorprotocolforinformationvianegotiationREF_Ref135307429\r\h[1],譯文為\o"javascript:void(0);"信息協(xié)商的傳感器協(xié)議,這是一種自適應(yīng)通信路由協(xié)議,該協(xié)議把數(shù)據(jù)作為中心,他的存在是為了解決傳統(tǒng)路由協(xié)議所存在的弊端,如信息內(nèi)爆和信息重疊問題。為了使高新技術(shù)更好服務(wù)于人類,人們開發(fā)了許多軟件進(jìn)行模擬仿真,極大地縮短了涉及協(xié)議的周期也降低了難度。MATLAB仿真器作為目前已知的三大數(shù)學(xué)軟件之一能夠極大地方便我們的研究,也在一定程度上驗(yàn)證了協(xié)議的可用性。本文將利用MATLAB仿真軟件對(duì)SPIN協(xié)議(信息協(xié)商的傳感器協(xié)議)進(jìn)行仿真,進(jìn)一步驗(yàn)證協(xié)議的可用性、正確性以及優(yōu)缺點(diǎn)。關(guān)鍵詞:路由協(xié)議SPIN仿真MATLAB。AbstractTheSPINprotocol,alsoknownasthesensorprotocolforinformationvianegotiationREF_Ref135307429\r\h[1],istranslatedasthesensorprotocolforinformationnegotiation.Itisanadaptivecommunicationroutingprotocolthatplacesdataatthecenter,anditsexistenceistoaddressthedrawbacksoftraditionalroutingprotocols,suchasinformationimplosionandinformationoverlap.Inordertobetterservehumanitywithhigh-tech,peoplehavedevelopedmanysoftwareforsimulation,greatlyshorteningthecycleinvolvingprotocolsandreducingdifficulty.TheMATLABsimulator,asoneofthethreeknownmathematicalsoftware,cangreatlyfacilitateourresearchandtosomeextentverifytheusabilityoftheprotocol.ThisarticlewilluseMATLABsimulationsoftwaretosimulatetheSPINprotocol(sensorprotocolforinformationnegotiation),furtherverifyingtheusability,correctness,andadvantagesanddisadvantagesoftheprotocol.Keywords:routingprotocolSPINSimulationMATLAB。無線傳感器網(wǎng)絡(luò)的應(yīng)用前景十分廣闊,其中的關(guān)鍵技術(shù)眾多,路由協(xié)議因其應(yīng)用的廣泛性、實(shí)用性成為了熱點(diǎn)話題,研究者眾。由于無線傳感器網(wǎng)絡(luò)的應(yīng)用環(huán)境和傳感器節(jié)點(diǎn)的能量有限,路由協(xié)議設(shè)計(jì)主要圍繞壽命以及能源展開,使用周期長(zhǎng)且能源充足的協(xié)議無疑更加優(yōu)秀REF_Ref135307455\r\h[2]。因?yàn)镕looding(洪泛路由)協(xié)議存在的"重疊"和"內(nèi)爆"等問題,提高網(wǎng)絡(luò)生命周期和節(jié)點(diǎn)能量效率是必要的。SPIN路由協(xié)議為解決上述傳統(tǒng)路由協(xié)議出現(xiàn)的缺陷,采用了資源自適應(yīng)機(jī)制和協(xié)商的方法,也是首個(gè)以數(shù)據(jù)作為核心的協(xié)議。出于節(jié)省能量的考慮,節(jié)點(diǎn)間采用發(fā)送元數(shù)據(jù)而非所有原數(shù)據(jù)這樣的方法來進(jìn)行協(xié)商。而且傳感器節(jié)點(diǎn)能夠?qū)崟r(shí)監(jiān)控各自的能量變化,以便于隨時(shí)終止低能量的節(jié)點(diǎn),在一定程度上規(guī)避了盲目使用資源的問題。這對(duì)于無線傳感器的研究與探索無疑是一件好事。但在傳輸新數(shù)據(jù)時(shí),由于忽略自身能量,當(dāng)鄰居節(jié)點(diǎn)能量不足時(shí),直接向鄰居節(jié)點(diǎn)發(fā)送ADV報(bào)文,就無法若轉(zhuǎn)發(fā)數(shù)據(jù),那么就不能將新數(shù)據(jù)轉(zhuǎn)發(fā)給上一節(jié)點(diǎn),這被稱為“數(shù)據(jù)盲點(diǎn)”,并可能影響整個(gè)網(wǎng)絡(luò)中數(shù)據(jù)包的收集。無線傳感器網(wǎng)絡(luò)是一門新興技術(shù),電氣與電子工程師協(xié)會(huì)(InstituteofElectricalandElectronicsEngineers)作為一個(gè)國(guó)際性的電子技術(shù)與信息科學(xué)工程師的協(xié)會(huì),目前暫無與無線傳感器相關(guān)的研究組REF_Ref135307485\r\h[3],美國(guó)有關(guān)于這方面的研究及公開報(bào)道最早也要追溯到2000年,我國(guó)在無線傳感器網(wǎng)絡(luò)這方面的研究工作才剛剛開始,由此可見,無線傳感器的研究處在一個(gè)起步階段,因此與之相關(guān)的技術(shù)與掌握技術(shù)的人才在那時(shí)并不對(duì)多見,是一項(xiàng)新興技術(shù),一切都處于空窗狀態(tài)。而我國(guó)的個(gè)別高校已經(jīng)在進(jìn)行該領(lǐng)域的研究工作,但目前主要工作集中在推新以及了解全球研究進(jìn)展方面,尚未有新設(shè)計(jì)的協(xié)議問世,所以在這方面國(guó)內(nèi)外的差距并不大。目前,無線傳感器技術(shù)仍舊處于探索模擬的階段,想要據(jù)此造福人類仍舊有待研究。無線傳感器網(wǎng)絡(luò)的研究方向十分廣泛,這也為此專業(yè)的探索增加了難度,無處不通也意味著到處不通,但由于目前的研究目的明確,我們也在一定程度上節(jié)省了精力與時(shí)間,在網(wǎng)絡(luò)技術(shù)方面,主要以節(jié)點(diǎn)定位及網(wǎng)絡(luò)層協(xié)議研究為主。而協(xié)議的研究與節(jié)實(shí)現(xiàn)節(jié)能的關(guān)系優(yōu)又密不可分,因此本論文所論述的SPIN協(xié)議便是基于節(jié)能而實(shí)現(xiàn)的。MATLAB是作為一款商業(yè)數(shù)學(xué)軟件由美國(guó)的MathWorks公司出品的,主要用于深度學(xué)習(xí)、圖像處理與計(jì)算機(jī)視覺、無線通信、建模,仿真和原型設(shè)計(jì)、算法開發(fā)、控制系統(tǒng)、探索和可視化、量化金融與風(fēng)險(xiǎn)管理、應(yīng)用程序開發(fā)、數(shù)據(jù)分析、機(jī)器人、機(jī)器學(xué)習(xí)、信號(hào)處理等領(lǐng)域、深度學(xué)習(xí)等。REF_Ref135307494\r\h[4]MATLAB的MA是指matrix,而LAB則是laboratory的前綴,顧名思義,MATLAB的功能必然蘊(yùn)藏在這兩個(gè)詞里,譯為矩陣工廠。該軟件主要面向的是自動(dòng)控制、數(shù)字信號(hào)處理REF_Ref135307505\r\h[5]、科學(xué)計(jì)算、通訊設(shè)計(jì)與仿真的高科技計(jì)算環(huán)境。它將圖像處理、高等函數(shù)、數(shù)值分析、復(fù)變函數(shù)、初等函數(shù)、數(shù)據(jù)可視化、以及建模等諸多強(qiáng)大功能融為一體,實(shí)現(xiàn)一物多用的便捷功能,并且僅僅只在一個(gè)可視窗口中就可以操作,為數(shù)學(xué)、建筑、金融、計(jì)算機(jī)以及其他涉及到精確測(cè)算的眾多領(lǐng)域提供了一個(gè)最佳的選擇,并在很大程度上掙脫了傳統(tǒng)非交互式編程語言的模式的束縛。MATLAB作為三大數(shù)學(xué)軟件之一,在有關(guān)專業(yè)領(lǐng)域內(nèi)備受歡迎,以矩陣為基本數(shù)據(jù)單位,因其強(qiáng)大的功能在業(yè)內(nèi)舉足輕重。MATLAB大受追捧的原因之一就是用MATLAB來解決問題更加便捷,不僅融合了另外兩大數(shù)學(xué)軟件的優(yōu)點(diǎn),他的指令也符合數(shù)學(xué)的常用形式,相同要求的前提下,若是使用其他編程語言,或許要多花費(fèi)更多的時(shí)間與精力,這使MATLAB的功能更加強(qiáng)大,成為首屈一指的數(shù)學(xué)軟件。在新的版本如MATLABR2022a、MATLABR2022b和目前的最新版本MATLABR2023a支持其他高級(jí)匯編語言。1979年,美國(guó)國(guó)家工程院院士CleveBarryMoler編寫了最早的MATLAB(MatrixLaboratory),那時(shí)MATLAB并不是一個(gè)真正意義上的編程語言,只是Moler用Fortran語言編輯的一個(gè)交互式矩陣計(jì)算器,其中僅僅包含71個(gè)關(guān)鍵字和內(nèi)置函數(shù),只能通過Fortran語言來進(jìn)行擴(kuò)展。即便是這樣,MATLAB在成為Moler的教學(xué)工具以后還是受到了學(xué)生們的歡迎,即便一些科學(xué)家們對(duì)此嗤之以鼻,但隨著越來越多的學(xué)生發(fā)現(xiàn)了MATLAB的好處之后,這個(gè)軟件漸漸被越來越多的科研人員所熟知。1983年,Moler偶然結(jié)識(shí)了一位名叫JackLittle的業(yè)內(nèi)人士,他持有MIT的電子工程和計(jì)算機(jī)科學(xué)學(xué)士學(xué)位,以及Stanford的電子工程碩士學(xué)位。二人一見如故,Little對(duì)于MATLAB的開發(fā)很感興趣,隨即二人就合作達(dá)成一致。1984年,他們又找到了第三位合伙人SteveBangert,他們共同創(chuàng)立了MathWorks,在美國(guó)推出了MATLAB。當(dāng)MATLAB成為了一種商品時(shí),屬于他自己的編程語言也誕生了,隨著時(shí)間的推移,MATLAB的版本和功能不斷推陳出新,又經(jīng)過了20年的風(fēng)云變遷,國(guó)際控制界已經(jīng)將MATLAB視為最標(biāo)準(zhǔn)的計(jì)算軟件,在國(guó)際的舞臺(tái)中大放異彩,被稱為“工程師和科學(xué)家的語言”。?數(shù)值計(jì)算功能:提供高水平的數(shù)學(xué)計(jì)算能力,在其他數(shù)學(xué)軟件中脫穎而出。?符號(hào)計(jì)算功能:高能數(shù)學(xué)或是工程數(shù)學(xué)中存在的高級(jí)計(jì)算符號(hào)因其收購(gòu)了Maple的使用權(quán)而被收錄進(jìn)自身的工具箱中,使得相關(guān)計(jì)算更加方便快捷。?數(shù)據(jù)分析和可視化功能:在科研領(lǐng)域以及工程計(jì)算中,僅靠數(shù)字的堆積無法探索出其中奧義,將數(shù)據(jù)轉(zhuǎn)化為圖像,二維變?yōu)槿S,有助于人們高效便捷的展開研究。?文字處理功能:強(qiáng)大的文字處理功能廣泛應(yīng)用于論文、教材、報(bào)告、專著等領(lǐng)域,使繁瑣復(fù)雜的文字編輯“動(dòng)”起來,實(shí)現(xiàn)另一程度的可視化。?SIMULINK動(dòng)態(tài)仿真功能:該功能用于建?;蛘叻治雠c仿真系統(tǒng)環(huán)境,其中具有大量的功能塊,供開發(fā)者自由使用,拖放自如。?用于構(gòu)建應(yīng)用程序的工具?用于高級(jí)匯編語言的接口全世界有數(shù)百萬的開發(fā)者與科研人員都在通過MATLAB進(jìn)行各種項(xiàng)目的分析與調(diào)整,同時(shí)也將自己的設(shè)計(jì)理念付諸其上,用自己的才華與軟件的強(qiáng)大的功能漸漸的將我們的世界變得發(fā)高能,不斷推出的新產(chǎn)品也在潛移默化之中改變著我們的生產(chǎn)與生活。經(jīng)過十?dāng)?shù)年的發(fā)展,當(dāng)前的MATLAB早已擁有了自己的語言,邏輯清晰易懂,又符合技術(shù)者們一貫的習(xí)慣,因此能夠輕松地實(shí)現(xiàn)如可視化數(shù)據(jù)或是內(nèi)置圖形等操作。MATLAB內(nèi)置的工具箱與模塊集無一不是經(jīng)過了長(zhǎng)期測(cè)算精準(zhǔn)度量,基于這些嚴(yán)格測(cè)試,我們能夠放心地利用該軟件實(shí)現(xiàn)所需的工作和學(xué)習(xí)REF_Ref135307525\r\h[6]。鑒于計(jì)算機(jī)有可能會(huì)出現(xiàn)的種種故障,為防止因某些突發(fā)狀況而導(dǎo)致的文件遺失,MATLAB還擁有擴(kuò)展云的功能,使開發(fā)者們的設(shè)計(jì)不僅能夠保存在桌面,還能夠即時(shí)上傳云端。除此之外,MATLAB代碼可以與其他高級(jí)語言集成,免去了多種高級(jí)語言無法通用的麻煩。(1)簡(jiǎn)單易學(xué):數(shù)學(xué)化的語言編寫程序由C語言開發(fā)而來,邏輯清晰易懂,上手簡(jiǎn)單,操作便捷。(2)圖形處理功能強(qiáng)大:不僅能夠繪制一維二維等簡(jiǎn)單圖形,還能繪制工程性較強(qiáng)的復(fù)雜圖形,也可根據(jù)自己的需要制作動(dòng)畫,實(shí)現(xiàn)可視化效果。(3)可擴(kuò)展性強(qiáng):用戶可以選擇自己編寫MATLAB文件,自創(chuàng)工具箱,還可以使用獨(dú)立的程序從而避免單一語言編程,初學(xué)者易于學(xué)習(xí)并掌握。(4)內(nèi)部函數(shù)豐富:避免了常規(guī)的利用具體函數(shù)編譯,MATLAB的內(nèi)部函數(shù)庫(kù)里有海量函數(shù)存儲(chǔ),隨取隨用,減少了不必要的精力消耗,將更多的時(shí)間投入到創(chuàng)造當(dāng)中。Matlab是一個(gè)基于矩陣的高級(jí)語言,于C語言頗有淵源,而C語言的強(qiáng)大之處就在于,無論是系統(tǒng)軟件還是應(yīng)用軟件他都可以完成編寫,因此,MATLAB的語言環(huán)境是非常高效的REF_Ref135307553\r\h[7],利于開發(fā)者們適應(yīng)并熟練應(yīng)用。用戶既可以在窗口直接編寫語句和執(zhí)行命令,也可以將M文件提前寫好再一起運(yùn)行。此外,由于該語言可攜性好、可擴(kuò)展性強(qiáng),這也讓MATLAB在科學(xué)研究等各個(gè)領(lǐng)域走的更快更遠(yuǎn)。MATLAB內(nèi)部編寫成了一個(gè)大集合,其中包括了海量的算法以及數(shù)學(xué)函數(shù)REF_Ref135307569\r\h[8]。如對(duì)數(shù)、線性方程組求解、指數(shù)、微分方程求解、三角函數(shù)、矩陣運(yùn)算復(fù)變函數(shù)、初等數(shù)學(xué)運(yùn)算、進(jìn)制數(shù)轉(zhuǎn)換、偏微分方程的組求解、雙曲函數(shù)、傅里葉變換、極限、稀疏矩陣運(yùn)算、散點(diǎn)圖、直方圖、玫瑰花園,極坐標(biāo)圖、導(dǎo)數(shù)和建模動(dòng)態(tài)仿真等等,極大地方便了用戶的開發(fā)與使用。除了上述函數(shù)與算法之外,MATLAB中還包括更為復(fù)雜的算法公式,這些均為業(yè)界最新的研究成果,并且從問世之初便開始了無限次的優(yōu)化和改革,使其計(jì)算能力與日俱增,可代替C和C++等底層編程語言。若要求相同,使用MATLAB比使用其他語言更方便、快捷。MATLAB由于其被Moler創(chuàng)造的初中就是減輕學(xué)生的課業(yè)壓力,所以從最初版本的MATLAB開始,就寫入了數(shù)據(jù)可視化功能,也就是將用戶所編寫的程序、函數(shù)或其他功能的數(shù)據(jù)轉(zhuǎn)換成圖形,并在其上進(jìn)行注釋,也可根據(jù)不同用戶的需要進(jìn)行打印。不僅如此,MATLAB還能生成動(dòng)態(tài)的畫面、三維立體圖以及其他高層次作圖。新版本的MATLAB中在圖形處理這一方面有了極大地進(jìn)步,不僅優(yōu)化了原有的功能,對(duì)于其他軟件未曾開發(fā)過的新方向如色度處理、光照處理等方面也展現(xiàn)了出色的工作能力,在圖形處理的界面也做了相應(yīng)調(diào)整,以滿足更多的用戶即需要REF_Ref135307588\r\h[9]。工欲善其事,必先利其器。起初的MATLAB的功能并不完善,只是Moler處于教學(xué)考慮而有針對(duì)性的設(shè)計(jì),但如今,隨著需求的增長(zhǎng),MATLAB在越來越多的專業(yè)領(lǐng)域內(nèi)量身定作了更多的模塊集,這些由各種領(lǐng)域的專家?guī)ь^研究的工具箱經(jīng)過長(zhǎng)期的調(diào)試如今已經(jīng)非常成熟。用戶可以直接利用他們進(jìn)行工作與學(xué)習(xí),省去了親自編程的麻煩。諸如數(shù)據(jù)采集、定點(diǎn)仿真、嵌入式系統(tǒng)開發(fā)、偏微分方程求解、實(shí)時(shí)快速原型及半物理仿真、系統(tǒng)辨識(shí)、DSP與通訊、非線性控制設(shè)計(jì)、優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)、模型預(yù)測(cè)、信號(hào)處理、控制系統(tǒng)設(shè)計(jì)、地圖工具、模糊邏輯、數(shù)據(jù)庫(kù)接口、LMI控制、樣條擬合、金融分析、概率統(tǒng)計(jì)、小波分析、魯棒控制、圖像處理、電力系統(tǒng)仿真等,都在工具箱中有占據(jù)了主導(dǎo)地位REF_Ref135307596\r\h[10]。MATLAB主要可應(yīng)用于以下幾個(gè)方面:數(shù)值分析數(shù)值和符號(hào)計(jì)算工程與科學(xué)繪圖控制系統(tǒng)的設(shè)計(jì)與仿真數(shù)字圖像處理技術(shù)數(shù)字信號(hào)處理技術(shù)通訊系統(tǒng)設(shè)計(jì)與仿真財(cái)務(wù)與金融工程管理與調(diào)度優(yōu)化計(jì)算(運(yùn)籌學(xué))MATLAB的應(yīng)用范圍非常廣,涉及諸如且不僅上述等多方應(yīng)用領(lǐng)域。MATLAB系統(tǒng):MATLAB開發(fā)環(huán)境MATLAB數(shù)學(xué)函數(shù)庫(kù)MATLAB語言MATLAB圖形處理系統(tǒng)MATLAB應(yīng)用程序接口(API)MATLAB實(shí)際上是一套函數(shù)和文件工具集,每年都會(huì)發(fā)布兩個(gè)版本,根據(jù)上半年和下半年分為a、b版,每一次版本的更新,都意味著功能的優(yōu)化與創(chuàng)新。MATLAB的窗口包括工具欄、命令行窗口、工作區(qū)、狀態(tài)欄等,頁(yè)面分區(qū)符合日常習(xí)慣,用戶體驗(yàn)感好,能夠提供集成編譯和調(diào)試環(huán)境,這都是集成用戶工作空間的功勞。見REF_Ref135302401\h圖21MATLAB中內(nèi)置了一個(gè)數(shù)學(xué)函數(shù)庫(kù),囊括了數(shù)量龐大的計(jì)算算法。如多項(xiàng)式函數(shù)、基本初等函數(shù)、復(fù)變函數(shù),快速傅里葉變換,拉普拉斯函數(shù)等。MATLAB語言是一種基于矩陣的高級(jí)語言,語言便捷簡(jiǎn)練、用戶使用快捷、繪圖功能強(qiáng)大、擴(kuò)展能力強(qiáng),交互性好、編程效率高,這些都是他的優(yōu)點(diǎn)。用這種語言無論是簡(jiǎn)單的還是復(fù)雜的程序均可建立。圖形處理系統(tǒng)將向量和矩陣等更為直觀的顯示出來,以圖片的形式展現(xiàn)在用戶眼前并且可以對(duì)圖形添加注釋和打印。能夠進(jìn)行去模糊、圖像變換、空間域內(nèi)的圖像增強(qiáng)、圖像分割、二值化、直方圖增強(qiáng)、對(duì)比度增強(qiáng)、圖像壓縮、目標(biāo)分割和標(biāo)記等等。它包括多重曲線繪圖函數(shù)、雙Y軸繪圖、復(fù)數(shù)繪圖等函數(shù)。MATLAB為不斷滿足用戶需求,已經(jīng)不再囿于最初的功能,通過擴(kuò)展已有的工具箱,將MATLAB的功能很大程度的推向了一個(gè)新的高度REF_Ref135307613\r\h[11]。這些工具箱中添加了更多單位公式和函數(shù),為用戶的工作和學(xué)習(xí)提供了便捷。其中的許多工具是圖形用戶界面,此界面包括MATLAB桌面和命令窗口、工作空間、歷史命令窗口、路徑搜索、編輯器和調(diào)試器還有用于用戶瀏覽幫助、文件的瀏覽器。隨著MathWorks公司的不斷壯大,產(chǎn)業(yè)鏈愈發(fā)完善,該軟件不斷優(yōu)化創(chuàng)新,用戶界面也更加接近Windows的標(biāo)準(zhǔn)界面,簡(jiǎn)化了操作,提高了交互性。另外,新版MATLAB還為用戶提供了一個(gè)完備的在線查詢和幫助系統(tǒng),為用戶帶來了很大的便利。簡(jiǎn)潔的編程環(huán)境,具有較為完善的調(diào)試系統(tǒng),無需編譯即可直接運(yùn)行,并且可以對(duì)所發(fā)生的問題進(jìn)行及時(shí)的匯報(bào)和對(duì)問題的解決進(jìn)行分析。本文是使用的是MATLAB在2021年上半年更新的版本MATLABR2021a安裝打開已經(jīng)下載好的安裝包,右鍵點(diǎn)擊REF_Ref135302647\h圖22的ios文件,單擊【裝載】
此時(shí)會(huì)出現(xiàn)一個(gè)加載好的“DVD驅(qū)動(dòng)器”,打開
,鼠標(biāo)右擊REF_Ref135302679\h圖23【setup.exe】
安裝程序選擇
【以管理員身份運(yùn)行】;
此時(shí)彈出REF_Ref135302696\h圖24Windows安全中心警報(bào),選擇
【允許訪問】;
點(diǎn)擊REF_Ref135302704\h圖25
【高級(jí)選項(xiàng)】,選擇
【我有文件安裝密鑰】;選勾選REF_Ref135302713\h圖26“是”
接受許可協(xié)議條款,點(diǎn)擊
【下一步】;
輸入REF_Ref135302723\h圖27所示密鑰
,單擊下一步即可;
單擊REF_Ref135302731\h圖28
【瀏覽】,此時(shí)在彈出的窗口中雙擊
“Crack”
文件夾,選中下圖所示的“l(fā)icense_standalone.lic”
文件,單擊【打開】,再點(diǎn)下一步;
修改路徑地址中的盤符
【C】
可更改軟件安裝位置,此處REF_Ref135302748\h圖29修改為D盤,否則無法激活,然后點(diǎn)擊
【下一步】;
REF_Ref135302753\h圖210選擇產(chǎn)品默認(rèn)即可,點(diǎn)擊【下一步】;
REF_Ref135302763\h圖211點(diǎn)擊
【下一步】,勾選
圖中的唯一一項(xiàng),再點(diǎn)下一步;
REF_Ref135302769\h圖212點(diǎn)擊
【開始安裝】;
軟件安裝完成,點(diǎn)擊
REF_Ref135302782\h圖213【關(guān)閉】。
破解打開REF_Ref135302793\h圖214
“Matlab_R2021a(64bit)”
中的
“Crack”,全選其中的所有文件,鼠標(biāo)右擊選擇
【復(fù)制】;
打開REF_Ref135302803\h圖215所示路徑,將步驟1復(fù)制的文件粘貼到此路徑下進(jìn)行替換。
.雙擊打開該文件夾下的
【R2021a】
文件夾,雙擊打開
【bin】
文件夾,見REF_Ref135302826\h圖216;
選中
REF_Ref135302833\h圖217【matlab.exe】
文件,右鍵,單擊【發(fā)送到】,單擊【桌面快捷方式】;
在桌面雙擊
【matlab.exe-快捷方式】
啟動(dòng)軟件,見REF_Ref135302852\h圖218;
軟件安裝成功,打開軟件界面如REF_Ref135302865\h圖219。SPIN(SensorProtocolforInformationviangotiation,簡(jiǎn)稱PIN)是一種具有自主知識(shí)產(chǎn)權(quán)的、以數(shù)據(jù)為核心的、具有自主知識(shí)產(chǎn)權(quán)的網(wǎng)絡(luò)通訊協(xié)議。該方法采用了結(jié)點(diǎn)之間的協(xié)調(diào)機(jī)制,并利用了結(jié)點(diǎn)之間的協(xié)調(diào)機(jī)制,有效地克服了現(xiàn)有的網(wǎng)絡(luò)中的“內(nèi)爆”、“重疊”、“盲動(dòng)”等問題REF_Ref135307655\r\h[12]。SPIN協(xié)定中的報(bào)文有三種形式,分別是ADV,REQ,和數(shù)據(jù)。ADV實(shí)現(xiàn)了元信息的傳播,REQ實(shí)現(xiàn)了對(duì)元信息的傳輸,而DATA則實(shí)現(xiàn)了節(jié)點(diǎn)獲取的信息。通過SPIN協(xié)議使傳感器節(jié)點(diǎn)進(jìn)行交互的基本過程REF_Ref135307662\r\h[13]:過程一:數(shù)據(jù)m被結(jié)點(diǎn)A采集到。向外廣播帶有m元數(shù)據(jù)的ADV數(shù)據(jù)包。過程二:A的adv數(shù)據(jù)包被鄰居結(jié)點(diǎn)B收到,并根據(jù)自身所攜帶的元數(shù)據(jù)來判斷自己是否需要數(shù)據(jù)m。若不需要,就銷毀ADV數(shù)據(jù)包。如果需要,就生成相應(yīng)的REQ數(shù)據(jù)包,再向外廣播。過程三:結(jié)點(diǎn)A收到B的REQ數(shù)據(jù)包請(qǐng)求后,會(huì)生成相應(yīng)的DATA數(shù)據(jù)包并向外廣播。過程四:結(jié)點(diǎn)B收到A的DATA數(shù)據(jù)包,將數(shù)據(jù)m進(jìn)行存儲(chǔ)。過程五:帶有m元數(shù)據(jù)的ADV數(shù)據(jù)包將繼續(xù)通過結(jié)點(diǎn)B向外廣播,網(wǎng)絡(luò)中將繼續(xù)傳遞數(shù)據(jù)m。每個(gè)結(jié)點(diǎn)都有一個(gè)唯一的地址,稱為結(jié)點(diǎn)本身的地址。當(dāng)結(jié)點(diǎn)A本身隨機(jī)收集到有效數(shù)據(jù)m時(shí),A立即生成與數(shù)據(jù)m相匹配的元數(shù)據(jù),并將元數(shù)據(jù)和地址包裝成adv數(shù)據(jù)包,并向外廣播。當(dāng)A的鄰居結(jié)點(diǎn)B收到ADV數(shù)據(jù)包時(shí),它首先提取ADV數(shù)據(jù)包的元數(shù)據(jù)域,檢查其元數(shù)據(jù)是否為其所需的數(shù)據(jù)屬性。如果沒有,則銷毀ADV數(shù)據(jù)包;如有必要,提取ADV數(shù)據(jù)包中A結(jié)點(diǎn)的地址作為目的地址,并將其與元數(shù)據(jù)和自己的地址包裝成相應(yīng)的REQ數(shù)據(jù)包進(jìn)行廣播。這樣,結(jié)點(diǎn)A就收到了req數(shù)據(jù)包。首先,A應(yīng)該提取req數(shù)據(jù)包中的目的地址,以確定它是否與自己的地址相同。不同意味著這個(gè)req不是他們自己需要的,所以他們銷毀了req數(shù)據(jù)包。這也表明這個(gè)數(shù)據(jù)包是發(fā)送給他們自己的。提取其源地址作為目的地址,提取其元數(shù)據(jù)域,找到與元數(shù)據(jù)匹配的自身數(shù)據(jù),包裝并生成相應(yīng)的data包進(jìn)行廣播。鄰居結(jié)點(diǎn)B收到data包后,也通過檢查其目的地址來判斷它是否是他們需要的data包。如果一致,則存儲(chǔ)數(shù)據(jù),否則將銷毀數(shù)據(jù)包。當(dāng)數(shù)據(jù)真正存儲(chǔ)到b結(jié)點(diǎn)時(shí),數(shù)據(jù)轉(zhuǎn)移就完成了。此時(shí),結(jié)點(diǎn)B可以發(fā)送adv數(shù)據(jù)包,通知其他鄰居結(jié)點(diǎn)B擁有此數(shù)據(jù),以實(shí)現(xiàn)傳輸數(shù)據(jù)的目的。REF_Ref135307675\r\h[14]在講SPIN協(xié)議之前,不得不提到Flooding協(xié)議,這是一種廣播路由協(xié)議,譯為“洪泛路由”也是相當(dāng)傳統(tǒng)的一種協(xié)議,早期傳送數(shù)據(jù)經(jīng)常使用該協(xié)議來協(xié)助開發(fā)者們解決一系列的問題REF_Ref135307685\r\h[15]。不同于后來的SPIN協(xié)議,當(dāng)網(wǎng)絡(luò)中的一個(gè)結(jié)點(diǎn)發(fā)現(xiàn)或接收到數(shù)據(jù)時(shí),F(xiàn)looding協(xié)議下的節(jié)點(diǎn)并不會(huì)檢查該數(shù)據(jù)是否為自身所需要,而是直接轉(zhuǎn)發(fā)給相鄰的結(jié)點(diǎn),因此,洪泛路由協(xié)議適用于高可靠性數(shù)據(jù)的應(yīng)用場(chǎng)景。由此可見,F(xiàn)looding協(xié)議(洪泛路由協(xié)議)的缺點(diǎn)也很顯著,存在部分重疊(Overlap)、信息內(nèi)爆(Implosion)、資源盲目利用等問題,為了解決這些弊端,SPIN協(xié)議(信息協(xié)商的傳感器協(xié)議)應(yīng)時(shí)而生。在SPIN協(xié)議中,節(jié)點(diǎn)會(huì)將所采集到的數(shù)據(jù)連同元數(shù)據(jù)合并廣播,如此一來,只有當(dāng)相關(guān)請(qǐng)求出現(xiàn)時(shí),該節(jié)點(diǎn)才會(huì)發(fā)送相應(yīng)的數(shù)據(jù)信息。SPIN路由協(xié)議相較于Flooding協(xié)議,在一定程度上解決了數(shù)據(jù)冗余,很明顯這是結(jié)點(diǎn)間協(xié)商的結(jié)果,如果遇到以數(shù)據(jù)為中心的情況則可以使用此方法。SPIN協(xié)議(信息協(xié)商的傳感器協(xié)議)優(yōu)點(diǎn)包括:①元數(shù)據(jù)在進(jìn)行傳輸時(shí)消耗能量相對(duì)較少;②僅廣播其它節(jié)點(diǎn)沒有的數(shù)據(jù),能量消耗更少;REF_Ref135307694\r\h[16]③不需維護(hù)鄰居節(jié)點(diǎn)的信息,在節(jié)點(diǎn)移動(dòng)的情況下更適宜。由于SPIN協(xié)議在傳數(shù)據(jù)時(shí),直接向鄰節(jié)點(diǎn)發(fā)送ADV數(shù)據(jù)包,這就造成一種我們不愿意看到的情況,若是在廣播數(shù)據(jù)包時(shí),愿意充當(dāng)數(shù)據(jù)中轉(zhuǎn)站的鄰居節(jié)點(diǎn)并不只有一個(gè),這就會(huì)出現(xiàn)多個(gè)符合條件的路由器,即“路由選擇盲點(diǎn)”。尤其是一些網(wǎng)絡(luò)組建時(shí)長(zhǎng)較短,因此這些節(jié)點(diǎn)的能量都很充足,能量浪費(fèi)的情況就會(huì)出現(xiàn)。比如,接收消息的節(jié)點(diǎn)以廣播的形式向所有鄰節(jié)點(diǎn)發(fā)送ADV數(shù)據(jù)包,然后所有鄰節(jié)點(diǎn)將向該節(jié)點(diǎn)發(fā)送一個(gè)REQ數(shù)據(jù)包,然后將節(jié)點(diǎn)發(fā)送到所有鄰居節(jié)點(diǎn)DATA數(shù)據(jù)包。這個(gè)過程被重復(fù)執(zhí)行,直到數(shù)據(jù)包到達(dá)目的地或預(yù)設(shè)的最大跳數(shù)REF_Ref135307706\r\h[17]。毫無疑問,這個(gè)過程比傳統(tǒng)的洪泛路由技術(shù)更浪費(fèi)能量。因此,對(duì)于無線傳感器網(wǎng)絡(luò)來說,當(dāng)務(wù)之急是找到節(jié)約能量的辦法,若是能夠在源與目的地之間尋找到一條節(jié)能的多跳路由路徑,眼下的問題便可迎刃而解。因此,SPIN協(xié)議的改進(jìn)是勢(shì)在必行的,為了能夠不斷地優(yōu)化更新,以達(dá)到幫助我們學(xué)習(xí)和工作的目的,SPIN協(xié)議未來必定還要經(jīng)歷更多的改進(jìn),就目前的情況來講,大概有以下四種改進(jìn)方法。方法一:能量?jī)?yōu)先法。顧名思義,選擇能量最高的節(jié)點(diǎn)。傳感器節(jié)點(diǎn)向其鄰居廣播ADV數(shù)據(jù)包。如果相鄰節(jié)點(diǎn)打算在接收ADV之后接收ADVDATA分組,則它向該節(jié)點(diǎn)發(fā)送REQ分組。REQ分組記錄相鄰節(jié)點(diǎn)的能量。然后,節(jié)點(diǎn)可以基于接收到的REO分組來確定哪個(gè)鄰居節(jié)點(diǎn)具有最高能量,并將DATA分組發(fā)送給它以進(jìn)行轉(zhuǎn)發(fā)。方法二:最小代價(jià)法。當(dāng)若干個(gè)節(jié)點(diǎn)互相確定對(duì)方為自己的鄰居節(jié)點(diǎn)時(shí),每個(gè)節(jié)點(diǎn)各自的的路由表中都會(huì)記錄彼此間進(jìn)行通訊時(shí)所消耗的能量大小。當(dāng)其中一個(gè)傳感器節(jié)點(diǎn)收到多個(gè)從鄰居節(jié)點(diǎn)發(fā)來的REQ數(shù)據(jù)包時(shí),它就會(huì)根據(jù)這些路由表中所記錄的能量來選擇傳輸代價(jià)最小的鄰居節(jié)點(diǎn),這樣就可以選擇到最小傳輸代價(jià)的節(jié)點(diǎn)并發(fā)送給他DATA數(shù)據(jù)包,再將其轉(zhuǎn)發(fā)出去。方法三:當(dāng)一個(gè)傳感器節(jié)點(diǎn)需要傳輸一系列相關(guān)信息時(shí),它使用一定的方法來記住前一個(gè)數(shù)據(jù)包被發(fā)送到哪個(gè)相鄰節(jié)點(diǎn)。在未來,它將優(yōu)先考慮已經(jīng)與它建立連接的相鄰節(jié)點(diǎn),直到它因?yàn)槟芰坎蛔愣芙^接收。如果被確定的鄰居節(jié)點(diǎn)拒絕接收,傳感器節(jié)點(diǎn)向鄰居節(jié)點(diǎn)廣播ADV報(bào)文,重新確定愿意接收的鄰居節(jié)點(diǎn)。但這種方法也存在弊端,網(wǎng)絡(luò)中的節(jié)點(diǎn)無法再生,會(huì)使得這些結(jié)點(diǎn)因能量不足等原因逐漸減少?gòu)亩绊懢W(wǎng)絡(luò)的整體效能。方法四:建立梯度法。建立梯度方法。當(dāng)鄰居節(jié)點(diǎn)從該節(jié)點(diǎn)接收到查詢信息時(shí),如果當(dāng)前查詢緩存沒有相同的查詢記錄,它會(huì)添加一個(gè)新的記錄,該記錄包含該節(jié)點(diǎn)指定的數(shù)據(jù)傳輸速率,即梯度。在數(shù)據(jù)傳輸階段,節(jié)點(diǎn)將向首先接收新數(shù)據(jù)的鄰居節(jié)點(diǎn)發(fā)送增強(qiáng)的選擇消息(發(fā)送具有較大梯度的查詢消息)。未來,該節(jié)點(diǎn)將優(yōu)先考慮路由選擇中梯度最大的鄰居節(jié)點(diǎn)。在有n個(gè)節(jié)點(diǎn)的傳感器網(wǎng)絡(luò)中,廣播信息的時(shí)間為O(n),廣播數(shù)據(jù)的時(shí)間為O(n),從一個(gè)傳感器節(jié)點(diǎn)到另一個(gè)傳感器節(jié)點(diǎn)發(fā)送數(shù)據(jù)的時(shí)間為O(√n)。設(shè)D為監(jiān)控感知數(shù)據(jù)總數(shù),E為節(jié)點(diǎn)最大感知數(shù)據(jù)數(shù)。進(jìn)一步,我們假設(shè)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的能量是充足的。比較了泛洪法、預(yù)改進(jìn)自旋和改進(jìn)自旋三種模式下的總通信成本和能耗。從REF_Ref135302888\h表31中可以看出,在數(shù)據(jù)傳輸改進(jìn)之前,信息交換的能耗遠(yuǎn)低于SPIN模式,SPIN模式比flood模式多消耗D*2*O(N)的能量。在改進(jìn)的SPIN模式下,避免了向所有節(jié)點(diǎn)發(fā)送數(shù)據(jù),大大節(jié)省了能量。路由方法總的通信消耗節(jié)點(diǎn)的最大能源消耗FloodingD*O(N)E*O(N)原SPIND*2*O(n)+D*O(N)2*E*O(n)+E*O(N)改進(jìn)的SPND*2*O(n)+D*O(√n)2*E*O(n)+E*O√n)SPIN協(xié)議在節(jié)點(diǎn)過程中使用三種類型的數(shù)據(jù)包:ADV:廣播數(shù)據(jù)包。當(dāng)某個(gè)節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)時(shí),該節(jié)點(diǎn)就會(huì)向周圍的鄰居節(jié)點(diǎn)廣播一個(gè)數(shù)據(jù)包,這個(gè)數(shù)據(jù)包帶有本節(jié)點(diǎn)的屬性和類型等信息,而數(shù)據(jù)本身的大小則遠(yuǎn)大于該數(shù)據(jù)包的大小。(元數(shù)據(jù))REQ:請(qǐng)求包。如果接收到上個(gè)節(jié)點(diǎn)所發(fā)送的ADV數(shù)據(jù)包,則該數(shù)據(jù)就會(huì)生成并廣播一個(gè)REQ請(qǐng)求包。DATA:數(shù)據(jù)包。接收到節(jié)點(diǎn)發(fā)送的REQ請(qǐng)求包后,要發(fā)送數(shù)據(jù)的節(jié)點(diǎn)就會(huì)發(fā)送一個(gè)DATA數(shù)據(jù)包,DATA中包含有效數(shù)據(jù)。本實(shí)驗(yàn)使用matlab簡(jiǎn)單仿真SPIN協(xié)議,創(chuàng)建400*400的圖形,隨機(jī)創(chuàng)建400個(gè)節(jié)點(diǎn),不斷隨機(jī)選擇一個(gè)源節(jié)點(diǎn),輸入3.6中的協(xié)議代碼,點(diǎn)擊運(yùn)行,MATLAB則會(huì)彈出數(shù)據(jù)傳遞的框圖,我們就可以直觀的觀察到該協(xié)議的運(yùn)行過程。將數(shù)據(jù)遍歷整個(gè)網(wǎng)絡(luò),直到有某個(gè)節(jié)點(diǎn)能量小于0時(shí),結(jié)束循環(huán)。該實(shí)驗(yàn)仿真了SPIN協(xié)議的基本工作,還有待優(yōu)化完善。clear;%清除內(nèi)存變量l=200;w=200;%區(qū)域邊長(zhǎng)200mR=20;%通信半徑node_num=400;%采集節(jié)點(diǎn)數(shù)?data=1000;%數(shù)據(jù)包(?特)min_data=100;%元數(shù)據(jù)包(bit)Eo=5;%初始能量%threshold_E=0.5;%能量閾值Eda=5*0.000000001;%傳輸能量Eelec=50*0.000001;%接受能量J/bitEfs=10*0.000000001;%耗散能量,?于臨界值。J/bit/m^2Emp=0.0013*0.000000001;%耗散能量,?于臨界值.J/bit/m^2d0=sqrt(Efs/Emp);%臨界值sink_x=100;%基站坐標(biāo)sink_y=100;figure(1);%畫基站與節(jié)點(diǎn):plot(sink_x,sink_y,'p','markerfacecolor','yellow','Linewidth',5)holdon%隨機(jī)設(shè)置節(jié)點(diǎn)fori=1:node_numNode{i}.x=l*rand(1,1);Node{i}.y=w*rand(1,1);plot(Node{i}.x,Node{i}.y,'ob','markerfacecolor','blue')%?藍(lán)o表?holdonN_E(i)=Eo;%設(shè)置初始能量為E0Node{i}.flag=0;%0表?未接收ADV和數(shù)據(jù),1表?已接收ADV,2表?已有數(shù)據(jù)Node{i}.adv=0;%記錄節(jié)點(diǎn)接收來?哪?個(gè)節(jié)點(diǎn)的advNode{i}.req{1}.ip=0;%記錄誰發(fā)來的reqendNode{node_num+1}.x=sink_x;Node{node_num+1}.y=sink_y;N_E(node_num+1)=Eo;%設(shè)置初始能量為E0Node{node_num+1}.flag=0;Node{node_num+1}.adv=0;%記錄節(jié)點(diǎn)接收來?哪?個(gè)節(jié)點(diǎn)的advNode{node_num+1}.req{1}.ip=0;%記錄誰發(fā)來的req%記錄每個(gè)節(jié)點(diǎn)的鄰居信息fori=1:node_numk=0;forj=1:node_num+1if(i~=j)&&(sqrt((Node{j}.x-Node{i}.x)^2+(Node{j}.y-Node{i}.y)^2)<=R)k=k+1;Node{i}.Neb{k}.x=Node{j}.x;Node{i}.Neb{k}.y=Node{j}.y;Node{i}.Neb{k}.ip=j;endendNode{i}.Neb_num=k;endt=0;turn=0;%傳遞數(shù)據(jù)的次數(shù)is_die=1;%?絡(luò)死亡則為0while1turn=turn+1%隨機(jī)選取發(fā)送數(shù)據(jù)的源節(jié)點(diǎn)order=round(rand(1,1)*node_num-1)+1;plot(Node{order}.x,Node{order}.y,'ob','markerfacecolor','red');%?紅o表?Node{order}.flag=2;run_list(1)=order;whileis_diet=t+1;frame=getframe(gcf);%繪制git動(dòng)圖imind=frame2im(frame);[imind,cm]=rgb2ind(imind,256);ift==1imwrite(imind,cm,'3.gif','gif','Loopcount',inf,'DelayTime',1e-4);elseimwrite(imind,cm,'3.gif','gif','WriteMode','append','DelayTime',1e-4);endfori=1:length(run_list)id=run_list(i);ifid==node_num+1continueendforj=1:Node{id}.Neb_num%畫‘ADV’ifNode{Node{id}.Neb{j}.ip}.flag==0Node{Node{id}.Neb{j}.ip}.flag=1;Node{Node{id}.Neb{j}.ip}.adv=id;text((Node{id}.x+Node{id}.Neb{j}.x)/2+3,(Node{id}.y+Node{id}.Neb{j}.y+3)/2,'\fontsize{5}ADV','Color','blue');X=[Node{id}.x;Node{id}.Neb{j}.x];Y=[Node{id}.y;Node{id}.Neb{j}.y];line(X,Y,'color','k','LineWidth',1)%畫鄰居節(jié)點(diǎn)plot(Node{id}.Neb{j}.x,Node{id}.Neb{j}.y,'ob','markerfacecolor','green');holdon%發(fā)送ADV能量損耗d=sqrt((X(2)-X(1))^2+(Y(2)-Y(1))^2);ifd<=d0N_E(id)=N_E(id)-min_data*Eelec-min_data*Efs*d^2;elseN_E(id)=N_E(id)-min_data*Eelec-min_data*Emp*d^4;endifN_E(id)<=0plot(Node{id}.x,Node{id}.y,'ob','markerfacecolor','black');text(Node{id}.x,Node{id}.y,{id},'FontSize',7)is_die=0;breakend%接收ADV能量損耗N_E(Node{id}.Neb{j}.ip)=N_E(Node{id}.Neb{j}.ip)-min_data*Eelec;ifN_E(Node{id}.Neb{j}.ip)<=0plot(Node{id}.Neb{j}.x,Node{id}.Neb{j}.y,'ob','markerfacecolor','black');text(Node{id}.Neb{j}.x,Node{id}.Neb{j}.y,{Node{id}.Neb{j}.ip},'FontSize',7)is_die=0breakendendifis_die==0breakendendifis_die==0breakendendframe=getframe(gcf);%繪制git動(dòng)圖imind=frame2im(frame);[imind,cm]=rgb2ind(imind,256);forg=1:10imwrite(imind,cm,'3.gif','gif','WriteMode','append','DelayTime',1e-4);endifis_die==0breakendfori=1:length(run_list)%畫‘REQ’id=run_list(i);ifid==node_num+1Node{id}.req_num=0;continueendn=0;forj=1:Node{id}.Neb_numif(Node{Node{id}.Neb{j}.ip}.flag==1)%&&(N_E(Node{id}.Neb{j}.ip)>threshold_E)ifNode{Node{id}.Neb{j}.ip}.adv==idn=n+1;Node{id}.req{n}.ip=Node{id}.Neb{j}.ip;text((Node{id}.x+Node{id}.Neb{j}.x)/2,(Node{id}.y+Node{id}.Neb{j}.y)/2,'\fontsize{5}REQ','Color','green');%發(fā)送REQ能量損耗d=sqrt((Node{id}.x-Node{id}.Neb{j}.x)^2+(Node{id}.y-Node{id}.Neb{j}.y)^2);ifd<=d0N_E(Node{id}.Neb{j}.ip)=N_E(Node{id}.Neb{j}.ip)-min_data*Eelec-min_data*Efs*d^2;elseN_E(Node{id}.Neb{j}.ip)=N_E(Node{id}.Neb{j}.ip)-min_data*Eelec-min_data*Emp*d^4;endifN_E(Node{id}.Neb{j}.ip)<=0plot(Node{id}.Neb{j}.x,Node{id}.Neb{j}.y,'ob','markerfacecolor','black');text(Node{id}.Neb{j}.x,Node{id}.Neb{j}.y,{Node{id}.Neb{j}.ip},'FontSize',7)%-------------------------------------------------------------------------------text(Node{id}.Neb{j}.x,Node{id}.Neb{j}.y,{Node{id}.Neb{j}.ip},'FontSize',7)is_die=0breakend%接收REQ能量損耗N_E(id)=N_E(id)-min_data*Eelec;ifN_E(id)<=0plot(Node{id}.x,Node{id}.y,'ob','markerfacecolor','black');text(Node{id}.x,Node{id}.y,{id},'FontSize',7)is_die=0breakendendendendifis_die==0breakendNode{id}.req_num=n;endframe=getframe(gcf);%繪制git動(dòng)圖imind=frame2im(frame);[imind,cm]=rgb2ind(imind,256);forg=1:10imwrite(imind,cm,'3.gif','gif','WriteMode','append','DelayTime',1e-4);endifis_die==0breakendlist=[];m=0;fori=1:length(run_list)%發(fā)送DATAid=run_list(i);ifNode{id}.req_num==0continueendfork=1:Node{id}.req_numm=m+1;Node{Node{id}.req{k}.ip}.flag=2;list(m)=Node{id}.req{k}.ip;text((Node{id}.x+Node{Node{id}.req{k}.ip}.x)/2-3,(Node{id}.y+Node{Node{id}.req{k}.ip}.y)/2-3,'\fontsize{7}DATA','Color','black');%畫鄰居節(jié)點(diǎn)plot(Node{Node{id}.req{k}.ip}.x,Node{Node{id}.req{k}.ip}.y,'ob','markerfacecolor','red');holdon%發(fā)送DATA能量損耗d=sqrt((Node{id}.x-Node{Node{id}.req{k}.ip}.x)^2+(Node{id}.y-Node{Node{id}.req{k}.ip}.y)^2);ifd<=d0N_E(id)=N_E(id)-data*Eelec-data*Efs*d^2;elseN_E(id)=N_E(id)-data*Eelec-data*Emp*d^4;endifN_E(id)<=0plot(Node{id}.x,Node{id}.y,'ob','markerfacecolor','black');text(Node{id}.x,Node{id}.y,{id},'FontSize',7)is_die=0breakend%接收ADV能量損耗N_E(Node{id}.req{k}.ip)=N_E(Node{id}.req{k}.ip)-data*Eelec;ifN_E(Node{id}.req{k}.ip)<=0plot(Node{Node{id}.req{k}.ip}.x,Node{Node{id}.req{k}.ip}.y,'ob','markerfacecolor','black');text(Node{Node{id}.req{k}.ip}.x,Node{Node{id}.req{k}.ip}.y,{Node{id}.req{k}.ip},'FontSize',7)is_die=0breakendendifis_die==0breakendendframe=getframe(gcf);%繪制git動(dòng)圖imind=frame2im(frame);[imind,cm]=rgb2ind(imind,256);forg=1:10imwrite(imind,cm,'3.gif','gif','WriteMode','append','DelayTime',1e-4);endifis_die==0breakendis_end=1;fori=1:node_num+1ifNode{i}.flag~=2is_end=0;endendifis_endbreakendrun_list=list;endifis_die==0turnbreakendclf;run_list=[];fori=1:node_num+1plot(Node{i}.x,Node{i}.y,'ob','markerfacecolor','blue');Node{i}.flag=0;%0表?未接收ADV和數(shù)據(jù),1表?已接收ADV,2表?已有數(shù)據(jù)Node{i}.adv=0;%記錄節(jié)點(diǎn)接收來?哪?個(gè)節(jié)點(diǎn)的advNode{i}.req{1}.ip=0;%記錄誰發(fā)來的reqholdon;endendfigure(2)A=cat(2,N_E);%繪制剩余能量圖axisequal;axis([0,55,0,0.5]);bar(A);title('剩余能量圖','Fontsize',20,'Color','m');從結(jié)果圖的顯示我們可以看出,能量剩余比較多,這表明SP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《大腸平滑肌肉瘤》課件
- 熱加工課程設(shè)計(jì)2018
- 綠色環(huán)保課程設(shè)計(jì)
- 自動(dòng)窗簾控制課程設(shè)計(jì)
- 算法導(dǎo)論課程設(shè)計(jì)
- 筑夢(mèng)星空的幼兒園工作總結(jié)
- 寵物行業(yè)寵物美容師工作總結(jié)
- 綜合經(jīng)營(yíng)行業(yè)行政后勤工作總結(jié)
- 紡織行業(yè)會(huì)計(jì)工作總結(jié)
- 移動(dòng)應(yīng)用開發(fā)行業(yè)技術(shù)工作總結(jié)
- 質(zhì)量管理體系知識(shí)培訓(xùn)課件
- 人機(jī)交互技術(shù)智慧樹知到期末考試答案2024年
- GB/T 144-2024原木檢驗(yàn)
- YS-T 650-2020 醫(yī)用氣體和真空用無縫銅管
- 心靈養(yǎng)生的療愈之道
- 建筑設(shè)計(jì)公司的商業(yè)計(jì)劃書
- 建筑景觀設(shè)計(jì)勞務(wù)合同
- 人教版PEP六年級(jí)英語下冊(cè)課件unit1
- 人教版四年級(jí)數(shù)學(xué)上冊(cè)寒假每日一練
- 主動(dòng)脈夾層介入手術(shù)的護(hù)理
- 浙江省嘉興市經(jīng)開區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期期末學(xué)科素養(yǎng)評(píng)價(jià)科學(xué)試題
評(píng)論
0/150
提交評(píng)論