黃 健
(昆明船舶設備研究試驗中心,云南 昆明 650051)
無人水下航行器(Unmanned underwater vehicle,UUV)具有廣泛用途,例如海洋勘探、應急打撈、水下武器對抗等。我國對UUV的研究起步較晚,與世界先進水平還存在一定差距,大力發展UUV相關聯的關鍵技術已成為行業共識。
開展UUV真實航行試驗的成本及風險非常高。在研發、生產保障和培訓時,引入必要的仿真手段,可以節省研發費用、縮短研發周期、提高培訓效能。同時,充分且多樣性的仿真試驗也為產品的質量和可靠性打下了堅實的基礎。仿真試驗在UUV產品的全生命周期都可以發揮作用。在方案論證及研發早期,主要采用純數字仿真;在研發后期、生產保障及訓練時,主要采用硬件在環(Hardware-in-the-loop,HIL)仿真。
在國外,HIL仿真技術比較成熟,支持HIL的通用商業軟硬件平臺包含dSPACE、RT-LAB、xPC等,其功能強大,但商業使用需要支付較高的費用。在國內,西北工業大學、哈爾濱工程大學等研究院所,針對UUV的HIL仿真需求,也開展了相關研究[1-4],建設有專門實驗室。國內大多數UUV的HIL仿真平臺是針對某型或某類UUV(例如魚雷、水雷)建立起來的,主要特征是功能強大、相關的組部件齊全。但是其通用性、可配置性較差。事實上,國內部分UUV相關的研發、生產、使用單位,并沒有建設齊備的HIL仿真實驗室。一方面是建造全套UUV HIL平臺的費用較高;另一方面,由于其可配置性較差,在某些場景中使用起來也不是特別方便。
文本給出了嵌入式HIL模擬器(以下簡稱模擬器)的解決方案,并給出了其軟硬件的詳細設計。
要解決“可配置性”問題,采用基于標準總線的控制架構是一種思路。同時,實時性問題也是模擬器必須考慮的。下面分別從接口需求、硬件需求的角度探討方案的可行性。
接口需求:CAN總線具有硬實時性和高可靠性的特點,在汽車、船舶、航空航天領域廣泛使用。CAN總線也是唯一成為國際標準的現場總線。本文選用CAN總線作為模擬器的對外接口。
硬件需求:模擬器需要完成UUV模型和干擾模型的數值計算,即需要核心MCU有一定的運算能力。隨著半導體技術的快速發展,滿足需求的MCU有很多,綜合考慮計算能力、通訊接口、可靠性、開發難度和使用習慣,本文選用Infineon公司的XMC4800F144K2048作為主控芯片。
模擬器內嵌UUV非線性數學模型和線性數學模型。模型類型和模型參數通過外部設備設定。模擬器可工作于頻域分析模式、時域分析模式和HIL仿真工作模式。模擬器的系統構成框圖如圖1所示。
在頻域分析模式下,模型配置為線性模型,可以分析UUV在線性工作點處的開環頻域特性,其輸入信號為正弦信號(控制量,舵角)。
在時域分析模式下,模型配置為線性模型,分析UUV在線性工作點處的開環時域特性,其輸入信號為階躍或脈沖信號。
在HIL仿真模式下,需要配置物理效應模擬設備和參試硬件。物理效應模擬設備包含:姿態模擬裝置、深度模擬裝置、舵角負載模擬器。參試硬件一般包含:舵機(控制器)、控制器、深度傳感器和航姿系統(陀螺或慣導)。要求參試設備具有CAN總線接口。參與HIL模擬仿真設備的構成樹圖如圖2所示。
最小系統由主控芯片、主控芯片支持電路、外擴FLASH、復位/監控電路、電源電路等組成。
最小系統的主控芯片為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數學模型和環境干擾模型,所以將芯片主頻配置到144 MHz,采用外部晶振,外部晶振的頻率為12 MHz。
主控芯片的支持電路主要由主控芯片外圍的濾波儲能電容組成。電路原理簡單,但需要注意元器件的布局和PCB布線,否則可能造成電磁兼容問題。
外擴FLASH用來存儲本地仿真過程數據,用于試后分析。外擴FLASH選用N25Q256A。其主要性能特征為:NOR Flash;SPI接口;雙轉換速率模式(108 MB/s和54 MB/s);容量為32 MB。
復位/監控電路主要用于監控主控芯片的電源和主程序運行狀態。選用MAX706S,其主要性能特征為:2.93 V的監控門限;200 ms復位時間延時;1.6 s看門狗超時門限。
電源電路主要是為系統提供穩定可靠的電源。選用IFX1117MEV33,其主要特點為:具有短路、過溫保護功能;輸出電流1 A;精度達到2%。
模擬器對外接口包含CAN接口和RS232接口。CAN接口用于模擬器與其它組部件互聯。RS232接口主要用于調試、模擬器內測數據讀取等功能。
為了防止模擬器與外部互聯的其他組部件之間相互干擾。需要對CAN接口和RS232接口進行隔離設計。接口電路所設計的元器件為:TXB0104(電平轉換芯片)、D050505(通訊隔離電源)、TJA1040(CAN通訊接口芯片)、MAX3232(RS232通訊接口芯片)、HCPL0710(光耦隔離芯片)等。接口電路原理框圖如圖3所示。
從數據處理角度來看,模擬器的輸入數據主要為舵角和各種環境干擾信號,模擬器的數據輸出主要是UUV運動狀態(姿態、姿態角、深度和相對位置)。采用數據流圖可以較好地描述其工作流程。選用的開發環境為Keil uVision C166,選用的開發語言為C語言。
模擬器的數據流圖和程序主體框圖如圖4所示。
UUV模擬器包含5種工作模式:參數設置模式、數據讀取模式、頻域分析模式、時域分析模式、HIL仿真模式。參數設置模式主要設置UUV模型參數、干擾參數、HIL參試設備等;數據讀取模式用于讀取內測的仿真過程數據,用于試后分析;其它3種模式的用途見1.2節。
3.2.1 任務調度及任務優先級設計
軟件采用嵌入式軟件常用的“后臺主程序+隨機中斷+定時中斷”的程序架構實現。任務調度采用“事件+時間”方式完成。后臺主程序為while死循環,在死循環中,根據任務標志執行相關任務。定時中斷提供全局和局部的時間軸,是完成基于“時間”任務調度的基礎。隨機中斷包含CAN收發中斷、RS232收發中斷、看門狗中斷、掉電中斷、系統陷阱中斷。隨機中斷是完成基于“事件”任務調度的基礎。
任務調度中必須重視優先級設計,優先級設計如表1所示,數值越大,優先級越高。

