黃 健
(昆明船舶設備研究試驗中心,云南 昆明 650051)
無人水下航行器(Unmanned underwater vehicle,UUV)具有廣泛用途,例如海洋勘探、應急打撈、水下武器對抗等。我國對UUV的研究起步較晚,與世界先進水平還存在一定差距,大力發(fā)展UUV相關聯(lián)的關鍵技術已成為行業(yè)共識。
開展UUV真實航行試驗的成本及風險非常高。在研發(fā)、生產(chǎn)保障和培訓時,引入必要的仿真手段,可以節(jié)省研發(fā)費用、縮短研發(fā)周期、提高培訓效能。同時,充分且多樣性的仿真試驗也為產(chǎn)品的質(zhì)量和可靠性打下了堅實的基礎。仿真試驗在UUV產(chǎn)品的全生命周期都可以發(fā)揮作用。在方案論證及研發(fā)早期,主要采用純數(shù)字仿真;在研發(fā)后期、生產(chǎn)保障及訓練時,主要采用硬件在環(huán)(Hardware-in-the-loop,HIL)仿真。
在國外,HIL仿真技術比較成熟,支持HIL的通用商業(yè)軟硬件平臺包含dSPACE、RT-LAB、xPC等,其功能強大,但商業(yè)使用需要支付較高的費用。在國內(nèi),西北工業(yè)大學、哈爾濱工程大學等研究院所,針對UUV的HIL仿真需求,也開展了相關研究[1-4],建設有專門實驗室。國內(nèi)大多數(shù)UUV的HIL仿真平臺是針對某型或某類UUV(例如魚雷、水雷)建立起來的,主要特征是功能強大、相關的組部件齊全。但是其通用性、可配置性較差。事實上,國內(nèi)部分UUV相關的研發(fā)、生產(chǎn)、使用單位,并沒有建設齊備的HIL仿真實驗室。一方面是建造全套UUV HIL平臺的費用較高;另一方面,由于其可配置性較差,在某些場景中使用起來也不是特別方便。
文本給出了嵌入式HIL模擬器(以下簡稱模擬器)的解決方案,并給出了其軟硬件的詳細設計。
要解決“可配置性”問題,采用基于標準總線的控制架構是一種思路。同時,實時性問題也是模擬器必須考慮的。下面分別從接口需求、硬件需求的角度探討方案的可行性。
接口需求:CAN總線具有硬實時性和高可靠性的特點,在汽車、船舶、航空航天領域廣泛使用。CAN總線也是唯一成為國際標準的現(xiàn)場總線。本文選用CAN總線作為模擬器的對外接口。
硬件需求:模擬器需要完成UUV模型和干擾模型的數(shù)值計算,即需要核心MCU有一定的運算能力。隨著半導體技術的快速發(fā)展,滿足需求的MCU有很多,綜合考慮計算能力、通訊接口、可靠性、開發(fā)難度和使用習慣,本文選用Infineon公司的XMC4800F144K2048作為主控芯片。
模擬器內(nèi)嵌UUV非線性數(shù)學模型和線性數(shù)學模型。模型類型和模型參數(shù)通過外部設備設定。模擬器可工作于頻域分析模式、時域分析模式和HIL仿真工作模式。模擬器的系統(tǒng)構成框圖如圖1所示。
在頻域分析模式下,模型配置為線性模型,可以分析UUV在線性工作點處的開環(huán)頻域特性,其輸入信號為正弦信號(控制量,舵角)。
在時域分析模式下,模型配置為線性模型,分析UUV在線性工作點處的開環(huán)時域特性,其輸入信號為階躍或脈沖信號。
在HIL仿真模式下,需要配置物理效應模擬設備和參試硬件。物理效應模擬設備包含:姿態(tài)模擬裝置、深度模擬裝置、舵角負載模擬器。參試硬件一般包含:舵機(控制器)、控制器、深度傳感器和航姿系統(tǒng)(陀螺或慣導)。要求參試設備具有CAN總線接口。參與HIL模擬仿真設備的構成樹圖如圖2所示。
最小系統(tǒng)由主控芯片、主控芯片支持電路、外擴FLASH、復位/監(jiān)控電路、電源電路等組成。
最小系統(tǒng)的主控芯片為XMC4800F144K-2048。其主要性能特征:CPU核的最大主頻達到144 MHz;含有浮點運算單元;352 KB片上SRAM;2048 KB片上Flash;6路CAN接口,256個報文對象;1路USB2.0接口(集成PHY);6路通用串口(支持ASC、SPI、IIC和LIN);支持2路Ethernet。由于需要實時解算UUV數(shù)學模型和環(huán)境干擾模型,所以將芯片主頻配置到144 MHz,采用外部晶振,外部晶振的頻率為12 MHz。
主控芯片的支持電路主要由主控芯片外圍的濾波儲能電容組成。電路原理簡單,但需要注意元器件的布局和PCB布線,否則可能造成電磁兼容問題。
外擴FLASH用來存儲本地仿真過程數(shù)據(jù),用于試后分析。外擴FLASH選用N25Q256A。其主要性能特征為:NOR Flash;SPI接口;雙轉(zhuǎn)換速率模式(108 MB/s和54 MB/s);容量為32 MB。
復位/監(jiān)控電路主要用于監(jiān)控主控芯片的電源和主程序運行狀態(tài)。選用MAX706S,其主要性能特征為:2.93 V的監(jiān)控門限;200 ms復位時間延時;1.6 s看門狗超時門限。
電源電路主要是為系統(tǒng)提供穩(wěn)定可靠的電源。選用IFX1117MEV33,其主要特點為:具有短路、過溫保護功能;輸出電流1 A;精度達到2%。
模擬器對外接口包含CAN接口和RS232接口。CAN接口用于模擬器與其它組部件互聯(lián)。RS232接口主要用于調(diào)試、模擬器內(nèi)測數(shù)據(jù)讀取等功能。
為了防止模擬器與外部互聯(lián)的其他組部件之間相互干擾。需要對CAN接口和RS232接口進行隔離設計。接口電路所設計的元器件為:TXB0104(電平轉(zhuǎn)換芯片)、D050505(通訊隔離電源)、TJA1040(CAN通訊接口芯片)、MAX3232(RS232通訊接口芯片)、HCPL0710(光耦隔離芯片)等。接口電路原理框圖如圖3所示。
從數(shù)據(jù)處理角度來看,模擬器的輸入數(shù)據(jù)主要為舵角和各種環(huán)境干擾信號,模擬器的數(shù)據(jù)輸出主要是UUV運動狀態(tài)(姿態(tài)、姿態(tài)角、深度和相對位置)。采用數(shù)據(jù)流圖可以較好地描述其工作流程。選用的開發(fā)環(huán)境為Keil uVision C166,選用的開發(fā)語言為C語言。
模擬器的數(shù)據(jù)流圖和程序主體框圖如圖4所示。
UUV模擬器包含5種工作模式:參數(shù)設置模式、數(shù)據(jù)讀取模式、頻域分析模式、時域分析模式、HIL仿真模式。參數(shù)設置模式主要設置UUV模型參數(shù)、干擾參數(shù)、HIL參試設備等;數(shù)據(jù)讀取模式用于讀取內(nèi)測的仿真過程數(shù)據(jù),用于試后分析;其它3種模式的用途見1.2節(jié)。
3.2.1 任務調(diào)度及任務優(yōu)先級設計
軟件采用嵌入式軟件常用的“后臺主程序+隨機中斷+定時中斷”的程序架構實現(xiàn)。任務調(diào)度采用“事件+時間”方式完成。后臺主程序為while死循環(huán),在死循環(huán)中,根據(jù)任務標志執(zhí)行相關任務。定時中斷提供全局和局部的時間軸,是完成基于“時間”任務調(diào)度的基礎。隨機中斷包含CAN收發(fā)中斷、RS232收發(fā)中斷、看門狗中斷、掉電中斷、系統(tǒng)陷阱中斷。隨機中斷是完成基于“事件”任務調(diào)度的基礎。
任務調(diào)度中必須重視優(yōu)先級設計,優(yōu)先級設計如表1所示,數(shù)值越大,優(yōu)先級越高。
表1 任務優(yōu)先級
3.2.2 UUV模型及干擾模型選擇
UUV模型和干擾模型對模擬器HIL仿真性能有著重要影響。在不同的應用場景中,對模型的需求也不同。在驗證UUV運動控制性能時,對模型精度要求較高;但在驗證UUV工作流程、時序控制時,對模型精度要求較低。為了滿足不同需求,UUV模型選擇2種典型模型:非線性模型(精度較高)和線性模型(精度較低)。
模型的選擇標準需要在精度和可用性上進行折中。本文選擇如式(1)所示的非線性模型。該模型的假設條件為:小攻角、小側滑角和小機動運動;粘性力可用線性導數(shù)表示;運動參數(shù)的二階項可忽略。本文選擇如式(2)-(4)所示的線性模型。線性模型采用三通道(橫滾、俯仰/深度、偏航)完全解耦的數(shù)學模型,忽略了流體動力參數(shù)和運動參數(shù)的高階項。
(1)
(2)
(3)
(4)
式(1)-(4)中的符號定義與文獻[5]一致。
UUV在航行過程中會遇到浪、流、涌等干擾。本文選取恒值力(力矩)、一階高頻波浪力(力矩)、低頻正弦波浪力(力矩)模擬浪、流、涌等干擾。干擾以等效舵角的方式作用于UUV。具體表示為
(5)
式(5)中的y(t)表示一階高頻波浪力,可以利用四階成型濾波器模擬[6],具體表示為
(6)
3.2.3 CAN應用層協(xié)議通信格式
CAN總線協(xié)議規(guī)范僅規(guī)定了物理層和數(shù)據(jù)鏈路層。應用層實現(xiàn)比較靈活,可以由用戶定義,也可以借用特殊領域定義好的協(xié)議,例如SAE J1939、CANopen、DeviceNet等。
為了保證模擬器的實時性和降低軟件實現(xiàn)復雜性,本文借鑒SAE J1939協(xié)議格式,設計專有CAN應用層協(xié)議,下面對ID編碼格式、數(shù)據(jù)域編碼格式和信息發(fā)送調(diào)度進行闡述。
本文采用CAN2.0B規(guī)范的29位標識符(仲裁域)擴展幀格式。ID編碼格式如表2所示。
表2 ID編碼格式
“優(yōu)先級”用于指示報文的優(yōu)先級別。優(yōu)先級定義為:0表示緊急事件;1表示專有節(jié)點命令及應答;2表示廣播命令及應答;3表示普通廣播;其它值無意義。
“信息類型”用于指示報文信息屬性。信息類型具體表示為:0表示緊急事件廣播;1表示緊急事件廣播命令應答;2表示專有節(jié)點命令;3表示專有節(jié)點命令應答;4表示普通廣播;5表示普通廣播應答;其余值無意義。
“存儲標志”主要用于指示報文是否需要存儲。主要應用場景:半實物系統(tǒng)中存在外掛的總線記錄設備時,指示存儲設備記錄當前幀數(shù)據(jù)。
“發(fā)送源地址”和“發(fā)送目的地址”用于指示報文發(fā)送和接收地址。
數(shù)據(jù)域格式定義如表3所示,數(shù)據(jù)域為8字長。
表3 數(shù)據(jù)域編碼格式
表3中,“信息編號+附加說明”用于對信息種類進行分類,信息編號對大類信息進行分類,附加說明對分類后的信息進行進一步細分。
為了保證整個系統(tǒng)實時性,除了對ID(數(shù)據(jù)鏈路層的仲裁依據(jù))進行精心設計外,發(fā)送節(jié)點需要根據(jù)實際應用場景,設計合適的發(fā)送時序。模擬器采用廣播命令的方式,周期性向外廣播UUV運動狀態(tài)數(shù)據(jù)。模擬器可以被配置為10 ms、50 ms、100 ms廣播1組運動狀態(tài)數(shù)據(jù)。
為了驗證模擬器的基本功能,以文獻[7]給出的某型航行體為被控對象,對其航向控制通道進行了硬件在環(huán)仿真試驗。
參試設備:模擬器、控制器、航姿系統(tǒng)、舵機、舵機負載模擬器、姿態(tài)模擬裝置(三軸轉(zhuǎn)臺)、PC機等。
模型選?。?0 kn速度航行時的航向姿態(tài)運動線性數(shù)學模型為[8]
(7)
式(7)中的符號含義與文獻[7]一致。式(7)為連續(xù)系統(tǒng),為了便于數(shù)字實現(xiàn),需要將式(7)離散化??紤]實際需求和MCU運算負擔,采用一階歐拉離散方法對式(7)進行離散化。
仿真參數(shù)設置:仿真時長為20 s;航向初始值為0°;目標值為10°。
為了便于分析,針對航向控制,做了純數(shù)值仿真和HIL仿真對比試驗。試驗結果如圖5所示。由圖5可知,純數(shù)值仿真與HIL仿真的試驗結果有一定差異。純數(shù)值仿真幾乎無超調(diào),HIL仿真有一定超調(diào)。純數(shù)值仿真與HIL仿真的靜態(tài)誤差均較小,小于2%。
由于HIL引入了真實的執(zhí)行機構和傳感器,比較符合真實情況。所以,UUV在實航前,應微調(diào)由理論計算出的控制器參數(shù)。同時加強邏輯安全警戒,以確保航行安全。
本文介紹了基于XMC4800的嵌入式硬件在環(huán)UUV運動控制模擬器的總體方案、硬件設計、數(shù)據(jù)流圖和主要的軟件算法。該模擬器在不同的應用場景下,通過配置相應的參數(shù),可以完成不同層次的硬件在環(huán)仿真,為UUV設計、生產(chǎn)和使用提供了有效的保障手段。