張 治,謝 峰,董敏周,張昊迪
(1.中國空空導彈研究院, 河南 洛陽 471009; 2.西北工業大學航天學院, 西安 710129)
隨著軍事科技的快速發展,導彈控制系統的設計要求在不斷提高,控制律和制導律設計的復雜度和難度也在增加,因此,如何能在不同研發階段發現和驗證設計中的不足至關重要。快速原型的應用不僅可以驗證飛控算法的有效性和執行效率,對算法進行及時改進,而且可以指導飛控系統的硬件設計與優化[1]。在飛控系統的設計過程中,快速原型主要是在產品研發的實驗階段,將相應的控制算法加載到硬件平臺,通過實際的硬件通信接口與慣性傳感器、GPS接收機、舵機等實物相連[2],通過模擬飛控計算機的實時仿真,來驗證算法的正確性、可靠性。基于RT_LAB實時仿真器的快速原型已經被廣泛應用于導彈控制系統的設計,該方法通過RT_LAB軟件將基于Matlab/Simulink開發的數字仿真模型加載到硬件平臺上運行,實現了數字仿真向實物仿真的轉換[3];dSPACE實時系統也常被用于半實物仿真系統快速原型的開發,該實時系統具有計算精度高、實時性好等優點,但是也存在著開發成本高、維護性差等缺點[4]。
本文設計了一種基于RaspberryPi的低成本快速控制原型仿真系統,將基于Matlab/Simulink設計的飛控仿真模型直接加載到硬件平臺上實時運行,參與半實物仿真試驗。
本文開發的快速控制原型仿真系統是以RaspberryPi作為硬件平臺,實現飛控數學模型的運行。RaspberryPi(樹莓派)是一款采用ARM架構處理器和Linux操作系統的卡片式計算機,外形小巧,成本低。雖然外形只有信用卡大小,但是具有強大的系統功能和接口資源[5],如RaspberryPi 4B擁有1.5 GHz的4核64位 ARM Cortex-A72 CPU,強大的運行能力可以匹敵一般的仿真計算機;支持千兆以太網,同時外設4路USB接口,以及多路I/O接口,豐富的接口資源極大地擴展了它的使用范圍。而且樹莓派可以根據不同的使用需求安裝不同的支持系統,針對Matlab/Simulink仿真要求,樹莓派開發了相應固件支持包,可以將Matlab/Simulink仿真模型直接下載到系統中運行。
根據飛控系統半實物仿真的一般構成和快速原型開發的一般特點,結合具體的功能需求,飛控快速控制原型仿真系統包括五個部分:電源調理模塊、外部仿真參試組件、通信擴展模塊、仿真計算模塊和仿真總控平臺。其中外部仿真參試組件為半實物仿真過程中的數據發生模塊,主要包括慣導系統、GPS模擬器、舵機等[6];為了滿足多種外部參試組件的通訊要求,設計了通訊擴展模塊,包括CAN總線接口、1553B接口、多路高速串行通訊接口RS422和多路I/O,同時為了實現舵機的控制和舵機反饋信號的采集,集成了ADC和DAC模塊;仿真計算模塊作為快速原型的核心,主要承擔飛控仿真模型的運行,而且該模塊自帶多種通信接口,尤其是千兆以太網接口,可以實現大量數據的快速傳輸,完成向總控平臺的數據傳輸;為了實現較好的人機交互,仿真總控平臺運行在Windows系統中,該平臺基于Matlab/Simulink設計,主要用于飛控仿真模型的建立,包括導彈運動學和動力學模型的建立,控制律和制導律的設計,同時作為總控平臺,實現仿真狀態的監控、仿真數據存儲和數據圖像化,如圖1所示。

圖1 飛控快速原型仿真系統總體方案框圖
仿真計算模塊作為模型運行的載體,是整個快速原型的核心,本文設計了以RaspberryPi為基礎的仿真計算機。Mathwork官方已經推出了樹莓派的硬件支持包,無論是Matlab函數或是Simulink模塊,都可以完成對RaspberryPi的開發,這與飛控算法開發軟件具有高度的一致性。Simulink的樹莓派支持包提供了多種硬件通訊接口模塊,包括SPI、serial、I2C、TCP/IP、UDP和ThingSpeak等,這些接口函數降低了仿真試驗的軟件開發難度,提高了飛控系統設計的效率。
快速控制原型在該模塊的基礎上進行了擴展,充分利用了模塊中的I/O,擴展出了RS422和SPI,用于與外界的通訊。同時通過千兆以太網口實現與上位機的通訊,不僅可以完成飛控模型的下載,而且可以實現仿真數據的傳輸。以Matlab/Simulink作為導彈飛行控制系統的建模工具,利用Simulink/RTW工具的代碼自動生成功能將數學模型轉換成相應的C代碼,并加載到RaspberryPi中進行實時運行。通過高速串行接口SPI接收由通信擴展模塊采集和打包的外部傳感器數據。圖2為仿真計算模塊功能結構。

