文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.018
中文引用格式: 羅昌俊,馬永一. 一種基于組件的風(fēng)洞通用測(cè)控平臺(tái)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(9):69-71,75.
英文引用格式: Luo Changjun,Ma Yongyi. A design of component-based measurement and control platform for wind tunnel[J].Application of Electronic Technique,2016,42(9):69-71,75.
0 引言
風(fēng)洞試驗(yàn)利用測(cè)控技術(shù)控制相應(yīng)設(shè)備產(chǎn)生可控氣流模擬飛行器繞流,并依靠測(cè)控技術(shù)獲取飛行器所受到的氣動(dòng)力/熱/載荷等多種氣動(dòng)特性數(shù)據(jù),因而風(fēng)洞測(cè)控技術(shù)是開(kāi)展空氣動(dòng)力學(xué)試驗(yàn)的核心技術(shù)之一。風(fēng)洞測(cè)控技術(shù)的發(fā)展對(duì)提升空氣動(dòng)力試驗(yàn)與研究能力、水平及質(zhì)量效率有著決定性影響。
傳統(tǒng)的結(jié)構(gòu)化風(fēng)洞測(cè)控軟件存在可擴(kuò)展性與重用性較差、不易維護(hù)、開(kāi)發(fā)周期長(zhǎng)、成本高等缺點(diǎn),造成風(fēng)洞測(cè)控軟件平臺(tái)通用化程度不高,各風(fēng)洞之間測(cè)控軟件差異較大,操作界面、數(shù)據(jù)格式及通信接口等各不相同,崗位培訓(xùn)工作量大,跨風(fēng)洞人員交流困難,試驗(yàn)數(shù)據(jù)重復(fù)利用率差,風(fēng)洞群的協(xié)同驗(yàn)證作用難以充分發(fā)揮。因此,使用結(jié)構(gòu)化設(shè)計(jì)方法設(shè)計(jì)開(kāi)發(fā)的測(cè)控軟件設(shè)計(jì)已難以滿足當(dāng)前試驗(yàn)需求不斷發(fā)展、試驗(yàn)技術(shù)日趨復(fù)雜、試驗(yàn)設(shè)備升級(jí)改造和軟件平臺(tái)規(guī)范標(biāo)準(zhǔn)的要求。
1 風(fēng)洞測(cè)控軟件平臺(tái)通用化現(xiàn)狀
為了進(jìn)一步提高風(fēng)洞試驗(yàn)效率和數(shù)據(jù)質(zhì)量,世界一流的氣動(dòng)機(jī)構(gòu)在風(fēng)洞測(cè)控軟件平臺(tái)通用化方面開(kāi)展了大量工作,其典型代表就是DNW開(kāi)發(fā)的GAIUS(Generic Automated Integrated Universal System)系統(tǒng)。
DNW風(fēng)洞聯(lián)合體管理運(yùn)營(yíng)著德國(guó)和荷蘭的12座亞、跨、超、高超聲速風(fēng)洞。這些風(fēng)洞建設(shè)于不同時(shí)期,并且在未來(lái)幾年內(nèi),這些風(fēng)洞的測(cè)控系統(tǒng)都將達(dá)到設(shè)計(jì)使用壽命。為此,DNW為這些風(fēng)洞統(tǒng)一研發(fā)部署了GAIUS系統(tǒng)[1]。系統(tǒng)模塊設(shè)計(jì)如圖1所示。
系統(tǒng)包括GAIUS總線、基于用戶腳本的中控系統(tǒng)、用戶界面接口、現(xiàn)場(chǎng)設(shè)備控制(含風(fēng)洞設(shè)備控制及模型姿態(tài)控制)、數(shù)據(jù)采集、數(shù)據(jù)處理等功能模塊。系統(tǒng)具有如下特點(diǎn):
(1)封裝性。系統(tǒng)將風(fēng)洞測(cè)控系統(tǒng)底層及核心功能封裝為基類,模塊由基類派生,解決單一通用問(wèn)題,并根據(jù)功能劃分進(jìn)一步封裝為軟件組件,隱藏具體實(shí)現(xiàn)細(xì)節(jié),提供接口供風(fēng)洞測(cè)控崗位人員及試驗(yàn)負(fù)責(zé)人靈活調(diào)用,這就使得試驗(yàn)任務(wù)承擔(dān)人員等非專業(yè)軟件開(kāi)發(fā)人員能方便快捷地在通用基礎(chǔ)平臺(tái)上構(gòu)建滿足不同應(yīng)用需求的測(cè)控程序。
(2)獨(dú)立性。組件獨(dú)立于編程語(yǔ)言,采用不同的語(yǔ)言編寫的組件能在一起協(xié)同工作,并通過(guò)標(biāo)準(zhǔn)接口連接到GAIUS總線,組件與組件采用實(shí)時(shí)發(fā)布-訂閱中間件RTPS實(shí)現(xiàn)通信,滿足不同技術(shù)背景的專業(yè)人員對(duì)測(cè)控軟件的開(kāi)發(fā)需求。
(3)靈活性??梢詫?duì)組件單獨(dú)進(jìn)行升級(jí),改進(jìn)完善原有的功能;對(duì)于設(shè)備升級(jí)造成的底層軟硬件的修改,也只要保證提供的基類和組件對(duì)外界的接口不變,就不會(huì)影響原有應(yīng)用系統(tǒng)的運(yùn)行,具有良好的兼容性和靈活性。
基于組件的軟件開(kāi)發(fā)技術(shù)從根本上改變了軟件的生產(chǎn)方式,與傳統(tǒng)開(kāi)發(fā)方法相比具有明顯優(yōu)勢(shì):首先,提高了軟件重用率,通過(guò)標(biāo)準(zhǔn)的接口將現(xiàn)有代碼進(jìn)行包裝,制作成可重用的組件,保護(hù)并繼承了現(xiàn)有技術(shù)成果;其次,使開(kāi)發(fā)的系統(tǒng)更加靈活,模塊化程度高,模塊耦合度低,更加便于維護(hù)和升級(jí);最后,降低了對(duì)系統(tǒng)開(kāi)發(fā)者的要求,更加易于學(xué)習(xí)和使用。
GAIUS系統(tǒng)減少了DNW在眾多風(fēng)洞上的重復(fù)投資,不同設(shè)備之間的操作人員交流變得更簡(jiǎn)單,設(shè)備的升級(jí)改造變得更容易,試驗(yàn)效率得以提高。據(jù)報(bào)告稱,GAIUS系統(tǒng)的應(yīng)用使DNW所屬風(fēng)洞試驗(yàn)效率提高約30%。
DNW風(fēng)洞群GAIUS系統(tǒng)的研發(fā)理念對(duì)我國(guó)未來(lái)的風(fēng)洞群建設(shè)具有重要參考價(jià)值。
2 基于組件的風(fēng)洞測(cè)控軟件平臺(tái)設(shè)計(jì)
合理有效的軟件體系架構(gòu)設(shè)計(jì)有助于分析和描述系統(tǒng)的不同層次結(jié)構(gòu),簡(jiǎn)化軟件系統(tǒng)的開(kāi)發(fā),既便于軟件重用,又便于系統(tǒng)的擴(kuò)展升級(jí)。
2.1 總體思路
本文提出的組件化測(cè)控軟件基于面向?qū)ο笏枷氩⒔Y(jié)合了組件開(kāi)發(fā)的方法,將測(cè)控系統(tǒng)分解為一個(gè)軟件框架和若干實(shí)現(xiàn)基本獨(dú)立功能的模塊,并將這些完成不同功能的模塊都封裝成組件的形式,根據(jù)實(shí)際的測(cè)試任務(wù)需求,在軟件框架上選取所需的組件并加以裝配,從而形成一個(gè)滿足特定需求的測(cè)控系統(tǒng)。
2.2 層次結(jié)構(gòu)
風(fēng)洞測(cè)控軟件平臺(tái)主要有兩個(gè)任務(wù):一是為用戶提供一個(gè)建立和操作測(cè)控系統(tǒng)的集成開(kāi)發(fā)環(huán)境;二是接收用戶提出的測(cè)控需求,完成系統(tǒng)的組裝及風(fēng)洞試驗(yàn)測(cè)控任務(wù)。因此,根據(jù)這兩個(gè)任務(wù),可以將整個(gè)測(cè)控軟件劃分為用戶定制層和功能實(shí)現(xiàn)層兩部分[2]。整體結(jié)構(gòu)如圖2所示。
2.3 組件劃分
一個(gè)組件通常包含一個(gè)或多個(gè)邏輯上相關(guān)的類,合理地劃分組件,有利于組件的復(fù)用和實(shí)現(xiàn),以及系統(tǒng)的配置管理。組件粒度越大,其功能就越完善,獨(dú)立解決某一類問(wèn)題的能力就越強(qiáng),但實(shí)現(xiàn)和理解組件就相對(duì)困難,重用難度加大;粒度越小,組件越易于復(fù)用,但管理組件等代價(jià)將增大,甚至大于復(fù)用帶來(lái)的好處。劃分組件時(shí)應(yīng)從功能模塊的完整性、高內(nèi)聚和低耦合性等方面出發(fā)。本文根據(jù)風(fēng)洞測(cè)控系統(tǒng)特性,依據(jù)重用原則、閉包原則、消息傳送原則、分布式服務(wù)分割原則,對(duì)風(fēng)洞測(cè)控系統(tǒng)的組件進(jìn)行如下劃分:
(1)用戶定制層為風(fēng)洞測(cè)控軟件的上層,主要功能是用戶根據(jù)其需求通過(guò)用戶定制界面設(shè)置測(cè)控系統(tǒng)運(yùn)行需要的各種數(shù)據(jù)信息,包括選擇功能組件、確定輸入?yún)?shù)等。當(dāng)用戶對(duì)系統(tǒng)定制完畢后,就會(huì)生成基于XML的定制信息表。然后,應(yīng)用程序控制中心將定制信息表傳遞至功能實(shí)現(xiàn)層。當(dāng)用戶制定不同的功能時(shí),通過(guò)在用戶定制層給出的信息調(diào)用相應(yīng)的功能實(shí)現(xiàn)層控件,實(shí)現(xiàn)整個(gè)軟件系統(tǒng)的運(yùn)行,還可針對(duì)不同的需求進(jìn)行擴(kuò)展。
(2)功能實(shí)現(xiàn)層為風(fēng)洞測(cè)控軟件的底層,負(fù)責(zé)接收并解析上層傳遞下來(lái)的XML定制信息表,實(shí)現(xiàn)底層數(shù)據(jù)間的傳輸以及發(fā)送控制命令,最后生成用戶定制的系統(tǒng)運(yùn)行界面。按照組件技術(shù)設(shè)計(jì)的觀點(diǎn),根據(jù)需要對(duì)系統(tǒng)要實(shí)現(xiàn)的功能進(jìn)行分類和歸納,將功能實(shí)現(xiàn)層軟件的主要操作封裝在相應(yīng)的類中,形成不同的功能組件庫(kù)。應(yīng)用程序控制中心根據(jù)裝配信息,將用戶選取的組件從庫(kù)中調(diào)用出來(lái)并進(jìn)行組合,從而構(gòu)建出一個(gè)定制的測(cè)控軟件系統(tǒng)。
2.4 組件接口與通信
組件劃分后需要進(jìn)行接口設(shè)計(jì),它是組件設(shè)計(jì)的重要部分。一個(gè)組件接口是一組邏輯上相互關(guān)聯(lián)的操作,這些操作定義了某類公共行為。接口是一組操作的規(guī)范,而非任何特定的實(shí)現(xiàn)。接口和具體實(shí)現(xiàn)的分離,使其具有較高的抽象性,提高了系統(tǒng)的復(fù)用能力,有利于系統(tǒng)的維護(hù)和擴(kuò)充。接口設(shè)計(jì)要兼顧簡(jiǎn)單和實(shí)用性。組件的內(nèi)部細(xì)節(jié)不應(yīng)反映到接口中。接口與內(nèi)部實(shí)現(xiàn)細(xì)節(jié)的隔離程度越高,組件發(fā)生變化對(duì)接口的影響就越小。
軟件組件之間的數(shù)據(jù)交互采用典型的生產(chǎn)者-消費(fèi)者設(shè)計(jì)模式進(jìn)行設(shè)計(jì),其中數(shù)據(jù)流的上游作為數(shù)據(jù)生產(chǎn)者,數(shù)據(jù)流的下游作為數(shù)據(jù)消費(fèi)者。為了使組件設(shè)計(jì)更為簡(jiǎn)單,而把數(shù)據(jù)隊(duì)列的管理放到數(shù)據(jù)消費(fèi)者組件中進(jìn)行,對(duì)外只保留添加數(shù)據(jù)的接口,如圖3所示。
2.5 組件封裝
通過(guò)對(duì)風(fēng)洞測(cè)控軟件功能模塊進(jìn)行組件封裝,以服務(wù)的方式提供給任何需要該項(xiàng)功能的使用者,而使用者并不需要掌握實(shí)現(xiàn)某項(xiàng)測(cè)試功能的代碼,只需知道其接口標(biāo)準(zhǔn)即可。
封裝技術(shù)主要包括DLL(Dynamic link library)封裝和COM(Component Object Model)封裝。
DLL在Windows系統(tǒng)中占有非常重要的地位,是功能模塊封裝技術(shù)中最常用的實(shí)現(xiàn)技術(shù)之一。DLL是一種二進(jìn)制代碼,一經(jīng)調(diào)試成功,任何開(kāi)發(fā)語(yǔ)言只需遵循調(diào)用的函數(shù)說(shuō)明即可調(diào)用它,如用VC++開(kāi)發(fā)的DLL可被VB、JAVA等語(yǔ)言調(diào)用。
COM包含了DLL,按照COM規(guī)范實(shí)現(xiàn)的DLL可以被視為COM組件,它既可以被存在于同一臺(tái)計(jì)算機(jī)上的應(yīng)用程序調(diào)用,還可以被遠(yuǎn)程網(wǎng)絡(luò)上的其他應(yīng)用程序調(diào)用,目前應(yīng)用得比較普遍的是ActiveX控件。
3 基于組件的風(fēng)洞測(cè)控軟件平臺(tái)原型系統(tǒng)設(shè)計(jì)
將測(cè)控軟件分解為若干個(gè)實(shí)現(xiàn)獨(dú)立功能的組件,根據(jù)實(shí)際的風(fēng)洞試驗(yàn)任務(wù)需求,選擇所需的功能組件并將其組裝起來(lái),從而形成一個(gè)滿足特定需求的測(cè)控系統(tǒng)。用戶可根據(jù)其需求通過(guò)用戶界面設(shè)置測(cè)控系統(tǒng)運(yùn)行需要的各種數(shù)據(jù)信息,包括選擇功能組件、確定輸入?yún)?shù),所有輸入信息通過(guò)用戶界面向控制中心傳遞,控制中心生成XML信息表,向功能實(shí)現(xiàn)層傳遞定制信息,將用戶選取的組件從庫(kù)中調(diào)用出來(lái)并進(jìn)行組合,從而構(gòu)建出一個(gè)定制的測(cè)控軟件系統(tǒng)。
根據(jù)設(shè)計(jì)思路,試驗(yàn)中根據(jù)試驗(yàn)內(nèi)容自動(dòng)組織試驗(yàn)組件(各個(gè)控制系統(tǒng))和試驗(yàn)流程,使系統(tǒng)實(shí)現(xiàn)全自動(dòng)集成,當(dāng)風(fēng)洞需要在定總壓定迎角定M數(shù)運(yùn)轉(zhuǎn)方式、定總壓定迎角步進(jìn)變M數(shù)運(yùn)轉(zhuǎn)方式、定總壓定M數(shù)步進(jìn)變迎角運(yùn)轉(zhuǎn)方式、定總壓定M數(shù)連續(xù)變迎角運(yùn)轉(zhuǎn)方式、定M數(shù)定迎角變總壓運(yùn)轉(zhuǎn)方式等運(yùn)行方式中切換時(shí),風(fēng)洞測(cè)控程序的準(zhǔn)備過(guò)程變得更簡(jiǎn)單容易,只要對(duì)相應(yīng)的參數(shù)進(jìn)行配置即可完成。統(tǒng)一的風(fēng)洞運(yùn)行參數(shù)界面如圖4所示。
比如,采用定總壓定迎角步進(jìn)變M數(shù)運(yùn)轉(zhuǎn)方式開(kāi)車,M=0.3、0.4、0.5、0.6、0.7、0.72、0.75、0.8。操作人員只需調(diào)用統(tǒng)一的開(kāi)車參數(shù)配置程序,分別對(duì)總壓、迎角和M數(shù)進(jìn)行配置,而不需修改專業(yè)性更強(qiáng)的源代碼,即可生成所需的完整的開(kāi)車程序(圖5、圖6)。程序準(zhǔn)備時(shí)間大大縮短,從而提高了試驗(yàn)準(zhǔn)備效率。
4 結(jié)論
風(fēng)洞測(cè)控軟件采用面向?qū)ο笤O(shè)計(jì)思想和組件設(shè)計(jì)技術(shù),將提高測(cè)控軟件的開(kāi)發(fā)速度和效率,提高程序復(fù)用率,縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本,并打破傳統(tǒng)測(cè)控系統(tǒng)的結(jié)構(gòu)固定、功能單一等限制。這種設(shè)計(jì)思想使測(cè)控軟件平臺(tái)更容易維護(hù)和擴(kuò)充,從而滿足對(duì)于測(cè)控軟件通用性、可移植性和可擴(kuò)展性的要求,使現(xiàn)有設(shè)備和設(shè)施能夠更好地滿足更多更復(fù)雜的風(fēng)洞試驗(yàn)的需求。
參考文獻(xiàn)
[1] Detlef Krack.The generic automated integrated universal system(GAIUS) for wind tunnels,German-Dutch wind tunnels DNW[C].Seattle:AIAA Aerospace Conference,2009.
[2] 趙海源,王麗芳,蔣澤軍.基于組件化思想的測(cè)控軟件開(kāi)發(fā)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2013(21):82-83.