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