孫四海,楊紀明,肖 磊,周章文,王壯壯
(空軍工程大學 研究生院,西安 710038)
隨著航空工業的發展,數字式調節器已經逐步取代模擬式調節器成為航空發動機電子控制系統的主流。數字式調節器承擔著航空發動機全部工作狀態的控制任務,其工作情況不僅制約著航空發動機性能發揮,也影響到戰斗機的飛行安全[1]。為提供良好的數字式調節器檢測條件,保障航空發動機性能發揮,在此利用先進電子技術和虛擬儀器技術研發設計了數字式調節器綜合檢測系統,成功應用于某發動機大修廠。
數字式調節器功能復雜,需要完成包括N1和N2最大轉速調節、低壓渦輪后最高燃氣溫度t4調節、喘振保護、高低壓壓氣機進氣導向器角度調節等在內的20多項控制任務[2-3]。這也導致了數字式調節器信號復雜,包括輸出的離散電壓信號、線性電壓信號、占空比信號、狀態信號,輸入的多路頻率信號、傳感器信號、開關信號等,多種不同類型的信號形式。檢測系統不僅需要準確采集數字式調節器輸出信號,還需要模擬發動機傳感器信號和眾多開關信號。
數字式調節器綜合檢測系統由下位機硬件和上位機軟件兩部分組成,系統原理如圖1所示。

圖1 數字式調節器綜合檢測系統的原理Fig.1 Principle of digital regulator integrated detection system
由C8051F系列單片機及周圍電路和阿爾泰USB3121高速數據采集卡組成的硬件部分是檢測系統的控制核心,主要包括電源、傳感器模擬、信號采集與調理等模塊。
軟件部分利用LabVIEW虛擬儀器平臺編寫,軟件主體結構使用獨立式數據采集模式與交互式數據采集模式相結合的方式構成,利用改進設計的生產者與消費者結構、狀態機結構、LabVIEW基本函數和阿爾泰USB3121數據采集卡提供的LabVIEW的庫函數文件完成軟件設計。
選擇NC604串口服務器作為軟硬件通信中介,電源和數據采集卡采用串行總線控制[4]。
作為數字式調節器的離線綜合檢測系統,系統工作時需要為調節器傳感器接口提供模擬傳感器信號,用于模擬發動機工作狀態和環境參數。
其中,滑油溫度Tm,燃油溫度Tt,發動機進口溫度T1-1和起動機進口溫度T1-2由高精度電阻箱提供信號;高低壓轉子轉速N1/N2,起動機轉速Ntc和發動機振動值Fb由C8051F60單片機控制的直接數字頻率合成器DDS(direct digital synthesize)提供信號;低壓壓氣機導流葉片角度α1信號由單片機數模轉換器 DAC(digital to analog converter)直接控制生成;高壓壓氣機導流葉片角度α2,發動機進口壓力P1,滑油壓力Pm,T型傳感器壓差ΔPCK由高精度DAC模塊和信號調制電路提供信號。
所用信號生成方案成熟可靠,所模擬的傳感器特性與真實傳感器特性一致[5]。
3.2.1 I/O 信號采集與輸出
數字式調節器I/O信號多達80路以上,包含0 V/3.3 V(TTL,transistor transistor logic)電平標準靜態數字輸出、0 V/27 V工業電平標準靜態數字輸入和輸出、0V/12V工業電平標準靜態數字輸入和輸出。控制輸出時,通過I2C總線控制多片PCF8574AT芯片,經過光電耦合電路驅動0 V/27 V信號輸出;采集輸入時,信號經過分壓電路和CD4050邏輯電平轉換芯片,再由PCF8574T芯片經I2C總線輸入控制器。
采用這種串并行轉換的輸入輸出形式,節約了控制器的I/O端口資源,也提高了系統集成度。
3.2.2 數據采集卡和DAC模塊
系統采用阿爾泰公司USB3121數據采集卡采集模擬量參數。USB3121為一款多功能數據采集卡,可提供32RSE/NRSE通道,16通道DIFF模擬量輸入,4通道模擬量同步輸出,16路可編程I/O,1路計數器。核心采用1片16位ADC芯片,輸入量程為-10~10 V,-5~5 V,-2~2 V,-1~1 V;支持按需單點采樣、有限點采樣和連續采樣,最高采集速率可達500 kS/s。
DAC模塊采用TLV5610IWD數模轉換器和OPA2277運算放大器組成的電壓跟隨器,為傳感器模擬模塊提供模擬信號。TLV5610IWD是一款8通道、12位數模轉換器,具有1個靈活的串行端口,具備轉換速度快、可靠性高等特點。該模塊為部分傳感器模擬模塊提供信號。
3.2.3 參數電壓和波形采集
由于需要采集多達48路參數電壓信號和3路波形信號,并需滿足一定的采集精度和速度要求,檢測系統使用USB3121數據采集卡32RSE/NRSE通道中的6個AI模擬量輸入通道作為參數電壓和波形采集通道,4個數字量輸入輸出DIO(digital input/output)通道作為控制通道。其中,48路參數電壓信號由4個DIO通道控制ADG 406模擬開關控制接入,經電壓跟隨器和隔離放大器處理之后由3個模擬量輸入AI通道分時采集輸出,每個模擬開關控制16路參數信號采集,最后由軟件控制同步顯示,電壓采集電路如圖2所示。
3路波形信號,直接采用USB3121數據采集卡的3個AI通道采集,硬件設計方面通過電壓跟隨器和隔離放大器對電壓信號做匹配阻抗和隔離放大的處理,以提高波形采集精度。

