于子航,王改云
(桂林電子科技大學花江校區電子工程與自動化學院,廣西 桂林 541000)
數據驅動控制是智能控制的一種形式,是智能領域的一個研究分支,最早起源于計算機科學領域。其中包含數據驅動思想與數據驅動控制兩方面。數據驅動思想是利用受控系統現有數據實現系統數據的預報、調度、監控和決策等功能。數據驅動控制指的是在控制器設計過程中,不包含受控系統的數學模型,簡單來說就是從數據直接到控制器的設計理論方法。傳統的受控系統包含受控對象和控制器兩部分,受控對象設計有四種方法,分別為:有精準的機理模型;有不精準的機理模型;機理模型過于復雜,非線性較強,階數較高;無機理模型。控制器分為基于有機理模型和無機理模型兩種。
隨著研究深入,現階段數據控制方法取得了巨大發展,并且產生了如自適應控制、最優控制、系統辨識等領域分支。例如,在智能車輛領域,許德智等人[1]提出了一種智能車輛自動超車系統的數據驅動路徑跟蹤約束控制,該方法在設計控制器的過程中,設計了一種抗飽和補償器來解決控制輸入受變換范圍和速率限制問題,系統的控制僅使用自動超車系統數據,使控制性能不受車輛模型信息的影響,最后通過與PID(Proportional Integral Derivative)控制作仿真對比實驗證明該方法能夠較好地實現自動超車的路徑跟蹤,且誤差較小,但是由于該方法需要處理數據較多,導致響應時間較長;在礦物浮選領域,姜藝等人[2]提出了一種數據驅動的浮選過程運行反饋解耦控制方法,該方法首先以礦漿液位和流量為輸入,精礦品位為輸出建立非線性運行模型,以未建模前的一拍可測特點為基礎,設計出包含了PID控制器和反饋解耦控制器等為一體的數據控制方案,經過仿真結果表明,該方法具有一定的可行性,但是由于需要依賴的模型過多,導致控制結果還存在一定誤差。
雖然數據驅動在多個領域取得了巨大成就,但是現階段大多數的控制理論成果仍然對被控系統精準的數學模型過于依賴并且存在未建模動態等問題。然而在實際操作過程中,控制系統的參數和方程形式通常為未知的,進一步導致了受控系統的數學模型建立較為困難。因此,本文提出了一種基于近似Q-學習算法的數據驅動控制仿真,Q-學習是重要的強化學習方法之一,是一種不依賴環境模型的學習手段,主要通過經歷的動作序列來完成最優動作學習。本文以Q-學習算法作為控制器結構,同時使用遞推方式解決被控模型未知,致使優化算法不能繼續使用的問題,最后通過對被控對象的偽偏導函數進行評估,完成數據驅動控制。在仿真中,將本文方法與傳統方法的控制結果進行比較,結果表明本文方法的誤差較小,具有一定的可行性。
智能學習的過程中,由于訓練數據中不包含〈s,a〉訓練樣例,直接對函數π*:S→A進行學習較為困難,因此,可將立即回報序列r〈s,a〉,i=0,1,2…作為替代樣例。給定訓練信息以后,整個學習的過程是以狀態和動作的數值評估函數為基礎的,并且最終通過該評估函數實現最優策略的構建。假設要學習的評估函數為V*,當V*(s1)>V*(s2)時,則認為狀態s1優于s2。在狀態s下的最優動作為立即回報r(s,a)加上V*值時a的最大動作,即
π*(s)=arg max[r(s,a)+γV*(δ(s,a))]
(1)
Q-學習算法[3]作為智能學習中的分支,是一種無模型學習,該學習過程采用增量學習的馬爾可夫決策的變化形式,其主要依據是學習各個狀態-動作對的評價值Q(s,a)。Q(s,a)為從狀態s開始到執行動作a的過程中累計獲得的回報值。將Q(s,a)值定義為最大的折算累積回報值,也就是說Q的值是從狀態s開始執行到動作a后,立即回報值遵循最優策略值,用γ對其進行折算,則該最優值數學表達式可表示為
Q(s,a)=r(s,a)+γV*(δ(s,a))
(2)
若Q(s,a)為狀態s上最優動作,則a的值應最大化,將式(2)代入式(1)中,則可得出
π*(s)=arg maxQ(s,a)
(3)
從式(3)中可以看出,當智能學習Q函數在缺少函數r和函數δ的相關知識時,仍可以選擇出最優動作,由此可以證明在學習的過程中,只需關注狀態Q的局部值重復,就能夠獲得全局最優的動作序列,這意味著不需要進行前瞻搜索和明確從該動作中獲得的狀態即可選擇出最優動作。在時間軸上的立即回報序列上估計訓練值,可通過下式完成

(4)
用式(4)改寫式(2),結果如下
Q(s,a)=r(s,a)+γmaxQ(δ(s,a),a′)
(5)
本文采用新狀態s′的當前值精化前一狀態s的評價值(s,a),在估計出在極限的條件下收斂到實際Q函數時,系統能夠被建模成確定性的馬爾可夫決策[4]過程,并且學習過程中各個動作的選擇可被每個狀態、動作對無限訪問。當系統為非確定情況時,回報函數r(s,a)與動作函數δ(s,a)會存在概率輸出,在這種情況下,函數r(s,a)和δ(s,a)可以被看作為基于狀態s和動作a的輸出概率分布,定義π為所有狀態中能夠使Vπ(s)最大化的最優策略,則Q(s,a)又可以表示為