表1 任務優先級
3.2.2 UUV模型及干擾模型選擇
UUV模型和干擾模型對模擬器HIL仿真性能有著重要影響。在不同的應用場景中,對模型的需求也不同。在驗證UUV運動控制性能時,對模型精度要求較高;但在驗證UUV工作流程、時序控制時,對模型精度要求較低。為了滿足不同需求,UUV模型選擇2種典型模型:非線性模型(精度較高)和線性模型(精度較低)。
模型的選擇標準需要在精度和可用性上進行折中。本文選擇如式(1)所示的非線性模型。該模型的假設條件為:小攻角、小側滑角和小機動運動;粘性力可用線性導數表示;運動參數的二階項可忽略。本文選擇如式(2)-(4)所示的線性模型。線性模型采用三通道(橫滾、俯仰/深度、偏航)完全解耦的數學模型,忽略了流體動力參數和運動參數的高階項。
(1)
(2)
(3)
(4)
式(1)-(4)中的符號定義與文獻[5]一致。
UUV在航行過程中會遇到浪、流、涌等干擾。本文選取恒值力(力矩)、一階高頻波浪力(力矩)、低頻正弦波浪力(力矩)模擬浪、流、涌等干擾。干擾以等效舵角的方式作用于UUV。具體表示為
(5)
式(5)中的y(t)表示一階高頻波浪力,可以利用四階成型濾波器模擬[6],具體表示為
(6)
3.2.3 CAN應用層協議通信格式
CAN總線協議規范僅規定了物理層和數據鏈路層。應用層實現比較靈活,可以由用戶定義,也可以借用特殊領域定義好的協議,例如SAE J1939、CANopen、DeviceNet等。
為了保證模擬器的實時性和降低軟件實現復雜性,本文借鑒SAE J1939協議格式,設計專有CAN應用層協議,下面對ID編碼格式、數據域編碼格式和信息發送調度進行闡述。
本文采用CAN2.0B規范的29位標識符(仲裁域)擴展幀格式。ID編碼格式如表2所示。

