軌跡優(yōu)化節(jié)點自適應加密方法

針對采用直接法求解軌跡優(yōu)化問題中精度和效率之間的矛盾,我們提出了一種基于二代小波軌跡優(yōu)化節(jié)點自適應加密。該方法采用RK( Runge-Kutta)離散方法將原軌跡優(yōu)化問題轉(zhuǎn)化為非線性規(guī)劃問題,并采用成熟的非線性規(guī)劃算法求解,對控制或狀態(tài)函數(shù)進行小波變換得到小波系數(shù)。

一、軌跡優(yōu)化問題與離散方法

目前求解軌跡優(yōu)化問題的數(shù)值方法主要有2種:間接法和直接法。間接法基于變分原理和Pontryagin極大值原理,將原軌跡優(yōu)化問題轉(zhuǎn)化為Hamilton邊值問題(HBVP),然后通過數(shù)值方法求解,間接法的主要優(yōu)點是得到的解較精確并滿足1階最優(yōu)條件。但是由于其收斂半徑非常小,協(xié)(伴隨)狀態(tài)的初始值不易給出,限制了其工程應用.而直接法則將狀態(tài)變量和控制變量對時間離散化,將原始優(yōu)化問題轉(zhuǎn)化為非線性規(guī)劃問題。

RK離散方法由于其精度較高,在常微分方程的數(shù)值求解中應用廣泛,因而也用于早期的間接和直接打靶法中并逐漸用于控制/狀態(tài)參數(shù)化方法中。由于RK法不要求節(jié)點固定,因而易于進行節(jié)點自適應調(diào)整。

1、軌跡優(yōu)化問題

考慮如下軌跡優(yōu)化問題:確定控制函數(shù)u(t)∈Rm(和時間t0,tf),使得如下性能函數(shù)最?。?/p>

滿足狀態(tài)方程:

邊界條件:

路徑約束:

其中初始狀態(tài)x0=x(to)、結(jié)束狀態(tài)Xf= X(tf)。

這里假設(shè)初始時間to固定,結(jié)束時間tf固定或自由。

對于性能函數(shù)含有積分指標的問題和自由時間問題,均可以通過引入附加狀態(tài)轉(zhuǎn)化為固定時間問題。

為了便于程序?qū)崿F(xiàn),通過變換t=(t -to)/(tf-t0)將時間區(qū)間歸一化,即t∈[0,1]。變換后式(1)~式(4)分別轉(zhuǎn)化為:

其中△t=tf-t0。

2、Runge-Kutta離散方法與非線性規(guī)劃問題

不失一般性,假設(shè)狀態(tài)量和控制量在一組非均勻時間點T={ti:ti∈[0,1])(下標i表示時間點序號)上進行離散,則狀態(tài)方程離散的q級Runge-Kutta離散方法如下:

其中:

這里1≤m≤q,i=0,1,…,N-1,N為時間節(jié)點數(shù).αml,βm,ρm為常數(shù),滿足O≤ρ1≤…≤1。

時間節(jié)點上的變量(xi,ui)必須同時在整個時間區(qū)間[O,1]上確定,稱為全局變量;而節(jié)點之間的變量(xim,uim)位于時間區(qū)間[t,Ti+l]內(nèi),稱為局部變量,為了使最優(yōu)解滿足相容性條件,本文采用經(jīng)典4階Runge-Kutta離散方法。對于4階Runge-Kutta離散方法,設(shè)計變量中還需加入(ti+ti+1)/2時刻對應的局部變量Ui2=Ui3=Ui。定義如下集合:

通過以上離散處理,可將軌跡優(yōu)化問題轉(zhuǎn)化為如下NLP問題:

確定變量:

使得如下性能函數(shù)最優(yōu):

且滿足約束條件:

對于式(1 9)~式(22)描述的非線性規(guī)劃問題,可采用序列二次規(guī)劃(SQP)算法求解,如求解大規(guī)模優(yōu)化問題的軟件包SNOPT。為了提高計算速度,計算過程中利用自動微分軟件Intlab計算雅克比矩陣,并采用稀疏矩陣表示法。

二、二代小波節(jié)點自適應算法

