韓本剛,毛師彬
(南京模擬技術研究所, 南京 210016)
基于實時操作核的數(shù)字飛控計算機可以實現(xiàn)復雜的邏輯和功能處理,其具有集成度高、運算能力強、I/O接口豐富、擴展性好及通用性強等特點,得以廣泛應用。以數(shù)字飛控計算機為核心的飛行控制系統(tǒng)直接決定著無人機的飛行性能,為了確保無人機安全有效地完成預定飛行任務,對飛行控制系統(tǒng)進行半實物仿真測試,驗證其有效性是必要的。仿真平臺作為半實物仿真實現(xiàn)的必備環(huán)節(jié),需要具備較好的實時性,一般采用專用的dSPACE實時系統(tǒng)仿真平臺,或者采用PC機+實時操作系統(tǒng)模式的仿真平臺,如采用Vxworks、Qnx等實時操作系統(tǒng),這些仿真平臺性能好,廣泛應用于航空航天領域,但這些仿真平臺成本較高,對于飛行控制處理運算要求相對簡單的無人機,開發(fā)一套實用的、低成本的半物理仿真系統(tǒng)是必要的。文中給出了在PC/104嵌入式硬件架構下基于xPC目標[1](xPC Target)環(huán)境構建無人機半物理仿真系統(tǒng)的技術途徑,實現(xiàn)了將無人機Simulink仿真框圖直接轉(zhuǎn)化成C語言代碼并下載至硬件平臺中實時仿真。
半物理仿真是指硬件在回路的仿真,以某型無人機為例,其半實物仿真系統(tǒng)架構如圖1所示。
圖1 半實物仿真系統(tǒng)架構
該仿真系統(tǒng)主要由仿真機、地面站、控制臺、飛控計算機及舵系統(tǒng)(包括控制器及執(zhí)行機構)等組成。其中,仿真機用以實現(xiàn)無人機六自由度運動方程的實時解算、模擬各種傳感器的接口特性,并模擬輸出無人機的飛行狀態(tài)信息;地面站與飛控計算機交互連接,用以實現(xiàn)無人機操縱飛行、實時監(jiān)測無人機飛行狀態(tài)數(shù)據(jù),并生成顯示無人機航跡;控制臺與仿真機交互連接,用以實現(xiàn)無人機仿真模型參數(shù)配置、數(shù)據(jù)記錄及仿真控制等操作;飛控計算機和舵系統(tǒng)均采用實物,飛控計算機是仿真測試及驗證的主要對象,而引入真實的舵系統(tǒng)可以使仿真結(jié)果更加逼真可信。
在上述半物理仿真系統(tǒng)具體開發(fā)過程中,仿真機選用了成熟的PC/104嵌入式硬件架構,具體由SBS公司PMI-10D型CPU板(主頻可達1 000 MHz)、DIAMOND公司DIAMOND-MM-16AT型數(shù)據(jù)采集板、EMERALD-MM-8型多串口板及JMM512-512型電源板等組成,也可根據(jù)實際需求擴展其他I/O模塊設備。該仿真機運行xPC目標的實時操作核并執(zhí)行對象模型程序代碼,主要實現(xiàn)了無人機六自由度運動特性、傳感器及執(zhí)行機構接口特性等模擬,其中通過A/D采集執(zhí)行機構的位置信息,通過串口或D/A輸出無人機狀態(tài)數(shù)據(jù)。此外,仿真機與控制臺通過串口連接進行信息的交互,使目標應用程序脫離Matlab運行環(huán)境。
xPC目標作為Real-Time Workshop(RTW)體系結(jié)構的附加產(chǎn)品,可實現(xiàn)控制系統(tǒng)或DSP系統(tǒng)的快速原型化過程及硬件在回路仿真測試,其支持PCI和ISA兩種類型的I/O設備,能夠很便捷地構設嵌入式實時系統(tǒng)。xPC目標采用宿主機與目標機的“雙機”應用模式,其中宿主機用于運行Simulink,目標機用于執(zhí)行所生成的目標代碼,雙機之間可選擇串口或以太網(wǎng)連接進行通信。具體使用過程中,首先在宿主機上利用Simulink設計好對象仿真模型框圖,之后通過 RTW將Simulink框圖模型轉(zhuǎn)化成C語言代碼(即目標應用程序)并下載到目標機上執(zhí)行。xPC目標提供了一個可運行在目標機上的、高度減縮的實時操作核,用于任務的調(diào)度和管理,該實時操作核采用32位的內(nèi)存管理模式,具有很高的執(zhí)行效率。xPC目標實時操作核的采樣頻率最高可達100 MHz,能夠保證目標應用程序的實時執(zhí)行,目標應用程序執(zhí)行速度主要由對象模型復雜程度、程序代碼規(guī)模以及目標機硬件設備配置等因素決定。
本系統(tǒng)中無人機仿真模型是通過Simulink在宿主機上以框圖形式構建的,主要包括發(fā)動機推力計算模塊、執(zhí)行機構位置換算模塊、無人機六自由度模型解算模塊、傳感器特性仿真模塊以及串口、A/D、D/A等I/O設備接口驅(qū)動模塊。其中,發(fā)動機推力計算模塊根據(jù)接收的發(fā)動機控制指令實現(xiàn)油門開度的模擬調(diào)節(jié),并利用發(fā)動機高空臺試驗數(shù)據(jù)或地面開車試驗數(shù)據(jù)進行插值計算得出推力,發(fā)動機控制指令由地面站通過串口發(fā)出;執(zhí)行機構位置換算模塊根據(jù)A/D通道采集的信息計算出各執(zhí)行機構作動量;而無人機六自由度運動模型解算模塊以發(fā)動機計算模塊輸出的推力和執(zhí)行機構位置換算輸出的作動量為輸入,進行無人機六自由度運動方程的實時解算,輸出無人機空間運動的位置、姿態(tài)、速度、角速度等信息;傳感器特性仿真模塊主要模擬傳感器動態(tài)特性和接口特性,傳感器動態(tài)特性通過實測數(shù)據(jù)進行系統(tǒng)辨識獲取并以傳遞函數(shù)形式表示,接口特性按照各傳感器接口形式和數(shù)據(jù)格式對應編碼實現(xiàn),以數(shù)字信號(串口數(shù)據(jù)格式)或模擬信號(D/A)形式對外輸出。構建無人機Simulink模塊化仿真框圖后,這樣便可以通過RTW工具箱將其生成高度優(yōu)化C語言代碼下載至運行xPC目標實時操作核的目標機上執(zhí)行。仿真模型基本結(jié)構及Simulink仿真框圖如圖2和圖3所示。
圖2 仿真模型基本結(jié)構
圖3 無人機Simulink仿真框圖
Simulink雖然提供了大量的線性和非線性運算模塊,但當系統(tǒng)模型中包含過多的非線性或者用戶自定義的模塊時,使用Simulink提供的運算模塊構建模型會過于繁瑣。有必要采用Simulink提供的S函數(shù)(S-Function)進行自定義邏輯或運算功能模塊開發(fā),S函數(shù)可選擇M語言或C/C++語言進行編碼,本仿真系統(tǒng)中選擇了C/C++語言混合編程的方式進行了自定義模塊開發(fā),與Simulink自帶的運算模塊結(jié)合使用實現(xiàn)了全系統(tǒng)建模,特別是無人機六自由度運動特性、傳感器動態(tài)特性及執(zhí)行機構動態(tài)特性等仿真模型均采用C/C++語言編程的S函數(shù)構建,傳感器動態(tài)特性Simulink仿真框圖如圖4所示。
另外,xPC目標模塊庫(xpclib庫)中提供了大量的I/O接口板卡驅(qū)動模塊,可直接調(diào)用對應通信接口板卡驅(qū)動模塊實現(xiàn)I/O接口的擴展??紤]該仿真機采用Diamond公司的多串口板和數(shù)據(jù)采集板,直接調(diào)用Diamond Emerald-MM8 Serial F和MM-16-AT驅(qū)動模塊配置后使用,當然也可以在xpclib庫中提供的I/O模塊驅(qū)動程序源代碼基礎上進行適當修改,實現(xiàn)不同設備板卡驅(qū)動程序的開發(fā),仿真平臺嘗試采用了SBS公司SEM/PMSP-8型多串口板卡,其驅(qū)動程序基于Diamond Emerald-MM8 Serial F模塊源代碼開發(fā),可達成同樣功能及仿真特性。
圖4 傳感器Simulink仿真框圖
xPC目標的API函數(shù)庫提供了大量VC接口函數(shù),可以創(chuàng)建一個VC應用程序來實現(xiàn)目標應用程序的下載和運行,亦可實現(xiàn)如參數(shù)設置、信號監(jiān)視及數(shù)據(jù)采集等功能。本系統(tǒng)中仿真控制臺軟件是通過Microsoft Visual C++6.0集成編譯環(huán)境開發(fā)的桌面應用程序,直接調(diào)用了xpcinitfree.c、xpcapi.h、xpcapiconst.h等庫文件,這樣便可以在不啟動Matlab運行環(huán)境的情況下實現(xiàn)對xPC目標應用程序的控制和管理。仿真控制臺軟件除了具備基本的xPC目標環(huán)境連接和xPC目標應用程序的下載、仿真啟動和停止等功能外,還包括仿真初始化條件設置、大氣干擾設置及傳感器特性配置等實用功能,同時可實現(xiàn)仿真數(shù)據(jù)的實時監(jiān)測及數(shù)據(jù)的事后處理分析,仿真控制臺軟件界面如圖5所示。
圖5 仿真控制臺軟件界面
為測試半實物仿真系統(tǒng)的性能及效果,以某型無人機為例,在Simulink仿真框圖中輸入了其模型參數(shù),通過RTW轉(zhuǎn)化目標應用程序后下載到仿真機上運行。鑒于無人機數(shù)字飛行控制系統(tǒng)計算周期為20 ms,這里設定仿真步長為10 ms。仿真開始后通過安裝有測控軟件的地面站控制無人機爬升、平飛、盤旋等實現(xiàn)指令飛行仿真,并控制無人機轉(zhuǎn)入預設航路程控飛行仿真,半實物仿真飛行效果如圖6展示。
圖6 無人機模擬飛行效果
事后通過半實物仿真測試數(shù)據(jù)與實際飛行數(shù)據(jù)的對比,兩者特性一致,說明所開發(fā)的仿真系統(tǒng)能夠驗證飛行控制系統(tǒng)的有效性,且能夠很好地實現(xiàn)無人機模擬飛行測試。
另外,在仿真過程中通過對控制臺軟件目標機連接、應用程序下載、仿真初始化參數(shù)設置、大氣干擾參數(shù)設置、仿真啟??刂萍皵?shù)據(jù)曲線顯示等功能進行了測試,均達成預期效果,使用便捷。
文中應用xPC目標環(huán)境下硬件在回路仿真與測試技術解決途徑,開發(fā)了一套用于無人機的半物理仿真系統(tǒng)。該仿真系統(tǒng)直接將無人機Simulink仿真模型框圖轉(zhuǎn)化成C語言程序代碼并執(zhí)行,簡單高效、易于維護。該仿真系統(tǒng)已用于在某型無人機設計和飛行驗證中,實踐表明該仿真系統(tǒng)可以有效檢驗飛行控制系統(tǒng)的控制邏輯及飛行控制律設計的正確行與合理性,直觀反映出無人機飛行控制效果,為飛行控制系統(tǒng)優(yōu)化設計和無人機系統(tǒng)的性能評估等提供了有效支持,具備較好的工程應用價值。