于子航,王改云
(桂林電子科技大學(xué)花江校區(qū)電子工程與自動(dòng)化學(xué)院,廣西 桂林 541000)
數(shù)據(jù)驅(qū)動(dòng)控制是智能控制的一種形式,是智能領(lǐng)域的一個(gè)研究分支,最早起源于計(jì)算機(jī)科學(xué)領(lǐng)域。其中包含數(shù)據(jù)驅(qū)動(dòng)思想與數(shù)據(jù)驅(qū)動(dòng)控制兩方面。數(shù)據(jù)驅(qū)動(dòng)思想是利用受控系統(tǒng)現(xiàn)有數(shù)據(jù)實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的預(yù)報(bào)、調(diào)度、監(jiān)控和決策等功能。數(shù)據(jù)驅(qū)動(dòng)控制指的是在控制器設(shè)計(jì)過(guò)程中,不包含受控系統(tǒng)的數(shù)學(xué)模型,簡(jiǎn)單來(lái)說(shuō)就是從數(shù)據(jù)直接到控制器的設(shè)計(jì)理論方法。傳統(tǒng)的受控系統(tǒng)包含受控對(duì)象和控制器兩部分,受控對(duì)象設(shè)計(jì)有四種方法,分別為:有精準(zhǔn)的機(jī)理模型;有不精準(zhǔn)的機(jī)理模型;機(jī)理模型過(guò)于復(fù)雜,非線性較強(qiáng),階數(shù)較高;無(wú)機(jī)理模型。控制器分為基于有機(jī)理模型和無(wú)機(jī)理模型兩種。
隨著研究深入,現(xiàn)階段數(shù)據(jù)控制方法取得了巨大發(fā)展,并且產(chǎn)生了如自適應(yīng)控制、最優(yōu)控制、系統(tǒng)辨識(shí)等領(lǐng)域分支。例如,在智能車輛領(lǐng)域,許德智等人[1]提出了一種智能車輛自動(dòng)超車系統(tǒng)的數(shù)據(jù)驅(qū)動(dòng)路徑跟蹤約束控制,該方法在設(shè)計(jì)控制器的過(guò)程中,設(shè)計(jì)了一種抗飽和補(bǔ)償器來(lái)解決控制輸入受變換范圍和速率限制問(wèn)題,系統(tǒng)的控制僅使用自動(dòng)超車系統(tǒng)數(shù)據(jù),使控制性能不受車輛模型信息的影響,最后通過(guò)與PID(Proportional Integral Derivative)控制作仿真對(duì)比實(shí)驗(yàn)證明該方法能夠較好地實(shí)現(xiàn)自動(dòng)超車的路徑跟蹤,且誤差較小,但是由于該方法需要處理數(shù)據(jù)較多,導(dǎo)致響應(yīng)時(shí)間較長(zhǎng);在礦物浮選領(lǐng)域,姜藝等人[2]提出了一種數(shù)據(jù)驅(qū)動(dòng)的浮選過(guò)程運(yùn)行反饋解耦控制方法,該方法首先以礦漿液位和流量為輸入,精礦品位為輸出建立非線性運(yùn)行模型,以未建模前的一拍可測(cè)特點(diǎn)為基礎(chǔ),設(shè)計(jì)出包含了PID控制器和反饋解耦控制器等為一體的數(shù)據(jù)控制方案,經(jīng)過(guò)仿真結(jié)果表明,該方法具有一定的可行性,但是由于需要依賴的模型過(guò)多,導(dǎo)致控制結(jié)果還存在一定誤差。
雖然數(shù)據(jù)驅(qū)動(dòng)在多個(gè)領(lǐng)域取得了巨大成就,但是現(xiàn)階段大多數(shù)的控制理論成果仍然對(duì)被控系統(tǒng)精準(zhǔn)的數(shù)學(xué)模型過(guò)于依賴并且存在未建模動(dòng)態(tài)等問(wèn)題。然而在實(shí)際操作過(guò)程中,控制系統(tǒng)的參數(shù)和方程形式通常為未知的,進(jìn)一步導(dǎo)致了受控系統(tǒng)的數(shù)學(xué)模型建立較為困難。因此,本文提出了一種基于近似Q-學(xué)習(xí)算法的數(shù)據(jù)驅(qū)動(dòng)控制仿真,Q-學(xué)習(xí)是重要的強(qiáng)化學(xué)習(xí)方法之一,是一種不依賴環(huán)境模型的學(xué)習(xí)手段,主要通過(guò)經(jīng)歷的動(dòng)作序列來(lái)完成最優(yōu)動(dòng)作學(xué)習(xí)。本文以Q-學(xué)習(xí)算法作為控制器結(jié)構(gòu),同時(shí)使用遞推方式解決被控模型未知,致使優(yōu)化算法不能繼續(xù)使用的問(wèn)題,最后通過(guò)對(duì)被控對(duì)象的偽偏導(dǎo)函數(shù)進(jìn)行評(píng)估,完成數(shù)據(jù)驅(qū)動(dòng)控制。在仿真中,將本文方法與傳統(tǒng)方法的控制結(jié)果進(jìn)行比較,結(jié)果表明本文方法的誤差較小,具有一定的可行性。
智能學(xué)習(xí)的過(guò)程中,由于訓(xùn)練數(shù)據(jù)中不包含〈s,a〉訓(xùn)練樣例,直接對(duì)函數(shù)π*:S→A進(jìn)行學(xué)習(xí)較為困難,因此,可將立即回報(bào)序列r〈s,a〉,i=0,1,2…作為替代樣例。給定訓(xùn)練信息以后,整個(gè)學(xué)習(xí)的過(guò)程是以狀態(tài)和動(dòng)作的數(shù)值評(píng)估函數(shù)為基礎(chǔ)的,并且最終通過(guò)該評(píng)估函數(shù)實(shí)現(xiàn)最優(yōu)策略的構(gòu)建。假設(shè)要學(xué)習(xí)的評(píng)估函數(shù)為V*,當(dāng)V*(s1)>V*(s2)時(shí),則認(rèn)為狀態(tài)s1優(yōu)于s2。在狀態(tài)s下的最優(yōu)動(dòng)作為立即回報(bào)r(s,a)加上V*值時(shí)a的最大動(dòng)作,即
π*(s)=arg max[r(s,a)+γV*(δ(s,a))]
(1)
Q-學(xué)習(xí)算法[3]作為智能學(xué)習(xí)中的分支,是一種無(wú)模型學(xué)習(xí),該學(xué)習(xí)過(guò)程采用增量學(xué)習(xí)的馬爾可夫決策的變化形式,其主要依據(jù)是學(xué)習(xí)各個(gè)狀態(tài)-動(dòng)作對(duì)的評(píng)價(jià)值Q(s,a)。Q(s,a)為從狀態(tài)s開始到執(zhí)行動(dòng)作a的過(guò)程中累計(jì)獲得的回報(bào)值。將Q(s,a)值定義為最大的折算累積回報(bào)值,也就是說(shuō)Q的值是從狀態(tài)s開始執(zhí)行到動(dòng)作a后,立即回報(bào)值遵循最優(yōu)策略值,用γ對(duì)其進(jìn)行折算,則該最優(yōu)值數(shù)學(xué)表達(dá)式可表示為
Q(s,a)=r(s,a)+γV*(δ(s,a))
(2)
若Q(s,a)為狀態(tài)s上最優(yōu)動(dòng)作,則a的值應(yīng)最大化,將式(2)代入式(1)中,則可得出
π*(s)=arg maxQ(s,a)
(3)
從式(3)中可以看出,當(dāng)智能學(xué)習(xí)Q函數(shù)在缺少函數(shù)r和函數(shù)δ的相關(guān)知識(shí)時(shí),仍可以選擇出最優(yōu)動(dòng)作,由此可以證明在學(xué)習(xí)的過(guò)程中,只需關(guān)注狀態(tài)Q的局部值重復(fù),就能夠獲得全局最優(yōu)的動(dòng)作序列,這意味著不需要進(jìn)行前瞻搜索和明確從該動(dòng)作中獲得的狀態(tài)即可選擇出最優(yōu)動(dòng)作。在時(shí)間軸上的立即回報(bào)序列上估計(jì)訓(xùn)練值,可通過(guò)下式完成
(4)
用式(4)改寫式(2),結(jié)果如下
Q(s,a)=r(s,a)+γmaxQ(δ(s,a),a′)
(5)
本文采用新狀態(tài)s′的當(dāng)前值精化前一狀態(tài)s的評(píng)價(jià)值(s,a),在估計(jì)出在極限的條件下收斂到實(shí)際Q函數(shù)時(shí),系統(tǒng)能夠被建模成確定性的馬爾可夫決策[4]過(guò)程,并且學(xué)習(xí)過(guò)程中各個(gè)動(dòng)作的選擇可被每個(gè)狀態(tài)、動(dòng)作對(duì)無(wú)限訪問(wèn)。當(dāng)系統(tǒng)為非確定情況時(shí),回報(bào)函數(shù)r(s,a)與動(dòng)作函數(shù)δ(s,a)會(huì)存在概率輸出,在這種情況下,函數(shù)r(s,a)和δ(s,a)可以被看作為基于狀態(tài)s和動(dòng)作a的輸出概率分布,定義π為所有狀態(tài)中能夠使Vπ(s)最大化的最優(yōu)策略,則Q(s,a)又可以表示為
(6)
式(6)中,p(s′|s,a)表示狀態(tài)s運(yùn)行動(dòng)作a時(shí)會(huì)產(chǎn)生下一狀態(tài)s′的概率,將Q重新定義為遞歸形式,其數(shù)學(xué)表達(dá)式可以表示為
(7)
確定性的推導(dǎo)訓(xùn)練法則不能在非確定性條件下進(jìn)行收斂,因此對(duì)確定性規(guī)則進(jìn)行修改,使其采用當(dāng)前值和修正后估計(jì)衰減值的加權(quán)平均,修改后的規(guī)則可作如下表示
Q(s,a)←Q(s,a)+α[r+γmaxQ(s′,a′)-Q(s,a)]
(8)
式(8)中,α表示學(xué)習(xí)率。Q值函數(shù)的學(xué)習(xí)是通過(guò)迭代完成的,經(jīng)過(guò)一次迭代后就會(huì)更新一個(gè)Q(s,a),經(jīng)過(guò)一系列迭代后,當(dāng)每一個(gè)數(shù)值不再發(fā)生較為明顯的變化時(shí),即可認(rèn)為Q值函數(shù)收斂,學(xué)習(xí)結(jié)束。學(xué)習(xí)與環(huán)境交互過(guò)程如圖1所示。
圖1 學(xué)習(xí)與環(huán)境交互過(guò)程模型
以Q-學(xué)習(xí)算法為基礎(chǔ)算法構(gòu)建數(shù)據(jù)驅(qū)動(dòng)控制[5]模型,其結(jié)構(gòu)如圖2所示。
圖2 基于Q-學(xué)習(xí)的控制方法
控制器為函數(shù)逼近器[6],雖然為固定結(jié)構(gòu),但是相關(guān)參數(shù)可調(diào),如果控制器為近似Q-學(xué)習(xí)結(jié)構(gòu),則學(xué)習(xí)層的狀態(tài)s和動(dòng)作a是根據(jù)實(shí)際要求選定好的,而當(dāng)前Q值和修正后估計(jì)衰減值的加權(quán)平均[7]就是控制器的參數(shù)θ。當(dāng)Q-學(xué)習(xí)算法輸入的是當(dāng)前時(shí)刻固定狀態(tài)的控制量和輸出量[8],即下一個(gè)狀態(tài)的期望輸出值,則控制器的輸入量數(shù)學(xué)表達(dá)式如式(9),輸出量可用u(s)來(lái)表示
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)
由于被控系統(tǒng)的模型是未知,致使優(yōu)化算法不能繼續(xù)使用,因此本文利用遞推式(11)來(lái)解決此問(wèn)題。
(11)
(12)
(13)
為使數(shù)據(jù)驅(qū)動(dòng)控制響應(yīng)時(shí)間更快,將受控系統(tǒng)的當(dāng)前工作點(diǎn)處使用等價(jià)線性模型替代非線性離散系統(tǒng)[10],并且通過(guò)被控對(duì)象提供的數(shù)據(jù)對(duì)模型中的偽偏導(dǎo)函數(shù)進(jìn)行評(píng)估。非線性離散系統(tǒng)一般可以表示為
y(k+1)=f(y(k),…,y(k-ny),u(k),…,u(k-nu))
(14)
式(14)中,y(k)表示k時(shí)刻被控系統(tǒng)的輸出數(shù)據(jù),u(k)表示k時(shí)刻被控系統(tǒng)輸入數(shù)據(jù);ny、nu表示系統(tǒng)未知階數(shù);f(·)表示未知線性函數(shù)。假設(shè)系統(tǒng)滿足|Δy(k+1)≤b|Δu(k)||,則式(14)可以等價(jià)表示為線性化模型如式(15),且偽偏導(dǎo)函數(shù)是有解的。
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表示線性水平常數(shù),將傳統(tǒng)的非線性模型改為上述線性化方法后,在控制的過(guò)程中完全不依賴受控系統(tǒng)的數(shù)學(xué)模型和先驗(yàn)知識(shí)。線性化后模型結(jié)構(gòu)較為簡(jiǎn)單,需要確定參數(shù)變少,從而使響應(yīng)時(shí)間變短。
最后使用最小化加權(quán)預(yù)測(cè)誤差準(zhǔn)則函數(shù)[11-12],可得如下數(shù)據(jù)控制方案
(16)
(17)
式中,ρk、ηk分別表示步長(zhǎng)序列??刂破鹘Y(jié)構(gòu)如圖3所示。
圖3 控制器結(jié)構(gòu)圖
為驗(yàn)證基于近似Q-學(xué)習(xí)算法的數(shù)據(jù)驅(qū)動(dòng)控制方法的有效性,引入典型的線性系統(tǒng),并對(duì)其跟蹤控制問(wèn)題進(jìn)行仿真,并與文獻(xiàn)[1]、文獻(xiàn)[2]方法作仿真對(duì)比。引入的線性系統(tǒng)數(shù)學(xué)表達(dá)式如下
(18)
分別使用本文方法和文獻(xiàn)[1]方法對(duì)引入系統(tǒng)進(jìn)行了50次獨(dú)立控制實(shí)驗(yàn),并且對(duì)輸出的誤差Err進(jìn)行了評(píng)估。
(19)
式(18)中,b表示運(yùn)行步數(shù)。給定被控系統(tǒng)幅值為1的方波輸入控制信號(hào),在系統(tǒng)單次運(yùn)行后,本文的跟蹤結(jié)果如圖4所示,文獻(xiàn)[1]方法、文獻(xiàn)[2]方法的跟蹤結(jié)果分別如圖5、圖6所示。
圖4 本文方法對(duì)系統(tǒng)的跟蹤控制結(jié)果
圖5 文獻(xiàn)[1]方法跟蹤控制結(jié)果
圖6 文獻(xiàn)[6]方法跟蹤控制結(jié)果
從圖4、5、6中可以看出,文獻(xiàn)[1]、文獻(xiàn)[2]方法在計(jì)算每步運(yùn)行控制信號(hào)的過(guò)程中,會(huì)存在擾動(dòng)的問(wèn)題,并且由于該方法控制器選取不當(dāng)對(duì)系統(tǒng)的穩(wěn)定性產(chǎn)生了影響,從而導(dǎo)致在控制跟蹤的過(guò)程中出現(xiàn)異常尖峰的問(wèn)題,而本文方法由于不依賴被控系統(tǒng)的數(shù)學(xué)模型,且用線性動(dòng)態(tài)模型替代非線性模型,減少了參數(shù)的計(jì)算量,從而得到準(zhǔn)確度更高的控制結(jié)果。
同時(shí)統(tǒng)計(jì)三種控制算法50次試驗(yàn)的平均輸出誤差和響應(yīng)時(shí)間,其結(jié)果如表1所示。
表1 實(shí)驗(yàn)結(jié)果誤差對(duì)比
從表1的誤差結(jié)果可以看出,與文獻(xiàn)[1]、文獻(xiàn)[2]方法相比,本文的跟蹤誤差更小,響應(yīng)時(shí)間更短。
通過(guò)以上仿真比較證明本文方法的結(jié)果準(zhǔn)確度要優(yōu)于傳統(tǒng)方法,進(jìn)一步證明了本文基于近似Q-學(xué)習(xí)算法的數(shù)據(jù)驅(qū)動(dòng)控制的有效性,具有一定的實(shí)際應(yīng)用價(jià)值。
本文方法的控制律不依賴受控系統(tǒng)的數(shù)學(xué)模型結(jié)構(gòu),僅利用Q-學(xué)習(xí)算法的迭代學(xué)習(xí),在實(shí)際操作過(guò)程中,又僅有一個(gè)偽偏導(dǎo)數(shù)作為在線調(diào)整參數(shù),使系統(tǒng)的計(jì)算量較小,響應(yīng)時(shí)間較短,在一定程度上解決了未建模動(dòng)態(tài)的問(wèn)題。仿真條件下證明了本文方法獲得的控制結(jié)果誤差較小,具有一定的可行性。
本文提出數(shù)據(jù)驅(qū)動(dòng)控制方法采用以近似Q-學(xué)習(xí)算法為結(jié)構(gòu)的控制器,Q-學(xué)習(xí)算法最終獲得的值可能不是最優(yōu),如何根據(jù)受控系統(tǒng)特性精準(zhǔn)的在從學(xué)習(xí)狀態(tài)開始到執(zhí)行動(dòng)作的過(guò)程中獲得最優(yōu)回報(bào)值,是下一步需要改善的問(wèn)題。