利用上述Runge-Kutta離散方法可將軌跡優(yōu)化問題轉(zhuǎn)換為非線性規(guī)劃問題求解,其優(yōu)點是節(jié)點位置、時間步長可以變化,若可以在優(yōu)化過程中動態(tài)調(diào)整節(jié)點則可滿足一定精度情況下減小節(jié)點的數(shù)量,提高計算效率。由于小波系數(shù)幅值反應了函數(shù)(高階導數(shù))的局部光滑性,可以基于小波系數(shù)幅值的大小進行節(jié)點自動調(diào)整。

1、二代小波

二代小波是提升插值小波的統(tǒng)稱,為某些函數(shù)空間上的Reisz基,同時具有時間和空間局部性和多項式消失矩。與經(jīng)典小波相比,可以直接在區(qū)間上構(gòu)造。由于構(gòu)造第二代小波的數(shù)學推導較為復雜,為了節(jié)約篇幅,本文僅給出部分必要的結(jié)論。

函數(shù)空間L上的二代小波多分辨分析M由一組閉子空間M=(vjC|li∈J)(j表示分辨水平)組成,并滿足如下條件:

1)vj∈Vj+l;

2) Ui∈Jvj在L中稠密;

3)對每個j∈J,尺度函數(shù){φkj∈Kj)是驢的Reisz基(其中Kj是指標集)。

Sweldens給出了二代小波變換(second gen-eration wavelets transform,SGWT)的構(gòu)建方法,并構(gòu)造了二代小波函數(shù)。以一維小波為例,二代小波的小波系數(shù)碰和尺度系數(shù)cjk具有如下正變化關(guān)系式:

其逆變換關(guān)系式為:

式中的vklj,vkl-j是構(gòu)造提升小波的插值系數(shù),可以通過插值細分原理求取。

2、節(jié)點自適應算法

Vasilyev等提出了求解偏微分方程的二代小波配點法,包括基于小波的節(jié)點自適應方法和自適應節(jié)點上的導數(shù)計算方法,下面結(jié)合軌跡優(yōu)化問題的求解,簡要給出節(jié)點自適應方法。

考慮定義在閉區(qū)間Ω=[O,1]上的函數(shù)f(t)(可以是控制量或狀態(tài)量),并在如下二分節(jié)點上構(gòu)造插值小波:

其中節(jié)點tkj滿足嵌套關(guān)系:

為了不產(chǎn)生歧義,gj中的節(jié)點稱為背景節(jié)點,只有在小波變換中用到。根據(jù)二代小波構(gòu)造方法,控制函數(shù)U(T)可以在分辨率J的每個水平上用尺度函數(shù)φkj(t)(k∈Kj)和小波函數(shù)φlj(t)(l∈lj)表示為:

小波系數(shù)絕對值的大小表示了函數(shù)的局部光滑性質(zhì),函數(shù)越光滑,則小波系數(shù)越小。對于局部突變的函數(shù),其大部分小波系數(shù)是足夠小的,僅在函數(shù)突變處較大,因此即使舍去大部分較小的小波系數(shù),也可以保持對原函數(shù)保持較好的近似。由于尺度函數(shù)與背景節(jié)點tkj唯一對應,而小波φlj(t)與背景節(jié)t2l+1j唯一對應。所以進行小波分解后,在最精細分辨層,上的每個節(jié)點要么與小波函數(shù)對應要么與尺度函數(shù)對應,因此,如果相應的小波系數(shù)從近似關(guān)系式(28)中省略,則相應的背景節(jié)點可以刪除,可得到計算節(jié)點ti。

將式(28)改寫為兩項之和:

其中:

表示小波系數(shù)幅值大于某個閥值ε的部分。

表示小波系數(shù)幅值小于某個閥值ε的部分。

Donoho給出了方程的截斷誤差:

其中系數(shù)Cl與函數(shù)uj(t)相關(guān)。

根據(jù)小波系數(shù)與節(jié)點的分層對應關(guān)系可以確定最少的自適應節(jié)點。但是根據(jù)這些節(jié)點上的函數(shù)值無法還原全部節(jié)點的函數(shù)值,因此還需要稍微擴大自適應節(jié)點的范圍,以使得從自適應節(jié)點能夠恢復函數(shù)uj≥(t)。一般來講,上述過程增加的節(jié)點是非常少的。

