張 治,謝 峰,董敏周,張昊迪
(1.中國空空導(dǎo)彈研究院, 河南 洛陽 471009; 2.西北工業(yè)大學(xué)航天學(xué)院, 西安 710129)
隨著軍事科技的快速發(fā)展,導(dǎo)彈控制系統(tǒng)的設(shè)計要求在不斷提高,控制律和制導(dǎo)律設(shè)計的復(fù)雜度和難度也在增加,因此,如何能在不同研發(fā)階段發(fā)現(xiàn)和驗證設(shè)計中的不足至關(guān)重要。快速原型的應(yīng)用不僅可以驗證飛控算法的有效性和執(zhí)行效率,對算法進(jìn)行及時改進(jìn),而且可以指導(dǎo)飛控系統(tǒng)的硬件設(shè)計與優(yōu)化[1]。在飛控系統(tǒng)的設(shè)計過程中,快速原型主要是在產(chǎn)品研發(fā)的實驗階段,將相應(yīng)的控制算法加載到硬件平臺,通過實際的硬件通信接口與慣性傳感器、GPS接收機、舵機等實物相連[2],通過模擬飛控計算機的實時仿真,來驗證算法的正確性、可靠性?;赗T_LAB實時仿真器的快速原型已經(jīng)被廣泛應(yīng)用于導(dǎo)彈控制系統(tǒng)的設(shè)計,該方法通過RT_LAB軟件將基于Matlab/Simulink開發(fā)的數(shù)字仿真模型加載到硬件平臺上運行,實現(xiàn)了數(shù)字仿真向?qū)嵨锓抡娴霓D(zhuǎn)換[3];dSPACE實時系統(tǒng)也常被用于半實物仿真系統(tǒng)快速原型的開發(fā),該實時系統(tǒng)具有計算精度高、實時性好等優(yōu)點,但是也存在著開發(fā)成本高、維護(hù)性差等缺點[4]。
本文設(shè)計了一種基于RaspberryPi的低成本快速控制原型仿真系統(tǒng),將基于Matlab/Simulink設(shè)計的飛控仿真模型直接加載到硬件平臺上實時運行,參與半實物仿真試驗。
本文開發(fā)的快速控制原型仿真系統(tǒng)是以RaspberryPi作為硬件平臺,實現(xiàn)飛控數(shù)學(xué)模型的運行。RaspberryPi(樹莓派)是一款采用ARM架構(gòu)處理器和Linux操作系統(tǒng)的卡片式計算機,外形小巧,成本低。雖然外形只有信用卡大小,但是具有強大的系統(tǒng)功能和接口資源[5],如RaspberryPi 4B擁有1.5 GHz的4核64位 ARM Cortex-A72 CPU,強大的運行能力可以匹敵一般的仿真計算機;支持千兆以太網(wǎng),同時外設(shè)4路USB接口,以及多路I/O接口,豐富的接口資源極大地擴(kuò)展了它的使用范圍。而且樹莓派可以根據(jù)不同的使用需求安裝不同的支持系統(tǒng),針對Matlab/Simulink仿真要求,樹莓派開發(fā)了相應(yīng)固件支持包,可以將Matlab/Simulink仿真模型直接下載到系統(tǒng)中運行。
根據(jù)飛控系統(tǒng)半實物仿真的一般構(gòu)成和快速原型開發(fā)的一般特點,結(jié)合具體的功能需求,飛控快速控制原型仿真系統(tǒng)包括五個部分:電源調(diào)理模塊、外部仿真參試組件、通信擴(kuò)展模塊、仿真計算模塊和仿真總控平臺。其中外部仿真參試組件為半實物仿真過程中的數(shù)據(jù)發(fā)生模塊,主要包括慣導(dǎo)系統(tǒng)、GPS模擬器、舵機等[6];為了滿足多種外部參試組件的通訊要求,設(shè)計了通訊擴(kuò)展模塊,包括CAN總線接口、1553B接口、多路高速串行通訊接口RS422和多路I/O,同時為了實現(xiàn)舵機的控制和舵機反饋信號的采集,集成了ADC和DAC模塊;仿真計算模塊作為快速原型的核心,主要承擔(dān)飛控仿真模型的運行,而且該模塊自帶多種通信接口,尤其是千兆以太網(wǎng)接口,可以實現(xiàn)大量數(shù)據(jù)的快速傳輸,完成向總控平臺的數(shù)據(jù)傳輸;為了實現(xiàn)較好的人機交互,仿真總控平臺運行在Windows系統(tǒng)中,該平臺基于Matlab/Simulink設(shè)計,主要用于飛控仿真模型的建立,包括導(dǎo)彈運動學(xué)和動力學(xué)模型的建立,控制律和制導(dǎo)律的設(shè)計,同時作為總控平臺,實現(xiàn)仿真狀態(tài)的監(jiān)控、仿真數(shù)據(jù)存儲和數(shù)據(jù)圖像化,如圖1所示。
圖1 飛控快速原型仿真系統(tǒng)總體方案框圖
仿真計算模塊作為模型運行的載體,是整個快速原型的核心,本文設(shè)計了以RaspberryPi為基礎(chǔ)的仿真計算機。Mathwork官方已經(jīng)推出了樹莓派的硬件支持包,無論是Matlab函數(shù)或是Simulink模塊,都可以完成對RaspberryPi的開發(fā),這與飛控算法開發(fā)軟件具有高度的一致性。Simulink的樹莓派支持包提供了多種硬件通訊接口模塊,包括SPI、serial、I2C、TCP/IP、UDP和ThingSpeak等,這些接口函數(shù)降低了仿真試驗的軟件開發(fā)難度,提高了飛控系統(tǒng)設(shè)計的效率。
快速控制原型在該模塊的基礎(chǔ)上進(jìn)行了擴(kuò)展,充分利用了模塊中的I/O,擴(kuò)展出了RS422和SPI,用于與外界的通訊。同時通過千兆以太網(wǎng)口實現(xiàn)與上位機的通訊,不僅可以完成飛控模型的下載,而且可以實現(xiàn)仿真數(shù)據(jù)的傳輸。以Matlab/Simulink作為導(dǎo)彈飛行控制系統(tǒng)的建模工具,利用Simulink/RTW工具的代碼自動生成功能將數(shù)學(xué)模型轉(zhuǎn)換成相應(yīng)的C代碼,并加載到RaspberryPi中進(jìn)行實時運行。通過高速串行接口SPI接收由通信擴(kuò)展模塊采集和打包的外部傳感器數(shù)據(jù)。圖2為仿真計算模塊功能結(jié)構(gòu)。
圖2 仿真計算模塊功能結(jié)構(gòu)框圖
由于參加半實物仿真的外部組件較多,混合多種硬件接口,為了滿足豐富的接口要求,本文設(shè)計了基于ARM的通訊擴(kuò)展模塊,完成了模塊中的硬件電路設(shè)計。根據(jù)外部仿真參試組件接口的具體要求,本文擴(kuò)展了CAN總線、1553B總線、SPI、RS422和I/O等接口,同時集成了ADC和DAC模塊。1553B是由美國提出應(yīng)用在機載設(shè)備間信息傳輸?shù)目偩€標(biāo)準(zhǔn),因其高可靠性、實時性和安全性等優(yōu)點而廣泛應(yīng)用于航空電子通信網(wǎng)絡(luò)[7],為了方便設(shè)計和數(shù)據(jù)傳輸?shù)目煽啃裕x取BST_1553B模塊作為總線驅(qū)動器,通過SPI接口與STM32F429相連。
1) STM32F429具有豐富的I/O端口,最高輸出電平和最大承受電平為3.3 V,為了滿足不同電平要求,選用光耦繼電器AQW214和HCPL-2630,通過輸出端的參考電壓Pwr_IO,將I/O的3.3V電平轉(zhuǎn)變成與Pwr_IO相等的電壓;同時利用HCPL-2630將外部電壓轉(zhuǎn)換成I/O可承受的標(biāo)準(zhǔn)3.3 V電平,具體的電路如圖3所示。
圖3 I/O擴(kuò)展電路圖
2) RS422作為一種標(biāo)準(zhǔn)通訊協(xié)議,具有抗干擾能力強、傳輸距離遠(yuǎn)、傳輸速率高等優(yōu)點,已經(jīng)被廣泛應(yīng)用于工程實踐中[8]。選用的ARM處理器為STM32F429IGT6,擁有四路USRAT和四路UART,可以擴(kuò)展出多路RS422總線。選用芯片MAX490ESA作為電平轉(zhuǎn)換器,實現(xiàn)ARM輸出的TTL電平轉(zhuǎn)化為RS422接口標(biāo)準(zhǔn)電平,外圍添加電阻和電容,減少電信號的干擾,具體電路如圖4所示。
圖4 RS422串口通訊電路圖
3) CAN總線是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),采用雙線串行方式,檢錯能力強,可在高噪聲、復(fù)雜電磁環(huán)境中工作,已經(jīng)被廣泛應(yīng)用于航空航天領(lǐng)域[9]。STM32芯片中嵌入有bxCAN控制器(Basic Extended CAN),并且支持最高1Mbit/s的通訊速率,可以自動地接收和發(fā)送報文,支持使用標(biāo)準(zhǔn)ID和擴(kuò)展ID的報文。選用芯片PCA82C250作為CAN收發(fā)器,由于STM32F429的內(nèi)核電壓為3.3 V,收發(fā)器的工作電壓為5 V,為了實現(xiàn)兩種不同電平之間的信號傳遞及抑制CAN總線的共模電壓引起的串?dāng)_[10],選用光耦6N137來隔離STM32F429和PCA82C250之間收發(fā)引腳的連接。同時為了濾除總線上的高頻干擾和電磁輻射,在CANH和CANL之間連接一定大小的電容和電阻。斜率電阻Rs端外接一個可變電阻,通過調(diào)節(jié)其阻值大小可以選擇PCA82C25的三種工作模式:高速工作模式、斜率控制工作模式、待機模式,具體電路如圖5所示。
圖5 CAN總線通信電路圖
4) 模擬信號的采集與輸出是快速仿真原型的必備功能。選用TI公司的DAC8563作為數(shù)模轉(zhuǎn)換芯片,該芯片為16位低功耗電壓輸出雙通道數(shù)模轉(zhuǎn)換器,支持50 MHz的SPI標(biāo)準(zhǔn)接口[11],可實現(xiàn)與主控處理器STM32F429之間的快速數(shù)據(jù)傳輸。為了滿足電壓輸出范圍要求(-10 V~+10 V),基于OPA2171AID設(shè)計了運算放大電路,以DAC8563輸出的2.5 V電壓作為參考電壓VREF,外接±15 V的常值電平,所設(shè)計的運算放大器的輸出公式為VOUT=4.7*(VIN-VREF),具體電路如圖6所示。ADC模塊選用AD7606芯片,此芯片具有16位8通道同步采樣能力,可處理不同量程的雙極性輸入信號(-10 V~+10 V,-5 V~+5 V),采樣速率可達(dá)200kSPS。為提高總線的負(fù)載能力,外接雙向三態(tài)數(shù)據(jù)緩存器74LS245。
圖6 D/A轉(zhuǎn)換電路圖
在導(dǎo)彈飛行控制系統(tǒng)的設(shè)計過程中,Matlab/Simulink因為其編程簡單且圖形化功能強大,已經(jīng)成為最常用和最重要的工具之一,并且可安裝豐富的硬件工具包,Matlab2016及其更高版本可以支持RaspberryPi的開發(fā)。系統(tǒng)的軟件開發(fā)主要包括上位機即仿真總控平臺的設(shè)計、飛控仿真模型中硬件通訊模塊設(shè)計和通信擴(kuò)展模塊STM32F429的開發(fā)。仿真總控平臺的功能主要是監(jiān)控模型運行狀態(tài)、數(shù)據(jù)存儲和數(shù)據(jù)圖形化,根據(jù)仿真需求,設(shè)計了如圖7所示的快速原型控制平臺。
圖7 快速原型控制平臺界面
所設(shè)計的快速原型以RaspberryPi作為模型運算核心,通過通信擴(kuò)展模塊完成與外部設(shè)備的通訊,通信擴(kuò)展模塊作為數(shù)據(jù)處理中心,將采集到的數(shù)據(jù)整合打包成具有指定協(xié)議的幀數(shù)據(jù),通過SPI將數(shù)據(jù)傳輸?shù)絉aspberryPi中供仿真模型使用。RaspberryPi作為主設(shè)備模式,在每一個仿真周期發(fā)送時鐘信號到STM32F429(從設(shè)備)中,并從中讀取已處理完成后的幀數(shù)據(jù),設(shè)置SPI Master Transfer模塊的SPI時鐘模式為model1,如圖8所示。仿真數(shù)據(jù)與上位機的通訊通過網(wǎng)線連接,根據(jù)通訊網(wǎng)址要求,設(shè)置UDP Send模塊的IP地址;為了方便單獨查看或輸出某些數(shù)據(jù),利用RaspberryPi外圍擴(kuò)展的RS422通信接口,根據(jù)串口通信要求,設(shè)置Serial Write模塊的波特率、校驗位、數(shù)據(jù)位和停止位。通信擴(kuò)展模塊作為從設(shè)備通過SPI與Raspberry連接,為減小CPU的負(fù)荷,采用DMA(Direct Memory Access)傳輸方式,根據(jù)外圍擴(kuò)展芯片的要求,參考STM32F429技術(shù)手冊可以完成其他通信的軟件設(shè)計。
圖8 SPI時鐘模式示意圖
針對某一飛行控制系統(tǒng)的仿真,在核心控制模型的基礎(chǔ)上添加RaspberryPi的通訊接口模塊,如圖9所示,圖9中的RS422高度輸出模塊為RaspberryPi的串口輸出模塊,用于測試外擴(kuò)RS422接口的可靠性,圖9中的UDP Send模塊主要功能為向上位機傳輸大量的仿真數(shù)據(jù)結(jié)果,用于存儲和顯示。圖9中的sfun_RaspberUartPack是使用S-Function編寫的用于數(shù)據(jù)打包的程序,通過添加幀頭、校驗和等構(gòu)成上下位機約定的數(shù)據(jù)幀格式。利用轉(zhuǎn)臺、舵機負(fù)載模擬器、慣性組件和衛(wèi)星模擬器等完成半實物仿真系統(tǒng)的搭建。
圖9 Matlab/Simulink仿真測試模塊示意圖
在控制模型建立成功和硬件系統(tǒng)搭建完成之后,用戶可以通過操作上位機進(jìn)行仿真參數(shù)的設(shè)置和數(shù)學(xué)模型的下載,整個操作流程如下:
a) 打開模型:選擇一個基于Matlab/Simulink建立的飛行控制系統(tǒng)仿真模型。
b) 硬件下載配置和通訊模塊參數(shù)設(shè)置:在Simulink模型的Configuration Parameters中設(shè)置目標(biāo)參數(shù),包括硬件類型、目標(biāo)IP、用戶名和密碼等;在選擇的數(shù)學(xué)模型的基礎(chǔ)上添加RaspberryPi通訊模塊并設(shè)置通訊參數(shù),包括SPI時鐘模式、串口參數(shù)和UDP網(wǎng)址等。
c) 系統(tǒng)上電和通信檢測:快速原型需要28 V 5 A的電源,在上電之后,等待20 s左右,點擊上位機界面的“連接”,如若連接成功,會顯示快速原型的IP地址。
d) 模型下載:設(shè)置相關(guān)仿真參數(shù)之后,點擊模型編譯,會生成可在快速原型上執(zhí)行的C代碼,并自動完成模型下載??焖僭涂上螺d多個不同的仿真模型,不同模型之間通過模型名稱進(jìn)行區(qū)別。
e) 啟動模型:以名稱作為模型標(biāo)簽,一次啟動一個或多個模型,啟動之后模型按照預(yù)先設(shè)置的仿真要求進(jìn)行仿真。
f) 暫停運行:暫停模型運行,使系統(tǒng)處于等待狀態(tài)。
g) 重啟:重新啟動硬件,需要重新與上位機建立連接。
以某彈道模型進(jìn)行仿真測試,設(shè)定發(fā)射角度為45°,根據(jù)操作流程完成模型下載和運行,高度信息通過RS422串口傳送到上位機上,俯仰角和偏航角等數(shù)據(jù)通過網(wǎng)線傳輸?shù)缴衔粰C,得到圖10~圖12所示的仿真結(jié)果。根據(jù)仿真結(jié)果可知,快速原型仿真與數(shù)字仿真的總體趨勢一致,只是存在噪聲干擾和部分波動,這符合硬件仿真結(jié)果,表明快速原型可以穩(wěn)定可靠地完成模型仿真和算法驗證。
圖10 高度仿真結(jié)果曲線
圖11 俯仰角仿真結(jié)果曲線
圖12 偏航角仿真結(jié)果曲線
快速原型作為控制算法設(shè)計的輔助仿真系統(tǒng),可以根據(jù)仿真結(jié)果,不斷調(diào)整仿真參數(shù),逐步完成對控制系統(tǒng)的優(yōu)化,也可為飛控硬件系統(tǒng)的設(shè)計提供參考?;赗aspberryPi設(shè)計了一種新的快速原型仿真系統(tǒng),擴(kuò)展出豐富的硬件接口,完成了快速仿真系統(tǒng)軟件控制平臺的設(shè)計,根據(jù)仿真實驗可知,該系統(tǒng)能可靠地完成多類飛控算法的仿真任務(wù),對其他快速原型的設(shè)計具有參考作用。