圖2 仿真計算模塊功能結構框圖
由于參加半實物仿真的外部組件較多,混合多種硬件接口,為了滿足豐富的接口要求,本文設計了基于ARM的通訊擴展模塊,完成了模塊中的硬件電路設計。根據外部仿真參試組件接口的具體要求,本文擴展了CAN總線、1553B總線、SPI、RS422和I/O等接口,同時集成了ADC和DAC模塊。1553B是由美國提出應用在機載設備間信息傳輸的總線標準,因其高可靠性、實時性和安全性等優點而廣泛應用于航空電子通信網絡[7],為了方便設計和數據傳輸的可靠性,選取BST_1553B模塊作為總線驅動器,通過SPI接口與STM32F429相連。
1) STM32F429具有豐富的I/O端口,最高輸出電平和最大承受電平為3.3 V,為了滿足不同電平要求,選用光耦繼電器AQW214和HCPL-2630,通過輸出端的參考電壓Pwr_IO,將I/O的3.3V電平轉變成與Pwr_IO相等的電壓;同時利用HCPL-2630將外部電壓轉換成I/O可承受的標準3.3 V電平,具體的電路如圖3所示。

圖3 I/O擴展電路圖
2) RS422作為一種標準通訊協議,具有抗干擾能力強、傳輸距離遠、傳輸速率高等優點,已經被廣泛應用于工程實踐中[8]。選用的ARM處理器為STM32F429IGT6,擁有四路USRAT和四路UART,可以擴展出多路RS422總線。選用芯片MAX490ESA作為電平轉換器,實現ARM輸出的TTL電平轉化為RS422接口標準電平,外圍添加電阻和電容,減少電信號的干擾,具體電路如圖4所示。

圖4 RS422串口通訊電路圖
3) CAN總線是一種有效支持分布式控制或實時控制的串行通信網絡,采用雙線串行方式,檢錯能力強,可在高噪聲、復雜電磁環境中工作,已經被廣泛應用于航空航天領域[9]。STM32芯片中嵌入有bxCAN控制器(Basic Extended CAN),并且支持最高1Mbit/s的通訊速率,可以自動地接收和發送報文,支持使用標準ID和擴展ID的報文。選用芯片PCA82C250作為CAN收發器,由于STM32F429的內核電壓為3.3 V,收發器的工作電壓為5 V,為了實現兩種不同電平之間的信號傳遞及抑制CAN總線的共模電壓引起的串擾[10],選用光耦6N137來隔離STM32F429和PCA82C250之間收發引腳的連接。同時為了濾除總線上的高頻干擾和電磁輻射,在CANH和CANL之間連接一定大小的電容和電阻。斜率電阻Rs端外接一個可變電阻,通過調節其阻值大小可以選擇PCA82C25的三種工作模式:高速工作模式、斜率控制工作模式、待機模式,具體電路如圖5所示。

圖5 CAN總線通信電路圖
4) 模擬信號的采集與輸出是快速仿真原型的必備功能。選用TI公司的DAC8563作為數模轉換芯片,該芯片為16位低功耗電壓輸出雙通道數模轉換器,支持50 MHz的SPI標準接口[11],可實現與主控處理器STM32F429之間的快速數據傳輸。為了滿足電壓輸出范圍要求(-10 V~+10 V),基于OPA2171AID設計了運算放大電路,以DAC8563輸出的2.5 V電壓作為參考電壓VREF,外接±15 V的常值電平,所設計的運算放大器的輸出公式為VOUT=4.7*(VIN-VREF),具體電路如圖6所示。ADC模塊選用AD7606芯片,此芯片具有16位8通道同步采樣能力,可處理不同量程的雙極性輸入信號(-10 V~+10 V,-5 V~+5 V),采樣速率可達200kSPS。為提高總線的負載能力,外接雙向三態數據緩存器74LS245。

圖6 D/A轉換電路圖
在導彈飛行控制系統的設計過程中,Matlab/Simulink因為其編程簡單且圖形化功能強大,已經成為最常用和最重要的工具之一,并且可安裝豐富的硬件工具包,Matlab2016及其更高版本可以支持RaspberryPi的開發。系統的軟件開發主要包括上位機即仿真總控平臺的設計、飛控仿真模型中硬件通訊模塊設計和通信擴展模塊STM32F429的開發。仿真總控平臺的功能主要是監控模型運行狀態、數據存儲和數據圖形化,根據仿真需求,設計了如圖7所示的快速原型控制平臺。

