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