趙 碩,馮正平,鄭天海,潘萬鈞
(上海交通大學船舶海洋與建筑工程學院,上海 200240)
潛航器在海底探測、海洋開發以及軍事上都有著廣泛應用,而深度控制效果對潛航器的性能有著重要的影響,快速跟蹤并維持在目標深度附近是潛航器的常見控制目標[1]。潛航器的執行機構有水平舵、螺旋槳、壓載水艙以及波動鰭等[2-5]。利用水平舵對潛航器進行深度控制的方法具有執行機構響應快,控制量輸入精準的特點。水平舵作為執行機構被廣泛應用于潛航器,其產生的升力與航速密切相關。當潛航器航速較高時,水平舵能夠產生的升力較高,具有較強的控制力,而當潛航器在低航速狀態下航行時,控制力大幅降低,使潛航器深度控制的難度大幅增加[6]。另一方面,潛航器在航行過程中會受到波浪的擾動。相較于深水,潛航器在近水面航行時收到的波浪擾動力大幅增加,波吸力將使潛航器難以維持在目標深度附近[7]。
PID控制方法憑借著不依賴模型參數、適應范圍廣、簡單易用的優勢在眾多領域得到了廣泛的應用。其控制思想是根據控制目標與實際行為之間的誤差來確定消除此誤差的控制量。然而,PID方法也存在著諸多缺點。首先,該方法是根據已經存在的偏差來計算糾正偏差的控制量,因而產生滯后。其次,PID中微分項的獲取在工程中并不容易,處理不當會產生噪聲放大的不良效果。同時,為保證消除穩態誤差而存在的積分項可能會導致積分飽和等現象。最后,PID三項線性加權的方式未必能組合出最佳的控制量[8]。面對PID方法存在的缺點,國內外已經有多種控制方法被提出,包括模糊PID與滑模等控制方法[9-10]。
20世紀80年代末期,韓京清提出自抗擾(ADRC)控制方法,在保留了PID方法不依賴模型參數優點的基礎上,通過微分跟蹤器、擴張狀態觀測器以及非線性加權3個部分彌補了PID的不足。自抗擾控制方法已經被應用在諸多領域并取得了很好的效果[11]。本文為解決潛航器在近水面、低航速下受波浪擾動大,控制力降低,目標深度難以維持的問題,設計自抗擾深度控制器,通過擴張狀態觀測器觀測擾動并及時進行補償[12]。仿真與實驗結果證明,相比于傳統PID控制方法,本文所設計的深度控制器使得潛航器具有更好的深度控制性能。
潛航器在近水面、低航速狀態下航行時,深度控制難度較大[13]。本文潛航器具有首尾水平舵各一對,尾垂直舵一對。由于潛航器縱穩性較強,且在低航速下縱傾對深度變化影響較小,故重點考慮垂蕩運動,水平舵亦均用于進行深度控制,在總力矩輸出為0的情況下產生升沉控制力。潛航器升沉運動方程可以表示為:

式中:u為航速;w為垂蕩速度;z為深度;δb和δs分別為首尾水平舵舵角;Z0與M0分別為擾動力與力矩[14]。
由于本文潛航器的工況為近水面,波浪的擾動力相比于在深水中要更加劇烈,所以深度控制的難度顯著增加,需要提高控制力。而航速較低的情況下潛航器水平舵升力降低,需要設計更高效的控制器,因此本文采用自抗擾技術設的深度控制器。
自抗擾控制器主要包含3個部分,即跟蹤微分器、擴張狀態觀測器與非線性加權[8]。
1)跟蹤微分器可以提取微分信號,并且相對于傳統差分的方法具有噪聲放大效果不明顯的優勢,同時還可以安排過渡過程以避免由于初始偏差過大引起的超調問題。

式中:v1(k)為安排過渡過程后的目標;v2(k)為v1(k)的微分信號;h為時間步長;r為速度因子;fhan為最速控制函數。
2)擴張狀態觀測器能夠觀測控制目標的值及其微分信號,并且將除控制輸入量以外的合力作為總擾動(包括模型誤差與環境擾動力)觀測出以便給予補償。

式中:δ為參數。
3)非線性加權能夠將控制目標的偏差及其微分信號進行高效的組合以產生合適的控制輸入量。

式中:u0(k)為反饋信號及其微分信號組合輸出;為擴張狀態觀測器觀測出的總擾動的補償量;u(k)為控制量輸入。
由于在實際實驗過程中傳感器存在噪聲干擾,且擴張狀態觀測器觀測其微分信號時噪音的干擾作用將被放更大,進而容易導致執行機構出現高頻振動,一方面影響控制效果,另一方面可能導致機械損壞。本文將自抗擾控制技術中的跟蹤微分器(TD)用于濾波,相比傳統的一階差分,TD濾波器能夠在相同的相位滯后情況下產生更好的濾波效果[16]。
式中:v(k)為原始數據;v1(k)表示濾波后的數據;v2(k)表示v1(k)的微分信號;h為時間步長;h0為濾波因子;r為速度因子;fhan為最速控制函數。
本文對作為研究對象的潛航器進行建模,根據實際參數建立了Simulink仿真模型,并采取不同的控制器對潛航器深度控制進行仿真。PID控制器的控制效果如圖2所示,執行機構舵角如圖3所示。其中控制器參數為Kp=3000,Ki=50,Kd=0。
在無干擾的情況下,調節時間為48.1 s。在仿真過程的第200 s處,施加常值擾動以模擬波吸力。受波吸力的影響,潛航器深度減至4.84 cm,之后由控制器緩慢調節至5 cm。

