李 航, 杜 璠, 胡曉兵, 周韶武
(1.四川大學(xué)機(jī)械工程學(xué)院, 成都 610065; 2.四川航天長(zhǎng)征裝備制造有限公司, 成都 610065)
傳統(tǒng)的PID控制器由比例、積分、微分三個(gè)控制部分組成,由于其算法簡(jiǎn)單,較為穩(wěn)定,廣泛應(yīng)用于各個(gè)控制系統(tǒng)中.然而在動(dòng)物缺氧實(shí)驗(yàn)氣體控制過(guò)程中,由于傳感器測(cè)量存在滯后性,內(nèi)外部環(huán)境不斷變化,以及控制對(duì)象不確定因素的增多,導(dǎo)致系統(tǒng)呈現(xiàn)出時(shí)變非線性的特點(diǎn),此時(shí)使用傳統(tǒng)PID 控制會(huì)出現(xiàn)較大的誤差,無(wú)法達(dá)到理想的控制效果[1].因此,迫切需要對(duì)其進(jìn)行改良和優(yōu)化.BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性映射能力和自適應(yīng)能力,將傳統(tǒng)PID 控制器與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,利用BP神經(jīng)網(wǎng)絡(luò)自動(dòng)生成PID控制器中kp、ki、kd三個(gè)參數(shù),能夠提高系統(tǒng)的控制精度和適應(yīng)能力[2-4],從而實(shí)現(xiàn)智能控制.
然而,BP神經(jīng)網(wǎng)絡(luò)存在著收斂速度慢,并且結(jié)果容易陷入局部最優(yōu)解等問(wèn)題.針對(duì)這些問(wèn)題,文獻(xiàn)[5]在BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)將學(xué)習(xí)率依照誤差自動(dòng)調(diào)整,得到了更快的收斂速度和更小的誤差.文獻(xiàn)[6]利用免疫遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值,文獻(xiàn)[7]將遺傳算法與粒子群算法相結(jié)合,形成一種混合優(yōu)化算法對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化改進(jìn),利用優(yōu)化后的神經(jīng)網(wǎng)絡(luò)生成PID控制器的參數(shù),實(shí)驗(yàn)結(jié)果顯示,兩種方法優(yōu)化后的控制系統(tǒng)在控制精度和魯棒性上都有較大提高.
為此,本文設(shè)計(jì)并提出了一種新型的基于改進(jìn)的遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)PID控制器(簡(jiǎn)稱改進(jìn)GA-BP-PID控制器).該控制器采用BP神經(jīng)網(wǎng)絡(luò)生成PID控制器各項(xiàng)參數(shù),并提出一種改進(jìn)的遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)重初始值.為了說(shuō)明本文提出的改進(jìn)GA-BP-PID控制器相較于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)PID控制器(簡(jiǎn)稱BP-PID控制器)具有更優(yōu)的控制性能,本文以動(dòng)物缺氧實(shí)驗(yàn)中氣體濃度控制為例,對(duì)以上兩種控制器進(jìn)行仿真分析和比較.結(jié)果表明,本文提出的改進(jìn)的控制器可以更加快速、精準(zhǔn)地滿足控制要求.
當(dāng)供應(yīng)組織的氧不足或組織利用氧障礙時(shí),機(jī)體的機(jī)能、代謝以及形態(tài)結(jié)構(gòu)發(fā)生異常變化的病理過(guò)程稱為缺氧.在小鼠缺氧實(shí)驗(yàn)中,觀察經(jīng)缺氧環(huán)境刺激后小鼠的生理狀態(tài),對(duì)高原習(xí)服機(jī)制的研究具有重大的意義[8].針對(duì)這一需求,本文利用一款智能動(dòng)物實(shí)驗(yàn)箱實(shí)現(xiàn)氧氣濃度的調(diào)控,并利用該實(shí)驗(yàn)箱記錄實(shí)驗(yàn)過(guò)程中氧氣濃度的實(shí)時(shí)變化數(shù)據(jù).實(shí)驗(yàn)箱示意圖如圖1所示.
圖1 實(shí)驗(yàn)箱示意圖Fig.1 Diagram of the experimental box
圖2 氧氣濃度變化曲線Fig.2 Oxygen concentration curve
實(shí)驗(yàn)開(kāi)始時(shí),外界環(huán)境氧氣濃度為21%,設(shè)定箱體內(nèi)部環(huán)境穩(wěn)定時(shí)氧氣濃度為10%,采樣時(shí)間為1 s,得到各時(shí)刻氧氣濃度變化數(shù)據(jù),如圖2所示.
由圖2可知,控制過(guò)程中氧氣濃度在穩(wěn)定值附近不斷振蕩,最終并未穩(wěn)定.系統(tǒng)響應(yīng)是一條近似的S形單調(diào)曲線,且具有一階延遲系統(tǒng)的特征,因此系統(tǒng)的傳遞函數(shù)可用以下式子近似表示.
(1)
式(1))中,K為靜態(tài)增益;T為時(shí)間常數(shù);τ為延遲時(shí)間.本文采用作圖法求解相關(guān)參數(shù)[9].該方法計(jì)算簡(jiǎn)單、易于實(shí)現(xiàn),具體做法是過(guò)曲線斜率最大點(diǎn)做切線,利用切線的交點(diǎn)找參數(shù)T與τ,靜態(tài)增益K通過(guò)以下公式直接計(jì)算.
(2)
式(2)中,r為期望的輸出信號(hào);u(0)為初始值;u(∞)為輸出穩(wěn)態(tài)值.由圖2可得T+τ=55 s,τ=10 s,u(∞)=11,u(0)=0,r=11,因此系統(tǒng)的傳遞函數(shù)表達(dá)式為
(3)
BP-PID控制器由PID控制器和BP神經(jīng)網(wǎng)絡(luò)兩部分組成.傳統(tǒng)PID控制器適用于簡(jiǎn)單的線性系統(tǒng),但對(duì)于非線性、時(shí)變性的系統(tǒng)控制效果則不太理想.BP神經(jīng)網(wǎng)絡(luò)可以利用其自學(xué)習(xí)能力輸出對(duì)應(yīng)于某種最優(yōu)控制率下的最優(yōu)PID控制器參數(shù)組合以達(dá)到期望的控制效果[10-11].BP-PID控制器的整體架構(gòu)如圖3所示.
圖3 BP神經(jīng)網(wǎng)絡(luò)PID控制器結(jié)構(gòu)
傳統(tǒng)PID控制器按照偏差的比例、積分和微分對(duì)系統(tǒng)進(jìn)行控制,控制過(guò)程如圖4所示.
圖4 傳統(tǒng)PID控制器控制流程
在實(shí)際控制過(guò)程中,為了降低累積誤差的影響,通常采用增量式PID控制算法進(jìn)行控制.增量式PID控制算法輸出的是控制量增量,即在上一次控制量的基礎(chǔ)上需要增加或減少的控制量[12],其表達(dá)式如下.
Δu(k)=kp[e(k)-e(k-1)]+kie(k)+
kd[e(k)-2e(k-1)+e(k-2)]
(4)
式中,Δu(k)為控制量增量;e(t)為偏差信號(hào);kp為比例系數(shù);ki為積分作用參數(shù);kd為微分作用參數(shù).e(k)=r(k)-y(k),r(k)為系統(tǒng)設(shè)定值,y(k)為當(dāng)前控制對(duì)象狀態(tài)值.由增量式PID控制算法可以看出,一旦確定出kp、ki、kd三個(gè)控制參數(shù),利用前后三次采樣值的偏差就可以計(jì)算出控制量增量,避免了誤差的累積.
BP神經(jīng)網(wǎng)絡(luò)包括輸入層、隱藏層和輸出層三大部分,網(wǎng)絡(luò)中每一層的輸出都是下一層的輸入,其層級(jí)結(jié)構(gòu)如圖5所示.
圖5 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
其中,X=[x1,x2,…,xn]組成輸入層,中間層為隱藏層,最后一層為輸出層,負(fù)責(zé)計(jì)算輸出Y=[y1,y2,…,ym].對(duì)于上述模型,隱藏層結(jié)果和最終輸出可由以下式表示.
(5)
(6)
網(wǎng)絡(luò)采用反向傳播算法更新參數(shù).首先計(jì)算出BP神經(jīng)網(wǎng)絡(luò)的損失函數(shù)J(Θ),再逐層反向求出J(Θ)對(duì)所有參數(shù)的偏導(dǎo)數(shù),利用梯度下降算法更新網(wǎng)絡(luò)參數(shù).輸出層參數(shù)更新算法過(guò)程如下式所示.
(7)
(8)
(9)
式中,J(Θ)代表BP神經(jīng)網(wǎng)絡(luò)的損失函數(shù);yi為網(wǎng)絡(luò)輸出;α為學(xué)習(xí)速率.隱含層參數(shù)更新繼續(xù)向前求偏導(dǎo)數(shù).所有參數(shù)更新完后便進(jìn)行下一次前向傳播,直至損失值達(dá)到預(yù)期效果.
傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)的權(quán)重初始值是按照經(jīng)驗(yàn)隨機(jī)選取的,這種方法會(huì)導(dǎo)致網(wǎng)絡(luò)的收斂速度和最終結(jié)果都存在較大程度的不穩(wěn)定性.遺傳算法具有很好的全局尋優(yōu)性,利用遺傳算法可以快速地搜索出BP 神經(jīng)網(wǎng)絡(luò)的最佳初始權(quán)重,從而加快網(wǎng)絡(luò)的訓(xùn)練過(guò)程[13-14].但同時(shí)遺傳算法也存在容易陷入局部最優(yōu)解,穩(wěn)定性差等缺點(diǎn).因此本文提出一種改進(jìn)的遺傳算法,對(duì)初始種群的生成過(guò)程和交叉過(guò)程進(jìn)行了優(yōu)化,提高了算法的收斂速度和穩(wěn)定性.
遺傳算法是模擬生物進(jìn)化論和遺傳機(jī)理而形成的一種隨機(jī)搜索最優(yōu)解的方法,它把問(wèn)題存在的所有可能解視作自然界的生物種群,種群中的所有個(gè)體按照設(shè)定方法進(jìn)行編碼,經(jīng)過(guò)選擇、交叉和變異操作后,利用適應(yīng)度函數(shù)評(píng)價(jià)個(gè)體的優(yōu)良程度,淘汰適應(yīng)度較差的個(gè)體,這樣反復(fù)循環(huán),直到結(jié)果滿足條件[15].與其他傳統(tǒng)優(yōu)化算法相比,遺傳算法具有較好的收斂性和全局搜索能力,計(jì)算時(shí)間少,魯棒性高.雖然遺傳算法在許多領(lǐng)域中都有成功的應(yīng)用,但其自身也存在著較多的缺陷,比如局部搜索能力差,交叉與變異算子具有雙重性,并且隨著迭代次數(shù)的增多,種群多樣性也在隨之減少,容易使結(jié)果陷入局部最優(yōu)解.
為了確定BP神經(jīng)網(wǎng)絡(luò)的初始參數(shù),傳統(tǒng)遺傳算法從隨機(jī)初始化的數(shù)據(jù)中獲取初始種群.由于初始種群范圍較大,個(gè)體之間并無(wú)任何聯(lián)系,導(dǎo)致尋優(yōu)過(guò)程收斂速度較慢.在原有算法基礎(chǔ)上,本文提出一種新的初始種群獲取方法.
首先,在解空間內(nèi)隨機(jī)生成一定規(guī)模的M個(gè)個(gè)體,按照適應(yīng)度函數(shù)取值搜索出得分最優(yōu)的若干子N個(gè)個(gè)體組成新的種群,稱其為初始優(yōu)勝個(gè)體種群.適應(yīng)度函數(shù)可由以下式表示.
(10)
式中,n為網(wǎng)絡(luò)輸出的節(jié)點(diǎn)數(shù);yi為BP神經(jīng)網(wǎng)絡(luò)第i個(gè)節(jié)點(diǎn)的期望輸出;oi為第i個(gè)節(jié)點(diǎn)的預(yù)測(cè)輸出;k為系數(shù).F越小,個(gè)體越優(yōu).
以每一個(gè)初始優(yōu)勝個(gè)體為中心,在每個(gè)個(gè)體的周圍產(chǎn)生新的個(gè)體,從而得到若干個(gè)優(yōu)勝種群.這一過(guò)程可以用下式表示.
amn=aij+εwij
(11)
wij~U[a,b]
(12)
式中,aij表示優(yōu)勝個(gè)體種群中第i個(gè)個(gè)體的第j個(gè)基因;amn表示以aij為中心生成的新個(gè)體基因;wij服從(a,b)之間的均勻分布;ε為系數(shù).
傳統(tǒng)遺傳算法交叉、變異過(guò)程是在種群中所有個(gè)體中進(jìn)行的,為了減小算法中交叉、變異算子的雙重性,本文提出不同優(yōu)勝種群的個(gè)體之間進(jìn)行交叉與變異,將每一個(gè)優(yōu)勝種群按照平均適應(yīng)度值進(jìn)行排序,適應(yīng)度值越優(yōu)的種群,與其他種群進(jìn)行交叉與變異的概率越大.該過(guò)程可由下式表示.
(13)
(14)
(15)
式中,F(xiàn)i為個(gè)體i的適應(yīng)度值;K為優(yōu)勝種群中個(gè)體數(shù)目;N為優(yōu)勝種群數(shù)目;pk為最終優(yōu)勝種群k被選中的概率.
種群之間按照概率大小互相選擇,選中的種群之間再完成個(gè)體的交叉、變異操作,產(chǎn)生新的個(gè)體.上述過(guò)程完成后,再對(duì)新種群中所有個(gè)體按照適應(yīng)度值重新排序、分組,重復(fù)上述過(guò)程,直至最終產(chǎn)生最優(yōu)個(gè)體.算法步驟如下.(1) 隨機(jī)確定若干個(gè)符合要求的個(gè)體;(2) 取前N個(gè)體組成初始優(yōu)勝個(gè)體種群;(3) 分別以每一個(gè)個(gè)體為中心產(chǎn)生新的K個(gè)體,組成N個(gè)優(yōu)勝種群;(4) 按照每一個(gè)優(yōu)勝種群的平均適應(yīng)度f(wàn)avg進(jìn)行排序,排序靠前的種群按照輪盤賭法從其余種群進(jìn)行中選擇;(5) 互相選中的種群個(gè)體之間進(jìn)行交叉、變異操作,產(chǎn)生新的個(gè)體;(6) 新生成的所有個(gè)體按照適應(yīng)度值重新排序、分組,返回步驟(4)繼續(xù)進(jìn)行迭代優(yōu)化,直至產(chǎn)生最優(yōu)個(gè)體.
在原有BP-PID控制器的基礎(chǔ)上,利用本文提出的改進(jìn)的遺傳算法初始化BP神經(jīng)網(wǎng)絡(luò)的權(quán)重初始值,加速網(wǎng)絡(luò)的訓(xùn)練過(guò)程,最終構(gòu)建的改進(jìn)GA-BP-PID控制器結(jié)構(gòu)如圖6所示,算法流程如圖7所示.
圖6 改進(jìn)GA-BP-PID控制器結(jié)構(gòu)
圖7 控制器算法流程Fig.7 Controller algorithm flow
將傳統(tǒng)BP-PID控制器與本文為提出的改進(jìn)GA-BP-PID控制器分別應(yīng)用于缺氧實(shí)驗(yàn)的氣體控制中,并利用MATLAB進(jìn)行仿真分析,比較兩種方法的控制性能.
對(duì)于傳統(tǒng)BP-PID控制器,設(shè)定r(k)=11,采樣時(shí)間ts=1s,學(xué)習(xí)率α=0.2,慣性因子ω=0.05,網(wǎng)絡(luò)權(quán)重初始值取[-1,1]之間的隨機(jī)數(shù).網(wǎng)絡(luò)采用一層輸入層、一層隱含層和一層輸出層的三層網(wǎng)絡(luò)架構(gòu),利用試湊法確定隱含層節(jié)點(diǎn)數(shù)Q=5,x=[r(k),y(k),e(k)]作為網(wǎng)絡(luò)的輸入,每層均添加偏置單元,y=[kp,ki,kd]對(duì)應(yīng)系統(tǒng)的輸出,網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示.
圖8 氣體濃度控制實(shí)驗(yàn)中BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
由于隱含層神經(jīng)元的激活函數(shù)sigmoid函數(shù)將輸出映射到[0,1]之間,但實(shí)際PID控制器的三個(gè)參數(shù)需要在更大的范圍進(jìn)行調(diào)整[16],因此設(shè)置數(shù)組M=[m1,m2,m3]作為網(wǎng)絡(luò)的輸出增益.實(shí)驗(yàn)證明,當(dāng)M取值不同時(shí),系統(tǒng)的性能指標(biāo)也有所不同.實(shí)驗(yàn)結(jié)果如下表所示,綜合考慮系統(tǒng)的各項(xiàng)性能指標(biāo),選取輸出增益M=[10,1,10].
表1 m2,m3不變m1取不同值系統(tǒng)性能指標(biāo)
表2 m1,m3不變而m2取不同值時(shí)系統(tǒng)性能指標(biāo)
表3 m1,m2不變而m3取不同值時(shí)系統(tǒng)性能指標(biāo)
對(duì)于改進(jìn)GA-BP-PID控制器,上述BP神經(jīng)網(wǎng)絡(luò)設(shè)置不變,利用改進(jìn)的遺傳算法尋找最優(yōu)的權(quán)值和閾值.設(shè)定算法交叉概率pc=0.4,變異概率pm=0.2,迭代次數(shù)Niter=50,最終將得到的最優(yōu)個(gè)體作為BP神經(jīng)網(wǎng)絡(luò)的權(quán)重初始值.
按照上述設(shè)置的參數(shù)進(jìn)行仿真實(shí)驗(yàn),圖9和圖10為傳統(tǒng)遺傳算法與本文的改進(jìn)算法在優(yōu)化過(guò)程中最優(yōu)個(gè)體適應(yīng)度值曲線與平均適應(yīng)度值曲線.圖11和圖12為傳統(tǒng)BP-PID控制器與改進(jìn)GA-BP-PID控制器控制效果曲線和控制誤差曲線.
圖9 遺傳算法最佳適應(yīng)度曲線
圖10 遺傳算法平均適應(yīng)度曲線Fig.10 Average fitness curve of genetic algorithm
由圖9可以看出,與傳統(tǒng)算法相比,改進(jìn)的遺傳算法具有更快的收斂速度和更少的迭代次數(shù),并且最優(yōu)個(gè)體適應(yīng)度值更優(yōu).由圖10可以看出,傳統(tǒng)遺傳算法交叉、變異算子的雙重性,產(chǎn)生了適應(yīng)度值較差的新個(gè)體,使得平均適應(yīng)度并不是持續(xù)下降,而改進(jìn)的遺傳算法由于采用了優(yōu)勝種群間的相互選擇,因此具有更好的穩(wěn)定性.
由圖11和圖12可以看出,與圖2原始方法中不斷振蕩的輸出相比,上述兩種方法的輸出都大幅度地改善了振蕩情況,降低了最大超調(diào)量,取得了更好的控制效果.并且與傳統(tǒng)的BP-PID控制器相比,改進(jìn)GA-BP-PID控制器實(shí)現(xiàn)了無(wú)靜差、無(wú)超調(diào)量,具有更快的響應(yīng)速度和更小的控制誤差.
圖11 控制效果曲線圖Fig.11 Control effect curve
圖12 控制誤差曲線圖Fig.12 Control error curve
將三種方法前200 s的實(shí)驗(yàn)結(jié)果進(jìn)行量化處理得到三個(gè)控制器在實(shí)驗(yàn)過(guò)程中的各項(xiàng)性能指標(biāo)對(duì)比結(jié)果.
表4 仿真結(jié)果性能指標(biāo)對(duì)比
由表4可見(jiàn),在實(shí)驗(yàn)過(guò)程中,使用傳統(tǒng)控制方式系統(tǒng)輸出無(wú)法達(dá)到穩(wěn)定值,最終結(jié)果會(huì)在穩(wěn)定值附近不斷振蕩,因此無(wú)法確定系統(tǒng)穩(wěn)定時(shí)間及其穩(wěn)態(tài)誤差,其控制效果較差,無(wú)法實(shí)現(xiàn)精準(zhǔn)控制.其余兩種控制器最終都將穩(wěn)態(tài)誤差控制在較小的范圍之內(nèi),但與傳統(tǒng)的BP-PID控制器相比,改進(jìn)GA-BP-PID控制器具有更快的上升時(shí)間,并且實(shí)現(xiàn)了零超調(diào)量,控制過(guò)程中沒(méi)有出現(xiàn)振蕩情況,系統(tǒng)穩(wěn)定時(shí)間相較于前者有了大幅度的提升.由此可見(jiàn),在氣體濃度控制過(guò)程中,本文提出的基于改進(jìn)的遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)PID控制器能夠取得更好的控制效果.
本文提出了一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)PID控制器,在原有BP神經(jīng)網(wǎng)絡(luò)PID控制器的基礎(chǔ)上,利用改進(jìn)的遺傳算法尋找神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)重值,實(shí)現(xiàn)對(duì)PID控制參數(shù)的有效整定.將控制器運(yùn)用到氣體濃度的控制過(guò)程中,結(jié)果表明,本文所提出的改進(jìn)的遺傳算法具有更優(yōu)的適應(yīng)度曲線和更好的穩(wěn)定性,同時(shí)由于控制器合理地確定了神經(jīng)網(wǎng)絡(luò)的權(quán)重初始值,使得系統(tǒng)能夠更快地到達(dá)穩(wěn)定狀態(tài),具有更小的控制誤差和更優(yōu)的控制性能,能實(shí)現(xiàn)實(shí)驗(yàn)中氣體濃度的準(zhǔn)確控制,從而完成實(shí)驗(yàn)體的準(zhǔn)確造模,對(duì)后續(xù)相關(guān)研究的開(kāi)展具有重要的意義.