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