表2 ID編碼格式
“優先級”用于指示報文的優先級別。優先級定義為:0表示緊急事件;1表示專有節點命令及應答;2表示廣播命令及應答;3表示普通廣播;其它值無意義。
“信息類型”用于指示報文信息屬性。信息類型具體表示為:0表示緊急事件廣播;1表示緊急事件廣播命令應答;2表示專有節點命令;3表示專有節點命令應答;4表示普通廣播;5表示普通廣播應答;其余值無意義。
“存儲標志”主要用于指示報文是否需要存儲。主要應用場景:半實物系統中存在外掛的總線記錄設備時,指示存儲設備記錄當前幀數據。
“發送源地址”和“發送目的地址”用于指示報文發送和接收地址。
數據域格式定義如表3所示,數據域為8字長。

表3 數據域編碼格式
表3中,“信息編號+附加說明”用于對信息種類進行分類,信息編號對大類信息進行分類,附加說明對分類后的信息進行進一步細分。
為了保證整個系統實時性,除了對ID(數據鏈路層的仲裁依據)進行精心設計外,發送節點需要根據實際應用場景,設計合適的發送時序。模擬器采用廣播命令的方式,周期性向外廣播UUV運動狀態數據。模擬器可以被配置為10 ms、50 ms、100 ms廣播1組運動狀態數據。
為了驗證模擬器的基本功能,以文獻[7]給出的某型航行體為被控對象,對其航向控制通道進行了硬件在環仿真試驗。
參試設備:模擬器、控制器、航姿系統、舵機、舵機負載模擬器、姿態模擬裝置(三軸轉臺)、PC機等。
模型選取:30 kn速度航行時的航向姿態運動線性數學模型為[8]
(7)
式(7)中的符號含義與文獻[7]一致。式(7)為連續系統,為了便于數字實現,需要將式(7)離散化。考慮實際需求和MCU運算負擔,采用一階歐拉離散方法對式(7)進行離散化。
仿真參數設置:仿真時長為20 s;航向初始值為0°;目標值為10°。
為了便于分析,針對航向控制,做了純數值仿真和HIL仿真對比試驗。試驗結果如圖5所示。由圖5可知,純數值仿真與HIL仿真的試驗結果有一定差異。純數值仿真幾乎無超調,HIL仿真有一定超調。純數值仿真與HIL仿真的靜態誤差均較小,小于2%。
由于HIL引入了真實的執行機構和傳感器,比較符合真實情況。所以,UUV在實航前,應微調由理論計算出的控制器參數。同時加強邏輯安全警戒,以確保航行安全。
本文介紹了基于XMC4800的嵌入式硬件在環UUV運動控制模擬器的總體方案、硬件設計、數據流圖和主要的軟件算法。該模擬器在不同的應用場景下,通過配置相應的參數,可以完成不同層次的硬件在環仿真,為UUV設計、生產和使用提供了有效的保障手段。