利用基于小波的節(jié)點自適應算法獲得新的自適應節(jié)點的過程如下:

1)獲得控制量ukj(t)在節(jié)點gj≥的函數(shù)值;

2)根據(jù)式(23)和式(24)執(zhí)行正向小波變換,獲得尺度系數(shù)Ck0(k∈K)和每個分辨率水平上的小波系數(shù)dlj(l∈L,O≤j≤J-1);

3)分析小波系數(shù)dlj,建立所有背景節(jié)點tkj的指標集L,L中包含小波系數(shù)|dlj|≥ε的所有節(jié)點及其相鄰的小波系數(shù)(包括同一分辨水平j(luò)和下一分辨水平j(luò)+1);

4)在L中增加所有尺度系數(shù)c2(k∈K)對應的節(jié)點;

5)構(gòu)建新的計算節(jié)點GL>+l(即L),用于下一步的優(yōu)化計算。

在自適應節(jié)點Gj≥上執(zhí)行小波變換可以保證所有小波系數(shù)與uj≥(t)在背景節(jié)點Gr進行小波變換然后從自適應節(jié)點刪除等于0的小波系數(shù)得到的結(jié)果一致。

基于二代小波的節(jié)點自適應算法輸入?yún)?shù)包括:Jo,初始分辨率水平(控制初始節(jié)點個數(shù));Jmax,最大分辨率水平(控制背景節(jié)點個數(shù),即最小節(jié)點間隔);ε為小波系數(shù)幅值的閥值,終止條件:前后兩次節(jié)點位置相同或達到預定的迭代次數(shù)。

計算流程如下:

1)根據(jù)初始分辨率Jo生成均勻節(jié)點gjo(或k)),以及該均勻節(jié)點上的狀態(tài)函數(shù)x和控制函數(shù)u的初始猜測;

2)利用非線性規(guī)劃算法SNOPT優(yōu)化式(18)~式(22)給出的非線性規(guī)劃問題,得到狀態(tài)函數(shù)x和最優(yōu)控制函數(shù)H;

3)根據(jù)節(jié)點自適應算法確定下一步優(yōu)化的自適應節(jié)點,若存在多個控制函數(shù),則將這些控制函數(shù)分別得到的自適應節(jié)點進行合并;

4)根據(jù)前一次優(yōu)化計算的解x和M,利用小波插值計算新的自適應節(jié)點上的初始猜測,并進行循環(huán)迭代,直到滿足終止條件。

需要說明的是:小波系數(shù)閥值的取值通常憑經(jīng)驗選取,一般可取為ε=α(Umax- Umin),對于間斷函數(shù),01可取0.005~0.O1,對于連續(xù)函數(shù),可取0.001~0. 005。

三、數(shù)值算例

1、Breakwell問題

考慮如下Breakwell問題:

目標函數(shù)為:

狀態(tài)方程為:

邊界條件為:

對該問題采用小波方法進行節(jié)點自適應調(diào)整,取小波系數(shù)閥值ε=0.OOl(umax- umin)。優(yōu)化的狀態(tài)初始猜測為初末狀態(tài)之間的線性函數(shù),控制量的初始值為0。

表1給出了不同的Z取值時,優(yōu)化的節(jié)點數(shù)目、目標函數(shù)誤差|J-J*|以及控制函數(shù)誤差|| u-ux||ω max ui一u*(ti)||(為數(shù)值解與解析解誤差函數(shù)的最大值范數(shù))。這里與高斯偽譜法Matlab軟件包(GPOPS)c14]進行了對比,計算采用CPU為Intel雙核1.86GHz,內(nèi)存為1.5GB的臺式機。從表中可以看出:目標函數(shù)誤差的量級約為l0-7~l0-9,控制函數(shù)誤差最大值范數(shù)的量級約為l0-3~l0-4。結(jié)果顯示:與GPOPS相比,本文算法的節(jié)點數(shù)大約節(jié)省1O%,最優(yōu)指標精度大約提高1個數(shù)量級,而計算時間相當。

l=0.1時的節(jié)點自適應過程如圖1所示。

