黃濤, 班曉軍, 吳奮, 黃顯林
(1.哈爾濱工業(yè)大學 控制理論與制導技術研究中心,哈爾濱 150001;2.Department of Mechanical and Aerospace Engineering,North Carolina State University, Raleigh 27695-7910, USA)
磁懸浮系統(tǒng)具有低阻力、無噪聲、壽命長等特點,在交通、機械、材料、電器等諸多領域都有著廣泛的運用。磁懸浮球系統(tǒng)具有非線性、開環(huán)不穩(wěn)定等特性, 又因其結構簡單,而經(jīng)常被用來作為驗證控制算法的研究對象。
針對磁懸浮球系統(tǒng),學者們提出了許多先進的控制算法[1],包括變結構控制[2]、模糊控制[3-5]、神經(jīng)網(wǎng)絡控制[6-7]、魯棒控制[8-9]等等。文獻[2]對存在干擾和抖動的磁懸浮球實驗平臺,通過積分補償設計了離散滑模變結構控制器;文獻[3-4]采用了模糊控制,在磁懸浮系統(tǒng)控制上起到了良好的效果;文獻[5]將模糊控制與滑模控制相結合,進一步提高了磁懸浮系統(tǒng)的控制精度;文獻[6-7]使用RBF神經(jīng)網(wǎng)絡控制器,對系統(tǒng)進行辨識后進行了神經(jīng)網(wǎng)絡自適應狀態(tài)反饋控制器設計,在磁懸浮系統(tǒng)控制上也取得了良好的效果。
磁懸浮球系統(tǒng)在建模的過程中做了很多假設(如忽略磁漏、邊際效應等),一些物理參數(shù)難以準確獲得,這些問題都制約了建模精度,給基于精確模型的控制方法的設計帶來了困難。而PID控制、模糊控制等,雖然不需要精確的模型,但這些方法需要研究者根據(jù)經(jīng)驗或實驗來選擇合適的控制規(guī)則或參數(shù),受人為因素影響較大,且很難給出在特定指標下的最優(yōu)控制。
針對以上問題,本文提出一種基于強化學習的Q網(wǎng)絡自學習控制方法,在無需系統(tǒng)模型的情況下,通過強化學習方法設計出一種磁懸浮系統(tǒng)自學習控制器。在基于Q網(wǎng)絡的強化學習算法訓練過程中,由于系統(tǒng)穩(wěn)態(tài)的數(shù)據(jù)遠多于系統(tǒng)調節(jié)過程的數(shù)據(jù),從而導致網(wǎng)絡對系統(tǒng)不同初狀態(tài)的泛化能力較弱。針對以上問題,本文首次提出基于系統(tǒng)加權平均狀態(tài)(weighted average state,WAS)的訓練算法,通過系統(tǒng)狀態(tài)濾波值,自適應調節(jié)每回合訓練的步數(shù),提早結束每回合的訓練。最后通過數(shù)值仿真驗證了磁懸浮系統(tǒng)自學習控制器的有效性。數(shù)值仿真結果表明,相比常規(guī)的控制算法,在強化學習訓練中,本文提出的WAS算法能夠保證數(shù)據(jù)記憶庫中有更多系統(tǒng)調節(jié)狀態(tài)的數(shù)據(jù),從而提高了網(wǎng)絡對系統(tǒng)不同初狀態(tài)的調節(jié)能力。
本研究中,采用文獻[10]中磁懸浮球系統(tǒng)的結構以及具體參數(shù),磁懸浮球控制系統(tǒng)結構如圖1所示。
圖1 磁懸浮球控制系統(tǒng)結構圖Fig.1 Structure of magnetic levitation ball control system
圖中:以電磁下表面中點為原點o,豎直向下為正方向建立坐標系;x為小球距原點位移;d0為小球期望工作點;d為小球相對工作點的位移。
將小球看作質點,假設在氣隙中磁場分布均勻,并忽略磁場的渦流、磁滯等非線性因素。系統(tǒng)的運動學方程如下:
(1)
方程中參數(shù)含義如表1所示。
表1 系統(tǒng)參數(shù)
強化學習(reinforcement learning,RL)是一種無監(jiān)督機器學習算法,它通過智能體與環(huán)境的交互進行探索,再通過交互信息對采取的動作進行評價,進一步指導后續(xù)動作,最終得到最優(yōu)的動作策略[14]。
Q學習(Q-learning)是一種基于狀態(tài)-行為值的異策略、無模型時序差分強化學習方法[15-16]。狀態(tài)-動作值函數(shù)Q(s,a)定義如下:
(2)
即在狀態(tài)s下,根據(jù)策略π采取動作a取得的期望累計回報,其中Rt+k+1為t+k+1步的即時回報。
DeepMind公司于2013年首次提出深度Q學習(DQN)算法,并于2015年在Nature上提出改進的DQN算法[17]。相比于傳統(tǒng)的基于神經(jīng)網(wǎng)絡的Q學習方法,其提出了兩方面改進:設置記憶庫,以及設置兩個值函數(shù)網(wǎng)絡,用以解決基于神經(jīng)網(wǎng)絡Q學習環(huán)節(jié)中,神經(jīng)網(wǎng)絡訓練不穩(wěn)定、難收斂問題。
DQN算法中,值函數(shù)網(wǎng)絡的損失函數(shù)設置如下:
(3)
值函數(shù)更新如下:
(4)
其中:θ、θ-為值函數(shù)網(wǎng)絡參數(shù);α∈(0,1)為學習步長。
獎勵函數(shù)是強化學習的優(yōu)化指標,決定了最終策略的性能。本文的目標是通過迭代學習,最終獲得能使小球穩(wěn)定地懸浮于指定工作點的控制策略。首先定義變量
Δd=|dold|-|dnew|。
(5)
其中:dold為小球上一時刻相對目標點位移;dnew為小球當前時刻位移;Δd反應了小球距目標點的距離隨時間變化的趨勢。
設計基于位移誤差的獎勵函數(shù)
(6)
其中:dmax為小球允許調節(jié)范圍;d為小球距目標點的偏差;r1為距離誤差獎勵;相對上一時刻,小球朝向目標點運動,函數(shù)值為正,反之為負。
為提高系統(tǒng)穩(wěn)定性,設計基于小球速度的獎勵如下:
(7)
其中:vmax為最大允許速度;v為小球實時速度;r2為速度獎勵,小球速度絕對值越小,函數(shù)值越大,此獎勵為系統(tǒng)增加了阻尼項,以提高系統(tǒng)的穩(wěn)定性。
以上獎勵函數(shù)都是基于標量進行設計,為了讓小球具有向工作點運動的趨勢,提高強化學習的收斂速度,本文還設計了基于運動方向的獎勵函數(shù)
(8)
當小球向工作點運動時,函數(shù)值為1,反之為-1??偑剟詈瘮?shù)R為三者的加權和,即
R=a1×r1+a2×r2+a3×r3。
(9)
其中a1、a2、a3為加權系數(shù)。
為了實現(xiàn)連續(xù)狀態(tài)空間下的系統(tǒng)控制,本文設計了基于Q網(wǎng)絡的自學習控制器。以小球距工作點的偏移量、速度、以及控制電流作為控制器的狀態(tài)輸入,電壓等距離散為15份,作為強化學習的有限動作空間,亦為系統(tǒng)的控制輸入,設計基于Q網(wǎng)絡的強化學習控制器如圖2所示。
圖2 系統(tǒng)控制框圖Fig.2 Block diagram of system control
使用DQN算法中經(jīng)驗回放、單獨設置目標網(wǎng)絡的方法來訓練Q網(wǎng)絡。將系統(tǒng)狀態(tài)作為網(wǎng)絡輸入,動作空間中每個動作對應的狀態(tài)值作為輸出,設計隱藏層含有20個節(jié)點的兩層神經(jīng)網(wǎng)絡作為估值網(wǎng)絡及目標網(wǎng)絡,如式(10)所示,采用relu作為隱藏層激活函數(shù),網(wǎng)絡結構如圖3所示。
圖3 Q網(wǎng)絡結構Fig.3 Structure of Q-network
(10)
在強化學習訓練中,通常以連續(xù)運行步數(shù)、以及智能體運動范圍作為控制每回合結束的指標。針對穩(wěn)定控制問題,隨著訓練過程中網(wǎng)絡逐漸收斂,每回合系統(tǒng)的調節(jié)時間遠小于系統(tǒng)處于穩(wěn)態(tài)的時間,從而使強化學習記憶庫中,系統(tǒng)調節(jié)過程的數(shù)據(jù)逐漸被穩(wěn)態(tài)數(shù)據(jù)所淹沒,導致網(wǎng)絡對系統(tǒng)不同狀態(tài)的調節(jié)能力變弱。
為了提高網(wǎng)絡對不同初始狀態(tài)的泛化能力,在常規(guī)算法的基礎上,本文提出了一種基于系統(tǒng)加權平均狀態(tài)(weighted average state,WAS)的訓練算法,本文稱之為WAS訓練方法。具體來講,首先定義系統(tǒng)位移的漸消加權平均值形式如下:
avg_dk=(1-λ)(dk+λdk-1+λ2dk-2+…)=
(1-λ)dk+λ(1-λ)(dk-1+λdk-2+…)=
(1-λ)dk+λavg_dk-1。
(11)
其中,權值λ∈(0,1),dk為k時刻小球相對目標工作點的位移。每回合訓練開始時,初始化avg_d0=d0,當avg_dk 為了平衡學習策略中對未知狀態(tài)空間的探索以及對已獲得知識的利用,訓練過程中采用強化學習中常用的ε-貪婪策略,策略定義如下: (12) 其中:ε∈[0,1]為動作探索概率;a(st)為st狀態(tài)下選擇的動作。每次進行動作選擇時,以1-ε的概率采用貪婪策略選擇最大值函數(shù)對應的動作;以ε的概率在所有動作中以均勻隨機取樣的方法進行動作選擇,以探索新策略。 綜上,基于WAS的強化學習訓練算法流程如圖4所示。 圖4 算法流程圖Fig.4 Algonithm flowchart 設置仿真步長為0.1 ms,使用四階龍格庫塔法進行解算,控制系統(tǒng)的采樣周期為1 ms。 獎勵函數(shù)取值如下: R=2.2r1+r2+0.3r3。 由于系統(tǒng)主要目標是在工作點的穩(wěn)定控制,因此基于距離的獎勵函數(shù)r1取較大的權值,而r3為離散值,為了提高策略的穩(wěn)定性,所以賦予其較小的權值。 為了在訓練前期探索更多的策略,本文采用了時變ε設置,取ε初值為1,并在訓練的每一時間步中以0.000 1的幅值遞減,直到變?yōu)?.1不再變化。 設置經(jīng)驗回放記憶庫的大小為4 000,訓練步數(shù)超過4 000后,采用先進先出的原則更新記憶庫。設置學習率α=0.01,折扣系數(shù)γ=0.9。初始化神經(jīng)網(wǎng)絡的權重初值為[0, 0.3]的均勻隨機數(shù),初始化偏置為0.1。每步訓練時,從經(jīng)驗回放記憶庫中均勻選取32組數(shù)據(jù)訓練Q估值網(wǎng)絡。 訓練過程中,每隔150步,通過復制Q估值網(wǎng)絡參數(shù)更新Q目標網(wǎng)絡。首先進行50回合隨機嘗試,然后進行450回合的訓練,每回合運行步數(shù)上限為1 000步。訓練中設置小球的調節(jié)范圍為工作點附近3 mm,小球速度調節(jié)范圍為0.3 m/s。取WAS的權值λ=100/101,位移的閾值dexp=0.05 mm。當小球運動速度或是位移超出調節(jié)范圍,或濾波狀態(tài)值小于設定閾值,即|avg_dk| 將WAS算法與不依賴系統(tǒng)濾波狀態(tài)的常規(guī)訓練算法對比,仿真結果如圖5、圖6所示。 圖5 常規(guī)算法訓練過程Fig.5 Training process of conventional algorithm 圖6 WAS算法訓練過程Fig.6 Training process of WAS algorithm 如圖所示,訓練250回合,在兩種算法下,系統(tǒng)都能連續(xù)運行1 000步,回合平均獎勵函數(shù)接近最大值,這表明兩種算法的收斂速度基本相同。后續(xù)訓練中,由于探索概率存在,系統(tǒng)會出現(xiàn)發(fā)散的情況,但累計獎勵總體趨于穩(wěn)定,網(wǎng)絡訓練趨于收斂。 強化學習訓練結束后,利用訓練好的神經(jīng)網(wǎng)絡控制器進行磁懸浮球系統(tǒng)控制仿真。取6~10 mm范圍內任意位置,零初始速度來初始化小球狀態(tài),進行50次蒙特卡洛仿真實驗,對比實驗結果如圖7、圖8所示。 圖7 常規(guī)算法仿真Fig.7 Conventional algorithm simulation 圖8 WAS算法仿真Fig.8 WAS algorithm simulation 取0.5~3 s,即小球進入穩(wěn)態(tài)后的位置數(shù)據(jù),通過計算其均值與標準差來衡量控制精度。50次蒙特卡洛仿真實驗結果如表2所示。 表2 仿真結果對比 仿真結果表明,常規(guī)算法訓練得到的網(wǎng)絡控制器可控范圍為6~8.7 mm,當初始位置大于8.7 mm,系統(tǒng)發(fā)散;基于WAS算法訓練得到的Q網(wǎng)絡自學習控制器可以實現(xiàn)系統(tǒng)在6~10 mm范圍內任意初始位置下的穩(wěn)定控制?;诔R?guī)算法的Q網(wǎng)絡控制器,50次實驗穩(wěn)態(tài)誤差約為0.10 mm,基于WAS算法的控制器,50次實驗穩(wěn)態(tài)誤差小于0.01 mm。因此,基于WAS算法的Q網(wǎng)絡控制器控制可以實現(xiàn)系統(tǒng)的穩(wěn)定控制,同時相比較于常規(guī)訓練算法,WAS算法能有效提高網(wǎng)絡的泛化能力,擴大系統(tǒng)的有效控制范圍,減小穩(wěn)態(tài)誤差。 為了考察系統(tǒng)的抗干擾性,在位置信號的測量輸出中加入了服從正態(tài)分布的隨機干擾信號。取小球的初始位置為6~10 mm范圍內任意值、初速度為零,進行仿真實驗,實驗結果如圖9所示。 圖9 量測噪聲干擾下WAS算法仿真Fig.9 Simulation of WAS algorithm under measurement noise interference 50次蒙特卡洛實驗結果如表3所示。 表3 量測噪聲下仿真結果 50次實驗穩(wěn)態(tài)穩(wěn)態(tài)誤差小于0.02 mm。仿真結果表明,在量測噪聲干擾下,Q網(wǎng)絡控制器依然可以實現(xiàn)系統(tǒng)的高精度穩(wěn)定控制,系統(tǒng)具有良好的抗干擾能力。 本文針對磁懸浮球系統(tǒng),在不依賴系統(tǒng)模型的情況下,利用強化學習方法,訓練得到了基于Q網(wǎng)絡的系統(tǒng)自學習控制器;設計了基于系統(tǒng)濾波狀態(tài)的WAS訓練算法,通過系統(tǒng)濾波狀態(tài),自適應控制每回合訓練的步數(shù),以提高網(wǎng)絡對系統(tǒng)不同初始狀態(tài)的泛化能力。最后通過數(shù)值仿真驗證了控制器的有效性,并得到以下結論:基于Q網(wǎng)絡的磁懸浮系統(tǒng)自學習控制器能夠在無模型情況下,實現(xiàn)系統(tǒng)垂直方向高精度的穩(wěn)定控制,控制器具有良好的抗干擾能力;相比較常規(guī)訓練算法,WAS訓練算法能夠有效提高控制器的穩(wěn)定控制范圍并減少穩(wěn)態(tài)誤差。3 數(shù)值仿真
3.1 參數(shù)設置
3.2 對比仿真結果
4 結 論