韓旭, 張顯庫
(大連海事大學 航海動態(tài)仿真與控制實驗室,遼寧 大連 116026)
無人船是目前熱點研究課題之一,其實現(xiàn)需要航跡保持、態(tài)勢分析、路徑規(guī)劃、通訊、故障處理等多種技術手段的協(xié)同,其中航跡保持是整個控制系統(tǒng)中的底層技術,其他技術大多可以看作航跡保持基礎上的技術疊加,因此對航跡保持控制方法的研究具有較大的現(xiàn)實意義。文獻[1]將船舶航跡保持控制分為“間接式”和“直接式”兩類,其區(qū)別在于執(zhí)行器輸出的取得是否經(jīng)由航向保持控制。通常認為直接控制較間接控制更準確,間接控制較直接控制更易于理解和應用。由于在航向保持方面已有豐碩的成果[2-4],基于航向保持的間接式控制方法在應用層面仍為主流,但在研究層面,一方面對間接式控制的研究熱度有所下降,另一方面有將航跡保持控制研究過度復雜化的傾向,這不利于現(xiàn)階段間接式自動舵的研發(fā)。
直接式航跡保持算法的研究目前集中在動力定位問題上,通常做法包括基于Lyapunov定理設計控制器[5]、使用模型預測控制[6]、智能控制[7]等。間接式航跡保持算法主要依賴LOS算法,文獻[8-10]結(jié)合LOS算法,分別用預測控制、滑??刂婆c變增益內(nèi)??刂茖﹂g接式控制中的航向保持部分做了改進。Carrot following是一種最簡潔的間接式航跡保持控制算法,從原理上屬于LOS算法中的一類,其與LOS算法的區(qū)別在于設計控制率時只使用航向誤差。優(yōu)點是簡單、直觀、易于應用,但缺點突出,表現(xiàn)為魯棒性差,參數(shù)調(diào)整隨意,容易出現(xiàn)航跡震蕩或收斂過慢,這主要是由算法在航向保持過程只使用比例控制造成的。而這一過程的控制正是簡捷魯棒控制方法[11]的長處。
簡捷魯棒控制方法是一套簡單有效的控制方法,其特點是控制魯棒性強,參數(shù)設置有依據(jù)而調(diào)整空間大,內(nèi)容包括閉環(huán)增益成形算法[12]、鏡像映射[13]、非線性反饋等算法[14],該方法在航向保持方面已取得了一系列的成果,但在航跡保持上的應用較少。文獻[15]給出了一種基于閉環(huán)增益成形算法的直接式航跡保持算法,由于該算法的建立是基于船舶小擾動模型,只有在航跡誤差較小時才適用,因此在沒有給出目標航向獲取方法的情況下,該算法并不能算是解決了任意位置的航跡保持問題。文獻[16]對5種常見航跡保持方法做了總結(jié)和比較,結(jié)果是各自優(yōu)缺點并存,較準確的控制方法的執(zhí)行器動作迅速,執(zhí)行器輸出平穩(wěn)的方法精確性較低。文獻[17]對其中的LOS算法進行了改進,將原有的比例控制方法加入了針對海流的自適應補償,文獻[18]使用擴張狀態(tài)觀測器對其中LQR方法進行了改進,以補償系統(tǒng)內(nèi)部擾動和環(huán)境作用量。本文采用其中的carrot following方法,并將原文中對目標航向誤差的純比例控制用閉環(huán)增益成形算法替代,以此提高控制的效果和魯棒性。然后對分離型積分項的穩(wěn)態(tài)誤差消除效果以及非線性反饋的節(jié)能效果做了測試,這些方法是以往在航向保持中較常見的方法,仿真結(jié)果表明這些方法在航跡保持中依然適用。
閉環(huán)增益成形算法源于魯棒控制中的回路成形算法。對于如圖1所示的閉環(huán)系統(tǒng),圖中d為低頻干擾,Pd為某種低通傳遞函數(shù),n為測量噪聲,r為參考輸入,y為實際輸出,ym為測量的輸出,ym=r-y-n,有:
(1)
式中:乘積項S稱作靈敏度函數(shù);乘積項T稱作補靈敏度函數(shù)。
基于干擾d和噪聲n的幅頻特性,低阻的S和高阻的T是所希望的。注意到S+T=(I+PK)-1·(PK+I)=I,所以期望的S、T靈敏度曲線通常形式如圖2所示,其中ωb稱為交接頻率。閉環(huán)增益成形算法的本質(zhì)就是對補靈敏度函數(shù)T進行設計。若用N來表示T的設計階數(shù),設T1=1/(Nωb),通過簡單計算即可將補靈敏度函數(shù)T中的控制器K解出:
(2)
圖1 一類常見的閉環(huán)控制回路Fig.1 A common type of closed-loop control
圖2 希望的靈敏度曲線Fig.2 Expected sensitivity curves
Carrot following算法通過引入路徑上的虛擬目標點,得出船舶的目標航向,這一進程將不斷重復,直到船舶接近路徑并最終沿著路徑前進。在這種方法中,將虛擬目標點稱作carrot,船舶則不斷跟蹤目標,因此稱作carrot following算法??紤]一條如圖3所示線段WiWi+1,為跟蹤路徑需要2個步驟:1)確定航跡誤差d,2)更新虛擬目標的位置:虛擬目標S位于距離Q點Δ處。基于S的位置更新船舶的期望航向ψd。尋找新ψd的過程一直持續(xù)到船舶達到Wi+1。
圖3 Carrot following算法示意Fig.3 Carrot following algorithm schematic diagram
由文獻[19]可以得到育鵬輪滿載時的船舶參數(shù),基于這些參數(shù)可以求得育鵬輪的旋回性指數(shù)K0=0.38,追隨性指數(shù)T0=297.75,由此建立育鵬輪的Nomoto模型:
(3)
取高頻漸近線斜率為-20 dB/dec,即取N=1,由文獻[20]查表知,6級風(取風速12 m/s)下的海浪常見頻率為0.43~2.8 rad/s,取交接頻率ωb=0.067,這樣海浪頻率0.43時的增益略大于-7.3 dB,對海浪干擾的抑制較強,此時T1=15。設計補靈敏度函數(shù)T,將P的表達式代入T的表達式,即可得到執(zhí)行器K:
(4)
這是一個PD形式的控制器,由文獻[1]可知這種形式的控制器不能消除穩(wěn)態(tài)誤差,因此利用控制器的魯棒性,在控制率中增加一個小的積分項,使系統(tǒng)到達穩(wěn)態(tài)時能夠逼近目標值。但需要注意的是這一積分項不宜過大,否則由于其在暫態(tài)過程的影響,在到達穩(wěn)態(tài)的過程中將發(fā)生超調(diào)。此外,這是一艘大慣性船,由文獻[21],可適當增大比例項以減小上升時間。經(jīng)過以上改動后控制器可變?yōu)椋?/p>
Kpid=3.63+0.001/s+783.55s
(5)
圖4為間接式航跡保持控制示意,carrot following算法用于實現(xiàn)圖中的航海計算和航跡控制部分,而航向保持控制部分的實現(xiàn)則由閉環(huán)增益成形算法實現(xiàn)。
圖4 間接式航跡保持控制示意Fig.4 Diagram of indirect trajectory tracking control
在1.2節(jié)已給出目標航向的獲取方法,但原算法有4個關鍵點沒有說明或需要改進:1)沒有進行轉(zhuǎn)向點的設置和處理;2)參數(shù)Δ的選取缺乏指導;3)文獻[16]原文中對航向保持簡單使用了比例控制因而效果不佳;4)角度的表示不符合航海習慣。
針對這4個問題,本文給出了對應的解決方案:1)設航路點的到達判定距離為λ(或者叫起轉(zhuǎn)距離),若距下一轉(zhuǎn)向點Wi+1距離小于λ則改變航線。2)Δ和λ的選取應與船舶轉(zhuǎn)向能力相關,因此也與航速相關,從經(jīng)驗上看,Δ取值通常略大于2倍船長,船速大時可適當增加,若Δ過大則暫態(tài)時間長,過小則會出現(xiàn)震蕩,λ的大小大致為該速度下的旋回進距。3)使用閉環(huán)增益成形算法實現(xiàn)航向保持,航向誤差為目標航向與當前航向的差值。4)角度修正到0°~360°,從而避免了傳入信號和計算所需之間的偏差。相比原算法,本文增加了到達航路點的判斷,基準點隨航路點到達而切換,實現(xiàn)了帶有轉(zhuǎn)向的航跡保持。
為使最終的航跡保持算法能快速而準確的跟蹤目標航向,一個性能良好的航向保持算法是必須的,為此這里會先驗證航向保持控制效果。
目前為止,在應用閉環(huán)增益成形算法進行航向保持時,在穩(wěn)態(tài)誤差的消除方面并不是很理想,引入積分項過大會導致超調(diào),過小則不利于穩(wěn)態(tài)誤差的快速消除,為解決這一問題,本文采用積分分離型設計[22],即當航向誤差小于某個閾值時啟用積分項,而大于該閾值時關閉,這樣就規(guī)避了積分項在暫態(tài)過程中的影響,因而可以加大積分項以盡快消除穩(wěn)態(tài)誤差,本文選取積分閾值為π/36,積分增益為0.005。
為解決控制器輸出能量過大的問題,文獻[23]給出了一種非線性反饋方法,較好地實現(xiàn)了控制能量與準確性的平衡。事實上由于船舶的運動特點,如果忽略掉死區(qū)問題和風流的影響,在任意運動狀態(tài)下向某一方向打舵,船舶都會產(chǎn)生該方向的轉(zhuǎn)艏加速度,因此對于航向保持問題,在不考慮快速性的情況下,只要執(zhí)行舵角大小超過當時的直航壓舵角就可以實現(xiàn)航向保持?;谶@一認知,可以根據(jù)航向誤差大小設計非線性函數(shù),適度削減較大誤差時的控制輸入而不對較小誤差時的控制輸入做過多影響。本文使用的非線性函數(shù)為:
(6)
式中:c為調(diào)整參數(shù),這里取為π/6;e為不大于π/2的航向誤差,若e>π/2,則取e=π/2。
被控對象模型采用下式的響應型非線性船舶運動模型[11]:
(7)
式中:K0=0.38,T0=297.75,α=11.95,β=23 928.91。控制系統(tǒng)的總體結(jié)構(gòu)如圖5所示,其中航向保持子系統(tǒng)的內(nèi)部結(jié)構(gòu)可參考文獻[19],不同之處只是控制器的設計以及一些參數(shù)的選取不同。
圖5 控制系統(tǒng)總體結(jié)構(gòu)Fig.5 Overall structure of control system
首先驗證積分分離和執(zhí)行器非線性處理在航向保持中的效果。設定航向保持的目標航向為30°,在系統(tǒng)中加入風浪干擾,假設定常風為蒲式6級(12 m/s),由文獻[1]可計算得出橫風時的等效壓舵角為0.97°,將其作為定常干擾加入控制系統(tǒng)中以檢驗穩(wěn)態(tài)誤差消除能力,參照文獻[19]加入浪力干擾,即白噪聲驅(qū)動的二階振蕩系統(tǒng),用它檢驗控制系統(tǒng)的魯棒性和噪聲抑制效果,噪聲強度0.001,取樣時間0.5 s,6級風下該二階振蕩系統(tǒng)為:
(8)
算法改進前后被控系統(tǒng)的航向和舵角輸出如圖6所示。可以看到,雖然上升時間較原來略長(從56 s增大到61 s),但操舵極值從23.5°降低到了15.5°,降低了執(zhí)行器的耗能和磨損,而且由于可實行大的積分項,在不帶來額外超調(diào)的同時,穩(wěn)態(tài)誤差的減小速率明顯加快。因此預測改進控制器的航跡保持效果也會比改進前要好。
現(xiàn)在考慮航跡保持。為確定航跡保持中參數(shù)λ的大小,對所建立模型進行25°舵角的旋回實驗,易得旋回進距約為480 m,為留有余量,這里λ取值為500。旋回舵角的選取說明:中國航海學會指出在航海實踐中駕駛員進行轉(zhuǎn)向時很少使用15°以上舵角,這一方面有助于防止橫搖幅度過大,另一方面更大的舵角所帶來的旋回改進效果有所下降。但這里選用25°作為限幅舵角,是希望留有安全余量,如果需要考慮避碰問題就需要打大舵角,因此這樣設計舵角限幅是符合常識的。另一個航跡保持參數(shù)Δ的取值為500,預設航路點為(0,0), (1 500,1 500), (750,3 000), (-1 500,3 000), (0,0),初始航向0°,初始船位(0,0),航速17.5 kn,海浪的影響保持不變,將定常風的影響由風生流取代,由文獻[24],干擾大小取向東0.4 kn。在以上參數(shù)設置下,航跡保持的仿真結(jié)果如圖7、圖8所示。圖9對2次仿真的結(jié)果進行了對比,注意到其中航跡誤差會突然增大,其原因是要轉(zhuǎn)向時所追蹤航線發(fā)生改變,因此這一誤差會增大到參數(shù)λ的大小。
關于航路點的說明:仿真驗證為展示轉(zhuǎn)向、暫態(tài)和穩(wěn)態(tài)的各個過程,航路點間的距離選取較近,而在實際航行中的航路點間間距通常較遠,離開一定距離后,穩(wěn)態(tài)時與上一航路點夾角較小,因此計算誤差會隨之增大。為應對這種情況,一個簡單的解決方法在算法開始時檢查錄入的航路點,并對間距大于某個閾值的相鄰兩點進行內(nèi)插,它的實現(xiàn)較為容易,因此這里不做進一步的解釋。
圖6 改進前后的閉環(huán)增益成形控制器的航向保持效果,目標航向為30°Fig.6 Course keeping control results of closed-loop gain shaping algorithm before and after improvement, desired course is 30°
圖7 應用式(5)航向保持算法的航跡保持效果Fig.7 Trajectory tracking results applying course keeping algorithm in Eq.(5)
圖8 應用改進航向保持算法的航跡保持效果Fig.8 Trajectory tracking results applying improved course keeping algorithm
表1為算法改進前后性能指標(ec為航向誤差,et為航跡誤差)。分析圖7~9和表1可以得到以下結(jié)論:1)所提出的控制方法可以較理想地實現(xiàn)船舶航跡保持控制,改進算法控制效果總體上優(yōu)于改進前。2)分離型積分項的引入對航跡保持中穩(wěn)態(tài)誤差依然有顯著的消除效果。3)對執(zhí)行器輸出的非線性處理平緩和減小了舵角輸出,但在大角度轉(zhuǎn)向時存在增大航跡誤差和超調(diào)的風險。4)航跡誤差的衰減總是落后于航向誤差。當然無論使用何種控制這種落后都是正常的,漂移的過程一定是航向領先,因此間接式控制是否增大了這一落后的時間尚難以界定。
圖9 改進前后的航向誤差、舵角、航跡誤差隨時間的變化Fig.9 Course error, rudder angle, and deviation with time before and after improvement
表1 算法改進前后性能指標
1)本文所采用的基于閉環(huán)增益成形算法的carrot following航跡保持策略可以實現(xiàn)航跡保持功能,效果令人滿意。
2)由于是間接式控制,對于航向保持的既有技術也可以遷移到航跡保持的框架內(nèi),這些技術能夠或多或少地保留原有的作用,發(fā)揮期望的效果。
3)就仿真結(jié)果而言,若轉(zhuǎn)向角度小于90°,在轉(zhuǎn)向點改變時能在90 s左右將航跡誤差減小到20 m以內(nèi),若轉(zhuǎn)向距離大于90°,則航向誤差可能會有一定的超調(diào),因此不建議在設計航路點時預設大角度轉(zhuǎn)向。
4)在6級風的仿真條件下,航跡保持算法的穩(wěn)態(tài)誤差小于5 m,滿足實際航海的要求。
若要加快航跡誤差的衰減速度,可以嘗試在控制率中引入航跡誤差,或者結(jié)合文獻[15]中的方法直接考慮操舵對船寬方向上動態(tài)的影響。對于大角度轉(zhuǎn)向的超調(diào)問題,也可設計算法提前規(guī)劃航跡以提前規(guī)避。