, ,,
(中國石油大學(xué)(華東) 計算機(jī)與通信工程學(xué)院,山東 青島 266580)
PID控制具有魯棒性高且易于操作等優(yōu)點(diǎn),是現(xiàn)代工業(yè)中廣泛應(yīng)用的一種控制方法[1]。然而,傳統(tǒng)PID的參數(shù)一旦確定就無法在線調(diào)整,難以滿足時變系統(tǒng)的控制要求。自適應(yīng)PID在傳統(tǒng)PID的基礎(chǔ)上引入了在線調(diào)參的思想,使其能夠根據(jù)系統(tǒng)狀態(tài)的變化調(diào)整PID參數(shù),提高了系統(tǒng)的響應(yīng)速度。目前應(yīng)用比較廣泛的自適應(yīng)PID控制器有:模糊自適應(yīng)PID控制器[2],它以誤差和誤差變化率作為輸入,通過查詢模糊矩陣表進(jìn)行參數(shù)調(diào)整,從而滿足PID參數(shù)自整定的要求,但這種設(shè)計方法需要較多的先驗(yàn)知識,存在大量的參數(shù)優(yōu)化問題[3];基于神經(jīng)網(wǎng)絡(luò)的自適應(yīng)PID控制[4],利用神經(jīng)網(wǎng)絡(luò)對于非線性結(jié)構(gòu)的良好逼近能力,無需辨識復(fù)雜的非線性被控對象就能夠達(dá)到有效的控制,但是獲取監(jiān)督學(xué)習(xí)中的教師信號仍然存在困難[5];進(jìn)化算法自適應(yīng)PID控制器[6],雖然對于先驗(yàn)知識要求較少,但是在實(shí)際工程中難以實(shí)現(xiàn)實(shí)時控制;強(qiáng)化學(xué)習(xí)自適應(yīng)PID控制器[7],利用強(qiáng)化學(xué)習(xí)非監(jiān)督特性解決了教師信號難以獲取的問題,這類控制器需要較少的先驗(yàn)知識而且控制過程無需復(fù)雜的參數(shù)優(yōu)化。其中執(zhí)行器-評價器(Actor-Critic,AC)自適應(yīng)PID[8]是應(yīng)用最為廣泛的強(qiáng)化學(xué)習(xí)控制器,該控制器提出了一種結(jié)合AC結(jié)構(gòu)實(shí)現(xiàn)在線調(diào)整參數(shù)并采用神經(jīng)網(wǎng)絡(luò)逼近馬氏決策過程中的值函數(shù)和決策函數(shù)的設(shè)計思路,但由于AC算法中前后學(xué)習(xí)數(shù)據(jù)的相互關(guān)聯(lián)性,影響了控制器的收斂速度[9]。
Google的DeepMind團(tuán)隊提出的異步優(yōu)勢執(zhí)行器評價器(Asynchronous Advantage Actor-Critic,A3C)學(xué)習(xí)算法[10]利用CPU多線程并行的特性,在CPU多線程上異步地訓(xùn)練多個智能體(agent),并行中的agent會經(jīng)歷不同的學(xué)習(xí)狀態(tài),從而打破了學(xué)習(xí)樣本的相關(guān)性[11],這種高效的異步結(jié)構(gòu)執(zhí)行方式已經(jīng)應(yīng)用到多個領(lǐng)域[12]。本文結(jié)合A3C結(jié)構(gòu)多線程異步訓(xùn)練的方式以及強(qiáng)化學(xué)習(xí)的無模型在線學(xué)習(xí)能力,使用BP神經(jīng)網(wǎng)絡(luò)作為函數(shù)逼近器,最終研究提出了一種基于異步優(yōu)勢執(zhí)行器評價器的自適應(yīng)PID控制器設(shè)計方法,并在仿真實(shí)驗(yàn)中驗(yàn)證了該方法的優(yōu)越性和有效性。
數(shù)字PID控制可分為兩類,其中包括位置式PID與增量式PID[13]。增量式PID是一種通過對控制量的增量進(jìn)行PID控制的算法,其計算公式見式(1):
u(t)=u(t-1)+Δu(t)=u(t-1)+Ki(t)e(t)+
Kp(t)Δe(t)+Kd(t)Δ2e(t)
(1)
其中:
e(t)=y′(t)-y(t),
Δe(t)=e(t)-e(t-1),
Δ2e(t)=e(t)-2*e(t-1)+e(t-2)
y′(t)表示當(dāng)前的實(shí)際信號值,y(t)表示當(dāng)前系統(tǒng)的輸出值,e(t)表示當(dāng)前誤差,Δe(t)為一次誤差,Δ2e(t)為二次誤差。kP為比例系數(shù),決定了控制程度的強(qiáng)弱,比例系數(shù)越大,系統(tǒng)的響應(yīng)速度就越快,但是容易使系統(tǒng)發(fā)生震蕩和超調(diào)。kI為積分系數(shù)可以消除系統(tǒng)的靜態(tài)誤差。kD為微分系數(shù)有助于減少系統(tǒng)超調(diào)量,提高系統(tǒng)的控制精度。不同的PID參數(shù)造成了控制系統(tǒng)的差異,控制過程中,根據(jù)系統(tǒng)的動態(tài)特性從而調(diào)整PID參數(shù),往往會得到滿意的控制效果。
在控制結(jié)構(gòu)上,增量式PID控制較位置式PID控制取消了PID控制中積分環(huán)節(jié)的累計求和,節(jié)省了大量的計算性能和儲存空間,為A3C算法的學(xué)習(xí)速率和學(xué)習(xí)樣本的存儲提供了保障。此外,增量式PID的每一次的輸出為控制量的增量,在系統(tǒng)發(fā)生故障時對系統(tǒng)的影響程度較小,使得環(huán)境獎勵更加穩(wěn)定,保證了算法學(xué)習(xí)的收斂速度。
A3C算法是一種深度強(qiáng)化學(xué)習(xí)算法,該算法在Actor-Critic框架基礎(chǔ)上引入了異步訓(xùn)練的思想,在提升控制性能的同時大大加快了訓(xùn)練速度。A3C學(xué)習(xí)框架由一個中央網(wǎng)絡(luò)(Global Net)和多個Actor-Critic結(jié)構(gòu)以及仿真環(huán)境組成,如圖1所示。
圖1 A3C算法結(jié)構(gòu)圖
由圖1可見,A3C算法創(chuàng)建了多個agent,每個agent即為一個AC結(jié)構(gòu),包括一個決策網(wǎng)絡(luò)和評價網(wǎng)絡(luò),算法將agent放置在相同的環(huán)境實(shí)例中并行執(zhí)行和學(xué)習(xí),提高了每個agent的學(xué)習(xí)速率。此外,A3C采用了中央網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制,打破了agent學(xué)習(xí)樣本的相關(guān)性,其主要作用為更新和存儲AC結(jié)構(gòu)中決策網(wǎng)絡(luò)和評價網(wǎng)絡(luò)的參數(shù),不同agent將自身的學(xué)習(xí)數(shù)據(jù)傳遞給中央網(wǎng)絡(luò)用以更新自身參數(shù),從而提高了收斂速率。其中,決策網(wǎng)絡(luò)即Actor網(wǎng)絡(luò),負(fù)責(zé)學(xué)習(xí)最優(yōu)策略,使得agent可以針對不同環(huán)境狀態(tài)選擇最優(yōu)的決策,而評價網(wǎng)絡(luò)即Critic網(wǎng)絡(luò),負(fù)責(zé)擬合價值函數(shù),增強(qiáng)了agent對于環(huán)境的獎勵感知能力。決策網(wǎng)絡(luò)和評價網(wǎng)絡(luò)的組合使用保證了學(xué)習(xí)算法的有效性和魯棒性。
基于A3C學(xué)習(xí)的自適應(yīng)PID控制器的設(shè)計思路就是在增量式PID控制器的基礎(chǔ)上結(jié)合了A3C異步學(xué)習(xí)結(jié)構(gòu),其結(jié)構(gòu)設(shè)計如圖2所示。
圖2 A3C-PID控制結(jié)構(gòu)圖
rm(t)=α1r1(t)+α2r2(t)
(2)
多層前饋神經(jīng)網(wǎng)絡(luò)[14]又稱BP神經(jīng)網(wǎng),是一種多層前向網(wǎng)絡(luò)的反向傳播算法,具有較強(qiáng)的非線性映射能力,適合于求解內(nèi)部機(jī)制復(fù)雜的問題。因此,本文使用兩個BP神經(jīng)網(wǎng)絡(luò)分別實(shí)現(xiàn)Actor策略函數(shù)和Critic值函數(shù)的學(xué)習(xí),其網(wǎng)絡(luò)結(jié)構(gòu)如圖3、圖4所示。
圖3 Actor網(wǎng)絡(luò)結(jié)構(gòu)圖
如圖3所示,Actor網(wǎng)絡(luò)共有3層:
第1層為輸入層共有三個結(jié)點(diǎn),輸入向量S=[em(t),Δem(t),Δ2em(t)]T代表狀態(tài)向量。
第2層為隱藏層設(shè)有20個結(jié)點(diǎn),隱藏層與輸入層之間沒有設(shè)置激活函數(shù),其隱藏層的輸入為對輸入層直接加權(quán)求和,如公式(3):
(3)
其中:k表示隱藏層神經(jīng)元的個數(shù)。隱藏層的輸出使用了Relu6激活函數(shù),其輸出公式見式(4):
hok(t)=min(max(hik(t),0),6)k=1,2,3…20
(4)
第3層為輸出層設(shè)有三個結(jié)點(diǎn),輸出層的輸入直接對隱藏層的輸出進(jìn)行加權(quán)求和,輸出公式如式(5)所示:
(5)
輸出層的輸出使用softplus激活函數(shù),其輸出公式如式(6):
yoo(t)=log(1+eyio(t))o=1,2,3
(6)
圖4 Critic網(wǎng)絡(luò)結(jié)構(gòu)
δTD=qt-V(St,W’v)
(7)
qt=rt + 1+γrt + 2+ … +γn-1rt + n+γnV(St + n,W’v)
(8)
在計算出TD誤差后,為打破學(xué)習(xí)樣本的關(guān)聯(lián)性,A3C結(jié)構(gòu)中的每個Actor-Critic網(wǎng)絡(luò)并不會直接更新自身的網(wǎng)絡(luò)權(quán)值,而是用自身的梯度去更新中央網(wǎng)絡(luò)存儲的Actor-Critic網(wǎng)絡(luò)參數(shù),更新公式見公式(9)、公式(10):
(9)
(10)
網(wǎng)絡(luò)的初始參數(shù)直接影響了閉環(huán)控制系統(tǒng)的穩(wěn)定性,神經(jīng)網(wǎng)絡(luò)PID控制由于教師信號難以獲取,需要按照經(jīng)驗(yàn)或人工試湊確定網(wǎng)絡(luò)參數(shù)。強(qiáng)化學(xué)習(xí)的非監(jiān)督學(xué)習(xí)特性使得控制器通過K次迭代學(xué)習(xí)便可獲取最優(yōu)的網(wǎng)絡(luò)初始參數(shù)。然而,AC-PID控制器由于AC算法獲取的學(xué)習(xí)樣本具有前后關(guān)聯(lián)性,導(dǎo)致了較慢的收斂速度。相比之下,A3C-PID在CPU的多線程中異步學(xué)習(xí)網(wǎng)絡(luò)參數(shù),破壞了樣本關(guān)聯(lián)性,提高了收斂速率。A3C-PID網(wǎng)絡(luò)參數(shù)學(xué)習(xí)過程與2.1節(jié)中敘述相似,但不同在于A3C-PID在迭代學(xué)習(xí)時設(shè)置m值為計算機(jī)CPU核心線程數(shù),而當(dāng)A3C-PID在線控制時m值設(shè)置為1。
基于A3C并行學(xué)習(xí)的體系結(jié)構(gòu)和以n步TD誤差為性能指標(biāo)的網(wǎng)絡(luò)學(xué)習(xí)方式,歸納出A3C-PID控制器的設(shè)計流程如下:
a)設(shè)置采樣周期ts,A3C算法的線程個數(shù)m,更新周期n,通過K次迭代學(xué)習(xí),初始化每個AC結(jié)構(gòu)的網(wǎng)絡(luò)參數(shù);
b)計算系統(tǒng)誤差em(t),構(gòu)造出系統(tǒng)狀態(tài)向量Sm(t),作為Actor(m)和Critic(m)的輸入;
d)Actor(m)輸出kP、kI、kD值,根據(jù)式(1)計算系統(tǒng)輸出um(t),并觀測下一采樣時間系統(tǒng)誤差em(t+1),根據(jù)式(2)計算獎勵值函數(shù)rm(t);
g)判斷是否滿足控制結(jié)束條件,若滿足結(jié)束條件,退出控制,否則更新Sm(t)并返回步驟c)。
階躍響應(yīng)能夠很大程度上反應(yīng)系統(tǒng)的動態(tài)特性,是分析系統(tǒng)性能的重要手段。因此,為測試控制算法能夠在系統(tǒng)特性動態(tài)改變的同時自適應(yīng)地調(diào)整PID參數(shù),進(jìn)行了階躍信號控制實(shí)驗(yàn)。被控制對象選為:
y(t)=1.2(1-0.8e-0.1·k)y(t-1)+u(t-1)
(11)
被控對象的初始狀態(tài)取[0,0],設(shè)采樣時間為1 ms,A3C學(xué)習(xí)自適應(yīng)PID控制的各個參數(shù)為:
m=4,αa=0.001,αc=0.01,ε=0.001
γ=0.9,n=30,K=3000
仿真結(jié)果見圖5~8及表1。
表1 控制器性能對比
圖5 位置跟蹤
圖5為A3C,BP,AC自適應(yīng)PID控制器對于參考模型的位置跟蹤結(jié)果;表1為A3C,BP,AC自適應(yīng)PID控制器性能對比。從表1可以看出,三個控制器都有著較好的控制精度,即穩(wěn)態(tài)誤差都為0。在動態(tài)性能方面,見圖5,在仿真初期(大約20個仿真周期內(nèi)),BP-PID控制器有著更快的響應(yīng)速度,上升時間更短,為12 ms,但是BP-PID具有2.1705%的較高系統(tǒng)超調(diào)量。相反AC-PID和A3C-PID都具有較小的0.1571%和0.1021%的系統(tǒng)超調(diào)量,但是AC-PID的調(diào)節(jié)時間較長,為48 ms,上升時間21 ms。相比之下,A3C-PID控制器有著更好的控制穩(wěn)定性和快速性。
圖6 位置跟蹤誤差
圖7 控制器參數(shù)整定結(jié)果
圖6和圖7分別為A3C-PID的跟蹤誤差以及PID控制器的參數(shù)自適應(yīng)變換的過程。由圖6~圖7可以看出,A3C-PID控制器能夠根據(jù)不同周期內(nèi)的誤差自適應(yīng)調(diào)整PID參數(shù)值。在仿真開始階段,由于系統(tǒng)跟蹤誤差較大,為保證系統(tǒng)有較快的響應(yīng)速度,kP不斷增大,kD逐漸減小,同時為避免系統(tǒng)出現(xiàn)較高的超調(diào)量,限制了kI的增加;隨著誤差不斷減小,kP開始減小,為消除累計誤差kI值逐漸增加,但同時造成了少量的超調(diào),由于此階段kD值于系統(tǒng)影響較大,所以趨于穩(wěn)定;最終跟蹤誤差為0,kP、kI、kD值達(dá)到穩(wěn)定狀態(tài)。仿真結(jié)果可以看出,A3C-PID控制器有著良好的自適應(yīng)能力。
強(qiáng)化學(xué)習(xí)的目標(biāo)是學(xué)習(xí)最優(yōu)策略從而最大化由起始狀態(tài)到終止?fàn)顟B(tài)的折扣回報值U,計算公式見式(12):
(12)
圖8 強(qiáng)化學(xué)習(xí)折扣回報值曲線
圖8為AC-PID與A3C-PID折扣回報值曲線。從圖8可以看出,在進(jìn)行3000次迭代訓(xùn)練后,A3C-PID相比AC-PID獲得了更高的回報值。除此之外,A3C-PID在約1800次迭代訓(xùn)練后漸漸趨于穩(wěn)定狀態(tài),而AC-PID在2500次迭代后才出現(xiàn)收斂的趨勢。由此可得,A3C-PID相比AC-PID有著更快的收斂速度。
本文詳細(xì)分析了多種自適應(yīng)PID控制器,并在增量式PID控制器的基礎(chǔ)上引入了A3C的異步學(xué)習(xí)體系。結(jié)合該體系,把多個AC結(jié)構(gòu)置于相同環(huán)境中并行進(jìn)行學(xué)習(xí),為使控制器搜索到最優(yōu)整定策略,使用BP神經(jīng)網(wǎng)逼近每個AC
結(jié)構(gòu)中的策略函數(shù)和值函數(shù),并采用n步TD學(xué)習(xí)策略和Global Net機(jī)制異步更新Actor-Critic參數(shù)。最后通過仿真實(shí)驗(yàn)驗(yàn)證了A3C-PID有著較好的收斂速度和自適應(yīng)能力,具有良好的系統(tǒng)跟蹤性能。由此可見,本文提出了一種有效的自適應(yīng)PID控制器,為實(shí)際控制應(yīng)用奠定理論基礎(chǔ)。