圖2 電壓采集電路Fig.2 Voltage acquisition circuit
下位機軟件是檢測系統的核心,直接控制硬件模塊完成數據采集和系統控制等功能。軟件的主要組成有設備初始化、存儲空間初始化、開啟內部中斷服務、串口服務函數、設備中斷函數、看門狗等。
系統上電后,將對各模塊設備和存儲進行初始設置,開啟系統內部中斷服務;在主循環內串口服務函數經UART0將采集的數據發送給上位機,UART1向指定存儲空間內發送緩存數據,當UART0收到上位機發送符合規定格式和長度要求的控制指令時,系統將調用task_Update()執行命令(控制參數和動作開關)。下位機獲取和發送數據每隔50 ms進行1次。主函數流程如圖3所示。
系統采用LabVIEW 2014虛擬儀器平臺編寫上位機軟件。后臺程序采用多路并行數據采集與交互式結構相結合的方式構建框架,利用多重消費者與生產者模式嵌套和狀態機相結合的形式具體設計,按照軟件維護性和可讀性要求將軟件模塊化封裝,兼顧軟件操作性能與數據采集速度,使其能配合硬件完成系統功能。前面板按功能區劃分,采用LabVIEW通用控件與自定義控件設計,參考使用人員意見布置功能模塊位置,以提供良好的人機環境。軟件界面如圖4所示。

圖3 主函數流程Fig.3 Main function flow chart

圖4 軟件界面Fig.4 Software interface
4.2.1 軟件框架構建
(1)改進生產者與消費者結構
生產者與消費者結構是LabVIEW編程中最常用的軟件結構,它能使軟件具有良好的操作性能和采集能力。普通的生產者與消費者包含1個“生產者循環”、1個“消費者循環”及把2個循環相連接的“數據隊列”,其基本結構如圖5。

圖5 普通生產者與消費者結構Fig.5 Common producer and consumer structure
在生產者循環中While循環和事件結構將前面板觸發的事件由“元素入隊列”函數輸入隊列,在消費者循環中利用“元素出隊列”函數和條件結構識別不同事件,進入條件結構的不同分支,執行對應分支的程序內容[6]。
該檢測系統軟硬件通信通道較多,信息交互也比較復雜,為此改進設計了普通生產者與消費者結構,使系統可以同時采集和控制多個數據通道。改進的生產者與消費者結構如圖6所示。

