,, ,
(中國空氣動(dòng)力研究與發(fā)展中心,四川 綿陽 621000)
風(fēng)洞試驗(yàn)流程是風(fēng)洞試驗(yàn)中參與流場(chǎng)調(diào)節(jié)的受控對(duì)象運(yùn)行時(shí)序和運(yùn)行邏輯的描述。在風(fēng)洞試驗(yàn)過程中,不同試驗(yàn)方式、內(nèi)容和對(duì)象對(duì)試驗(yàn)流程有不同的要求。傳統(tǒng)的風(fēng)洞流場(chǎng)控制軟件中試驗(yàn)流程設(shè)計(jì)固定[1],試驗(yàn)流程的調(diào)整主要依靠修改軟件代碼、升級(jí)軟件的方式將軟件功能調(diào)整到需要進(jìn)行的試驗(yàn)控制流程。這種以軟件代碼修改方式為主的軟件維護(hù)方法,增加了軟件維護(hù)成本和維護(hù)難度,對(duì)軟件維護(hù)人員提出了較高的要求;同時(shí),也容易產(chǎn)生無法預(yù)料的錯(cuò)誤,給風(fēng)洞試驗(yàn)帶來潛在風(fēng)險(xiǎn)。
現(xiàn)代科學(xué)技術(shù)迅猛發(fā)展,測(cè)量、控制軟硬件技術(shù)水平不斷提高,為風(fēng)洞測(cè)控系統(tǒng)功能完善、性能提升創(chuàng)造了更多實(shí)現(xiàn)方法,提供了更佳的技術(shù)支持體驗(yàn)。為研究如何以靈活、有效的方式,處理大量不同試驗(yàn)的變化[2],以降低應(yīng)對(duì)成本和風(fēng)險(xiǎn),提高風(fēng)洞試驗(yàn)質(zhì)量效率和管理效率,需要對(duì)風(fēng)洞流場(chǎng)控制軟件的可靠性、靈活性進(jìn)行有針對(duì)性的設(shè)計(jì)。
本文以某新建亞跨超三聲速暫沖風(fēng)洞流場(chǎng)控制系統(tǒng)為研究對(duì)象,簡要介紹了該風(fēng)洞流場(chǎng)控制軟件試驗(yàn)控制流程描述與解析設(shè)計(jì)實(shí)現(xiàn)方法。
風(fēng)洞流場(chǎng)控制系統(tǒng)的主要功能是依據(jù)試驗(yàn)工況差異選擇不同的運(yùn)行模式對(duì)參與流場(chǎng)調(diào)節(jié)的主進(jìn)氣管路調(diào)壓閥(包括主調(diào)壓閥和旁路調(diào)壓閥)、引射進(jìn)氣管路調(diào)壓閥(以下簡稱:引射器調(diào)壓閥)、柵指等執(zhí)行機(jī)構(gòu)進(jìn)行位置閉環(huán)控制和壓力閉環(huán)控制,從而建立所需的穩(wěn)定流場(chǎng),同時(shí)還負(fù)責(zé)模型姿態(tài)角控制,以獲得模型在確定流場(chǎng)環(huán)境、不同姿態(tài)下的試驗(yàn)數(shù)據(jù)。具體而言,超聲速試驗(yàn)前,柔壁型面控制系統(tǒng)將噴管預(yù)置到試驗(yàn)所需的M數(shù)型面,亞跨聲速試驗(yàn)時(shí),柔壁型面控制系統(tǒng)將噴管預(yù)置到聲速型面。主調(diào)壓閥、旁路調(diào)壓閥和引射器調(diào)壓閥等組成閥門系統(tǒng),負(fù)責(zé)試驗(yàn)中氣流控制和總壓、引射壓力調(diào)節(jié);柵指機(jī)構(gòu)用于亞跨聲速流場(chǎng)駐室靜壓的調(diào)節(jié)[3]。
流場(chǎng)控制軟件采用LabVIEW統(tǒng)一開發(fā)環(huán)境[4]進(jìn)行開發(fā),實(shí)時(shí)應(yīng)用軟件開發(fā)需要安裝Real-Time實(shí)時(shí)軟件模塊[5]。軟件包括測(cè)控間運(yùn)行管理軟件和部署到風(fēng)洞現(xiàn)場(chǎng)PXI實(shí)時(shí)系統(tǒng)[6]的實(shí)時(shí)應(yīng)用軟件兩部分。軟件采用三層結(jié)構(gòu)進(jìn)行設(shè)計(jì),由頂至下分別是:
操作層(即運(yùn)行管理軟件)實(shí)現(xiàn)軟件的交互功能,提供給操作人員使用;
問題領(lǐng)域?qū)佑糜诮鉀Q流場(chǎng)控制領(lǐng)域內(nèi)的試驗(yàn)流程解析、壓力閉環(huán)控制、機(jī)構(gòu)控制、安全控制及對(duì)上層、對(duì)下層的通訊接口;
硬件接口層用于實(shí)現(xiàn)與PXI外聯(lián)設(shè)備的信息交互,是三層中唯一與設(shè)備耦合的層,也就是說,硬件接口層之上的兩層都采用數(shù)據(jù)、變量、參數(shù)文件、數(shù)據(jù)文件等進(jìn)行交互,與設(shè)備零耦合,這樣的軟件結(jié)構(gòu)是后續(xù)軟件優(yōu)化的前提和基礎(chǔ)。問題領(lǐng)域?qū)雍陀布涌趯庸餐瑯?gòu)成實(shí)時(shí)應(yīng)用軟件。流場(chǎng)控制軟件基本功能及結(jié)構(gòu)如圖1所示。
圖1 流場(chǎng)控制軟件基本功能及結(jié)構(gòu)示意圖
根據(jù)試驗(yàn)需求,風(fēng)洞基本運(yùn)行模式包括(但不限于)以下3種:
(1)下吹式,只有主進(jìn)氣管路調(diào)壓閥對(duì)總壓進(jìn)行調(diào)節(jié),引射器調(diào)壓閥不工作;
(2)引射下吹式,主進(jìn)氣管路調(diào)壓閥和引射器調(diào)壓閥均投入各自壓力調(diào)節(jié);
(3)引射啟動(dòng)式,風(fēng)洞啟動(dòng)時(shí)引射器調(diào)壓閥工作,然后主進(jìn)氣管路調(diào)壓閥投入運(yùn)行,主進(jìn)氣管路調(diào)壓閥轉(zhuǎn)入壓力閉環(huán)控制后關(guān)閉引射器調(diào)壓閥,試驗(yàn)結(jié)束時(shí)再次啟動(dòng)引射器調(diào)壓閥[7]。
圖2 亞跨超聲速風(fēng)洞運(yùn)行模式流程圖
圖2是上述三種運(yùn)行模式的簡要流程,流程中的虛線部分“柵指M數(shù)調(diào)節(jié)”模塊僅在需要使用柵指進(jìn)行M數(shù)調(diào)節(jié)的亞跨聲速試驗(yàn)工況下才會(huì)被使用。
隨著風(fēng)洞試驗(yàn)技術(shù)不斷配套,風(fēng)洞試驗(yàn)工況不斷增加,風(fēng)洞試驗(yàn)流程也會(huì)不斷增加。因此,如何安全、高效應(yīng)對(duì)更多試驗(yàn)工況,這是擺在流場(chǎng)控制軟件設(shè)計(jì)者面前不可回避的問題。
依據(jù)對(duì)現(xiàn)有風(fēng)洞長期運(yùn)行實(shí)踐經(jīng)驗(yàn)的積累,可以認(rèn)為,參與流場(chǎng)調(diào)節(jié)的控制對(duì)象及這些控制對(duì)象在流場(chǎng)調(diào)節(jié)過程中的控制行為都是確知的、可枚舉的有限數(shù)量集。基于此,為改進(jìn)流場(chǎng)控制軟件設(shè)計(jì)模式以優(yōu)化軟件維護(hù)管理模式,在軟件代碼設(shè)計(jì)階段,僅對(duì)這些參與流場(chǎng)調(diào)節(jié)的控制對(duì)象及其控制行為進(jìn)行描述,而不對(duì)這些控制對(duì)象及控制行為的運(yùn)行時(shí)序和邏輯進(jìn)行描述。在上位運(yùn)行管理軟件中開發(fā)獨(dú)立的試驗(yàn)流程編制模塊,對(duì)試驗(yàn)流程進(jìn)行基于自然語言的流程描述[8];在PXI實(shí)時(shí)應(yīng)用軟件中開發(fā)流程解析模塊,對(duì)來自運(yùn)行管理軟件的試驗(yàn)流程進(jìn)行解析,風(fēng)洞按照所解析的時(shí)序和邏輯調(diào)度參試設(shè)備完成試驗(yàn),試驗(yàn)結(jié)束后按照配置的關(guān)車流程自動(dòng)關(guān)車。試驗(yàn)中,欲有緊急情況時(shí),操作人員通過上位運(yùn)行管理軟件發(fā)出“終止試驗(yàn)”信號(hào),PXI實(shí)時(shí)應(yīng)用軟件收到指令信息后立即將試驗(yàn)流程跳轉(zhuǎn)到“緊急關(guān)車”流程,風(fēng)洞將按照配置好的“緊急關(guān)車”流程自動(dòng)完成系列關(guān)車動(dòng)作。
風(fēng)洞試驗(yàn)流程描述[9]設(shè)計(jì)主要包括流程索引、指令節(jié)點(diǎn)和行為節(jié)點(diǎn)三部分內(nèi)容。
流程索引是對(duì)每條流程節(jié)點(diǎn)的序列標(biāo)識(shí)。索引值起始于0,逐條加1。每一個(gè)指令節(jié)點(diǎn)、行為節(jié)點(diǎn)都有唯一的流程索引與之對(duì)應(yīng)。試驗(yàn)流程的時(shí)序和跳轉(zhuǎn)邏輯將以流程索引為依據(jù)進(jìn)行執(zhí)行。
指令節(jié)點(diǎn)包括準(zhǔn)備開車、準(zhǔn)備開車取消、開車、正常關(guān)車、PXI回零關(guān)車、PLC回零關(guān)車、緊急停車等。指令節(jié)點(diǎn)采用中文命名,按順序排列,這些節(jié)點(diǎn)將一個(gè)完整的試驗(yàn)流程劃分為幾個(gè)階段,每個(gè)階段內(nèi)依據(jù)試驗(yàn)需要而包含數(shù)條行為節(jié)點(diǎn)。指令節(jié)點(diǎn)本身并不產(chǎn)生任何機(jī)構(gòu)控制行為,機(jī)構(gòu)控制行為依據(jù)指令節(jié)點(diǎn)后跟隨的行為節(jié)點(diǎn)而產(chǎn)生不同的動(dòng)作。
行為節(jié)點(diǎn)包括機(jī)構(gòu)名稱、機(jī)構(gòu)行為、行為參數(shù)1、行為參數(shù)2和狀態(tài)檢查五部分內(nèi)容。機(jī)構(gòu)名稱對(duì)象有主調(diào)壓閥、旁路調(diào)壓閥、引射器調(diào)壓閥、柵指機(jī)構(gòu)、迎角機(jī)構(gòu)等;機(jī)構(gòu)行為指的是機(jī)構(gòu)在流場(chǎng)調(diào)節(jié)中的動(dòng)作,比如充壓階段的“調(diào)壓閥高開”和瀉壓階段的“調(diào)壓閥回拉”,調(diào)壓閥轉(zhuǎn)入“壓力閉環(huán)控制”,“調(diào)壓閥定位”等,在流場(chǎng)調(diào)節(jié)過程中,某機(jī)構(gòu)具有哪些控制行為,其依據(jù)是軟件研制過程中設(shè)計(jì)了哪些行為,及哪些行為被調(diào)度;行為參數(shù)1、行為參數(shù)2則是這些機(jī)構(gòu)行為的速度、位置、時(shí)間等參數(shù);狀態(tài)檢查用于確定是否需要對(duì)機(jī)構(gòu)行為執(zhí)行情況進(jìn)行狀態(tài)檢查,如果不需要狀態(tài)檢查,則直接將流程索引跳轉(zhuǎn)到下一流程索引;如果需要檢查,則需要判斷被檢查項(xiàng)是否完成,待完成后再轉(zhuǎn)入執(zhí)行下一流程索引。
為實(shí)現(xiàn)試驗(yàn)流程編輯功能,上位運(yùn)行管理軟件開發(fā)試驗(yàn)流程控制表編輯模塊,試驗(yàn)流程控制表編輯器如圖3所示,編輯器界面分為三個(gè)區(qū)域,左側(cè)區(qū)域是某個(gè)機(jī)構(gòu)的行為列表,用以提示對(duì)應(yīng)機(jī)構(gòu)擁有哪些行為動(dòng)作可以選擇輸入到表格中;右側(cè)區(qū)域是幫助說明,提供簡要的編輯指導(dǎo)說明;中間區(qū)域用于編輯流程所有相關(guān)信息。編輯器中,除了參數(shù)1、參數(shù)2需要手動(dòng)輸入外,機(jī)構(gòu)名稱、機(jī)構(gòu)行為和狀態(tài)檢查都采用快捷菜單選擇輸入方式進(jìn)行編輯,這樣可以最大限度控制人為編輯錯(cuò)誤。
圖3 試驗(yàn)流程控制表編輯器
流程控制表編輯好后,軟件在保存控制表時(shí)自動(dòng)將表格索引作為流程索引一并保存。
試驗(yàn)階梯數(shù)及各個(gè)階梯的值不在此進(jìn)行編輯,而在試驗(yàn)參數(shù)中進(jìn)行給定,在準(zhǔn)備試驗(yàn)時(shí),需將試驗(yàn)參數(shù)通過網(wǎng)絡(luò)共享變量發(fā)送到現(xiàn)場(chǎng)實(shí)時(shí)應(yīng)用軟件。
為實(shí)現(xiàn)對(duì)流程控制表信息的解析,PXI實(shí)時(shí)應(yīng)用軟件開發(fā)專門的流程解析模塊。流程解析模塊通過網(wǎng)絡(luò)接收來自上位運(yùn)行管理軟件的流程控制表,并將該表以變量的形式存于系統(tǒng)內(nèi)存中。PXI實(shí)時(shí)應(yīng)用軟件對(duì)試驗(yàn)流程控制表的解析包括分別用于指令節(jié)點(diǎn)解析、行為節(jié)點(diǎn)解析和階梯進(jìn)程解析三個(gè)部分。
在PXI實(shí)時(shí)應(yīng)用軟件中,對(duì)指令節(jié)點(diǎn)解析過程是:實(shí)時(shí)應(yīng)用軟件接收到來自上位運(yùn)行管理軟件的試驗(yàn)流程控制指令(如:準(zhǔn)備開車、準(zhǔn)備開車取消、開車、PXI回零關(guān)車等),或接收到實(shí)時(shí)應(yīng)用軟件中安全聯(lián)鎖模塊產(chǎn)生的流程控制指令(如:超壓保護(hù)關(guān)車,PLC回零關(guān)車等),在流程控制表中搜索指令所在位置,并對(duì)流程索引執(zhí)行加1操作,試驗(yàn)流程將自動(dòng)轉(zhuǎn)入指令節(jié)點(diǎn)后的系列行為節(jié)點(diǎn)解析。
在PXI實(shí)時(shí)應(yīng)用軟件中,行為節(jié)點(diǎn)解析模塊針對(duì)每種機(jī)構(gòu)而開發(fā)。對(duì)機(jī)構(gòu)行為節(jié)點(diǎn)的解析流程是:在流程索引所在行機(jī)構(gòu)名稱列提取機(jī)構(gòu)名稱,在解析模塊中判斷機(jī)構(gòu)名稱是否與本模塊控制對(duì)象一致,如果不一致,則保持當(dāng)前索引值,程序轉(zhuǎn)入下一機(jī)構(gòu)解析模塊,如果一致,則轉(zhuǎn)入本模塊內(nèi)進(jìn)行機(jī)構(gòu)行為解析,并將參數(shù)1、參數(shù)2賦值給該機(jī)構(gòu)行為,同時(shí)加載狀態(tài)檢查項(xiàng)。
狀態(tài)檢查項(xiàng)用于控制行為節(jié)點(diǎn)索引。如果某項(xiàng)行為需要進(jìn)行狀態(tài)檢查,在該行為未能滿足狀態(tài)檢查條件時(shí),索引保持當(dāng)前值;在該行為滿足狀態(tài)檢查條件后,流程索引控制將對(duì)流程索引執(zhí)行加1操作,從而將索引指向下一個(gè)行為節(jié)點(diǎn);如果該行為不需要進(jìn)行狀態(tài)檢查,則該行為分支發(fā)出控制指令后,流程索引控制將對(duì)流程索引執(zhí)行加1操作,從而將索引指向下一個(gè)行為節(jié)點(diǎn)。上述解析流程如圖4所示。
圖4 行為節(jié)點(diǎn)解析流程
在實(shí)時(shí)應(yīng)用軟件中,行為節(jié)點(diǎn)解析模塊按照主調(diào)壓閥、旁路調(diào)壓閥、引射調(diào)壓閥、柵指、模型支撐機(jī)構(gòu)、其它外部機(jī)構(gòu)的順序串行設(shè)計(jì)和解析。上位運(yùn)行管理軟件在編輯試驗(yàn)流程時(shí),須按照同樣的順序編輯機(jī)構(gòu)行為。這樣的設(shè)計(jì)可以保證:假如所有的行為都不需要進(jìn)行狀態(tài)檢查,則在軟件模塊一個(gè)掃描周期內(nèi),所編輯的行為將被順序執(zhí)行,從而提高了軟件的運(yùn)行效率和實(shí)時(shí)性。
風(fēng)洞完成啟動(dòng)轉(zhuǎn)入壓力閉環(huán)控制后,試驗(yàn)流程將轉(zhuǎn)入階梯進(jìn)程解析控制階段。階梯進(jìn)程解析控制功能主要實(shí)現(xiàn)總壓階梯進(jìn)程解析與控制、M數(shù)階梯進(jìn)程解析與控制和模型姿態(tài)角階梯進(jìn)程解析與控制。試驗(yàn)中,最常見的試驗(yàn)工況是固定總壓、固定M數(shù)、變模型姿態(tài)角階梯控制,但也存在變總壓階梯,或變M數(shù)階梯的試驗(yàn)工況。為兼顧三種參數(shù)的階梯進(jìn)程解析與控制,特將模型姿態(tài)角階梯、M數(shù)階梯和總壓階梯設(shè)計(jì)為由內(nèi)至外的固定解析控制結(jié)構(gòu),即首先解析模型姿態(tài)角階梯,如果模型姿態(tài)角階梯試驗(yàn)完成,再轉(zhuǎn)軟M數(shù)階梯,待M數(shù)階梯試驗(yàn)結(jié)束,最后轉(zhuǎn)入總壓階梯,總壓階梯試驗(yàn)結(jié)束,則轉(zhuǎn)入關(guān)車流程,具體流程詳見圖5所示。因此,運(yùn)行管理軟件在編制試驗(yàn)階梯進(jìn)程時(shí),需要按照上述固定結(jié)構(gòu)進(jìn)行編輯。
圖5 試驗(yàn)階梯解析控制流程圖
軟件測(cè)試分為軟件獨(dú)立測(cè)試和流場(chǎng)控制系統(tǒng)無風(fēng)聯(lián)調(diào)測(cè)試兩部分內(nèi)容。
軟件獨(dú)立測(cè)試主要完成了以下兩項(xiàng)流程描述與解析相關(guān)測(cè)試:
(1)流程控制表編輯器功能測(cè)試,通過測(cè)試完善了行為參數(shù)1、行為參數(shù)2的邊界預(yù)警和強(qiáng)制轉(zhuǎn)換功能,將參數(shù)限定在系統(tǒng)可接受的合理范圍內(nèi)。
(2)試驗(yàn)流程控制表一致性檢查,對(duì)存在于運(yùn)行管理軟件中的流程控制表和通過網(wǎng)絡(luò)發(fā)送到現(xiàn)場(chǎng)實(shí)時(shí)應(yīng)用軟件中試驗(yàn)流程控制表的一致性進(jìn)行檢查,由于采用NI提供的網(wǎng)絡(luò)共享變量進(jìn)行網(wǎng)絡(luò)傳輸,其傳輸機(jī)制保證了數(shù)據(jù)傳輸?shù)耐暾裕礄z測(cè)到流程控制表不一致的現(xiàn)象。
為實(shí)現(xiàn)無風(fēng)狀態(tài)下流場(chǎng)控制系統(tǒng)聯(lián)調(diào)測(cè)試[10],專門開發(fā)了壓力仿真模塊用以模擬試驗(yàn)中各壓力監(jiān)測(cè)點(diǎn)的壓力,控制系統(tǒng)無風(fēng)聯(lián)調(diào)測(cè)試過程中,截至氣流,流場(chǎng)控制系統(tǒng)在壓力仿真模塊引導(dǎo)下完整模擬試驗(yàn)過程全部調(diào)控細(xì)節(jié)。
無風(fēng)聯(lián)調(diào)測(cè)試主要完成了以下幾項(xiàng)流程描述與解析相關(guān)測(cè)試:
(1)指令節(jié)點(diǎn)解析模塊和行為節(jié)點(diǎn)解析模塊功能測(cè)試,測(cè)試將現(xiàn)場(chǎng)實(shí)時(shí)應(yīng)用軟件中執(zhí)行的流程索引值通過共享變量上傳至運(yùn)行管理軟件并保存,試驗(yàn)完成后通過索引值反查流程控制表以檢查流程執(zhí)行的正確性。
(2)階梯進(jìn)程解析控制模塊功能測(cè)試,測(cè)試試驗(yàn)是否按照給定的階梯控制參數(shù)執(zhí)行試驗(yàn)。
(3)參數(shù)測(cè)試,測(cè)試了軟件是否嚴(yán)格按照流程控制表提供的參數(shù)執(zhí)行。
(4)狀態(tài)檢查項(xiàng)測(cè)試,測(cè)試了軟件是否嚴(yán)格按照流程控制表提供的狀態(tài)檢查參數(shù)執(zhí)行。
軟件后期還通過風(fēng)洞綜合性能調(diào)試進(jìn)一步測(cè)試驗(yàn)證了軟件功能和性能,測(cè)試結(jié)果表明:
(1)軟件的流程描述功能設(shè)計(jì)合理,能夠準(zhǔn)確描述和配置復(fù)雜的試驗(yàn)控制流程,流程編制和流程解析方面實(shí)現(xiàn)了預(yù)期的功能。
(2)基于流程描述的風(fēng)洞流場(chǎng)控制軟件設(shè)計(jì)方法,極大降低了對(duì)軟件代碼修改的依賴程度,提高了試驗(yàn)工況軟件變更的效率,提高了風(fēng)洞調(diào)試效率;
(3)基于流程描述的風(fēng)洞流場(chǎng)控制軟件設(shè)計(jì)方法,極大降低軟件維護(hù)難度,降低了軟件維護(hù)人員的技術(shù)門檻。
限于篇幅限制,本文僅就流程描述方法、流程編輯實(shí)現(xiàn)、流程解析過程及軟件測(cè)試進(jìn)行了陳述,軟件的功能模塊和軟件結(jié)構(gòu)設(shè)計(jì)等問題未作詳細(xì)陳述。
基于試驗(yàn)流程描述與解析的軟件設(shè)計(jì)方法,采用NI LabVIEW(包含Real-Time Module)軟件開發(fā)平臺(tái),完成了某亞跨超三聲速風(fēng)洞流場(chǎng)控制上位運(yùn)行管理軟件和現(xiàn)場(chǎng)PXI實(shí)時(shí)應(yīng)用軟件設(shè)計(jì)開發(fā)和測(cè)試。通過風(fēng)洞綜合性能調(diào)試,對(duì)軟件進(jìn)行了完整檢驗(yàn)、測(cè)試和完善,軟件達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),軟件設(shè)計(jì)模式具有一定的推廣應(yīng)用價(jià)值。