金城,周露巖
(中國(guó)飛行試驗(yàn)研究院,陜西西安,710089)
飛機(jī)模擬訓(xùn)練系統(tǒng)是一種利用飛機(jī)模擬器開(kāi)展飛行員培訓(xùn)的先進(jìn)智能化虛擬場(chǎng)景系統(tǒng)。在飛行員開(kāi)展正式的飛行訓(xùn)練之前,均需要在飛機(jī)模擬器環(huán)境下開(kāi)展長(zhǎng)時(shí)間的模擬訓(xùn)練。因此,飛機(jī)模擬訓(xùn)練系統(tǒng)的工作穩(wěn)定性、真實(shí)性等,成為影響飛行員飛行基礎(chǔ)的重要條件[1]。傳統(tǒng)的飛機(jī)模擬訓(xùn)練系統(tǒng)主要包括儀表控制系統(tǒng)、運(yùn)動(dòng)系統(tǒng)、音響系統(tǒng)等。其中飛機(jī)模擬訓(xùn)練系統(tǒng)中的儀表控制系統(tǒng),是整個(gè)飛行員初期教學(xué)與訓(xùn)練場(chǎng)景中最為重要,同時(shí)也是學(xué)習(xí)時(shí)間最長(zhǎng)的項(xiàng)目。因此,本文所開(kāi)展的論述主要圍繞儀表控制系統(tǒng)進(jìn)行,旨在為我國(guó)飛行事業(yè)發(fā)展以及飛行員教學(xué)培訓(xùn)效率的提升等提供幫助。
總體而言飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)主要包括圖1所示的四個(gè)主要機(jī)構(gòu)。指示機(jī)構(gòu)主要包括儀表、顯示器、燈光等模塊,為飛行員提供飛行數(shù)據(jù)、指令等;傳動(dòng)機(jī)構(gòu)則主要為減速器等設(shè)備,負(fù)責(zé)為飛行員的各項(xiàng)操作指令進(jìn)行機(jī)械部的傳遞等;驅(qū)動(dòng)機(jī)構(gòu)則一般采用電機(jī)驅(qū)動(dòng),控制模擬訓(xùn)練儀表控制系統(tǒng)中的儀表;控制機(jī)構(gòu)則由單片機(jī)等微型控制器為核心,對(duì)系統(tǒng)進(jìn)行整體控制。
圖1 飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)
傳統(tǒng)機(jī)構(gòu)和指示機(jī)構(gòu)均具有固定的項(xiàng)目要求,與飛機(jī)的實(shí)際操作場(chǎng)景一模一樣,并不具備可操作的結(jié)構(gòu)優(yōu)化可能性[2]。因此,本文針對(duì)飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)的設(shè)計(jì)將會(huì)主要集中在驅(qū)動(dòng)機(jī)構(gòu)和控制機(jī)構(gòu)方面,利用單片機(jī)實(shí)現(xiàn)基礎(chǔ)功能完善、結(jié)構(gòu)簡(jiǎn)單、累計(jì)誤差小、定位精度高的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)。
本文設(shè)計(jì)的基于單片機(jī)的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng),主要的技術(shù)優(yōu)化在于將步進(jìn)電機(jī)代替了傳統(tǒng)的直流電機(jī)驅(qū)動(dòng);將絕對(duì)式編碼器代替了傳統(tǒng)的8098控制器;以STM32F405/41532位M7內(nèi)核216MB單片機(jī)為核心,構(gòu)建了基于單片機(jī)的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)。圖2所示的為該系統(tǒng)工作原理示意圖。
圖2 飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)工作原理示意圖
STM32F405/41532是本次構(gòu)建的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)核心,主要負(fù)責(zé)接受飛機(jī)模擬訓(xùn)練儀表系統(tǒng)來(lái)自塔臺(tái)、教練員等通過(guò)計(jì)算機(jī)發(fā)來(lái)的指令,指令的類型主要包括與飛行和系統(tǒng)本身有關(guān)的開(kāi)關(guān)量控制指令、飛行高度、飛行坐標(biāo)等。單片機(jī)對(duì)儀表控制計(jì)算機(jī)數(shù)據(jù)進(jìn)行處理后,會(huì)將數(shù)據(jù)進(jìn)行識(shí)別和處理,判斷飛機(jī)模擬訓(xùn)練儀表控制中的指示機(jī)構(gòu)是否處于設(shè)計(jì)位置,與當(dāng)前數(shù)據(jù)顯示是否存在沖突等。絕對(duì)式編碼器將根據(jù)計(jì)算結(jié)果進(jìn)行校正使儀表指示機(jī)構(gòu)的顯示結(jié)果與儀表控制計(jì)算機(jī)數(shù)據(jù)處理結(jié)果一致。
飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)硬件核心設(shè)計(jì)方法以功能模塊法為主,通過(guò)STM32F405/41532單片機(jī)構(gòu)建核心控制模塊,整體硬件設(shè)計(jì)架構(gòu)見(jiàn)圖3。
圖3 硬件架構(gòu)及工作原理
其中,單片機(jī)核心控制模塊主要由串口通信模塊等構(gòu)成,各模塊功能及構(gòu)成如下。
2.1.1 串口通信通信模塊
串口通信通信模塊的主要功能,適用于系統(tǒng)作業(yè)時(shí)的串行數(shù)據(jù)傳輸[3]。串口通信通信模塊在獲取儀表控制計(jì)算機(jī)數(shù)據(jù)以后,會(huì)將信號(hào)數(shù)據(jù)傳輸至STM32F405/41532單片機(jī),由單片機(jī)進(jìn)行后續(xù)的數(shù)據(jù)操作。
2.1.2 步進(jìn)電機(jī)驅(qū)動(dòng)模塊
由于本次構(gòu)建系統(tǒng)主要側(cè)重于簡(jiǎn)潔化、可重復(fù)使用、高精度等需求,因此采用更加適合中小型系統(tǒng)的HCPL-316J驅(qū)動(dòng)電路,采用四相混合式步進(jìn)電機(jī),最高響應(yīng)頻率為100KHz。STM32F405/41532單片機(jī)將處理后的數(shù)據(jù)傳輸至步進(jìn)電機(jī)驅(qū)動(dòng)模塊,該模塊根據(jù)數(shù)據(jù)信號(hào)操控步進(jìn)電機(jī)、減速機(jī)構(gòu)以及指示機(jī)構(gòu)進(jìn)行工作,最終由指示機(jī)構(gòu)將數(shù)據(jù)傳送至編碼器。
2.1.3 解碼模塊
編碼器在接受到指示機(jī)構(gòu)傳輸?shù)臄?shù)據(jù)信號(hào)之后,將會(huì)在進(jìn)行編碼以后將數(shù)據(jù)經(jīng)過(guò)解碼模塊進(jìn)行轉(zhuǎn)換,得到32為并行數(shù)據(jù)。之后解碼模塊將并行數(shù)據(jù)經(jīng)過(guò)緩沖通過(guò)P0將數(shù)據(jù)傳輸至STM32F405/41532單片機(jī)。
2.1.4 開(kāi)關(guān)量控制模塊
該模塊主要用于對(duì)模擬訓(xùn)練儀表控制系統(tǒng)中的各開(kāi)關(guān)進(jìn)行隔離和控制等。在接受STM32F405/41532單片機(jī)傳遞的數(shù)據(jù)信號(hào)后,開(kāi)關(guān)量控制模塊的P3模塊將會(huì)與控制系統(tǒng)中的光耦芯片進(jìn)行連接,光耦芯片的輸出可以通過(guò)直接驅(qū)動(dòng)控制系統(tǒng)開(kāi)關(guān)的繼電器進(jìn)行工作。
基于單片機(jī)的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)軟件設(shè)計(jì),主要包括:①儀表控制端軟件設(shè)計(jì),主要負(fù)責(zé)對(duì)飛機(jī)模擬訓(xùn)練儀表控制端的界面、交互功能等進(jìn)行編譯;②單片機(jī)端軟件設(shè)計(jì),主要負(fù)責(zé)對(duì)單片機(jī)運(yùn)行主程序、串口通信子程序等進(jìn)行編譯。
2.2.1 儀表控制端
儀表控制端軟件功能實(shí)現(xiàn)要求編寫(xiě)簡(jiǎn)單、生成界面友好、語(yǔ)言可讀性強(qiáng)等。因此,本文采用VC語(yǔ)言用于設(shè)計(jì)飛機(jī)模擬訓(xùn)練儀表控制端系統(tǒng)軟件。由于飛機(jī)模擬訓(xùn)練儀表控制端的工作環(huán)境需要滿足大量初級(jí)飛行員的模擬飛行。因此,系統(tǒng)工作中需要經(jīng)常進(jìn)行初始化,已滿足不同飛行學(xué)員需求。因此,系統(tǒng)的初始設(shè)置至關(guān)重要。如下所示為本次編寫(xiě)儀表控制端軟件初始設(shè)置的部分關(guān)鍵代碼。
2.2.2 單片機(jī)端
單片機(jī)端的代碼編寫(xiě)通常采用匯編語(yǔ)言進(jìn)行編譯,但采用該方法編譯出的單片機(jī)端代碼整體復(fù)雜程度較高,不利于后續(xù)維護(hù)和系統(tǒng)優(yōu)化人員進(jìn)行閱讀,優(yōu)點(diǎn)是資源利用率高,能夠?yàn)轱w機(jī)模擬訓(xùn)練儀表控制系統(tǒng)提供較好的可控制性,比較適合進(jìn)行結(jié)構(gòu)簡(jiǎn)單、模塊化的產(chǎn)品控制程序編寫(xiě)。本文所編寫(xiě)的單片機(jī)端控制軟件共包含主程序、串口通信子程序等。
2.2.2.1 主程序
單片機(jī)端主程序設(shè)計(jì),是在儀表控制端完成系統(tǒng)初始化以后的一個(gè)查詢程序。該程序能夠?qū)ο到y(tǒng)中是否存在數(shù)據(jù)的傳輸進(jìn)行篩查。在發(fā)現(xiàn)系統(tǒng)中存在數(shù)據(jù)傳輸以后主程序?qū)?huì)對(duì)該數(shù)據(jù)傳輸進(jìn)行相應(yīng),根據(jù)傳入的數(shù)據(jù)類型、具體指令等進(jìn)行發(fā)出相應(yīng)的控制指令。使系統(tǒng)數(shù)據(jù)傳輸和指令傳遞不需等待。
2.2.2.2 串口通信子程序
串口通信子程序主要通過(guò)握手信號(hào)對(duì)系統(tǒng)接收數(shù)據(jù)信號(hào)的字節(jié)、長(zhǎng)度等進(jìn)行檢測(cè)。系統(tǒng)工作時(shí),串口通信子程序首先撤銷數(shù)據(jù)傳輸中斷標(biāo)志,檢測(cè)所接收信號(hào)是否為字節(jié)E,若所得結(jié)果為否則檢測(cè)信號(hào)接收長(zhǎng)度是否為0;若信號(hào)長(zhǎng)度不為0則對(duì)數(shù)據(jù)進(jìn)行寄存,再對(duì)信號(hào)長(zhǎng)度減1之后是否為0進(jìn)行檢測(cè);若減1之后的系統(tǒng)信號(hào)長(zhǎng)度是0則恢復(fù)現(xiàn)場(chǎng),退出中斷服務(wù)子程序;若不為0則進(jìn)入第一步進(jìn)行重新檢測(cè)。
2.2.2.3 校正子程序
由于本文所設(shè)計(jì)的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)采用了單片機(jī)、步進(jìn)電機(jī)等硬件設(shè)備,因此系統(tǒng)的精度高、保持力矩大,具有較為理想的起停性能。因此,本文所設(shè)計(jì)的系統(tǒng)校正子程序主要用于判斷步進(jìn)電機(jī)驅(qū)動(dòng)下的指示機(jī)構(gòu)位置并對(duì)機(jī)構(gòu)位置進(jìn)行校正。系統(tǒng)工作時(shí),首先調(diào)用編碼器數(shù)碼讀取子程序,通過(guò)對(duì)指示機(jī)構(gòu)當(dāng)前位置的判斷與預(yù)定的位置進(jìn)行對(duì)比,若相等則退出子程序,若不等則調(diào)用計(jì)算子程序計(jì)算二者差距,再將差值傳輸至調(diào)用步進(jìn)電機(jī)運(yùn)動(dòng)自動(dòng)程序進(jìn)行校正,校正后重新進(jìn)行數(shù)據(jù)讀取直至指示機(jī)構(gòu)顯示結(jié)果與預(yù)定位置相同。
對(duì)本次開(kāi)發(fā)的基于單片機(jī)的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)進(jìn)行功能測(cè)試,主要針對(duì)系統(tǒng)的排氣溫度表等的指示速度、精度、誤差以及跟隨性能等進(jìn)行檢測(cè),具體檢測(cè)結(jié)果見(jiàn)表1。
表1 排氣溫度指示機(jī)構(gòu)檢測(cè)結(jié)果
可見(jiàn),系統(tǒng)的實(shí)測(cè)值與輸入值之間的誤差在-1至1℃之間,連續(xù)性較強(qiáng),且系統(tǒng)不存在抖動(dòng)現(xiàn)象,噪音的表現(xiàn)為微小,幾乎被會(huì)被人耳獲取。因此,綜合而言系統(tǒng)的工作狀態(tài)較為理想,已經(jīng)達(dá)到了系統(tǒng)的設(shè)計(jì)需求。
文章基于單片機(jī)構(gòu)建了一種結(jié)構(gòu)簡(jiǎn)單、可重復(fù)利用性強(qiáng)、指令精度高的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)。經(jīng)過(guò)檢測(cè)分析表明,該系統(tǒng)的溫度指令等工作穩(wěn)定性強(qiáng)、噪音小,形成指令的誤差小,能夠滿足一般飛行員的模擬飛行教學(xué)場(chǎng)景,是一種值得推廣的飛機(jī)模擬訓(xùn)練儀表控制系統(tǒng)。