圖6 改進的生產者與消費者結構Fig.6 Improved producer and consumer structure
首先,在普通的“生產者循環”與“消費者循環”之間加入了1個“信息連接循環”的中間結構。該結構中可同時連接多個數據隊列引用。其次,創建多個“消費者”循環通道(圖6中設置1組,系統中使用了5組),前面板操作觸發的事件在中間循環中進入對應條件分支,再通過隊列數據將信息傳遞給對應的“消費者循環”,即用操作隊列和數據隊列將“生產者循環”和單個數據采集與控制循環連接,實現多通道并行采集和控制。
另外,在單個數據采集與控制循環中嵌套使用多個狀態機結構,程序將根據狀態機預設狀態和用戶操作狀態選擇執行對應的采集控制程序,從而實現單個通道數據采集與硬件控制的雙重功能。
(2)狀態機結構
LabVIEW中狀態機結構就是利用While循環嵌套一個條件結構,用自定義枚舉常量控制每一個循環條件結構所執行的分支,每個分支中執行的程序代碼即為該分支對應的狀態行為。對于獨立工作的并行設備來說,其下一個循環狀態只受設備當前狀態決定,狀態執行的順序是固定的,本系統USB3121采集卡的控制程序中采用的就是獨立狀態機結構;對于交互式并行設備來說,其下一個循環狀態受當前狀態決定和其他交互設備狀態共同決定。
由圖6可見,系統中5路串口控制程序的“消費者循環”中采用的就是交互式控制的狀態機,其工作狀態受當前程序狀態和前面板用戶操作狀態決定。
4.2.2 軟件模塊設計
(1)TCP數據讀取子 VI
數據讀取子VI是軟硬件系統連接的關鍵,也是所有參數顯示和控制的基礎。TCP數據讀取子VI程序如圖7所示,其中使用的核心函數是“讀取TCP數據”函數,根據上下位機通信協議,嵌套使用2個共用While循環的獨立式狀態機,自動從網絡端口中獲取一幀完整的數據,并能通過數據內容判斷數據讀取狀態和網絡連接狀態發送給其他功能模塊。

圖7 TCP數據讀取子VI程序Fig.7 TCP data read sub VI program
根據網絡可能出現的網絡異常情況和網絡延時情況,該模塊特別設計了網絡自動重連功能和延時等待功能,增強了上位機軟件的健壯性。
(2)數據解析 VI
根據軟硬件通信協議數據幀的格式,每個數據幀都包括:2個字節 “幀頭”、1個字節 “設備ID”、1個字節“數據長度”、若干字節“數據”和2個字節“幀尾”。
軟件解析數據的基本方法是利用“搜索/拆分字符串”“截取字符串”和“強制類型轉換”等函數將每個數據幀的不同組分拆分,對數據幀框架進行判斷,處理后輸出“設備ID”“解析狀態”“指令類型”“數據字節”和“指令碼”等內容供后續模塊使用。
(3)指示燈信號解析
系統采集的指示燈信號眾多,解析模塊采用2個數據簇嵌套,將一幀完整數據字節中的每一位全部解析,由簇直接輸出。處理時“字符串至字節數組轉換”函數將多字節數據轉換為字節數組,數組中一個元素即為一個字節的十進制表示,這些元素順序通過“數據索引隧道”進入For循環,每個元素經過 “數值至布爾數組轉換”“反轉一維數組”和“索引數組”等函數轉換為8個數據位,每一個數據位代表一個指示燈信號。經過多次循環之后,數據字節中的所有指示燈信號都存入輸出簇輸出給之后的功能模塊。指示燈數據解析程序如圖8所示。

圖8 指示燈數據解析Fig.8 Indicator data analysis
(4)參數電壓與波形采集
參數電壓與波形采集程序框架采用獨立狀態機結構,默認執行參數電壓采集循環,當前面板“波形參數采集”開關變化時,狀態機將切換通道執行波形數據采集循環,采集完畢后自動切換回參數電壓采集循環中。狀態機分支中,調用“庫函數節點”功能函數作為每一個功能模塊的執行函數,USB 3121數據采集卡的庫函數文件由阿爾泰公司提供[7]。采用“庫函數節點”編程使得程序有較好的可讀性,功能模塊封裝高度集成,采用統一的控制流程,具有良好的移植性。該模塊的采集控制流程如圖9所示。

圖9 電壓和波形采集控制流程Fig.9 Voltage and waveform acquisition and control flow chart
系統通過硬件通電調試、基本信號檢測、軟硬件聯調試驗、系統整機與數字式調節器聯機測試等測試工作,所有參數采集正常,控制信號誤差范圍符合國軍標要求,系統連續工作時間滿足設計要求,人機環境設計良好。目前該系統已經成功應用于某發動機大修廠數字式調節器的檢修工作中。