王 珺,俞萬能,2,3,李光澤
(1.集美大學(xué)輪機(jī)工程學(xué)院,福建廈門 361021;2.福建省船舶與海洋工程重點實驗室,福建廈門 361021;3.福建省近海小型綠色智能船舶系統(tǒng)工程研究中心,福建廈門 361021)
水面無人艇(unmanned surface vehicles,USV)可以通過艇上智能控制系統(tǒng)與遠(yuǎn)程無線遙控系統(tǒng)相配合,實現(xiàn)手動操控和自主航行功能。水面無人艇又可以看作是一個在水面上執(zhí)行任務(wù)的智能機(jī)器人,可以根據(jù)不同的需求搭載相應(yīng)的功能模塊,構(gòu)成擁有特定功能的機(jī)器人,代替人們執(zhí)行多種任務(wù)。水面無人艇具有機(jī)動性強(qiáng)、隱身性能好、成本低等特點,在民用與軍用上都具有重要作用[1]。目前,相比于國外的無人艇技術(shù),我國在許多關(guān)鍵領(lǐng)域的難題還需攻克[6]。田延飛等[7]設(shè)計的遠(yuǎn)程控制系統(tǒng)以 Arduino 2560 為中央控制器,船舶的運動狀態(tài)通過驅(qū)動電機(jī)來進(jìn)行轉(zhuǎn)換,并通過 GPRS 實現(xiàn)無人艇端與岸基操控端的無線通信,但是由于GPRS網(wǎng)絡(luò)速度慢且信號不好,會造成通信的延遲,難以精確地實現(xiàn)運動控制;王寧等[9]則通過LOS(line-of-sight)制導(dǎo)方法及PID(proportional-integral-differential)控制器實現(xiàn)對無人艇的運動控制,但是由于PID控制具有參數(shù)整定困難以及不適應(yīng)非線性系統(tǒng)的控制等問題,因此難以滿足控制要求;李麗等[10]設(shè)計的小型吊艙式無人艇采用TMS320F2812 DSP(digital signal processor)作為控制器,并采用DTU(data transfer unit)進(jìn)行2G網(wǎng)絡(luò)通信,由于海上風(fēng)、浪、流等干擾,以及移動信號弱等環(huán)境因素的影響,使得其設(shè)計的無人艇難以滿足高精度的控制要求以及低延遲的通信要求;田勇[11]采用主頻不高的STM32作為控制器,由于體積小且功能單一,無法滿足多功能的需求。
為解決水面無人艇遠(yuǎn)程控制中通信延遲和信號差等通信問題,本研究設(shè)計了無人艇的艇載通信系統(tǒng)和岸基通信系統(tǒng),搭建DSP結(jié)合ARM(advancd RISC machine)控制器的硬件平臺,研發(fā)通信導(dǎo)航運動控制系統(tǒng);采用模糊算法改進(jìn)PID控制器,通過模糊推理實現(xiàn)對PID控制參數(shù)的調(diào)整,以期提高無人艇運動控制的準(zhǔn)確性。
本研究根據(jù)需求搭建的水面無人艇實物圖見圖1,無人艇長為1.82 m、寬為0.58 m,吃水深度為0.18 m,質(zhì)量為90 kg。所設(shè)計的無人艇主要由船體、電池模塊、導(dǎo)航模塊、推進(jìn)模塊、遠(yuǎn)程控制模塊和攝像頭等硬件組成。電池模塊由電池和電池管理系統(tǒng)組成;導(dǎo)航模塊由GPS和慣性導(dǎo)航系統(tǒng)組成;推進(jìn)模塊由螺旋槳、數(shù)字舵機(jī)和推進(jìn)電機(jī)組成;遠(yuǎn)程控制模塊分為艇載控制系統(tǒng)和岸基網(wǎng)絡(luò)控制系統(tǒng)兩大部分,兩者通過中介DTU進(jìn)行雙向的信息傳輸,即以DTU為通信終端設(shè)備,通過5G移動通信網(wǎng)絡(luò)與阿里云服務(wù)器建立連接,將信息傳輸至云端服務(wù)器,同時可使用臺式計算機(jī)、筆記本電腦、平板電腦和手機(jī)等移動網(wǎng)絡(luò)設(shè)備訪問水面無人艇網(wǎng)絡(luò)控制界面,對無人艇進(jìn)行運動控制和狀態(tài)監(jiān)測。
為實現(xiàn)艇內(nèi)設(shè)備以及艇載系統(tǒng)與岸基系統(tǒng)之間的通信[12],將TMS320F2812型號DSP控制器[13]與STM32H743型號的ARM控制器相結(jié)合,以此作為無人艇的控制器(如圖2所示)。在控制系統(tǒng)架構(gòu)中(如圖3),DSP控制器主要用來讀取推進(jìn)電機(jī)、數(shù)字舵機(jī)及電池的電壓電流等數(shù)據(jù)信息,對采集的數(shù)據(jù)信息進(jìn)行融合處理。DSP控制器通過脈沖寬度調(diào)制的方式對直流無刷電機(jī)和數(shù)字舵機(jī)進(jìn)行控制,從而實現(xiàn)對無人艇運動速度和運動方向的控制。ARM控制器對慣性導(dǎo)航系統(tǒng)所傳輸?shù)臒o人艇實時信息解析出經(jīng)緯度,處理器將大地坐標(biāo)系下的目標(biāo)點、起始點和當(dāng)前點的經(jīng)緯度投影出平面坐標(biāo)系的二維(x,y)坐標(biāo),并用三角函數(shù)進(jìn)行運算,計算出無人艇實際航向和期望航向之間的誤差,得出無人艇回到實際航線所需的轉(zhuǎn)向及轉(zhuǎn)速信息。最后,將控制指令通過ARM傳給執(zhí)行機(jī)構(gòu),從而實現(xiàn)無人艇的路徑跟蹤。
2.1.1 數(shù)據(jù)采集
數(shù)據(jù)采集是實現(xiàn)水面無人艇遠(yuǎn)程控制至關(guān)重要的環(huán)節(jié)。推進(jìn)電機(jī)和數(shù)字舵機(jī)的電壓、電流數(shù)據(jù)采用DSP內(nèi)置的A/D輸入接口進(jìn)行采集,從而將模擬信號轉(zhuǎn)換為數(shù)字信號。電池的電壓和電流的數(shù)據(jù)信息將通過BMS(battery management system)[14]模塊采集。無人艇的經(jīng)緯度和航向等信息通過慣性導(dǎo)航系統(tǒng)(見圖4)采集,慣性導(dǎo)航系統(tǒng)上電后可以自動發(fā)送實時監(jiān)測的數(shù)據(jù)信息,通信協(xié)議選用MODBUS協(xié)議。
2.1.2 數(shù)據(jù)通信及航向引導(dǎo)計算
艇載的通信通過串口實現(xiàn)。如圖5所示,經(jīng)緯度的數(shù)據(jù)信息從慣性導(dǎo)航系統(tǒng)輸出,先通過RS-232轉(zhuǎn)RS-485無源光電隔離轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,接著通過RS-485傳輸至ARM,在ARM中完成經(jīng)緯度的坐標(biāo)轉(zhuǎn)換及坐標(biāo)的計算。慣性導(dǎo)航系統(tǒng)的數(shù)據(jù)幀格式為1位起始位,8位數(shù)據(jù)位,1位停止位,無校驗位,先發(fā)低字節(jié),后發(fā)高字節(jié),每字節(jié)又低位先發(fā)送。其中經(jīng)緯度的數(shù)據(jù)由8個字節(jié)組成,前4個字節(jié)為經(jīng)度,后4個字節(jié)為緯度,經(jīng)緯度的讀取方式為從低位往高位讀取。由于從慣性導(dǎo)航系統(tǒng)輸出的經(jīng)緯度數(shù)據(jù)為16進(jìn)制數(shù)據(jù),故先將16進(jìn)制的數(shù)據(jù)轉(zhuǎn)換為10進(jìn)制的數(shù)據(jù)格式,再將轉(zhuǎn)換后的數(shù)據(jù)轉(zhuǎn)換成度數(shù)的格式,利用轉(zhuǎn)換后的經(jīng)緯度進(jìn)行無人艇航向引導(dǎo)的計算。
本研究所使用的航向引導(dǎo)法是使用類似于視線制導(dǎo)的方法,通過慣性導(dǎo)航系統(tǒng)實時采集的經(jīng)緯度信息來進(jìn)行。圖6中A代表無人艇起始點的位置,B代表目標(biāo)點位置,C為受到風(fēng)浪流等干擾后偏離航線的實時位置點。A和B點的位置信息由無人艇上位機(jī)軟件界面輸入,通過DTU的傳輸下發(fā)至ARM,C點為慣性導(dǎo)航系統(tǒng)實時采集的無人艇經(jīng)緯度信息,將A、B和C三點的經(jīng)緯度通過ARM進(jìn)行坐標(biāo)系的轉(zhuǎn)換,使三點在同一個笛卡爾坐標(biāo)系中,便于計算出θ的角度。當(dāng)θ>10°時,會將舵機(jī)進(jìn)行20°的一個轉(zhuǎn)向;當(dāng)5°<θ<10°時,會將舵機(jī)偏轉(zhuǎn)10°;當(dāng)θ<5°時,屬于在允許的誤差范圍內(nèi)。完成航向的制導(dǎo)計算后,在原來的慣導(dǎo)數(shù)據(jù)后追加8個字節(jié)的控制數(shù)據(jù),將合成的控制數(shù)據(jù)通過RS-232傳輸至DSP用來控制數(shù)字舵機(jī),而采集的慣導(dǎo)數(shù)據(jù)經(jīng)過RS-232從DSP傳輸至DTU,DTU則將傳來的數(shù)據(jù)通過移動網(wǎng)絡(luò)傳輸至SQL數(shù)據(jù)庫。
遠(yuǎn)程控制界面如圖7所示,主要以阿里云服務(wù)器、Web服務(wù)器[15]、Apache服務(wù)器、MySQL數(shù)據(jù)庫為基礎(chǔ),基于5G移動通信技術(shù),設(shè)計開發(fā)無人艇遠(yuǎn)程控制系統(tǒng)。該系統(tǒng)可對無人艇進(jìn)行遠(yuǎn)程控制,并可對電池組信息、推進(jìn)系統(tǒng)狀態(tài)、航行海況、無人艇的位置等進(jìn)行實時監(jiān)控,可以直觀獲取當(dāng)前以及歷史運行數(shù)據(jù)。
2.2.1 數(shù)據(jù)庫與服務(wù)器
數(shù)據(jù)庫采用MySQL3.2。MySQL[16]具有操作簡單,占用體積小,方便調(diào)用數(shù)據(jù)并提供多種編程接口的特點。Apache服務(wù)器功能是提供網(wǎng)上信息瀏覽服務(wù),當(dāng)客戶端向Apache服務(wù)器管理的HTML靜態(tài)網(wǎng)頁文件發(fā)起文件請求,Apache服務(wù)器接受到該請求并在相關(guān)目錄下尋找這個HTML網(wǎng)頁文件,然后將結(jié)果反饋至客戶端瀏覽器,附帶的文本類型信息會指示瀏覽器如何查看文件[17]。云服務(wù)器[18]采用阿里云ECS(elastic compute sercive)服務(wù)器,它可根據(jù)用戶需求提供彈性可伸縮的計算服務(wù)[19]。
DTU與ECS的數(shù)據(jù)交換是基于因特網(wǎng)的TCP協(xié)議格式完成,需配置DTU撥號參數(shù)、云服務(wù)器IP地址、串口波特率和端口號等工作參數(shù)。DTU上電工作后,首先讀取內(nèi)部FLASH中保存的工作參數(shù),DTU隨即登錄移動網(wǎng)絡(luò),進(jìn)行PPP撥號,獲得一個由移動隨機(jī)分配的內(nèi)部IP網(wǎng)絡(luò)。云服務(wù)器的Web服務(wù)器收到DTU的TCP通信請求并響應(yīng)請求,向DTU返回請求成功字符,則DTU與Web服務(wù)器連接成功[20]。
2.2.2 客戶端界面設(shè)計
客戶端界面由HTML和Javascript編寫。后臺腳本程序用來實現(xiàn)CGI(common gateway interface)功能[21],Web瀏覽器發(fā)送給Web服務(wù)器的信息將由CGI程序接收并進(jìn)行處理[22]。當(dāng)瀏覽器收到Apache服務(wù)器發(fā)來的HTML代碼后,逐條解析成網(wǎng)頁,在客戶端瀏覽器顯示無人艇的電池組信息、雷達(dá)信息、視頻畫面、運動狀態(tài)等,完成所需的人機(jī)交互功能。針對無人艇遠(yuǎn)程控制與監(jiān)測的功能需求,前端人機(jī)交互由無人艇監(jiān)控界面、控制界面、蓄電池組信息界面、雷達(dá)數(shù)據(jù)界面、歷史航行記錄界面組成。
水面無人艇的控制是通過數(shù)字舵機(jī)的轉(zhuǎn)向以及螺旋槳的轉(zhuǎn)速來完成的,模糊PID控制方法基于微控制器來實現(xiàn)。無人艇的運動控制系統(tǒng)主要由上、下位機(jī)兩個部分組成,軟件流程圖如圖8所示。
無人艇采用吊艙式設(shè)計,通過對推進(jìn)電機(jī)和數(shù)字舵機(jī)的控制來實現(xiàn)無人艇航速和航向的控制。傳統(tǒng)的PID控制器不能適應(yīng)外界擾動對航向變化的影響,主要是因為其控制器參數(shù)不會隨著外部擾動的變化而改變。對于這種非線性、時變的系統(tǒng),控制方法主要采用神經(jīng)網(wǎng)絡(luò)和模糊邏輯控制。本研究采用模糊PID控制方法,通過模糊推理實現(xiàn)PID參數(shù)的在線整定,不僅保持了傳統(tǒng)控制系統(tǒng)原理簡單、使用方便的優(yōu)點,而且具有更強(qiáng)的靈活性、適應(yīng)性和較強(qiáng)的魯棒性。無人艇的航行運動控制結(jié)構(gòu)如圖9所示,給定的運動控制指令與USV反饋回來的當(dāng)前航向、航速的偏差γ、μ通過模糊PID調(diào)節(jié),消除誤差,通過脈寬調(diào)制來控制方向φ和航速V,從而對無人艇航行進(jìn)行控制。
為了驗證水面無人艇遠(yuǎn)程運動控制系統(tǒng)的實時性、操作性及準(zhǔn)確性,基于上述通信架構(gòu)和運動控制方法,使用自主研發(fā)的水面無人艇搭載控制系統(tǒng)進(jìn)行實船測試。在廈門某水域先后進(jìn)行了多次下水航行測試,實船測試如圖10所示。
水面無人艇在遠(yuǎn)程人工控制模式下航行時,需要經(jīng)常向USV發(fā)出控制指令。因此,手動控制的基礎(chǔ)就是控制指令能否實時下達(dá)。如表1所示,測試了不同地點無人艇對控制指令的響應(yīng)時間。測試結(jié)果表明:本設(shè)計的無人艇遠(yuǎn)程控制系統(tǒng)的通信延遲短,能夠滿足控制要求。
表 1 遠(yuǎn)程控制實時性測試表
航向、航速控制是USV運動控制的基礎(chǔ)和關(guān)鍵。本系統(tǒng)所選用的推進(jìn)電機(jī)為直流無刷電機(jī),最大轉(zhuǎn)速1100 r/min,將電機(jī)轉(zhuǎn)速劃分為四個檔位:DS、S、H、F,分別對應(yīng)四個航速。USV實時加速性能測試結(jié)果見表2。
表2的測試結(jié)果表明:本研究采用模糊PID控制方法可以有效地控制無人艇的運動,能夠根據(jù)遠(yuǎn)程運動控制指令校準(zhǔn)和穩(wěn)定航速,使無人艇遠(yuǎn)程運動控制更具精確性。
表 2 推進(jìn)性能測試數(shù)據(jù)
根據(jù)無人艇的主要參數(shù),為了驗證無人艇控制系統(tǒng)的靈敏性和可操作性,本文分別對直線行駛以及設(shè)定航速、轉(zhuǎn)舵角度下的巡回半徑分別進(jìn)行了PID控制實驗和模糊PID實驗,巡回半徑實驗舵角范圍為[-60°,+60°]。在遠(yuǎn)程運動控制測試中,由于沒有航行軌跡繪制圖,所以測試完成后需要對MySQL數(shù)據(jù)庫存儲數(shù)據(jù)進(jìn)行分析。根據(jù)MySQL數(shù)據(jù)庫存儲的航行數(shù)據(jù),通過MATLAB坐標(biāo)轉(zhuǎn)化運算,結(jié)合航速和航向大小變化在地圖上進(jìn)行數(shù)據(jù)擬合得到無人艇直線行駛運動軌跡圖,如圖11所示。
圖11a為水面無人艇采用PID控制的直線行駛實驗的軌跡圖,綠標(biāo)為起點,紅標(biāo)為終點;圖11b為模糊PID控制的直線行駛的軌跡圖,其中紅色的航線為設(shè)定的期望航線,藍(lán)色的航線為實際航線。圖11a中,通過實際航線與期望航線的誤差計算可知最大的偏航距離為5 m;圖11b使用改進(jìn)后的控制器,通過實際航線與期望航線的對比可知,最大的偏航距離為 1 m。
通過MATLAB對慣導(dǎo)系統(tǒng)采集回來的實際航向與期望航向進(jìn)行分析,結(jié)果如圖12所示。圖12a采用原控制器,設(shè)置的期望航向角為60°,實際航向與期望航向最大誤差將近20°;圖12b采用改進(jìn)后的控制器,設(shè)置的期望航向角為110°,通過期望航向與實際航向?qū)Ρ?,可知最大誤差在10°以內(nèi)。由此可以清晰地看出改進(jìn)后的控制系統(tǒng)在控制無人艇直線航行的時候,可以更好地控制航跡,使得航向偏差控制在允許的范圍內(nèi),無人艇的控制系統(tǒng)更加穩(wěn)定,受其他干擾因素的影響比較小。
圖13a為水面無人艇采用PID控制的巡回半徑實驗的軌跡圖,圖13b為模糊PID控制的巡回半徑實驗的軌跡圖。圖13中紅色的航跡為通過計算之后的期望航跡,藍(lán)色的航跡為無人艇通過實船實驗所得的實際航跡,從中也可以清晰地看出改進(jìn)后的控制系統(tǒng)在風(fēng)、浪、流等外界擾動的情況下,無人艇做巡回運動時,抗干擾能力變強(qiáng),穩(wěn)定性變強(qiáng),回轉(zhuǎn)性能也更優(yōu)異。
給定無人艇航速V,且無人艇橫傾角小于15°,當(dāng)船速穩(wěn)定后,逐漸增加舵角φ,可以得到不同船速下的巡回最小半徑航行軌跡。由此獲取不同給定航速、航向下的巡回半徑,如表3所示。
表 3 巡回半徑表
綜上,測試結(jié)果表明:本研究研發(fā)的小型吊艙式無人艇遠(yuǎn)程控制系統(tǒng),經(jīng)實船實驗驗證,在不同航速下無人艇轉(zhuǎn)舵的靈活性、可操作性以及遠(yuǎn)程控制的實時性均能夠滿足水面無人艇的遠(yuǎn)程運動控制要求。
本文設(shè)計了水面無人艇的艇載控制系統(tǒng)和岸基控制系統(tǒng),搭建了無人艇通信導(dǎo)航系統(tǒng)。同時基于阿里云服務(wù)器、Web服務(wù)器、Apache服務(wù)器及MySQL數(shù)據(jù)庫開發(fā)了無人艇運動控制網(wǎng)絡(luò)界面和狀態(tài)監(jiān)控界面,可通過手機(jī)、iPad、筆記本電腦等遠(yuǎn)程設(shè)備控制無人艇,且遠(yuǎn)距離控制延遲較小。水面無人艇的運動控制系統(tǒng)基于DSP和ARM控制器,在原來PID控制算法中加入模糊控制算法,提高了無人艇的航跡控制精度。搭建實驗平臺并進(jìn)行實船實驗,實船測試結(jié)果表明,本研究所研發(fā)的5G通信技術(shù)下的水面無人艇控制系統(tǒng)能夠滿足遠(yuǎn)程運動控制要求,并提高了無人艇航跡控制的精度。