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