董 逸,梁 鏡,唐文政
(1. 中國船舶集團有限公司第七一〇研究所,湖北 宜昌 443003;2. 清江創(chuàng)新中心,湖北 武漢 430076)
水下無人航行器,簡稱 UUV,是一種結合智能航行控制技術、水下聲吶探測技術、高精度導航技術以及浮力控制技術等的水下航行體。通過這些技術搭建的UUV可以在水下完成相應的任務。目前,在海洋資源勘探、水下救援和軍事上都有著比較廣泛的研究和應用[1]。
隨著社會的進步,為了滿足信息化市場多元化以及多變的作戰(zhàn)需求,實現(xiàn)體量大、航程遠、抗干擾性強的中大型水下無人航行器,水下無人航行器內水艙裝配是必不可少的。水艙的作用是為了調節(jié)航行器本身的密度,控制航行器的姿態(tài),實現(xiàn)航行器的上浮和下潛。目前對于水艙液位的調整主要運用在潛艇領域,即有人參與調節(jié)過程;而對于裝配水艙的水下無人航行器,調整航行器平衡狀態(tài)同樣是通過人為觀察航行器的姿態(tài)來調節(jié)水艙液位,以滿足航行器在出航前達到近似于零浮力狀態(tài)。在裝配水艙的無人航行器領域內調節(jié)平衡液位仍常依據(jù)人為經(jīng)驗為主的方式進行,無法形成科學化的調整方法。
具體方法:1)航行器處于水中靜止狀態(tài)下,通過控制水艙總水量,使得航行器整體浸沒在水下可見的深度范圍。2)通過外部傳感器觀察深度變化,得出深度偏差大小和深度變化方向,根據(jù)操作經(jīng)驗發(fā)出控制水艙的總水量的指令。當深度不再變大或變小時,確定水艙的總水量。3)確定總水量后,觀察航行器的姿態(tài)俯仰角,以俯仰角為0的標準,得出偏差大小和方向。根據(jù)航行器結構和操作經(jīng)驗,分別調節(jié)艏艉水艙的液位。
人為調節(jié)平衡液位對于精度的把控不足,調節(jié)時間也相對較長,并且對人員經(jīng)驗要求很高,普適性不足。
本文是為了尋找無人航行器在水下平衡姿態(tài)時所對應的平衡液位。航行器平衡姿態(tài)是滿足航行器深度穩(wěn)定、航行器姿態(tài)穩(wěn)定的狀態(tài)。航行器深度變化、航行器俯仰角變化是反應航行器平衡姿態(tài)的直接參數(shù)。航行器水艙水量變化又影響航行器深度變化、航行器俯仰角變化。故無人航行器的平衡姿態(tài)可以通過水艙水量進行調節(jié)控制。因此,探究航行器在靜水面情況下,水艙液位總量變化和航行器深度變化、艏艉液位差變化和航行器俯仰角變化的關系,并提出基于裝配水艙的水下無人航行器狀態(tài)下,通過PID算法實現(xiàn)自動調整航行器的平衡液位的研究方法。最后,結合航行器的水艙結構,實現(xiàn)調整艏艉水艙液位達到航行器平衡姿態(tài)的流程方法。
方法原理是基于“浮性定律”,任何物體在液體中都會受到浮力的作用,浮力的大小等于物體本身所排開液體的重量。當物體的重量大于浮力時它就會下沉;小于浮力時就會上??;等于浮力時就會懸停在液體中,這 2個力大小相等,但方向正好相反。
航行器靜水力,對于水面狀態(tài)的航行器而言,由于并非所有質量浸沒在水面以下,其受到的浮力與浸沒在水中的航行器排水體積成正比;航行器注水過程中,航行器的重量增加,即航行器排水體積同比增大,當航行器整個浸沒在水中時,并且航行器的浮力與航行器的重量保持平衡時,則停止注水。此時的航行器狀態(tài)被稱為平衡狀態(tài),此時的液位被稱為平衡液位。
航行器靜止在水中受水的浮力、阻力、自身重力3力平衡。根據(jù)流體力學經(jīng)驗公式,水中阻力和運動方向截面積、運動速度成正比[2]。
式中:m為航行器質量;P為航行器重力;V為航行器排水體積;B為航行器浮力;V為速度;S為截面積;K為系數(shù)。
該平衡狀態(tài)是航行器的 P +B+F= 0的狀態(tài)。
當滿足 P +B+F= 0的狀態(tài)后,結合航行器的結構,航行器姿態(tài)可能出現(xiàn)“低頭”或者“抬頭”的異常姿態(tài),見圖1航行器水下異常姿態(tài)圖,即出現(xiàn)α>0或者α<0的情況(α正值為俯仰角向上)。
圖1 航行器水下異常姿態(tài)圖Fig.1 Abnormal underwater attitude of the UUV
圖 9 自主控制流程圖Fig.9 Autonomous control flow chart
在保持總水量不變的情況下,通過調節(jié)艏艉艙水量的比例,控制航行器的姿態(tài),使得當α=0時即達到水下平衡狀態(tài)。
假設航行器在靜水面,初始深度為0,初始俯仰角為0,初始液位為0,航行器因為浮力大于重力,處于水面狀態(tài)。
為了使航行器從水面到整個浸沒至水下,通過調節(jié)水艙總水量,達到航行器深度變化的目的。在增加一個深度誤差變化的擾動后,根據(jù)不斷檢測深度的變化,依據(jù)PID控制算法控制單位時間總液位變化量。對總液位變化量進行積分,可以得出液位總量。而通過液位總量與無人航行器的排水量的差與深度呈成一定關系,并通過深度變化反饋給輸入,從而實現(xiàn)航行器總水量自動調整的系統(tǒng)模型,實現(xiàn)航行器懸停到水下效果,使其具有良好穩(wěn)定性和動態(tài)性[3]。
其次,當航行器達到水下條件后,在增加一個俯仰角變化的擾動后,根據(jù)不斷檢測俯仰角的變化,依據(jù)PID控制算法對艏艉艙液位差變化量進行調整,對艏艉艙液位差變化量進行積分,可以得出艏艉艙液位差。通過艏艉艙液位差與俯仰角呈成一定關系,并通過俯仰角變化反饋給輸入,實現(xiàn)對航行器姿態(tài)有效控制效果,使其具有良好動態(tài)性和魯棒性。
航行器深度誤差為Δdep,即輸入變量,是當前t時刻下的深度誤差。Δc1為液位總量變化量(即輸出變量),Δc1為正數(shù)時為注水狀態(tài);Δc1為負數(shù)時為排水狀態(tài);Δc1由1個開關控制[4]。
航行器俯仰角誤差為ΔPitch,即輸入變量,是當前t時刻下的俯仰角誤差。艏艉液位差的變化量Δc2,即輸出變量,艏艉液位差由艉艙液位減去艏艙液位。Δc2為正數(shù)時,艏艉液位差增大;Δc2為負數(shù)時,艏艉液位差減??;Δc2由2個開關控制,艏艉水艙分別由1個開關控制。通過航行器結構和液位總量,可以計算出艏艉艙的液位量。
式中:U1為總液位量的變化量;Kp1為比例增益;Kd1為微分常數(shù);Ki1為積分常數(shù)。
式中:U2為艏艙液位差的變化量;Kp2為比例增益;Kd2為微分常數(shù);Ki2為積分常數(shù)。
PID控制算法設計分為2步:尋找航行器水下懸浮的液位總水量;尋找航行器姿態(tài)穩(wěn)定的艏艉水艙液位水量。
1)假設水中航行器靜止在水面,水的阻力可以簡化為深度的一階導數(shù),即縱向速度成線性關系,航行器在水面為正浮力狀態(tài)。經(jīng)過物理受力分析得:
式中:K為系數(shù);Dep為深度;Dep一階導數(shù)為深度變化量;Dep二階導數(shù)為深度變化量速度;F0為初始的正浮力;V為總液位量;m0為航行器在水艙的空時重量。
假設航行器在水面時增加某個深度誤差的擾動,其深度誤差Δdep的絕對值大于零,輸入至PID算法控制器內,通過調節(jié)水艙總液位變化使航行器的深度變化為0和深度誤差變化率為0[5]。并對總液位變化量進行積分,除去航行器本身的重力,通過傳遞函數(shù)(式(7))關系得出深度,并對深度變化率作為反饋輸入系統(tǒng),確定使航行器穩(wěn)定在平衡狀態(tài)艏艉液位總水量。
圖2 航行器深度與水艙總液位調節(jié)模型圖Fig.2 Adjustment model diagram of UUV depth and total water volume of water tank
2)假設考慮俯仰角在-90°~90°范圍內進行變化,則俯仰角正切值與航行器艏段下降的距離成單調性。只考慮航行器艏段分析,原理同理公式3,經(jīng)物理受力分析得:
式中:K1為系數(shù);h為航行器艏段與水平面垂直距離;h一階導數(shù)為距離變化量,h二階導數(shù)為距離變化量速度;F0艏為艏段的正浮力;V液位差為艏艉液位量差;m0艏為航行器在水艙的空時重量。
通過建模分析,信號輸入為液位差,輸入信號為I( t)=K2t;輸出信號為俯仰角時,輸出信號為所得傳遞函數(shù)同公式6。
液位差與俯仰角正切值關系經(jīng)計算其傳遞函數(shù)為
根據(jù)原理分析,假設航行器在水下,航行器調整目標為俯仰角0,給俯仰角某個擾動,俯仰角誤差ΔPitch不為 0,將俯仰角誤差輸入至 PID算法控制器內,通過調節(jié)艏艉艙液位差的變化使得調整航行器姿態(tài)ΔPitch為0,并且ΔPitch變化率為0。對艏艉艙液位差的變化量進行積分,除去艏段本身的重力,通過傳遞函數(shù)(公式(10))關系得出俯仰角,并用俯仰角變化率作為反饋輸入系統(tǒng),最終得出航行器穩(wěn)態(tài)下的艏艉艙液位差[6]。
結合第1步艏艉水艙液位的總液位量和第2步的艏艉水艙液位差得出各個艏艉艙液位。
圖3 航行器俯仰角與艏艉水艙液位差調節(jié)模型Fig.3 Adjustment model of UUV pitch angle and the liquid level difference between bow and stern water tanks
為了驗證本文 PID算法對航行器平衡液位的自主調整的有效性和可行性,運用上述建立的環(huán)境模型進行仿真試驗。本文采用MATLAB進行仿真,仿真采用分步進行,第1步,對深度誤差進行調節(jié)。其中仿真參數(shù):初始深度誤差設置為0.1 m,目標參數(shù)為0,水流密度設置為1 000 kg/m3,目標深度采用階躍響應信號。當系統(tǒng)啟動后一個深度變化擾動,默認該擾動即可出現(xiàn)0.1 m深度差,需航行器深度誤差減少到0(即穩(wěn)定到0.001 m范圍內)。其目的是滿足深度誤差以及深度誤差變化率均穩(wěn)定為0。第2步,對俯仰角誤差進行調節(jié)。其中仿真參數(shù):初始俯仰角誤差設置為0.1°,水流密度設置為1 000 kg/m3,俯仰角誤差擾動采用階躍信號響應,當給系統(tǒng)一個俯仰角變化擾動,表示航行器受到結構不對稱導致的姿態(tài)不均衡,航行器俯仰角減少到0.001°內收斂即可。其目的是滿足俯仰角、俯仰角速度均穩(wěn)定為0。
在執(zhí)行第1步深度調節(jié)時,航行器處于靜水面,由于浮力大于重力,航行器在開始注水液位調節(jié)時,深度無明顯變化;當航行器的重力大于浮力時,航行器深度會出現(xiàn)變化,深度呈增大趨勢,航行器縱向速度大于 0。此時航行器進行排水液位調節(jié),減緩深度呈增大趨勢,液位控制直到縱向速度小于 0,深度呈減小趨勢。反復進行調節(jié)總液位直到縱向速度接近于 0,并使航行器整體浸沒于水中。其中,液位調節(jié)總量基于算法計算得出。
PID 算法內設置 Kp為 0.075,Ki為 0,Kd為 0.1,N為 0.5[7]。不同的水下無人航行器對水艙配置不同,該參數(shù)也需要做相應調整。在滿足深度誤差低于0.000 2時調整完成。
圖4 深度值仿真曲線Fig.4 Simulation curve of depth value
深度最大超調1.4 m,超調量為1.977%,上升時間為4.7 s,在約35 s達到穩(wěn)定在水下1.33 m。
通過深度誤差變化量與液位總流量之間關系以及傳遞函數(shù)(公式(7))實現(xiàn)液位總流量與深度之間的轉換[8]。本仿真驗證過程中,在水下1.33 m時,水下最大水艙總液位為100 L。
圖5 總液位變化仿真曲線Fig.5 Simulation curve of total liquid level change
該過程的液位總量上升時間為 8.1 s,水艙水量超調為107.6 L,并在35 s滿足液位總流量100 L的要求。
當航行器開始調節(jié)液位時,由于需調節(jié)航行器正浮力,水艙液位需進行注水。13 s首次達到最大深度,深度變化率為0時,液位總量超過了平衡狀態(tài),航行器具有負浮力,航行器又會進行水艙液位排水。當深度變化率以及深度誤差變化率為0時,在 35 s水艙液位停止調整,即而對深度值無需定量的要求。
在完成航行器深度調節(jié)后,由于航行器結構差異或者艏艉水艙液位調節(jié)不均衡導致航行器俯仰角不為0,因此需要第2步姿態(tài)調節(jié)過程。在保證總水量不變的前提下,航行器俯仰角出現(xiàn)大于 0時,即需要艏艙進行注水或者艉艙排水,減小艏艉液位差;航行器俯仰角出現(xiàn)小于0時,即需要艉艙進行注水或者艏艙排水,增大艏艉液位差。航行器俯仰角速度出現(xiàn)大于0時,即表示俯仰角呈增大趨勢,需對液位調節(jié)量需要增加;俯仰角速度出現(xiàn)小于0時,即表示俯仰角呈減小趨勢,需對液位調節(jié)量需要減少。直至航行器俯仰角為0,并且俯仰角速度也為0,則完成航行器姿態(tài)調整,記錄當前艏艉液位作為平衡液位。
PID 算法內 Kp為 0.075,Ki為 0.025,Kd為 0.5,N為5[7],在滿足俯仰角速度低于0.000 2時為調整完成。
圖6 俯仰角仿真曲線Fig.6 Simulation curve of pitch angle
圖7 俯仰角速度仿真曲線Fig.7 Simulation curve of pitch angular velocity
俯仰角最大超調-0.28°,超調量為1.984%,調節(jié)目標是使俯仰角、俯仰角速度均為 0。在 6.27 s俯仰角速度第1次達到0,但由于此時仍存在調節(jié)水艙過程為最大水量,處于非平衡態(tài),使得航行器艏艙為排水調節(jié)姿態(tài)。在21 s俯仰角速度第2次達到0,但由于俯仰角不為0,處于非平衡態(tài),使得航行器艏艙為注水調節(jié)姿態(tài);經(jīng)過分析,在60 s時滿足俯仰角、俯仰角速度均為0。
基于俯仰角誤差變化量與艏艙液位總流量之間的關系,通過傳遞函數(shù)(公式(10))實現(xiàn)艏艙液位差與俯仰角的正切值的轉換[8]。本仿真驗證過程中,在水下俯仰角為0時,艏艉艙水艙液位差為50 L。
圖8 艏艉水艙液位差仿真曲線Fig.8 Simulation curve of liquid level difference between bow and stern tanks
在8.09 s達到最大液位差53.94 L,并在60 s滿足水艙液位差50 L的要求。
根據(jù)第1步結果,水艙和液位為100 L,水艙差液位49.8 L,可以推測艏艙液位25 L,尾艙液位為75 L。實際結果均在100 s內進行收斂,與實際設計的水下無人航行器仿真模型結果相同。
自動調節(jié)過程,由儀器儀表代替人為的觀察,并由航行器自主進行判斷控制水艙的水量,模仿人為手動調節(jié)的過程。
自主過程控制實現(xiàn)方式是通過軟件算法實現(xiàn)自主的調節(jié)過程。其中調節(jié)過程分為3步:1)通過對艏艉艙交替注水方式進行,每次注水量可以參照總水艙5%~8%,調節(jié)航行器至水下狀態(tài);2)通過深度變化情況,調節(jié)艏艉水艙總液位,采用對艏艉艙交替注排水方式進行,每次注水量可以參照總水艙2%~5%,使航行器穩(wěn)定在水下,處于懸浮態(tài);3)通過航行器姿態(tài)變化情況,調節(jié)艏艉水艙液位差,采用對艏艉艙交替注排水方式進行,每次注水量可以參照總水艙 0.5%~2%,使航行器以俯仰角為0的姿態(tài)穩(wěn)定在水下。
在水下無人航行器自主調節(jié)平衡液位過程中,利用經(jīng)典的PID算法實現(xiàn)平衡液位自主調節(jié)。該算法不僅具有穩(wěn)定性好、適應性高、計算量小、容易實現(xiàn)等特點,同時便于在工程上進行應用。由算法仿真結果可知,水下無人航行器的PID平衡液位自主調整超調量小,能夠在較短時間內穩(wěn)定;水下無人航行器水艙平衡液位自主調整能較好地適應外來干擾,具有較強的魯棒性和自適應性,可以獲得很好的控制效果,具有較好的工程適用前景。