《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種基于組件的風(fēng)洞通用測(cè)控平臺(tái)設(shè)計(jì)
一種基于組件的風(fēng)洞通用測(cè)控平臺(tái)設(shè)計(jì)
2016年電子技術(shù)應(yīng)用第9期
羅昌俊,馬永一
中國(guó)空氣動(dòng)力研究與發(fā)展中心,,四川 綿陽621000
摘要: 為了提高風(fēng)洞測(cè)控系統(tǒng)及其軟件的可擴(kuò)展性和重用性,,縮短軟件開發(fā)周期,,從風(fēng)洞測(cè)控系統(tǒng)的特性與需求出發(fā),綜述了風(fēng)洞測(cè)控軟件通用化的現(xiàn)狀,,并基于面向?qū)ο笏枷牒拖到y(tǒng)架構(gòu)設(shè)計(jì)理念,,提出了組件化風(fēng)洞測(cè)控軟件平臺(tái)的層次結(jié)構(gòu),分析了用戶定制層和功能實(shí)現(xiàn)層的組件劃分,、組件通信模式/接口和組件封裝,,討論了基于組件的風(fēng)洞測(cè)控平臺(tái)原型系統(tǒng)設(shè)計(jì),為風(fēng)洞測(cè)控系統(tǒng)軟件的進(jìn)一步通用化提供了一種思路和方法,。
中圖分類號(hào): TP29
文獻(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.
A design of component-based measurement and control platform for wind tunnel
Luo Changjun,,Ma Yongyi
China Aerodynamics Research and Development Center,,Mianyang 621000,China
Abstract: In order to improve the scalability and reusability of the wind tunnel measurement and control system, and shorten the developing cycle of the software, this paper summarized the universal of the platform for measurement and control system. Based on the object-oriented theory and system architecture design, this paper proposed the hierarchy of the component-based software platform for wind tunnel measurement and control system, analyzed the components division, component communication mode/interfaces and components package of the custom layer structure and function implementation layer, and discussed the control software platform′s prototype system basing on components. All of the above provided a new idea which could further the universal of the measurement and control system.
Key words : wind tunnel,;measurement and control platform,;component;XML

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所示,。

圖像 001.png

  系統(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所示。

圖像 002.png

  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所示,。

圖像 003.png

  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所示。

圖像 004.png

  比如,,采用定總壓定迎角步進(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)備效率。

圖像 005.png

圖像 006.png

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.

  


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。