喬 通,周 洲,程 鑫,郭蘭英,王潤民
(1.長安大學(xué) 信息工程學(xué)院,陜西 西安 710064;2.陜西省車聯(lián)網(wǎng)與智能汽車測試技術(shù)工程研究中心,陜西 西安 710064)
汽車底盤測功機(轉(zhuǎn)鼓試驗臺)主要包含滾筒和加載裝置,以電渦流機輸出加載力來模擬汽車在道路上行駛的場景,能夠在室內(nèi)對汽車進行綜合測試,且對測試所需要的環(huán)境要求較低[1]。目前底盤測功機中大都采用標定PID參數(shù)或模糊PID控制法對加載的力進行控制,PID參數(shù)一經(jīng)整定就不能改變。但電渦流機具有非線性、緊耦合的特點,所以上述兩種策略的控制效果并不理想[2]。
隨著機器學(xué)習(xí)的發(fā)展,強化學(xué)習(xí)已被廣泛應(yīng)用于PID在線調(diào)整等序列決策問題,取得了一定的效果[3-6]。在國內(nèi)方面的相關(guān)研究中,張訓(xùn)等[7]采用積分分離PID算法,實現(xiàn)轉(zhuǎn)速、勵磁電流和轉(zhuǎn)矩、勵磁電流的兩個雙閉環(huán)控制器,滿足了測功機的控制要求,但達不到現(xiàn)如今底盤測功機控制的工業(yè)要求;郭磊等[8]設(shè)計的模糊自適應(yīng)PID算法有效提高了跟蹤性能和調(diào)節(jié)速度,完成了對PID增益值的調(diào)整,此方法需要增益值從零開始調(diào)整,所需要的控制時間也相對較長;游博洋等[9]設(shè)計了基于神經(jīng)網(wǎng)絡(luò)PID控制器的外骨骼系統(tǒng),有效的提高了外骨骼機器人的易用性和實用性;賈燕燕等[10]基于神經(jīng)網(wǎng)絡(luò)設(shè)計的自適應(yīng)網(wǎng)絡(luò)功率機制動態(tài)調(diào)整發(fā)射功率的大小,較好地解決了無線體域網(wǎng)中的傳感器控制節(jié)能問題;趙明皓等[11]基于深度強化學(xué)習(xí)設(shè)計的無人艇自主航行控制算法,比傳統(tǒng)的PID控制在穩(wěn)定性以及抗干擾上具有優(yōu)勢。國外方面,V N Thanh等[12]使用Q學(xué)習(xí)算法設(shè)計的自適應(yīng)PID控制器對伺服機器人進行控制,并驗證了其優(yōu)越性;P Kofinas[13]為了處理連續(xù)的狀態(tài)-動作空間,設(shè)計了模糊Q學(xué)習(xí)代替?zhèn)鹘y(tǒng)的Q學(xué)習(xí)算法,仿真表明了其有效性。上述研究都取得了許多積極的成果,對該文研究的開展具有較好的借鑒意義。
該文分析了底盤測功機的加載方式以及常見強化學(xué)習(xí)算法的特點,結(jié)合其規(guī)律進行分析,并研發(fā)對應(yīng)的狀態(tài)空間、動作空間和獎勵等等,訓(xùn)練Q表完成對PID增益值的自動調(diào)節(jié)。主要研究基于強化學(xué)習(xí)的PID策略設(shè)計出來的QPID控制器,對底盤測功機輸出扭矩的控制效果。
強化學(xué)習(xí)是通過與外部的環(huán)境進行交互,每次交互會獲得獎賞,再通過該獎賞指導(dǎo)下一次的行為,其目標是使智能體能夠取得最大累積獎賞[14]。強化學(xué)習(xí)的結(jié)果是尋找出一個策略π:S→A,能夠讓每個狀態(tài)s的值函數(shù)Vπ(s)或者狀態(tài)-動作值函數(shù)Qπ(s,a)達到最大。Vπ(s)與Qπ(s,a)分別表示某個“狀態(tài)”上或者是某個“狀態(tài)-動作”上的累積獎賞[15]。
強化學(xué)習(xí)也在不斷的發(fā)展,Q-Learning算法被認為是其中最主要的進展之一。Q-學(xué)習(xí)算法考慮了狀態(tài)作用值函數(shù)Q,不考慮被控制系統(tǒng)確切的數(shù)學(xué)模型,通過時間差分對系統(tǒng)進行控制[16]。Q-Learning是RL中value-based的算法,其中的Q意為在某個時刻的狀態(tài)時,選擇某個動作可以獲得相應(yīng)的收益,環(huán)境狀態(tài)會依據(jù)此次智能體的動作,反饋出其所獲得的立即獎賞r,再依據(jù)r進行Q表的更新,公式如下:
Q(s,a)←Q(s,a)+α[r+γQ(s',π(s'))-
Q(s,a)]
(1)
其中,α為學(xué)習(xí)率,0≤α≤1。
算法1:Q學(xué)習(xí)算法。
Step1:初始化任意Q(s,a),?a∈A,?s∈S;
Step2: 循環(huán)每個episode;
重復(fù)
Step3:更新狀態(tài)St;
重復(fù)
Step4:執(zhí)行動作At,觀察St+1和Rt+1
Step5:根據(jù)式(1)更新Q值;
Step6:St←St+1;
Step7:直到St達到最終狀態(tài)ST;
Step8:直到episode結(jié)束。
該文提出了一種基于Q學(xué)習(xí)算法的PID控制器,用于調(diào)整底盤測功機的扭矩輸出,整個控制器的結(jié)構(gòu)如圖1所示。系統(tǒng)的直接控制由一個傳統(tǒng)的PID完成,而參數(shù)的自適應(yīng)調(diào)整是基于Q-學(xué)習(xí)算法在訓(xùn)練過程中獲得的Q表,傳統(tǒng)的PID實現(xiàn)輸入電壓的調(diào)節(jié)??刂破鞯妮斎霝槿藶樵O(shè)定的加載力的目標值Fref,將每次調(diào)整之后的扭力值Fn(t)與目標值的誤差量輸入到PID中,進而完成此次的調(diào)整。待調(diào)節(jié)完之后,獲得此次調(diào)節(jié)的扭力值Fn(t),把這次的扭力值進行離散化, 即可得到此次的狀態(tài)n(t)。之后開始本次的Q表更新,總共有3個Q表,對應(yīng)于PID的三個參數(shù),一個參數(shù)對應(yīng)到一張Q表上。當Q學(xué)習(xí)算法更新完畢之后,Q表最終會趨于穩(wěn)定。此時在三張Q表中,選擇某一個狀態(tài)之后,每張Q表都會選擇出此時PID控制器最優(yōu)的增益值去調(diào)整。
圖1 基于QPID的底盤測功機系統(tǒng)控制器結(jié)構(gòu)
對于Q學(xué)習(xí)最重要的一個問題,就是如何訓(xùn)練Q表。該文設(shè)計的控制器,需要通過三張Q表使得底盤測功機不同扭矩輸出的狀態(tài),對應(yīng)到PID策略的各個參數(shù)上。將Q學(xué)習(xí)策略與傳統(tǒng)的PID策略進行結(jié)合,具體的訓(xùn)練過程如算法2所示。為了使得Q表可以快速收斂趨于穩(wěn)定,實現(xiàn)了一種自適應(yīng)學(xué)習(xí)率的算法——Delta-Bar-Delta[17]。在訓(xùn)練過程中,取得某個狀態(tài)時的最佳參數(shù)之后,就根據(jù)公式計算出此次需要調(diào)整的輸出量,輸出量會通過PID控制器作用于底盤測功機,此時扭矩輸出改變,進入到下一個狀態(tài)。通過比較前后兩個時刻的扭矩輸出,就可以得到此次調(diào)整之后的立即獎賞Rp,使用Rp更新Q表,開始下一次的訓(xùn)練,如此循環(huán)。當Q表趨于穩(wěn)定之后,Q表就含有了在每個狀態(tài)下最優(yōu)的PID參數(shù),使用該參數(shù)即可控制底盤測功機的扭矩輸出。
算法2:結(jié)合Q學(xué)習(xí)的PID控制算法。
Step1:初始化任意Qi(s,a)=0,?a∈A,?s∈S,i=1,2,3;
Step2:初始化學(xué)習(xí)率?;
Step3:初始化ε-greedy策略的ε;
Step4:當episode Step5:t=0; Step6:初始化St(x(t),x'(t)); Step7:ε衰變(當episode>0.6×maxepisode,ε=0); Step8:fort=1;≤maxtime;t++ Step9:將狀態(tài)St-1,St離散化,獲得:n1(t-1)和n1(t); Step10:fori=1;i≤3;i++ Step11:遵循ε-greedy策略,根據(jù)n1(t-1)和n1(t)選擇動作Ai; end Step12:根據(jù)PID輸出,獲得完整的輸出; Step13:觀察新狀態(tài)St+1(x(t),x'(t)); Step14:獲得的獎勵Rp; Step15:將狀態(tài)St+1離散化,獲得:n1(t+1); Step16:更新Q1(s,a),Q2(s,a)和Q3(s,a)的學(xué)習(xí)率?; Step17:用Rp和?更新Q1(s,a),Q2(s,a)和Q3(s,a); Step18:St←St+1; end end 為了使得Q表盡快達到穩(wěn)定,使用了一種自適應(yīng)學(xué)習(xí)率的算法,其定義為: (2) 式中,Δαt是t增量;k是提高學(xué)習(xí)率的正常數(shù)值;Φ是折扣因子的正常數(shù)值;δt是時間步長t中的時間差(TD)誤差,δt=Rt+1+γmaxQ(St+1,a)-Q(St,a);δt=(1-Φ)δt+Φδt-1。 通過使用上面的方法,將當前的TD誤差與前面步驟中的累計TD誤差進行比較,從而更新學(xué)習(xí)速率。當學(xué)習(xí)率較大時,改變符號,從而使其在下一次調(diào)整時調(diào)低。如果學(xué)習(xí)率太小,學(xué)習(xí)率會按照之前的變化趨勢不斷增加,使得收斂速度加快,所以時間步驟t+1中的學(xué)習(xí)速率為αt+1=αt+Δαt。三個Q表都將采用該算法,但對于每張Q表的參數(shù)設(shè)置會有不同。 由于加載力的狀態(tài)值連續(xù),且過于繁多,所以對于加載效果一樣的情形,可選擇同一組PID參數(shù)進行控制,因此可以把連續(xù)的加載力變量分成幾個區(qū)間,同一個區(qū)間內(nèi)的加載力值作為一個相同的狀態(tài)。區(qū)間的設(shè)置使用與定義使用相同的規(guī)則,其定義為: (3) 其中,[x]=max{n∈Z|n≤x};n表示離散變量;xcon表示連續(xù)變量;xmin和xmax分別是xcon的下限和上限;N表示加載力被分成的區(qū)間數(shù),文中N=20。N取決于模擬性能。扭矩Fn通過公式(3)區(qū)間劃分,離散化設(shè)置的值如表1。 表1 設(shè)定離散化值 當給定當前狀態(tài)之后,三個Q表都將根據(jù)ε-greedy方法選擇每次的動作,此方法的定義如下: (4) 其中,ζ∈[0,1]是一個正態(tài)分布的隨機數(shù)。 為了加快收斂的速度,ε的值會隨著訓(xùn)練次數(shù)的增大而減小,在迭代次數(shù)達到某個數(shù)值后設(shè)為零,而具體的次數(shù)會根據(jù)訓(xùn)練表現(xiàn)來決定。在ε-greedy策略中,ε的值比較大,表示選取一個隨機動作的概率也比較大。具體ε定義為: ε(eps)= (5) 其中,eps表示當前的episode,maxep是episode的最大值。 該文根據(jù)測功機系統(tǒng)的情況將立即獎賞分為三種情況:調(diào)節(jié)后加載力趨于設(shè)定力值,加載力遠離設(shè)定力值和調(diào)節(jié)之后加載力無變化。 調(diào)控后扭矩趨于設(shè)定值。根據(jù)at收到的參數(shù)進行調(diào)節(jié),所獲得的扭矩Fn(t)與目標值Fref的相差結(jié)果,若是遠小于t-1扭矩Fn(t-1)與Fref的相差結(jié)果,意為此次的調(diào)控有效,設(shè)定此次調(diào)整的獎賞為相鄰兩次扭矩輸出的差值。 調(diào)控后扭矩遠離設(shè)定值。根據(jù)at得到的參數(shù)進行調(diào)節(jié),所獲得的扭矩Fn(t)與設(shè)定值Fref的相差結(jié)果,若是遠大于t-1扭矩Fn(t-1)與Fref的相差結(jié)果,意為此次的調(diào)節(jié)為錯誤調(diào)節(jié),獎賞為負值。 調(diào)控后扭矩無變化。根據(jù)at得到的參數(shù)進行調(diào)節(jié),所獲得的扭矩Fn(t)與設(shè)定值Fref的相差結(jié)果,若是與t-1扭矩Fn(t-1)與Fref的相差結(jié)果,二者相差不超過20 N,意為此次的調(diào)節(jié)無效果,即獎賞值為0。綜上,獎勵計劃如下: (6) PyCharm是一款系統(tǒng)模型庫的功能十分豐富的仿真平臺,該文使用PyCharm建立仿真系統(tǒng),使用模擬的數(shù)據(jù)進行實驗,驗證使用QPID策略的可行性。選擇相同的初始條件針對底盤測功機的恒力運行狀態(tài)進行仿真控制,分別使用傳統(tǒng)PID策略、BP-PID策略以及文中提出的QPID策略進行系統(tǒng)仿真,根據(jù)結(jié)果進行對比分析。 (1)QPID控制策略與傳統(tǒng)PID控制策略的對比。 圖2為分別使用兩種控制策略,輸出力從0 N分別到1 000 N、1 300 N和1 500 N的加載力響應(yīng)曲線。 在仿真中,對比傳統(tǒng)的PID控制策略,基于QPID控制策略加載力響應(yīng)曲線的波動較小,一般在120 ms左右就可以實現(xiàn)加載力的響應(yīng)過程,146 ms后趨于穩(wěn)定。傳統(tǒng)PID策略下扭矩輸出響應(yīng)曲線的波動較大,一般在249 ms左右實現(xiàn)扭矩輸出的響應(yīng),在358 ms后才達到設(shè)定值?;赒PID策略下的調(diào)整周期相較于傳統(tǒng)的PID策略縮短至40%。 圖2 QPID控制器與PID控制器的輸出力響應(yīng)曲線 加載至1 000 N的響應(yīng)曲線特征如表2所示。 表2 QPID控制器與PID控制器響應(yīng)曲線特性 在加載力目標值為1 000 N時,與QPID控制器(135.6 N)相關(guān)的曲線的超調(diào)遠低于傳統(tǒng)PID控制器(542.6 N)。除此之外,QPID控制器(126 ms)的穩(wěn)定時間比PID控制器(372 ms)的穩(wěn)定時間短。 (2)QPID控制策略與BP-PID控制策略的對比。 圖3為分別使用QPID與BP-PID控制策略,輸出力從0 N分別到1 000 N、1 300 N和1 500 N的加載力響應(yīng)曲線。 在仿真中,基于QPID的策略比BP-PID策略更快達到穩(wěn)定,在120 ms左右就可以實現(xiàn)加載力的響應(yīng)過程,在146 ms后趨于穩(wěn)定。而BP-PID策略下扭矩輸出的曲線上升時間與穩(wěn)定時間較慢,在425 ms左右實現(xiàn)扭矩輸出的響應(yīng),在524 ms后達到設(shè)定值?;赒PID控制策略下的調(diào)整周期相較于BP控制策略的調(diào)整周期縮短至27.9%。 圖3 QPID控制器與BP-PID控制器的 輸出力響應(yīng)曲線 加載至1 300 N的響應(yīng)曲線特征如表3所示。 表3 QPID控制器與PID控制器響應(yīng)曲線特性 在加載力目標值為1 300 N時,與QPID控制器(14.9 N)相關(guān)曲線的超調(diào)大于BP-PID控制器(0 N)。另外,QPID控制器(156 ms)的穩(wěn)定時間比BP-PID控制器(504 ms)短。 根據(jù)國家質(zhì)量監(jiān)督檢驗檢疫總局2018年發(fā)布的底盤測功機使用標準,底盤測功機運行狀態(tài)的工業(yè)要求誤差不大于2.0%,加載響應(yīng)需要在300 ms以內(nèi)達到目標值的90%。以上三種控制策略下的扭矩輸出的誤差曲線如圖4所示。 由圖4可知,QPID控制的系統(tǒng)加載力響應(yīng)曲線的最大振幅146 ms后小于10 N,達到工業(yè)要求;BP-PID控制器的扭矩輸出曲線的最大振幅420 ms后高達50 N左右;傳統(tǒng)PID控制策略下的扭矩輸出曲線的最大振幅321 ms后約為27 N?;赒PID控制策略可以滿足底盤測功機使用所需要達到的工業(yè)要求,其加載力的響應(yīng)曲線正常,跟理論分析的結(jié)果保持一致。 (a)常規(guī)PID策略下的誤差曲線 (b)QPID策略下的誤差曲線 針對底盤測功機的加載控制問題,提出了一種基于Q學(xué)習(xí)的PID控制策略,使用QPID對三個增益值進行調(diào)整,使其能夠快速穩(wěn)定達到加載目標值,最后完成了與另外兩種策略的比對試驗。通過分析對比試驗的結(jié)果,證明在底盤測功機上使用QPID控制器,可以讓加載力的響應(yīng)時間縮小到120 ms,在146 ms后穩(wěn)定到工業(yè)要求的誤差范圍之內(nèi),控制周期縮短明顯。說明基于Q學(xué)習(xí)的PID調(diào)節(jié)策略可以在底盤測功機上得到較好的應(yīng)用。2.1 自適應(yīng)學(xué)習(xí)率
2.2 離散化
2.3 ε-greedy策略
2.4 獎勵策略
3 算法實驗研究
4 結(jié)束語