石 優(yōu),林 琳,吳 巖
(江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013)
當(dāng)前無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)技術(shù)發(fā)展迅速,該技術(shù)因具有設(shè)備組建方式靈活、網(wǎng)絡(luò)強(qiáng)度較高等特性得到廣泛應(yīng)用,然而其大規(guī)模應(yīng)用容易造成網(wǎng)絡(luò)擁塞等問題[1]。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)經(jīng)串聯(lián)后以“攜帶-發(fā)送”的方式傳輸數(shù)據(jù),各節(jié)點(diǎn)均具有自主收集、接收和發(fā)送數(shù)據(jù)的能力,極大提高了網(wǎng)絡(luò)傳輸數(shù)據(jù)量。此外,由于無線傳感器網(wǎng)絡(luò)部署規(guī)模龐大、節(jié)點(diǎn)數(shù)量多、數(shù)據(jù)采集和轉(zhuǎn)發(fā)無固定時(shí)間限制,導(dǎo)致網(wǎng)絡(luò)節(jié)點(diǎn)可能會在某個(gè)時(shí)間點(diǎn)瞬間接收大量數(shù)據(jù),這進(jìn)一步增大了網(wǎng)絡(luò)傳輸數(shù)據(jù)量[2],因此對網(wǎng)絡(luò)吞吐量有較高要求[3]。當(dāng)數(shù)據(jù)接收速率大于數(shù)據(jù)發(fā)送速率時(shí),節(jié)點(diǎn)內(nèi)消息隊(duì)列會迅速堆積形成網(wǎng)絡(luò)擁塞。嚴(yán)重的網(wǎng)絡(luò)擁塞會對無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸造成很大影響。發(fā)生網(wǎng)絡(luò)擁塞后,因?yàn)楣?jié)點(diǎn)內(nèi)的數(shù)據(jù)來不及發(fā)送出去,其他數(shù)據(jù)也無法進(jìn)入節(jié)點(diǎn)內(nèi)的消息隊(duì)列,所以消息被不斷丟棄和滯后,造成大量數(shù)據(jù)丟失、網(wǎng)絡(luò)延時(shí)加大以及網(wǎng)絡(luò)吞吐量縮減,從而降低網(wǎng)絡(luò)服務(wù)質(zhì)量,甚至?xí)鹁W(wǎng)絡(luò)癱瘓,而網(wǎng)絡(luò)節(jié)點(diǎn)長期處于高負(fù)荷的滿隊(duì)列狀態(tài)也會大幅縮短其使用壽命[4]。因此,有效解決網(wǎng)絡(luò)擁塞問題至關(guān)重要。
由于無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集無固定時(shí)間和數(shù)據(jù)量大小限制,即數(shù)據(jù)采集具有不規(guī)律性,加上網(wǎng)絡(luò)節(jié)點(diǎn)持續(xù)移動(dòng)造成網(wǎng)絡(luò)拓?fù)洳粩嘧兓?導(dǎo)致網(wǎng)絡(luò)節(jié)點(diǎn)擁塞情況更復(fù)雜,需要一種高效且自適應(yīng)能力強(qiáng)的擁塞控制方案來解決上述問題。文獻(xiàn)[5]將比例-積分-微分(Proportional-Integral-Derivative,PID)控制器引入網(wǎng)絡(luò)擁塞控制問題,利用PID控制器適應(yīng)性強(qiáng)、操作簡單和效率高等特性,有效縮短消息隊(duì)列長度,緩解了網(wǎng)絡(luò)擁塞。但是PID控制器自身具有諸多缺陷。研究人員提出多種PID控制器改進(jìn)方案,但是其應(yīng)用于無線傳感器網(wǎng)絡(luò)時(shí)仍存在不足。文獻(xiàn)[6]將信用分配小腦模型與PID控制器相結(jié)合提高計(jì)量效果,但由于未考慮PID控制器的參數(shù)無法與輸入量保持同步變化,因此其后期數(shù)據(jù)可信度較低。文獻(xiàn)[7]提出一種改進(jìn)PID控制器,在不影響傳輸鏈路質(zhì)量的前提下,提高了控制效果并降低能耗,但該P(yáng)ID控制器精度不高。文獻(xiàn)[8]將元啟發(fā)灰狼優(yōu)化算法與PID控制器相結(jié)合,利用元啟發(fā)算法優(yōu)秀的全局搜索能力提高了PID控制器自適應(yīng)能力,但忽略其后期會陷入局部最優(yōu)的精度較低問題。文獻(xiàn)[9]將非線性自回歸移動(dòng)平均算法引入PID控制過程,并實(shí)現(xiàn)其參數(shù)自整定,但是該算法收斂速度較慢。因此,在無線傳感器網(wǎng)絡(luò)的擁塞控制中引入PID控制器時(shí),需考慮PID控制器自適應(yīng)能力不高所導(dǎo)致計(jì)算精度較低的問題。
針對上述網(wǎng)絡(luò)擁塞控制方法計(jì)算精度不高的問題,本文結(jié)合網(wǎng)絡(luò)擁塞特征和模糊PID控制器與元啟發(fā)算法的特點(diǎn),提出一種基于布谷鳥搜索(Cuckoo Search,CS)算法的模糊PID網(wǎng)絡(luò)擁塞控制方法。利用PID控制器的快速收斂能力調(diào)控?zé)o線傳感器網(wǎng)絡(luò)擁塞程度,使用模糊控制算法整定PID控制器參數(shù),通過優(yōu)化其自適應(yīng)能力提高計(jì)算精度,并采用布谷鳥搜索算法優(yōu)化模糊PID控制器所得丟包率進(jìn)一步提升計(jì)算精度。
將傳統(tǒng)PID控制器引入無線傳感器網(wǎng)絡(luò)的擁塞控制中,可計(jì)算消息隊(duì)列的瞬時(shí)隊(duì)列長度與實(shí)時(shí)丟包率。由于網(wǎng)絡(luò)環(huán)境和數(shù)據(jù)收集具有不規(guī)律性,因此要求PID控制器具有較高精度。本文將模糊控制與傳統(tǒng)PID控制器相結(jié)合實(shí)現(xiàn)其參數(shù)自整定,從而提高其優(yōu)化精度。同時(shí),重新計(jì)算實(shí)時(shí)丟包率,并在此基礎(chǔ)上,引入全局搜索性能優(yōu)異且收斂速度較快的元啟發(fā)布谷鳥搜索算法,進(jìn)一步優(yōu)化實(shí)時(shí)丟包率的計(jì)算精度,并通過丟包率控制瞬時(shí)隊(duì)列長度以實(shí)現(xiàn)擁塞控制。根據(jù)上述思路,本文模型設(shè)計(jì)分為2個(gè)步驟:1)將無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的隊(duì)列長度作為控制對象設(shè)計(jì)模糊PID控制器(FPID);2)采用布谷鳥搜索算法優(yōu)化調(diào)整FPID(CFPID)。
傳統(tǒng)PID控制算法是一種將主動(dòng)隊(duì)列管理系統(tǒng)的各類算法轉(zhuǎn)化為控制器形式的經(jīng)典控制算法,該算法可使控制對象的瞬時(shí)值保持接近期望值[10]。本文將PID控制器引入無線傳感器網(wǎng)絡(luò),以隊(duì)列長度為控制對象,經(jīng)過比例(P)、積分(I)和微分(D)調(diào)整,得到消息丟包率p[11],通過丟包率限制隊(duì)列長度從而對擁塞程度進(jìn)行控制。本文PID控制系統(tǒng)結(jié)構(gòu)如圖1所示,其中?表示多個(gè)控制步驟在此處結(jié)合同時(shí)控制下一步操作。
圖1 PID控制系統(tǒng)結(jié)構(gòu)Fig.1 PID control system structure
在PID控制系統(tǒng)結(jié)構(gòu)中,yd為期望隊(duì)列長度,y為瞬時(shí)隊(duì)列長度,k時(shí)刻瞬時(shí)隊(duì)列長度記為y(k),p為消息丟包率,隊(duì)列長度的控制偏差變量為e,在k時(shí)刻e的瞬時(shí)值表達(dá)式如下:
e(k)=yd-y(k)
(1)
以期望隊(duì)列長度yd作為PID控制器的輸入、丟包率p作為PID控制器的輸出對瞬時(shí)隊(duì)列長度進(jìn)行控制,PID控制器的控制規(guī)則表示如下:
(2)
(3)
通過模糊控制算法對PID控制器進(jìn)行參數(shù)整定,可優(yōu)化其自適應(yīng)能力并提高擁塞控制計(jì)算精度。以下對基于模糊PID的擁塞控制器(FPID)設(shè)計(jì)原理和模糊規(guī)則進(jìn)行介紹。
1.2.1 FPID控制器設(shè)計(jì)原理
在傳統(tǒng)PID控制器設(shè)計(jì)中,比例、積分和微分參數(shù)均固定,自適應(yīng)調(diào)節(jié)能力較差,導(dǎo)致控制器精度較低[12]。本文利用模糊控制技術(shù)對PID控制器參數(shù)進(jìn)行調(diào)整。模糊控制技術(shù)是根據(jù)模糊規(guī)則將控制對象進(jìn)行模糊化、模糊推理和反模糊化,其無需精確的被控對象數(shù)學(xué)模型,能較好控制并優(yōu)化非線性變化與實(shí)時(shí)變化的復(fù)雜情況[13]。本文設(shè)計(jì)一種基于模糊PID的FRID控制器,FRID控制系統(tǒng)結(jié)構(gòu)如圖2所示,該系統(tǒng)設(shè)計(jì)過程為:將模糊控制引入PID控制器并對其進(jìn)行參數(shù)尋優(yōu),通過模糊規(guī)則和模糊推理獲得PID參數(shù)增量,并對初始參數(shù)進(jìn)行加權(quán)調(diào)整得到新的PID參數(shù),從而實(shí)現(xiàn)PID參數(shù)的自整定優(yōu)化。
圖2 FPID控制系統(tǒng)結(jié)構(gòu)Fig.2 FPID control system structure
在FPID控制系統(tǒng)結(jié)構(gòu)中,e為網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)隊(duì)列長度的偏差量,ec為偏差變化率,Δkp、Δki、Δkd分別為由模糊推理所得比例、積分、微分參數(shù)增量。將隊(duì)列長度偏差量e和偏差變化率ec作為模糊控制器的輸入,參數(shù)增量Δkp、Δki、Δkd作為模糊控制器的輸出,得到最終的FPID整定參數(shù)形式如下:
kp=kp0+Δkp
(4)
ki=ki0+Δki
(5)
kd=kd0+Δkd
(6)
其中,kp0、ki0、kd0分別為比例、積分、微分參數(shù)初始值。
1.2.2 FPID控制器的模糊規(guī)則
在參數(shù)整定過程中,需考慮參數(shù)之間的關(guān)聯(lián)。將e、ec、Δkp、Δki、Δkd的模糊論域分別設(shè)置為[-3,3]、[-3,3]、[-3,3]、[-0.3,0.3]、[-0.3,0.3],并將輸入變量和輸出變量分為{NB(負(fù)大)、NM(負(fù)中)、NS(負(fù)小)、Z(零)、PS(正小)、PM(正中)、PB(正大)}7個(gè)等級。利用模糊控制器量化因子進(jìn)行PID控制器參數(shù)整定的關(guān)鍵是確定系統(tǒng)的穩(wěn)定邊界[14]。當(dāng)隊(duì)列長度的控制偏差量逐漸減小時(shí),PID參數(shù)增益會隨之減小,系統(tǒng)逐步穩(wěn)定,確保最大偏差在穩(wěn)定區(qū)域內(nèi),并通過模糊校正讓系統(tǒng)自動(dòng)收斂。設(shè)置量化因子ke=0.5、kec=1以及對應(yīng)的比例因子kΔp=1、kΔi=1、kΔd=1[15]。
對參數(shù)增量Δkp、Δki、Δkd具體要求如下:
1)若網(wǎng)絡(luò)節(jié)點(diǎn)中消息隊(duì)列長度偏差量絕對值|e|為大(e取正大或者負(fù)大),則Δkp為正數(shù),即增大kp,以提高調(diào)節(jié)響應(yīng)速度;為防止出現(xiàn)較大的超調(diào)量,通常設(shè)置Δki=0用于限制積分;為防止隊(duì)列長度偏差量e的瞬間變化導(dǎo)致微分飽和并超出控制范圍,Δkd應(yīng)取較小值。
2)若|e|和|ec|為中等大小(e和ec取正中或者負(fù)中),則Δki和Δkd取適中值,使系統(tǒng)具有較小的超調(diào)量。
3)若|e|較小(e取正小、負(fù)小或者零),則Δkp、Δki取正數(shù),即kp、ki的值增加,以保證系統(tǒng)具有良好的穩(wěn)態(tài)性。
根據(jù)上述要求,本文結(jié)合使用三角形隸屬度函數(shù)和Sigmoid型隸屬度函數(shù)以提高控制效果。
三角形隸屬度函數(shù)的解析函數(shù)形式為:
(7)
Sigmoid型隸屬度函數(shù)的解析函數(shù)形式為:
(8)
將上述兩種函數(shù)結(jié)合使用后,輸入和輸出變量的隸屬度函數(shù)曲線如圖3~圖6所示,表1為FPID模糊規(guī)則。
圖3 ec的隸屬度函數(shù)曲線Fig.3 Degree of membership function curve of ec
圖4 Δkp的隸屬度函數(shù)曲線Fig.4 Degree of membership function curve of Δkp
圖5 Δki的隸屬度函數(shù)曲線Fig.5 Degree of membership function curve of Δki
圖6 Δkd的隸屬度函數(shù)曲線Fig.6 Degree of membership function curve of Δkd
表1 FPID模糊規(guī)則Table 1 FPID fuzzy rule
1.2.3 反模糊化
根據(jù)上述模糊規(guī)則,輸入隊(duì)列長度偏差量e和偏差變化率ec后得到的輸出變量為模糊變量,需通過反模糊化得到準(zhǔn)確值。反模糊化的方法主要包括面積中心法[16]、最大隸屬度法和面積積分法[17]。本文采用面積中心法求出參數(shù)增量Δkp、Δki、Δkd的隸屬度,計(jì)算公式如下:
μ(Δkp)=min{μN(yùn)B(e),μN(yùn)B(ec)}
(9)
μ(Δki)=min{μN(yùn)B(e),μN(yùn)B(ec)}
(10)
μ(Δkd)=min{μN(yùn)B(e),μN(yùn)B(ec)}
(11)
經(jīng)過模糊規(guī)則調(diào)整后,根據(jù)隊(duì)列長度偏差量e和偏差變化率ec的測量值可求得參數(shù)增量Δkp、Δki、Δkd,計(jì)算公式如下:
(12)
(13)
(14)
其中,μpj表示j時(shí)刻μ(Δkp)的值,Δkpj表示j時(shí)刻Δkp的值,μij表示j時(shí)刻μ(Δki)的值,Δkij表示j時(shí)刻Δki的值,μdj表示j時(shí)刻μ(Δkd)的值,Δkdj表示j時(shí)刻Δkd的值。將計(jì)算所得參數(shù)增量Δkp、Δki、Δkd代入式(4)~式(6)得到經(jīng)過模糊控制更新后的PID控制器參數(shù),即FPID控制器最終參數(shù),再將其代入式(2)中,計(jì)算得到更新后的丟包率p。
FPID控制器相較傳統(tǒng)PID控制器精度有所提高,但其精度仍有提升空間。由于通過FPID控制器計(jì)算得到的丟包率趨近最優(yōu)解,卻并非最優(yōu)解[18],因此可利用布谷鳥搜索算法良好的尋優(yōu)能力對丟包率再進(jìn)行優(yōu)化,得到丟包率準(zhǔn)確值,從而更精準(zhǔn)地控制隊(duì)列長度。
自然界中布谷鳥不筑巢,而是尋找其他鳥類的巢穴產(chǎn)卵,讓其他鳥類作為宿主幫助其孵化繁衍[19],宿主有一定概率能發(fā)現(xiàn)布谷鳥的蛋,然后宿主會選擇清除此蛋或者放棄巢穴[20]。布谷鳥搜索算法正是模擬布谷鳥上述特殊孵化繁衍方式提出的一種高效元啟發(fā)式優(yōu)化算法[21],該算法滿足如下規(guī)則:1)優(yōu)質(zhì)的宿主巢將被傳遞到下一代;2)宿主有固定概率pa∈[0,1]發(fā)現(xiàn)布谷鳥的蛋并清除此蛋或放棄巢穴;3)每只布谷鳥每次只生1個(gè)蛋,并放置到隨機(jī)選擇的宿主巢中且宿主巢數(shù)量固定。
基于上述規(guī)則,為得到最佳的消息丟包率,以FPID模型中消息丟包率p為目標(biāo)對象,建立基于布谷鳥搜索的模糊PID控制器模型(CFPID),其結(jié)構(gòu)如圖7所示。
圖7 CFPID控制器模型結(jié)構(gòu)Fig.7 CFPID controller model structure
消息丟包率p隨著參數(shù)增量Δkp、Δki、Δkd的變化而改變,其表達(dá)式記為p(k)。將p(k)作為布谷鳥搜索的目標(biāo)函數(shù),以萊維飛行路徑為搜索路徑,通過不斷迭代更新,計(jì)算出PID參數(shù)變化時(shí)消息丟包率p(k)的最大值。布谷鳥搜索路徑公式更新如下:
(15)
(16)
布谷鳥搜索算法的具體步驟如下:
(17)
2)計(jì)算p(k)在各時(shí)間點(diǎn)的值,利用Levy(s,λ)對時(shí)間點(diǎn)進(jìn)行更新,計(jì)算時(shí)間點(diǎn)的目標(biāo)函數(shù)值r并與pa進(jìn)行對比,若r>pa,則記錄r為當(dāng)前最優(yōu)值時(shí)間點(diǎn),同時(shí)更新鳥巢時(shí)間點(diǎn),否則時(shí)間點(diǎn)不變。
3)若滿足最大迭代次數(shù),則繼續(xù)下一步,否則返回步驟2。
4)輸出全局最優(yōu)解,選擇最佳丟包率。
布谷鳥搜索算法的偽代碼如下:
輸入Δkp,Δki,Δkd,M,N
輸出pa
1.While (迭代次數(shù)m 2.生成N個(gè)隨機(jī)鳥巢位置k0,i(i=1,2,…,N) 3.計(jì)算初始巢的目標(biāo)函數(shù)值p(k0,i) 4.Levy-flights尋找新巢位置kx,j(i=1,2,…,N) 5.計(jì)算新巢目標(biāo)函數(shù)值p(kx,j) 6.If(p(kx,j)>pa)then 7.pa=p(kx,j) 8.End If 9.保留最好的pa解以及解的位置 10.m←M+1 11.End While 在布谷鳥搜索算法中,最大迭代計(jì)算次數(shù)為M,由于其中無嵌套循環(huán),因此每次迭代計(jì)算最優(yōu)解的計(jì)算復(fù)雜度不超過O(M),最大種群規(guī)模為N,算法的空間復(fù)雜度為O(N)。 本文在PID控制器的基礎(chǔ)上增加模糊控制器和布谷鳥搜索算法,構(gòu)建出基于布谷鳥搜索的模糊PID擁塞控制方法。將本文提出的CFPID方法與傳統(tǒng)PID方法、IBLUE方法[21]3種控制方法在無線傳感器網(wǎng)絡(luò)擁塞控制時(shí)的隊(duì)列長度、丟包率和吞吐量進(jìn)行對比,以驗(yàn)證本文方法的可行性。實(shí)驗(yàn)采用MATLAB R2018a軟件,具體參數(shù)設(shè)置如表2所示。 表2 實(shí)驗(yàn)參數(shù)設(shè)置Table 2 Experimental parameter setting 將網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量設(shè)置為100,圖8為采用CFPID方法、PID方法和IBLUE方法所得節(jié)點(diǎn)內(nèi)消息隊(duì)列長度隨傳輸時(shí)間的變化。消息隊(duì)列長度直接反映消息隊(duì)列的傳輸流暢性,如果該長度超過期望值,則說明發(fā)生擁塞,需要進(jìn)行丟包調(diào)整,但是隊(duì)列長度太短又會導(dǎo)致網(wǎng)絡(luò)資源利用度較低,因此,需將隊(duì)列長度保持在期望值附近??梢钥闯?當(dāng)數(shù)據(jù)傳輸開始時(shí),3種控制方法的消息隊(duì)列長度均迅速增加,隨后超過期望值從而引發(fā)網(wǎng)絡(luò)擁塞。在感應(yīng)到網(wǎng)絡(luò)擁塞后,控制機(jī)制立刻開始調(diào)節(jié)隊(duì)列長度。其中:PID和IBLUE方法均在隊(duì)列長度達(dá)到最高點(diǎn)后才啟動(dòng)控制機(jī)制,且將隊(duì)列長度收斂到期望值的速度較慢;CFPID方法采用比PID方法、IBLUE方法更快的收斂速度和更小的震蕩幅度將隊(duì)列長度控制到期望值,表現(xiàn)出更好的控制性能。 圖8 網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量為100時(shí)3種方法所得隊(duì)列長度隨傳輸時(shí)間的變化Fig.8 The change of queue length obtained by three methods with transmission time when the number of network nodes is 100 為觀測復(fù)雜場景中CFPID方法的控制性能,將網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量從100調(diào)整為200,增加了整體網(wǎng)絡(luò)的數(shù)據(jù)傳輸負(fù)荷以及單個(gè)節(jié)點(diǎn)的工作量,再次對比采用CFPID方法、PID方法和IBLUE方法所得節(jié)點(diǎn)內(nèi)消息隊(duì)列長度隨傳輸時(shí)間的變化,結(jié)果如圖9所示??梢钥闯?當(dāng)節(jié)點(diǎn)數(shù)量增加后,數(shù)據(jù)傳輸消息量和網(wǎng)絡(luò)節(jié)點(diǎn)的工作負(fù)荷大幅增加,3種控制方法得到的節(jié)點(diǎn)內(nèi)消息隊(duì)列長度曲線均出現(xiàn)明顯震蕩,單位時(shí)間內(nèi)單個(gè)節(jié)點(diǎn)待傳輸數(shù)據(jù)包數(shù)量增多,主要體現(xiàn)在震蕩幅值增大和收斂時(shí)間增加。其中:PID方法所得消息隊(duì)列長度曲線震蕩幅度最大;IBLUE方法的收斂速度變慢,位于CFPID和PID方法之后;CFPID方法所得消息隊(duì)列長度曲線震蕩幅度小于PID和IBLUE方法,且收斂速度最快,說明其在復(fù)雜場景中控制能力仍較強(qiáng)。 圖9 網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量為200時(shí)3種方法所得隊(duì)列長度隨傳輸時(shí)間的變化Fig.9 The change of queue length obtained by three methods with transmission time when the number of network nodes is 200 當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)分布密度增大時(shí),網(wǎng)絡(luò)中數(shù)據(jù)總量會提高,節(jié)點(diǎn)內(nèi)消息隊(duì)列中待傳輸數(shù)據(jù)包增多,從而造成隊(duì)列長度增加。當(dāng)隊(duì)列長度超過期望值時(shí),會加劇網(wǎng)絡(luò)擁塞,此時(shí)需進(jìn)行丟包操作,即以一定的消息丟包率丟棄掉節(jié)點(diǎn)內(nèi)部分?jǐn)?shù)據(jù)包來控制隊(duì)列長度,丟包率隨隊(duì)列長度的變化而改變,并將隊(duì)列長度控制為接近期望值。而丟包率的變化會使消息隊(duì)列長度不斷變化,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)波動(dòng),網(wǎng)絡(luò)不穩(wěn)定會間接影響整體網(wǎng)絡(luò)工作狀態(tài)。因此,丟包率的收斂速度和穩(wěn)定性決定網(wǎng)絡(luò)性能。 在本文實(shí)驗(yàn)中,將初始節(jié)點(diǎn)數(shù)量設(shè)置為100,圖10為CFPID方法、PID方法和IBLUE方法控制下節(jié)點(diǎn)丟包率隨傳輸時(shí)間的變化。可以看出,隨著傳輸時(shí)間的增加,當(dāng)消息隊(duì)列大幅增長時(shí),CFPID方法較PID方法和IBLUE方法控制更迅速,能采用最大丟包率限制隊(duì)列長度進(jìn)一步增加,有效抑制了網(wǎng)絡(luò)擁塞的加重,且經(jīng)過少量震蕩后以最快速度找到平衡點(diǎn),僅需小幅調(diào)整就能讓隊(duì)列長度維持在相對穩(wěn)定的狀態(tài)。 圖10 網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量為100時(shí)3種方法控制下丟包率隨傳輸時(shí)間的變化Fig.10 The change of packet loss rate with transmission time under the control of three methods when the number of network nodes is 100 為觀測復(fù)雜場景中節(jié)點(diǎn)內(nèi)消息丟包率的收斂速度和穩(wěn)定性,將網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量增加到200,網(wǎng)絡(luò)整體數(shù)據(jù)量和各網(wǎng)絡(luò)節(jié)點(diǎn)的待傳輸數(shù)據(jù)包均增加,再次對比CFPID方法、PID方法和IBLUE方法控制下節(jié)點(diǎn)丟包率隨傳輸時(shí)間的變化,結(jié)果如圖11所示??梢钥闯?隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量和整體數(shù)據(jù)量的增加,3種方法控制下的丟包率均出現(xiàn)不同程度的震蕩;PID方法控制下丟包率震蕩幅度最大;IBLUE方法控制下丟包率收斂速度明顯變慢,使得其收斂周期明顯增長;CFPID方法控制下的丟包率能在適度震蕩后保持較快的收斂速度,說明其在復(fù)雜場景中具有較好的控制能力,且自適應(yīng)調(diào)節(jié)能力較強(qiáng)。 圖11 網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量為200時(shí)3種方法控制下丟包率隨傳輸時(shí)間的變化Fig.11 The change of packet loss rate with transmission time under the control of three methods when the number of network nodes is 200 增加節(jié)點(diǎn)數(shù)量可間接增大網(wǎng)絡(luò)傳輸?shù)南?shù)量。圖12為CFPID方法、PID方法和IBLUE方法控制下網(wǎng)絡(luò)吞吐量隨節(jié)點(diǎn)數(shù)量的變化。吞吐量是評價(jià)網(wǎng)絡(luò)性能的指標(biāo),受硬件設(shè)備計(jì)算性能的影響,吞吐量大小變化不會過于明顯。由圖12可以看出:隨著節(jié)點(diǎn)數(shù)量的增加,網(wǎng)絡(luò)傳輸?shù)南?shù)量增大,且節(jié)點(diǎn)間數(shù)據(jù)傳輸時(shí)間縮短,造成吞吐量增大;當(dāng)節(jié)點(diǎn)數(shù)量增加時(shí),3種方法控制下網(wǎng)絡(luò)吞吐量都呈現(xiàn)出不同程度的增大;當(dāng)節(jié)點(diǎn)數(shù)量較少時(shí),CFPID方法控制下網(wǎng)絡(luò)吞吐量最大,且隨著節(jié)點(diǎn)數(shù)量的增長,IBLUE和PID方法控制下網(wǎng)絡(luò)吞吐量的增幅低于CFPID方法,說明CFPID方法在后期具有較強(qiáng)的抗干擾性,在復(fù)雜場景下具備較好的自適應(yīng)調(diào)節(jié)性能。 圖12 3種方法控制下網(wǎng)絡(luò)吞吐量隨節(jié)點(diǎn)數(shù)量的變化Fig.12 The change of network throughput with the number of nodes under the control of three methods 本文針對無線傳感器網(wǎng)絡(luò)擁塞控制方法計(jì)算精度較低的問題,將模糊控制、PID控制器和布谷鳥搜索算法相結(jié)合,提出一種新的網(wǎng)絡(luò)擁塞控制方法。使用PID控制器計(jì)算丟包率并控制節(jié)點(diǎn)的隊(duì)列長度,利用模糊控制調(diào)整PID參數(shù)來提高計(jì)算精度,同時(shí)給出相應(yīng)的模糊規(guī)則,并采用布谷鳥搜索算法進(jìn)一步提高丟包率的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,該方法較PID、IBLUE等傳統(tǒng)控制方法所得網(wǎng)絡(luò)吞吐量更高。后續(xù)將融合更多元啟發(fā)式優(yōu)化算法并優(yōu)化PID控制器模糊規(guī)則,以進(jìn)一步提高布谷鳥搜索算法的計(jì)算速率。2 實(shí)驗(yàn)結(jié)果與分析
2.1 隊(duì)列長度對比
2.2 丟包率對比
2.3 吞吐量對比
3 結(jié)束語