文獻(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ù)是開展空氣動(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ù)、開發(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ì)開發(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)通用化方面開展了大量工作,,其典型代表就是DNW開發(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í)期,,并且在未來幾年內(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)底層及核心功能封裝為基類,模塊由基類派生,,解決單一通用問題,,并根據(jù)功能劃分進(jìn)一步封裝為軟件組件,,隱藏具體實(shí)現(xiàn)細(xì)節(jié),提供接口供風(fēng)洞測(cè)控崗位人員及試驗(yàn)負(fù)責(zé)人靈活調(diào)用,,這就使得試驗(yàn)任務(wù)承擔(dān)人員等非專業(yè)軟件開發(fā)人員能方便快捷地在通用基礎(chǔ)平臺(tái)上構(gòu)建滿足不同應(yīng)用需求的測(cè)控程序,。
(2)獨(dú)立性。組件獨(dú)立于編程語言,,采用不同的語言編寫的組件能在一起協(xié)同工作,,并通過標(biāo)準(zhǔn)接口連接到GAIUS總線,組件與組件采用實(shí)時(shí)發(fā)布-訂閱中間件RTPS實(shí)現(xiàn)通信,,滿足不同技術(shù)背景的專業(yè)人員對(duì)測(cè)控軟件的開發(fā)需求,。
(3)靈活性??梢詫?duì)組件單獨(dú)進(jìn)行升級(jí),,改進(jìn)完善原有的功能;對(duì)于設(shè)備升級(jí)造成的底層軟硬件的修改,,也只要保證提供的基類和組件對(duì)外界的接口不變,,就不會(huì)影響原有應(yīng)用系統(tǒng)的運(yùn)行,具有良好的兼容性和靈活性,。
基于組件的軟件開發(fā)技術(shù)從根本上改變了軟件的生產(chǎn)方式,,與傳統(tǒng)開發(fā)方法相比具有明顯優(yōu)勢(shì):首先,提高了軟件重用率,,通過標(biāo)準(zhǔn)的接口將現(xiàn)有代碼進(jìn)行包裝,,制作成可重用的組件,保護(hù)并繼承了現(xiàn)有技術(shù)成果,;其次,,使開發(fā)的系統(tǒng)更加靈活,模塊化程度高,,模塊耦合度低,,更加便于維護(hù)和升級(jí);最后,,降低了對(duì)系統(tǒng)開發(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ó)未來的風(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)的開發(fā),,既便于軟件重用,又便于系統(tǒng)的擴(kuò)展升級(jí),。
2.1 總體思路
本文提出的組件化測(cè)控軟件基于面向?qū)ο笏枷氩⒔Y(jié)合了組件開發(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)的集成開發(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ú)立解決某一類問題的能力就越強(qiáng),,但實(shí)現(xiàn)和理解組件就相對(duì)困難,,重用難度加大;粒度越小,,組件越易于復(fù)用,,但管理組件等代價(jià)將增大,甚至大于復(fù)用帶來的好處,。劃分組件時(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ù)其需求通過用戶定制界面設(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í),,通過在用戶定制層給出的信息調(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é)接收并解析上層傳遞下來的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)的類中,,形成不同的功能組件庫。應(yīng)用程序控制中心根據(jù)裝配信息,,將用戶選取的組件從庫中調(diào)用出來并進(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 組件封裝
通過對(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)試成功,,任何開發(fā)語言只需遵循調(diào)用的函數(shù)說明即可調(diào)用它,如用VC++開發(fā)的DLL可被VB,、JAVA等語言調(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ù)需求,,選擇所需的功能組件并將其組裝起來,,從而形成一個(gè)滿足特定需求的測(cè)控系統(tǒng)。用戶可根據(jù)其需求通過用戶界面設(shè)置測(cè)控系統(tǒng)運(yùn)行需要的各種數(shù)據(jù)信息,,包括選擇功能組件,、確定輸入?yún)?shù),所有輸入信息通過用戶界面向控制中心傳遞,,控制中心生成XML信息表,,向功能實(shí)現(xiàn)層傳遞定制信息,將用戶選取的組件從庫中調(diào)用出來并進(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)備過程變得更簡(jiǎn)單容易,,只要對(duì)相應(yīng)的參數(shù)進(jìn)行配置即可完成,。統(tǒng)一的風(fēng)洞運(yùn)行參數(shù)界面如圖4所示。
比如,,采用定總壓定迎角步進(jìn)變M數(shù)運(yùn)轉(zhuǎn)方式開車,,M=0.3、0.4,、0.5,、0.6、0.7,、0.72,、0.75、0.8,。操作人員只需調(diào)用統(tǒng)一的開車參數(shù)配置程序,,分別對(duì)總壓、迎角和M數(shù)進(jìn)行配置,,而不需修改專業(yè)性更強(qiáng)的源代碼,,即可生成所需的完整的開車程序(圖5、圖6),。程序準(zhǔn)備時(shí)間大大縮短,,從而提高了試驗(yàn)準(zhǔn)備效率。
4 結(jié)論
風(fēng)洞測(cè)控軟件采用面向?qū)ο笤O(shè)計(jì)思想和組件設(shè)計(jì)技術(shù),,將提高測(cè)控軟件的開發(fā)速度和效率,,提高程序復(fù)用率,縮短開發(fā)周期,,降低開發(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è)控軟件開發(fā)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,,2013(21):82-83.