柴沙沙
(四川大學(xué)錦城學(xué)院,四川 成都 611731)
傳輸網(wǎng)絡(luò)控制方法可以通過加入實(shí)時(shí)通訊網(wǎng)絡(luò)而形成一種分布式的閉環(huán)控制,將該系統(tǒng)應(yīng)用到網(wǎng)絡(luò)傳輸過程中,可以在一定程度上加快數(shù)據(jù)傳輸?shù)男?。然而在傳輸網(wǎng)絡(luò)的影響下,傳輸?shù)臄?shù)據(jù)會(huì)出現(xiàn)丟包、時(shí)延、時(shí)序錯(cuò)亂等現(xiàn)象,甚至?xí)档途W(wǎng)絡(luò)的穩(wěn)定性,同時(shí)受到傳輸網(wǎng)絡(luò)結(jié)構(gòu)和帶寬的限制,使得網(wǎng)絡(luò)中的硬件設(shè)備無法正常使用,因此,采用多包傳輸?shù)姆绞骄哂懈訉?shí)際的意義[1]。多包傳輸是指?jìng)鞲衅骰蛘呖刂破鞯臄?shù)據(jù)被放在多個(gè)不同的網(wǎng)絡(luò)數(shù)據(jù)包中,在控制對(duì)象不同步的情況下,數(shù)據(jù)包極易出現(xiàn)時(shí)序錯(cuò)亂的問題。并且在網(wǎng)絡(luò)誘導(dǎo)時(shí)延的情況下,網(wǎng)絡(luò)時(shí)延可以分為常數(shù)時(shí)延和隨機(jī)時(shí)延兩種形式[2]。為了解決短時(shí)延多包傳輸網(wǎng)絡(luò)中存在的時(shí)延、丟包以及時(shí)序錯(cuò)亂等問題,需要采用對(duì)應(yīng)的容錯(cuò)控制方法實(shí)現(xiàn)網(wǎng)絡(luò)控制。一般來講,當(dāng)傳感器、執(zhí)行器或其它元部件發(fā)生故障時(shí),導(dǎo)致網(wǎng)絡(luò)傳輸數(shù)據(jù)出現(xiàn)時(shí)延或丟包等情況,利用控制系統(tǒng)保證閉環(huán)系統(tǒng)的穩(wěn)定運(yùn)行。
容錯(cuò)控制可以從多個(gè)角度進(jìn)行分類,按照克服故障部件分為傳感器、執(zhí)行器和控制器容錯(cuò);按照設(shè)計(jì)方法可以分為主動(dòng)容錯(cuò)控制和被動(dòng)容錯(cuò)控制[3]?,F(xiàn)階段網(wǎng)絡(luò)容錯(cuò)控制方法有基于神經(jīng)網(wǎng)絡(luò)控制、基于反推方法的自適應(yīng)網(wǎng)絡(luò)控制以及粒子群優(yōu)化計(jì)算的網(wǎng)絡(luò)容錯(cuò)控制方法?;谏窠?jīng)網(wǎng)絡(luò)控制方法的實(shí)現(xiàn)主要依靠神經(jīng)網(wǎng)絡(luò)改進(jìn)算法,逐層分析網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn),并對(duì)節(jié)點(diǎn)進(jìn)行故障分析和判斷,針對(duì)存在故障的節(jié)點(diǎn)進(jìn)行容錯(cuò)控制處理,然而在網(wǎng)絡(luò)傳輸運(yùn)行的過程當(dāng)中,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)均處于動(dòng)態(tài)的狀態(tài),因此使用該方法的響應(yīng)時(shí)間較長[4]。自適應(yīng)控制方法解決了神經(jīng)網(wǎng)絡(luò)方法中存在的動(dòng)態(tài)性問題,針對(duì)每一個(gè)節(jié)點(diǎn)分別進(jìn)行檢測(cè)和控制,這種方法在使用過程中響應(yīng)時(shí)間較長,控制效率較低。粒子群優(yōu)化計(jì)算控制方法的實(shí)現(xiàn)主要利用粒子群算法,這種算法在網(wǎng)絡(luò)傳輸運(yùn)行的過程中,響應(yīng)時(shí)間較長,也就導(dǎo)致了控制效率較低。
針對(duì)傳統(tǒng)方法中存在的普遍問題,提出網(wǎng)絡(luò)容錯(cuò)控制的數(shù)學(xué)建模方法,建立對(duì)應(yīng)的數(shù)學(xué)模型,將不同的網(wǎng)絡(luò)故障狀態(tài)進(jìn)行分類,針對(duì)不同的故障分布采用不同的控制方法,以此來提高網(wǎng)絡(luò)容錯(cuò)控制的效果。
短時(shí)延多包傳輸網(wǎng)絡(luò)容錯(cuò)控制數(shù)學(xué)模型建立與設(shè)計(jì)的主體思想,是對(duì)執(zhí)行多包傳輸任務(wù)的網(wǎng)絡(luò)進(jìn)行異常檢測(cè),從而判斷網(wǎng)絡(luò)的運(yùn)行狀態(tài)和故障類型,針對(duì)不同的故障類型,使用不同的容錯(cuò)控制方法來實(shí)現(xiàn)容錯(cuò)控制。網(wǎng)絡(luò)容錯(cuò)控制數(shù)學(xué)模型的基本控制結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)容錯(cuò)控制模型結(jié)構(gòu)圖
根據(jù)圖1的模型結(jié)構(gòu),對(duì)網(wǎng)絡(luò)容錯(cuò)控制數(shù)學(xué)模型進(jìn)行搭建,其中以連續(xù)的多包傳輸數(shù)據(jù)作為被控對(duì)象,模型中的控制器為主動(dòng)容錯(cuò)器。網(wǎng)絡(luò)傳輸過程中各個(gè)節(jié)點(diǎn)的工作方式可以分為時(shí)間驅(qū)動(dòng)和空間驅(qū)動(dòng)兩種方式,一般傳感器節(jié)點(diǎn)為時(shí)間驅(qū)動(dòng),執(zhí)行器節(jié)點(diǎn)為空間驅(qū)動(dòng),在容錯(cuò)控制數(shù)學(xué)模型中,對(duì)不同的故障類型進(jìn)行具體分析與控制。
執(zhí)行多包傳輸?shù)木W(wǎng)絡(luò)一般處于兩種狀態(tài),一種為正常運(yùn)行傳輸狀態(tài),另一種為異常狀態(tài)[5-6]。引起異常狀態(tài)的原因不同,主要分為網(wǎng)絡(luò)線路問題和節(jié)點(diǎn)故障問題。其中網(wǎng)絡(luò)線路會(huì)引起數(shù)據(jù)丟包和時(shí)序錯(cuò)亂,而節(jié)點(diǎn)故障問題會(huì)導(dǎo)致傳輸時(shí)延,甚至傳輸失敗[7]。在建立網(wǎng)絡(luò)容錯(cuò)控制數(shù)學(xué)模型前,首先需要檢測(cè)網(wǎng)絡(luò)線路與節(jié)點(diǎn)的狀態(tài)。將被控對(duì)象的狀態(tài)用式(1)來表示。
(1)
式中,Ap、Bp和Cp均為相應(yīng)的空間維數(shù),x(t)、u(t)和y(t)分別為被控對(duì)象的狀態(tài)、輸入和輸出。假設(shè)短時(shí)延網(wǎng)絡(luò)容錯(cuò)控制的離散狀態(tài)表達(dá)式為:
(2)
式中,x(k)為狀態(tài)向量,u(k)為執(zhí)行器輸出狀態(tài),y(k)為傳感器的輸出狀態(tài),且式(2)中的A、B、C均為節(jié)點(diǎn)參數(shù)。
采用割點(diǎn)檢測(cè)方法對(duì)被控網(wǎng)絡(luò)的對(duì)象進(jìn)行檢測(cè),割點(diǎn)檢測(cè)方法的執(zhí)行流程如圖2所示。
圖2 網(wǎng)絡(luò)狀態(tài)割點(diǎn)檢測(cè)流程圖
按照?qǐng)D2中的網(wǎng)絡(luò)狀態(tài)割點(diǎn)檢測(cè)流程,首先在被控網(wǎng)絡(luò)對(duì)象中確定一個(gè)根節(jié)點(diǎn),以根節(jié)點(diǎn)為起點(diǎn),向其相鄰的節(jié)點(diǎn)傳輸檢測(cè)消息,直至遍歷網(wǎng)絡(luò)中的所有節(jié)點(diǎn)為止。檢測(cè)消息在網(wǎng)絡(luò)中以深度優(yōu)先的順序向節(jié)點(diǎn)進(jìn)行訪問,同時(shí)在節(jié)點(diǎn)中更新深淺度參數(shù)[8]。以深淺度參數(shù)的更新結(jié)果作為參考,判斷數(shù)的節(jié)點(diǎn)是否為切割點(diǎn)。若節(jié)點(diǎn)i的子節(jié)點(diǎn)不小于2時(shí),則判斷i為切割點(diǎn),否則進(jìn)行下一步檢測(cè)傳輸。由此便將網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)劃分成為多段,每段上的節(jié)點(diǎn)狀態(tài)相同,因此,只需對(duì)一段線路中的某一個(gè)節(jié)點(diǎn)進(jìn)行狀態(tài)判定,便可以得出該條線路上所有節(jié)點(diǎn)的狀態(tài),說明該方法能夠簡化狀態(tài)檢測(cè)流程[9]。再將存在異常狀態(tài)的節(jié)點(diǎn)進(jìn)行具體劃分,并按照卡頓故障、偏差故障、失效故障和丟包故障對(duì)節(jié)點(diǎn)進(jìn)行分組輸出。
為明確建模所適用的范圍,根據(jù)網(wǎng)絡(luò)狀態(tài)的測(cè)試結(jié)果,分別對(duì)不同故障問題進(jìn)行問題描述。
高校突發(fā)事件的發(fā)生,往往是因?yàn)槎喾矫嬉蛩赜绊懙慕Y(jié)果,因此在預(yù)防高校突發(fā)事件發(fā)生上面應(yīng)當(dāng)建立完善的預(yù)防機(jī)制,從而降低突發(fā)事件發(fā)生概率。同時(shí)在發(fā)生突發(fā)事件后也能夠及時(shí)進(jìn)行處理,將突發(fā)事件帶來的影響降到最低。
對(duì)傳感器和執(zhí)行器失效造成的丟包故障問題進(jìn)行描述,其描述的表達(dá)式為
(3)
式中,z(k)表示多包傳輸網(wǎng)絡(luò)可能出現(xiàn)的所有故障類型;T表示故障持續(xù)時(shí)間。在容錯(cuò)故障分類過程中需要考慮傳感器節(jié)點(diǎn)的具體傳輸情況。在考慮輸出時(shí)延時(shí),則傳感器節(jié)點(diǎn)的時(shí)延輸出w(k)可以表示為
w(k)=δiCu(k)+(Ii-δi)z(k)
(4)
式中,δi表示節(jié)點(diǎn)布置,取值為diag(0,…,Ii);Ii表示傳感器信號(hào)被更新后的輸出結(jié)果。如果第i個(gè)傳感器在多包網(wǎng)絡(luò)傳輸過程中發(fā)生數(shù)據(jù)包丟失故障,控制器將無法獲取數(shù)據(jù)包丟失部分的數(shù)據(jù)信息,則可以判定傳感器節(jié)點(diǎn)暫時(shí)失效[10]。
網(wǎng)絡(luò)卡頓故障是執(zhí)行器在運(yùn)行過程中由于某些原因,導(dǎo)致傳輸?shù)臄?shù)據(jù)停留在某一個(gè)環(huán)節(jié),且停留的時(shí)間超過正常傳輸?shù)臅r(shí)間。將網(wǎng)絡(luò)卡頓故障用式(5)表示
i=1,2,…,m
(5)
圖3 時(shí)域空域錯(cuò)亂偏差故障示意圖
(6)
根據(jù)幾種故障類型,使用不同的容錯(cuò)控制方案,針對(duì)多包傳輸網(wǎng)絡(luò),數(shù)據(jù)包在靜態(tài)調(diào)度和動(dòng)態(tài)調(diào)度情況下,設(shè)計(jì)網(wǎng)絡(luò)容錯(cuò)控制器。
假設(shè)主動(dòng)容錯(cuò)控制器極點(diǎn)為時(shí)間驅(qū)動(dòng),其工作周期為h,且主動(dòng)容錯(cuò)控制器與控制對(duì)象的時(shí)鐘完全同步。主動(dòng)容錯(cuò)控制器中各個(gè)節(jié)點(diǎn)的時(shí)序情況如圖4所示。
圖4 主動(dòng)容錯(cuò)控制器的時(shí)序控制圖
設(shè)主動(dòng)容錯(cuò)控制器表示為
(7)
如果網(wǎng)絡(luò)中不存在時(shí)延、故障和干擾等不確定性因素,即fa(x,u,r)和e(k)的取值均為零,將此網(wǎng)絡(luò)模型Am作為參考模型,并加入?yún)⒖驾斎雃(k),可以通過節(jié)點(diǎn)配置的方法確定反饋增益變化,保證主動(dòng)容錯(cuò)控制器穩(wěn)定。網(wǎng)絡(luò)在控制器的作用下,與參考模型相加得到誤差動(dòng)態(tài)方程
e(k+1)=Ame(k)+f(x,u,r)
(8)
式中,e(k+1)=x(k)-xm(k),表示網(wǎng)絡(luò)狀態(tài)的跟蹤誤差。根據(jù)式(8)可以看出,若式中的參量f(x,u,r)的值為零,則誤差也衰減到0,執(zhí)行多包傳輸任務(wù)的網(wǎng)絡(luò)即為穩(wěn)定;若f(x,u,r)的取值不為零,網(wǎng)絡(luò)就不夠穩(wěn)定,需要利用設(shè)計(jì)完成的主動(dòng)容錯(cuò)控制器計(jì)算補(bǔ)償控制量d(k),其計(jì)算方法如式(9)所示
d(k)=uke(k+1)+dc(k)
(9)
式中,dc(k)表示克服時(shí)延、故障、干擾組成的非線性函數(shù),從而保證網(wǎng)絡(luò)的穩(wěn)定性能。根據(jù)誤差表達(dá)式,設(shè)計(jì)數(shù)學(xué)迭代學(xué)習(xí)容錯(cuò)控制補(bǔ)償模型dk+1(k),其表達(dá)式為
dk+1(k)=dc(k)+K1d(k)+K2e(k+1)
(10)
式中,K1和K2分別表示的是待定時(shí)延補(bǔ)償和增益變化。依照數(shù)學(xué)迭代算子,可以計(jì)算出多包傳輸網(wǎng)絡(luò)數(shù)學(xué)迭代容錯(cuò)補(bǔ)償控制模型δfk(t),其表達(dá)式為
(11)
式中,fk(t)表示容錯(cuò)補(bǔ)償控制量;fi表示故障增益。利用設(shè)計(jì)完成的控制器,實(shí)現(xiàn)短時(shí)延的補(bǔ)償。分別針對(duì)不同的故障,使用數(shù)學(xué)算法實(shí)現(xiàn)網(wǎng)絡(luò)的容錯(cuò)控制。分別從丟包、失效和時(shí)序錯(cuò)亂三個(gè)方面實(shí)現(xiàn)網(wǎng)絡(luò)的容錯(cuò)控制。其中,當(dāng)執(zhí)行器或傳感器完全失效時(shí),fi的值為零;執(zhí)行器或傳感器完全正常時(shí),fi取值為1;當(dāng)執(zhí)行器或傳感器發(fā)生部分失效時(shí),fi的取值介于零和一之間。那么當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)出現(xiàn)故障時(shí),短時(shí)延多包傳輸網(wǎng)絡(luò)容錯(cuò)控制數(shù)學(xué)模型在主動(dòng)控制器的作用下,會(huì)使閉環(huán)網(wǎng)絡(luò)趨于穩(wěn)定狀態(tài)。
為了檢測(cè)短時(shí)延多包傳輸網(wǎng)絡(luò)容錯(cuò)控制模型的有效性,需要設(shè)計(jì)仿真,對(duì)多包傳輸網(wǎng)絡(luò)容錯(cuò)控制的結(jié)果進(jìn)行分析。為了保證仿真變量的唯一性,在實(shí)驗(yàn)過程中選用相同的傳輸網(wǎng)絡(luò),并傳輸相同的多包數(shù)據(jù)。通過搭建容錯(cuò)控制模型應(yīng)用的實(shí)驗(yàn)環(huán)境,對(duì)執(zhí)行多包數(shù)據(jù)傳輸任務(wù)網(wǎng)絡(luò)上的各個(gè)節(jié)點(diǎn)進(jìn)行容錯(cuò)控制,并對(duì)網(wǎng)絡(luò)控制結(jié)果進(jìn)行具體分析。
對(duì)正在執(zhí)行多包數(shù)據(jù)傳輸任務(wù)的網(wǎng)絡(luò)進(jìn)行采樣處理,傳感器和執(zhí)行器節(jié)點(diǎn)的采樣時(shí)間為0.05秒。在仿真環(huán)境下,手動(dòng)設(shè)置網(wǎng)絡(luò)的故障情況,對(duì)執(zhí)行器故障情況進(jìn)行仿真。根據(jù)故障模型使用開關(guān)陣列來表示執(zhí)行器的故障模式,設(shè)置仿真對(duì)象的故障模式為連續(xù)時(shí)序錯(cuò)亂,設(shè)置的錯(cuò)亂跳變情況如圖5所示。
圖5 仿真對(duì)象網(wǎng)絡(luò)連續(xù)錯(cuò)序跳變曲線
在該網(wǎng)絡(luò)故障下,使用設(shè)計(jì)出的短時(shí)延多包傳輸網(wǎng)絡(luò)容錯(cuò)控制模型對(duì)故障的網(wǎng)絡(luò)進(jìn)行容錯(cuò)控制。
為了凸顯設(shè)計(jì)出的多包傳輸網(wǎng)絡(luò)容錯(cuò)控制模型的控制性能,在仿真中設(shè)立傳統(tǒng)的基于反推方法的自適應(yīng)網(wǎng)絡(luò)容錯(cuò)控制方法和粒子群優(yōu)化計(jì)算的網(wǎng)絡(luò)容錯(cuò)控制方法作為實(shí)驗(yàn)的對(duì)比方法。在相同的仿真環(huán)境下,分別將三種容錯(cuò)控制模型應(yīng)用相同的實(shí)驗(yàn)對(duì)象上。設(shè)立網(wǎng)絡(luò)中的普通節(jié)點(diǎn)、執(zhí)行器節(jié)點(diǎn)以及傳感器節(jié)點(diǎn)作為仿真的檢測(cè)對(duì)象。啟動(dòng)網(wǎng)絡(luò)傳輸任務(wù),并間隔5分鐘啟動(dòng)一次網(wǎng)絡(luò)故障,通過仿真過程,對(duì)比本文容錯(cuò)控制數(shù)學(xué)模型和傳統(tǒng)容錯(cuò)控制模型的響應(yīng)時(shí)間以及控制結(jié)果,進(jìn)而得出不同模型的控制效果。
經(jīng)過仿真過程,得出有關(guān)于網(wǎng)絡(luò)容錯(cuò)節(jié)點(diǎn)控制的響應(yīng)狀態(tài)結(jié)果,如圖6所示。
圖6 響應(yīng)狀態(tài)對(duì)比結(jié)果
根據(jù)圖6中曲線的變化形式表明,隨著網(wǎng)絡(luò)采樣時(shí)間的增加,不同容錯(cuò)控制方法均起到的一定的作用,其中設(shè)計(jì)的容錯(cuò)控制數(shù)學(xué)模型在采樣時(shí)間為22秒時(shí),網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)就已恢復(fù)到正常運(yùn)行的狀態(tài),而基于反推方法的自適應(yīng)網(wǎng)絡(luò)容錯(cuò)控制方法需要花費(fèi)約50秒的時(shí)間,粒子群優(yōu)化計(jì)算的網(wǎng)絡(luò)容錯(cuò)控制方法需要花費(fèi)約65秒的時(shí)間。相比之下,本文容錯(cuò)控制數(shù)學(xué)模型大大縮短了響應(yīng)時(shí)間。這是由于本文設(shè)計(jì)了主動(dòng)容錯(cuò)控制器,利用控制器計(jì)算不同故障類型下的補(bǔ)償控制量,并通過數(shù)學(xué)迭代算法實(shí)現(xiàn)容錯(cuò)補(bǔ)償控制,從而獲得了更加準(zhǔn)確的網(wǎng)絡(luò)容錯(cuò)節(jié)點(diǎn)控制的響應(yīng)狀態(tài)結(jié)果。
為了進(jìn)一步驗(yàn)證本文模型的有效性,對(duì)本文容錯(cuò)控制數(shù)學(xué)模型和傳統(tǒng)基于反推方法的自適應(yīng)網(wǎng)絡(luò)容錯(cuò)控制方法、粒子群優(yōu)化計(jì)算的網(wǎng)絡(luò)容錯(cuò)控制方法進(jìn)行對(duì)比分析,對(duì)比結(jié)果如圖7所示。
圖7 控制效率對(duì)比結(jié)果
根據(jù)圖7可知,本文容錯(cuò)控制數(shù)學(xué)模型的控制效率最高約為97%,而基于反推方法的自適應(yīng)網(wǎng)絡(luò)容錯(cuò)控制方法的控制效率最高約為78%,粒子群優(yōu)化計(jì)算的網(wǎng)絡(luò)容錯(cuò)控制方法的控制效率最高約為68%,本文方法明顯高于兩種傳統(tǒng)方法。這是由于該方法采用割點(diǎn)檢測(cè)方法對(duì)被控網(wǎng)絡(luò)的對(duì)象進(jìn)行檢測(cè),有效降低了檢測(cè)過程的復(fù)雜度,進(jìn)而縮短了響應(yīng)狀態(tài)達(dá)到正常運(yùn)行狀態(tài)的時(shí)間,提高了模型的響應(yīng)效果。
考慮短時(shí)延多包傳輸網(wǎng)絡(luò)在數(shù)據(jù)丟包和時(shí)延同時(shí)存在的情況,建立短時(shí)延多包傳輸網(wǎng)絡(luò)容錯(cuò)控制數(shù)學(xué)模型。通過仿真表明,將該模型應(yīng)用到網(wǎng)絡(luò)當(dāng)中,可以全面的控制網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn),驗(yàn)證了所給出的容錯(cuò)控制模型具有較高的控制效率,且在控制過程中的響應(yīng)時(shí)間較短。雖然本文方法取得了一定的研究成果,但是由于用戶對(duì)網(wǎng)絡(luò)需求的日益增長,需要對(duì)該方法進(jìn)行進(jìn)一步優(yōu)化,以此來滿足實(shí)際需求。