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