圖1 自抗擾控制器結構圖Fig. 1 Structure of ADRC

圖2 PID控制器深度控制效果Fig. 2 Depth (PID)

圖3 PID控制器水平舵舵角變化Fig. 3 Angle of planes (PID)
自抗擾控制仿真結果如圖4所示,執行機構舵角如圖5所示。其中控制器參數如下:
過渡過程參數r=0.01,h=0.05;

圖4 深度控制效果Fig. 4 Deprh (ADRC)

圖5 ADRC控制器水平舵舵角變化Fig. 5 Angle of planes (ADRC)
擴張狀態觀測器參數β1=20,β2=60,β3=90,δ=0.01;
非線性加權參數β1=80,β2=400,δ=0.01。
調節時間為46.4 s。受波吸力的影響,最小深度達到了4.96 cm,之后由控制器調節至5 cm。
由仿真結果可以看出,當收到波吸力的影響時,潛航器具有深度減小的趨勢。PID控制器若無積分項則會存在穩態誤差,維持在偏離目標的某一深度。存在積分項的PID控制器依靠積分項消除穩態誤差使潛航器回到目標深度附近,但由于偏差的積分需要時間,所以具有明顯的控制滯后現象。與PID控制方法不同的是,面對擾動ADRC控制方法通過擴張狀態觀測器觀測擾動并快速調整舵角及時給予補償,使得潛航器在收到擾動力后能夠快速抵消波吸力對潛航器深度的影響,保持在目標深度附近。相較于PID控制器,ADRC控制器能夠更有效抵抗波浪擾動,具有更好的深度控制效果。
為驗證仿真結果,本文對潛航器深度控制進行了水池實驗驗證。由于水池長度有限,為保證足夠長穩態運動段,潛航器水池實驗采取分段控制的方法。第1階段,潛航器首先由壓載水艙控制下潛,在下潛深度達到0.65 m且升沉速度不大于0.05 m/s時進入第2階段。此時關閉水泵,同時啟動螺旋槳,由水平舵進行深度控制。由于壓載水艙控制精度有限,將導致第2階段潛航器具有非零浮力狀態,需要基于水平舵的深度控制器予以克服。實驗工況設定為速度0.17 m/s,目標深度0.7 m。
在實驗過程中,由于傳感器存在測量噪聲,使用TD濾波器對傳感器數據進行濾波以避免微分項中噪聲較大影響控制效果。實驗驗證了波浪擾動下ADRC深度控制器的深度控制效果,深度變化如圖6所示。
在深度首次到達0.7 m后,潛航器在控制器作用下平均深度為0.700 48 m。面對波浪的擾動,潛航器在航速下有效抵抗了波吸力的影響,沒有在波吸力的作用下體現出被吸至水面的趨勢,維持在了0.7 m處的目標深度附近,驗證了ADRC控制器具有良好的控制效果。

圖6 深度控制實驗效果Fig. 6 Depth

圖7 水平舵舵角變化實驗結果Fig. 7 Angle of planes
潛航器時常需要根據要求保持在某一目標深度附近,其控制性能決定對潛航器完成任務的質量。水平舵在潛航器上被廣泛采用,但由于水平舵提供的控制力與航速的平方成正比,所以在低航速狀態下,水平舵控制力大幅降低,此時傳統的PID控制方法無法發揮執行機構最大控制力,難以保證深度控制效果。同時潛航器在近水面受波浪力的擾動更大,二階波浪力將使潛航器具有被吸至水面的趨勢,使得潛航器更加難以保持深度。
為此,本文基于自抗擾控制技術(ADRC)設計深度控制器。通過仿真對比了在受到擾動后不同控制器的控制效果。PID控制器中的比例項依靠偏差可以抵消擾動但無法消除穩態誤差。控制器中的積分項可以消除穩態誤差誤差,但是偏差的積分需要時間所以在受到擾動后深度回到目標值的時間較長。利用自抗擾技術中擴張狀態觀測器能夠及時觀測擾動并進行補償的特點,ADRC控制器能夠在受到擾動后及時做出反應,使潛航器的深度在擾動下保持在目標深度。最后,進行了水池實驗,實驗中潛航器始終保持在目標深度0.7 m處附近,驗證了潛航器ADRC深度控制器在波浪擾動下的良好表現。壓載水深度控制調節能力強但控制量不精確,而基于自抗擾控制技術的水平舵控制具有控制量精確且能觀測總擾動的特點。未來的研究方向是將壓載水控制與水平舵控制結合起來,面對高強度的擾動使用壓載水進行大幅度調節,而擾動與壓載水合作用力作為總擾動再由水平舵進行精確控制。