葉楠,王祥,劉懷芝
(1.中船重工鵬力(南京)大氣海洋信息系統(tǒng)有限公司,江蘇 南京 210000;2.中國船舶重工集團南京鵬力科技集團有限公司,江蘇 南京 210000)
無人艇作為一種無人化水上平臺,軍事上可以擴大現(xiàn)有作戰(zhàn)能力,具有查打功能、可根據(jù)任務(wù)進行配置的智能無人艇,能夠以較低成本迅速彌補我軍在非對稱作戰(zhàn)體系中的不足,對提高海上作戰(zhàn)能力具有重大意義[1-3]。民用方面,無人艇在海洋、大型湖泊等復(fù)雜危險海況下的巡邏、監(jiān)測、災(zāi)害預(yù)警與救災(zāi)等方面有重要的應(yīng)用價值。隨著無人智能航行技術(shù)的發(fā)展,可在水面水下不同環(huán)境下航行的智能無人艇成為主流的發(fā)展趨勢,其通信鏈路的暢通、導(dǎo)航定位的精準、控制命令的正確都關(guān)系到水面水下航行無人艇的航行安全,是航行的最基本條件[4-6]。因此無人艇的綜合測控裝置功能和性能是檢驗無人艇智能化水平的最重要指標之一。
目前小型無人航行器的測控裝置多由國外公司如Hydroid 或藍鰭公司長期不斷開發(fā)和完善,形成了技術(shù)壟斷。從我國目前已有的技術(shù)與產(chǎn)品看,無人航行器專用的測控裝置還處于初期階段,產(chǎn)品應(yīng)用領(lǐng)域和技術(shù)程度還未成熟,與軍民實際需求仍有不小的差距,具有較大的發(fā)展空間。
本文設(shè)計了一種基于STM32 微控制器的無人艇測控裝置,可實現(xiàn)無人艇航行過程中各類信息的采集、處理、運動控制和數(shù)據(jù)共享,經(jīng)測試,該裝置功能多樣、穩(wěn)定性高、智能化水平高,在無人水面航行器領(lǐng)域具有廣泛的應(yīng)用價值。
本文所設(shè)計的無人艇測控裝置主要由信息采集控制板、穩(wěn)壓電源、接口端子和結(jié)構(gòu)外殼組成。其中信息采集控制板由6 個模塊組成,分別為主控模塊、信號采集接口模塊、通信接口模塊、數(shù)據(jù)存儲模塊、電機驅(qū)動接口模塊和電源模塊。無人艇測控裝置安裝于無人艇艇體中,與艇上其他傳感通信設(shè)備相結(jié)合,實現(xiàn)環(huán)境感知、通信導(dǎo)航、運動控制等多種功能。無人艇測控裝置總體設(shè)計如圖1 所示。
圖1 無人艇測控裝置總體設(shè)計
考慮到功能要求及低功耗設(shè)計,信息采集控制板采用ST 公司Cortex-M4 內(nèi)核的STM32F407ZET6 微控制器作為主控核心,其資源豐富,主頻高達180 MHz,2 MB Flash,256 KB SRAM,帶LCD_TFT 控制,5 個UART,17 個定時器,6 個SPI 以及3 個IIC,支持SDIO,24 通道12 位A/D,帶LCD 控制,支持USB2.0(host/device/OTG),支持SD 卡,支持內(nèi)部RTC 等,滿足設(shè)計要求。以STM32 微控制器為核心的主控模塊負責驅(qū)動整個裝置的運行,完成各個任務(wù)功能的有序調(diào)動,實現(xiàn)數(shù)據(jù)采集、處理、存儲、數(shù)據(jù)交互和電機控制等功能。
信號采集接口模塊預(yù)留了包括RS232、RS485、RS422、電壓/電流采集、IO 口等多個數(shù)字和模擬信號采集接口,可方便接入多類型設(shè)備。同時,各接入設(shè)備的供電線路,均與信號采集模塊的板載繼電器進行連接,由主控模塊進行統(tǒng)一控制,實現(xiàn)故障恢復(fù),并可在無人艇低功耗狀態(tài)下關(guān)閉非必需外接設(shè)備。
通信接口模塊預(yù)留包括RS232、RJ45 等接口,主控模塊將實時數(shù)據(jù)通過通信接口模塊傳至數(shù)傳電臺、4G網(wǎng)絡(luò)通信機等通信設(shè)備,進而上傳至岸基上位機,同時反向接收岸基上位機發(fā)送過來的控制命令。
數(shù)據(jù)存儲模塊通過SD 卡存儲電路實現(xiàn),主要完成無人艇測控裝置在正常工作過程中會產(chǎn)生的包括通信指令、目標位置、氣象水文環(huán)境要素、自身狀態(tài)等各類數(shù)據(jù)的實時存儲,供實時計算及后續(xù)數(shù)據(jù)統(tǒng)計需要。
電機驅(qū)動接口模塊主要實現(xiàn)無人艇動力電機的正反向及轉(zhuǎn)速控制,包括RS485 數(shù)字驅(qū)動及D/A 模擬量驅(qū)動。本裝置設(shè)計的D/A 模擬量驅(qū)動電路實現(xiàn)±5 V 的電壓輸出,采用PWM 通過調(diào)整占空比的模式來實現(xiàn),±7.5 V電路利用運放的“虛短、虛斷”的特性獲得,±5 V 電壓通過調(diào)節(jié)PWM 占空比獲得,電路圖如圖2 所示。
圖2 電機驅(qū)動接口電路
信息采集控制板電源模塊與測控裝置穩(wěn)壓電源相連接,輸入采用DC24 V 輸入,輸入范圍為9~33 V,輸出12 V 以及5 V。首先通過DC-DC 將輸入電壓變?yōu)?2 V;其中12 V 分為兩路,一路給自身控制板提供電壓,另一路給外設(shè)供電。電源芯片選擇TPS54331,該芯片應(yīng)用方便,所需要的外圍電路簡單,容易布局布線;5 V 通過LDO變?yōu)?.3 V 為主控芯片供電,LDO 選擇SPX1117-3.3 V,此芯片最大電流可以達到1 A,可以滿足應(yīng)用需要。電路圖如圖3 所示。
圖3 供電電路
考慮到無人艇運動過程中的多任務(wù)及實時特性,無人艇測控裝置在嵌入式軟件設(shè)計上以μC/OS-II 嵌入式操作系統(tǒng)為核心,結(jié)合硬件系統(tǒng)資源及目標功能,將各種輸入/輸出設(shè)備相關(guān)的功能劃分為不同的任務(wù),主要包括數(shù)據(jù)采集任務(wù)、信息交互任務(wù)、數(shù)據(jù)存儲任務(wù)、電機控制任務(wù)、自主航行任務(wù)、狀態(tài)監(jiān)測任務(wù)等。無人艇測控裝置嵌入式軟件整體工作流程如圖4 所示。
圖4 嵌入式軟件整體工作流程
無人艇測控裝置數(shù)據(jù)采集任務(wù)主要完成GPS 設(shè)備、慣導(dǎo)設(shè)備、雷達聲納設(shè)備、氣象水文設(shè)備等的數(shù)據(jù)采集,當有數(shù)據(jù)發(fā)送到采集的端口時,將進入相應(yīng)的數(shù)據(jù)采集程序中,若接收到該數(shù)據(jù)的數(shù)據(jù)起始特征位,則開始接收數(shù)據(jù),同時將接收到的數(shù)據(jù)寫入到緩存區(qū),若沒有接收到數(shù)據(jù)起始特征位,則將丟棄數(shù)據(jù),等待下一次的數(shù)據(jù)接收。當接收到數(shù)據(jù)結(jié)束特征位時,數(shù)據(jù)接收結(jié)束,進入程序處理部分。若沒有接收到數(shù)據(jù)尾,將繼續(xù)接收數(shù)據(jù)直到接收到數(shù)據(jù)的結(jié)束特征位。數(shù)據(jù)采集流程如圖5 所示。
圖5 數(shù)據(jù)采集流程圖
本設(shè)計中,無人艇測控裝置與岸基上位機之間通過數(shù)傳電臺、4G 網(wǎng)絡(luò)通信機等設(shè)備實現(xiàn)探測數(shù)據(jù)與控制命令的秒級實時傳輸。為保證數(shù)據(jù)的可靠性和可擴展性,本裝置采用統(tǒng)一的數(shù)據(jù)格式完成信息交互任務(wù),具體數(shù)據(jù)格式如表1 所示。
表1 與上位通信數(shù)據(jù)格式
當無人艇測控裝置接收到上位機發(fā)送來的數(shù)據(jù)時,首先要對接收到的數(shù)據(jù)正確性進行檢測,若檢測不通過,數(shù)據(jù)將被丟棄;若數(shù)據(jù)檢測正確,程序?qū)⒆x取數(shù)據(jù)類型標識符的識別來判斷數(shù)據(jù)的類型,然后根據(jù)數(shù)據(jù)類型標識符對接收數(shù)據(jù)進行解析并存儲至相應(yīng)公共變量中。上位機至無人艇測控裝置的通信流程圖如圖6 所示。
圖6 上位機至無人艇測控裝置的通信流程
在無人艇航行過程中,遠程遙控模式及自主航行模式下均需要通過無人艇測控裝置完成轉(zhuǎn)向及轉(zhuǎn)速控制電機的驅(qū)動任務(wù),實現(xiàn)無人艇的運動控制[7-9]。首先主控模塊通過航向及航速預(yù)設(shè)值解算出轉(zhuǎn)向及轉(zhuǎn)速電機的控制值,并向電機接口驅(qū)動模塊發(fā)送指令,使其形成相對應(yīng)的模擬量輸出值并向電機輸入,其次,信號采集接口模塊實時采集電機反饋數(shù)據(jù)及艇體航行數(shù)據(jù),判讀是否到達預(yù)設(shè)值,如到達,結(jié)束此次控制,并生成新的航向及航速預(yù)設(shè)值;如未到達,重復(fù)以上過程。電機控制流程如圖7 所示。
圖7 電機控制任務(wù)流程
無人艇測控裝置自主航行任務(wù)主要是通過當前GPS 數(shù)據(jù)、慣導(dǎo)數(shù)據(jù)及岸基上位機系統(tǒng)發(fā)來的目標點跡組,實現(xiàn)無人艇按預(yù)定航跡自主航行任務(wù)[10-15]。航跡控制的結(jié)構(gòu)框圖如圖8 所示。它由三個閉環(huán)控制組成:外環(huán)航跡控制環(huán)、中間航向控制環(huán)、內(nèi)部舵角控制環(huán)。航跡控制環(huán)將GPS 設(shè)備接收到的無人艇位置信息同規(guī)劃航線作比較,計算出航跡偏差,由航跡控制算法解算后向航向控制單元發(fā)送一個能夠消除航跡偏差的目標航向;航向控制環(huán)則將由GPS 設(shè)備和慣性導(dǎo)航獲取的無人艇實際航向與目標航向進行比較,得到航向偏差信號,通過航向控制算法向舵角控制環(huán)發(fā)送一個命令舵角;舵角控制環(huán)驅(qū)動舵機伺服系統(tǒng)使實際舵角與命令舵角相一致,通過航向控制和舵角控制共同作用以消除航向偏差,三個閉環(huán)共同作用使無人艇向消除航跡偏差的方向航行從而實現(xiàn)航跡跟蹤控制。
具體算法以無人艇當前GPS 坐標點O(Oj,Ow)為圓心,以設(shè)定的可視半徑R 建立圓的方程,以設(shè)定路徑的上一目標點A(Aj,Aw)和下一目標點B(Bj,Bw)建立航跡直線方程,取距離下一目標點最近的交點P(Pj,Pw)為實際航行目標點。計算公式如下:
根據(jù)O 點和P 點經(jīng)緯度可求得目標航向,計算公式如下:
為了驗證無人艇測控裝置的各項功能,本裝置安裝在單槳單舵控制方式的無人艇中進行跑船測試,測控裝置實物如圖9 所示。試驗在揚州芒稻河開展,如圖10 所示,全程自主航行22.5 km,當天海況二級,風力三級,全程選取220 個目標航路點。自主航行過程中,無人艇通過4G 網(wǎng)絡(luò)與岸基進行通信,通過上位機可實時顯示無人艇艇內(nèi)狀態(tài)及周圍環(huán)境視頻,如圖11 所示。
圖9 無人艇測控裝置實物圖
圖10 跑船試驗
圖11 上位機監(jiān)控界面
無人艇實時傳輸?shù)腉PS 等信息記錄在岸基上位機數(shù)據(jù)庫中,共29 000 多個經(jīng)緯度點,以緯度為橫坐標,經(jīng)度為縱坐標,將無人艇的目標航線和實際航線進行對比,如圖12 所示,無人艇能夠很好地沿著目標航路點自主航行,航行期間無人艇測控裝置各項功能均可順利執(zhí)行。
圖12 實際航線與目標航線對比圖
本文所設(shè)計的無人艇測控裝置以高性能的ARM Cortex-M4 內(nèi)核的STM32F407ZET6 微控制器為核心,以μC/OS-II 實時操作系統(tǒng)為嵌入式軟件平臺,形成統(tǒng)一的標準硬件接口和標準軟件功能模塊,高效完成了數(shù)據(jù)采集、信息交互、數(shù)據(jù)存儲、電機控制、自主航行、狀態(tài)監(jiān)測等各類任務(wù),可通過無線傳輸設(shè)備與岸基上位機系統(tǒng)進行通信,實現(xiàn)監(jiān)測數(shù)據(jù)與控制命令的實時傳輸。試驗結(jié)果表明,該裝置可有效完成無人艇航行過程中的信息采集、處理、運動控制與數(shù)據(jù)交互等多種任務(wù),在無人水面航行器領(lǐng)域具有廣泛的應(yīng)用推廣價值。