(6)
式(6)中,p(s′|s,a)表示狀態s運行動作a時會產生下一狀態s′的概率,將Q重新定義為遞歸形式,其數學表達式可以表示為

(7)
確定性的推導訓練法則不能在非確定性條件下進行收斂,因此對確定性規則進行修改,使其采用當前值和修正后估計衰減值的加權平均,修改后的規則可作如下表示
Q(s,a)←Q(s,a)+α[r+γmaxQ(s′,a′)-Q(s,a)]
(8)
式(8)中,α表示學習率。Q值函數的學習是通過迭代完成的,經過一次迭代后就會更新一個Q(s,a),經過一系列迭代后,當每一個數值不再發生較為明顯的變化時,即可認為Q值函數收斂,學習結束。學習與環境交互過程如圖1所示。

圖1 學習與環境交互過程模型
以Q-學習算法為基礎算法構建數據驅動控制[5]模型,其結構如圖2所示。

圖2 基于Q-學習的控制方法
控制器為函數逼近器[6],雖然為固定結構,但是相關參數可調,如果控制器為近似Q-學習結構,則學習層的狀態s和動作a是根據實際要求選定好的,而當前Q值和修正后估計衰減值的加權平均[7]就是控制器的參數θ。當Q-學習算法輸入的是當前時刻固定狀態的控制量和輸出量[8],即下一個狀態的期望輸出值,則控制器的輸入量數學表達式如式(9),輸出量可用u(s)來表示
a(s),a(s-1),…,a(s-M+1),
u(s-1),u(s-2),…,u(s-N),ad(s+1)
(9)

Js(θk)=E[a(θk,s+1)-ad(s+1)2]
(10)
由于被控系統的模型是未知,致使優化算法不能繼續使用,因此本文利用遞推式(11)來解決此問題。

(11)

(12)


(13)

為使數據驅動控制響應時間更快,將受控系統的當前工作點處使用等價線性模型替代非線性離散系統[10],并且通過被控對象提供的數據對模型中的偽偏導函數進行評估。非線性離散系統一般可以表示為
y(k+1)=f(y(k),…,y(k-ny),u(k),…,u(k-nu))
(14)
式(14)中,y(k)表示k時刻被控系統的輸出數據,u(k)表示k時刻被控系統輸入數據;ny、nu表示系統未知階數;f(·)表示未知線性函數。假設系統滿足|Δy(k+1)≤b|Δu(k)||,則式(14)可以等價表示為線性化模型如式(15),且偽偏導函數是有解的。
y(k+1)=y(k)+φT(k)Δu(k)
(15)
式(15)中,φ(k)=[φ1(k)…φL(k)]T表示偽梯度向量,Δu(k)=[Δu(k)…Δ(k-G+1)]T,G表示線性水平常數,將傳統的非線性模型改為上述線性化方法后,在控制的過程中完全不依賴受控系統的數學模型和先驗知識。線性化后模型結構較為簡單,需要確定參數變少,從而使響應時間變短。
最后使用最小化加權預測誤差準則函數[11-12],可得如下數據控制方案

(16)

(17)
式中,ρk、ηk分別表示步長序列。控制器結構如圖3所示。

圖3 控制器結構圖
為驗證基于近似Q-學習算法的數據驅動控制方法的有效性,引入典型的線性系統,并對其跟蹤控制問題進行仿真,并與文獻[1]、文獻[2]方法作仿真對比。引入的線性系統數學表達式如下

(18)
分別使用本文方法和文獻[1]方法對引入系統進行了50次獨立控制實驗,并且對輸出的誤差Err進行了評估。

(19)
式(18)中,b表示運行步數。給定被控系統幅值為1的方波輸入控制信號,在系統單次運行后,本文的跟蹤結果如圖4所示,文獻[1]方法、文獻[2]方法的跟蹤結果分別如圖5、圖6所示。

圖4 本文方法對系統的跟蹤控制結果

圖5 文獻[1]方法跟蹤控制結果

圖6 文獻[6]方法跟蹤控制結果
從圖4、5、6中可以看出,文獻[1]、文獻[2]方法在計算每步運行控制信號的過程中,會存在擾動的問題,并且由于該方法控制器選取不當對系統的穩定性產生了影響,從而導致在控制跟蹤的過程中出現異常尖峰的問題,而本文方法由于不依賴被控系統的數學模型,且用線性動態模型替代非線性模型,減少了參數的計算量,從而得到準確度更高的控制結果。
同時統計三種控制算法50次試驗的平均輸出誤差和響應時間,其結果如表1所示。

表1 實驗結果誤差對比
從表1的誤差結果可以看出,與文獻[1]、文獻[2]方法相比,本文的跟蹤誤差更小,響應時間更短。
通過以上仿真比較證明本文方法的結果準確度要優于傳統方法,進一步證明了本文基于近似Q-學習算法的數據驅動控制的有效性,具有一定的實際應用價值。
本文方法的控制律不依賴受控系統的數學模型結構,僅利用Q-學習算法的迭代學習,在實際操作過程中,又僅有一個偽偏導數作為在線調整參數,使系統的計算量較小,響應時間較短,在一定程度上解決了未建模動態的問題。仿真條件下證明了本文方法獲得的控制結果誤差較小,具有一定的可行性。
本文提出數據驅動控制方法采用以近似Q-學習算法為結構的控制器,Q-學習算法最終獲得的值可能不是最優,如何根據受控系統特性精準的在從學習狀態開始到執行動作的過程中獲得最優回報值,是下一步需要改善的問題。