狀態(tài)函數(shù)和控制函數(shù)變化曲線分別如圖2和圖3所示。圖1中垂直線為解析解中控制函數(shù)導數(shù)不連續(xù)時間點,迭代所采用的節(jié)點個數(shù)依次為33,45,57,63和72。從圖中可以看出:每次節(jié)點調(diào)整后更加集中于控制函數(shù)導數(shù)不連續(xù)處,且在兩側(cè)都有加密。圖2中實線為狀態(tài)量解析解,“*”和“+"分別為本文算法計算得到的狀態(tài)x和狀態(tài)v。從結(jié)果可知,最優(yōu)解與解析解非常吻合。

給出了基于密度函數(shù)的節(jié)點自適應算法(density function-based mesh refinement al-gorithm,DENMRA),并給出了該算例的結(jié)果。與DENMRA相比,基于小波的算法精度稍差,但是比SOCS( sparse optimal control software)的結(jié)果要好。雖然DENMRA精度較高,但是需要針對具體問題設(shè)計密度函數(shù),對于復雜問題,具有一定的難度,而本文基于小波的節(jié)點自適應算法的優(yōu)勢在于只需簡單設(shè)定小波系數(shù)閥值,即可自動在控制函數(shù)(或高階導數(shù))不連續(xù)處加密節(jié)點。

2、航天器姿態(tài)機動問題

算例1通過與高斯偽譜法對比驗證了算法的有效性和精度,同時計算效率與高斯偽譜法相當。為了驗證算法處理不連續(xù)控制函數(shù)的性能以及在工程問題是的適用性,下面利用本文算法求解給出的剛體航天器姿態(tài)機動問題。采用四元數(shù)描述的航天器姿態(tài)動力學方程如下:

其中四元數(shù)定義如下:

其中||q ||=1(這里為2范數(shù))。ωT[ω1,ω2,ω3]為角速度。剛體慣量參數(shù)使用NASA XTE (X-ray tlming experiment)航天器參數(shù),如下:

控制力矩約束為:

機動目標是使用最短的時間使航天器繞x軸轉(zhuǎn)動150°,因此取如下邊界條件:

采用基于二代小波的節(jié)點自適應算法進行優(yōu)化,計算中小波系數(shù)閥值取ui=0.=005(uimax -Uimin),其中i=l,2,3.經(jīng)過8次節(jié)點調(diào)整,最終保留187個節(jié)點。計算硬件與算例1相同。最優(yōu)機動時間為28. 6304 s,與文獻結(jié)果一致,圖4是控制量曲線,圖5是四元數(shù)曲線,圖6是角速度曲線,圖7是節(jié)點自適應過程中節(jié)點位置圖。需要說明的是:對于該問題,控制量維數(shù)為3,且相互獨立,在進行節(jié)點自適應過程中,對3個控制量分別計算需要的節(jié)點,最后將節(jié)點合并,因此會出現(xiàn)在第1個控制量光滑處存在節(jié)點加密情況。

從優(yōu)化結(jié)果可以看出:基于二代小波的節(jié)點自適應算法在控制函數(shù)突變處進行了合理加密,提高了對控制函數(shù)逼近的精度,由于大部分節(jié)點分布在控制函數(shù)間斷處,可提高控制開關(guān)處的精度,而在其他區(qū)域則可用較少節(jié)點。結(jié)果說明本文算法可用于具有多個控制函數(shù)、多個開關(guān)的復雜Bang-Bang控制問題的節(jié)點自適應。對于該類問題,若節(jié)點個數(shù)較多,可適當增大小波系數(shù)閥值。

 

小知識之小波小波(Wavelet)這一術(shù)語,顧名思義,“小波”就是小區(qū)域、長度有限、均值為0的波形。所謂“小”是指它具有衰減性;而稱之為“波”則是指它的波動性,其振幅正負相間的震蕩形式。與Fourier變換相比,小波變換是時間(空間)頻率的局部化分析,它通過伸縮平移運算對信號(函數(shù))逐步進行多尺度細化,最終達到高頻處時間細分,低頻處頻率細分,能自動適應時頻信號分析的要求,從而可聚焦到信號的任意細節(jié),解決了Fourier變換的困難問題,成為繼Fourier變換以來在科學方法上的重大突破。有人把小波變換稱為“數(shù)學顯微鏡”。