圖7 快速原型控制平臺界面
所設計的快速原型以RaspberryPi作為模型運算核心,通過通信擴展模塊完成與外部設備的通訊,通信擴展模塊作為數據處理中心,將采集到的數據整合打包成具有指定協議的幀數據,通過SPI將數據傳輸到RaspberryPi中供仿真模型使用。RaspberryPi作為主設備模式,在每一個仿真周期發送時鐘信號到STM32F429(從設備)中,并從中讀取已處理完成后的幀數據,設置SPI Master Transfer模塊的SPI時鐘模式為model1,如圖8所示。仿真數據與上位機的通訊通過網線連接,根據通訊網址要求,設置UDP Send模塊的IP地址;為了方便單獨查看或輸出某些數據,利用RaspberryPi外圍擴展的RS422通信接口,根據串口通信要求,設置Serial Write模塊的波特率、校驗位、數據位和停止位。通信擴展模塊作為從設備通過SPI與Raspberry連接,為減小CPU的負荷,采用DMA(Direct Memory Access)傳輸方式,根據外圍擴展芯片的要求,參考STM32F429技術手冊可以完成其他通信的軟件設計。

圖8 SPI時鐘模式示意圖
針對某一飛行控制系統的仿真,在核心控制模型的基礎上添加RaspberryPi的通訊接口模塊,如圖9所示,圖9中的RS422高度輸出模塊為RaspberryPi的串口輸出模塊,用于測試外擴RS422接口的可靠性,圖9中的UDP Send模塊主要功能為向上位機傳輸大量的仿真數據結果,用于存儲和顯示。圖9中的sfun_RaspberUartPack是使用S-Function編寫的用于數據打包的程序,通過添加幀頭、校驗和等構成上下位機約定的數據幀格式。利用轉臺、舵機負載模擬器、慣性組件和衛星模擬器等完成半實物仿真系統的搭建。

圖9 Matlab/Simulink仿真測試模塊示意圖
在控制模型建立成功和硬件系統搭建完成之后,用戶可以通過操作上位機進行仿真參數的設置和數學模型的下載,整個操作流程如下:
a) 打開模型:選擇一個基于Matlab/Simulink建立的飛行控制系統仿真模型。
b) 硬件下載配置和通訊模塊參數設置:在Simulink模型的Configuration Parameters中設置目標參數,包括硬件類型、目標IP、用戶名和密碼等;在選擇的數學模型的基礎上添加RaspberryPi通訊模塊并設置通訊參數,包括SPI時鐘模式、串口參數和UDP網址等。
c) 系統上電和通信檢測:快速原型需要28 V 5 A的電源,在上電之后,等待20 s左右,點擊上位機界面的“連接”,如若連接成功,會顯示快速原型的IP地址。
d) 模型下載:設置相關仿真參數之后,點擊模型編譯,會生成可在快速原型上執行的C代碼,并自動完成模型下載。快速原型可下載多個不同的仿真模型,不同模型之間通過模型名稱進行區別。
e) 啟動模型:以名稱作為模型標簽,一次啟動一個或多個模型,啟動之后模型按照預先設置的仿真要求進行仿真。
f) 暫停運行:暫停模型運行,使系統處于等待狀態。
g) 重啟:重新啟動硬件,需要重新與上位機建立連接。
以某彈道模型進行仿真測試,設定發射角度為45°,根據操作流程完成模型下載和運行,高度信息通過RS422串口傳送到上位機上,俯仰角和偏航角等數據通過網線傳輸到上位機,得到圖10~圖12所示的仿真結果。根據仿真結果可知,快速原型仿真與數字仿真的總體趨勢一致,只是存在噪聲干擾和部分波動,這符合硬件仿真結果,表明快速原型可以穩定可靠地完成模型仿真和算法驗證。

圖10 高度仿真結果曲線

圖11 俯仰角仿真結果曲線

圖12 偏航角仿真結果曲線
快速原型作為控制算法設計的輔助仿真系統,可以根據仿真結果,不斷調整仿真參數,逐步完成對控制系統的優化,也可為飛控硬件系統的設計提供參考。基于RaspberryPi設計了一種新的快速原型仿真系統,擴展出豐富的硬件接口,完成了快速仿真系統軟件控制平臺的設計,根據仿真實驗可知,該系統能可靠地完成多類飛控算法的仿真任務,對其他快速原型的設計具有參考作用。