李聃,孟令勇
基于J2EE的壓氣機/風扇結構強度設計集成平臺研究
李聃,孟令勇
(中國燃氣渦輪研究院,四川成都610500)
對基于J2EE(Java 2 enterprise Edition)開發的壓氣機/風扇結構設計和強度分析集成平臺進行了探討。結合業務功能需求,對功能模塊設計、數據庫邏輯結構設計和相關技術(如新進程建立方法、數據解析導入等)進行了介紹,實現了基于Linux系統和Windows系統兩種運行平臺的壓氣機/風扇結構強度設計集成,設計流程的控制、規范化管理、模型化參數設計,圖形圖像的動態檢索輸出,數據表查詢等功能,為風扇/壓氣機設計提供了一套完整的設計平臺及經驗積累知識庫。可為其它專業設計集成提供參考。
Java Applet;網絡數據庫;參數化設計;結構強度設計;設計體系;集成平臺
近幾十年,隨著我國航空技術的飛速發展,在發動機設計方面積累了大量經驗,信息化技術在此領域的應用也越來越廣泛。但如何依托于信息化技術,將設計經驗、方法及規范集成,建立設計體系,對發動機設計過程進行數字化、規范化、標準化管理和控制,提高設計一次通過率,縮短研制周期,節省研制經費,逐步實現技術、知識、經驗的繼承和積累,促進航空發動機設計技術進步,亟待探索。
隨著網絡技術的發展,基于瀏覽器/服務器(B/S)結構模式逐漸成為應用系統的主流結構。Java語言具有獨立于軟硬件平臺運行、面向對象開發、可對動態畫面進行設計與操作、穩定性強及多線程的特點,利用Java語言設計Web方式的應用系統,改變了傳統的工作模式,同時也提高了應用系統的可移植性、準確性和可靠性。
航空發動機設計中,壓氣機/風扇結構強度設計集成平臺,是以設計經驗、設計方法和設計軟件為基礎,按照設計規范建立的設計平臺,實現對壓氣機/風扇的規范設計和經驗積累。在開發技術應用方面,利用Oracle構建分布式網絡數據庫對數據存儲管理;采用Java[1]技術開發軟件,并按Java的J2EE[2]標準構建體系結構,充分利用Java中面向對象編程技術、組件技術和application及Applet開發技術。
該結構設計、強度分析集成平臺基于Linux系統和Windows系統兩種運行平臺,提供了數據庫對數據管理、圖形交互和顯示及分析處理等功能。整個壓氣機/風扇軟件集成設計體系,由氣動設計集成系統和結構設計強度分析集成系統兩部分組成。
結構設計模塊:程序根據設計人員進入系統選擇的項目、模式、部件、相應版本等相關選擇條件,在數據庫中找到相對應的氣動造型文件進行轉換操作、模版參數化設計,并將數據傳送給UG進行結構造型。
強度分析模塊:根據結構設計中生成的*.prt文件,調用后置強度氣動力分布計算程序進行強度計算,并保存相應結果到數據庫中。
根據該系統需求,結構設計與強度分析構建的系統構架如圖1所示。圖中,客戶端層用來提供應用的Web操作界面,進行交互式操作;表示層包括Web服務器和動態頁面,用來接收用戶向服務器發出的請求,也可處理能向業務層發送請求的表示邏輯,然后創建返回客戶端的動態內容外觀;應用服務層由業務邏輯組成,在該層內的服務器運行的軟件組件處理客戶端請求;數據資源層由相關數據的數據資源庫組成。

圖1 系統架構圖Fig.1 System architecture
3.1功能模塊
壓氣機/風扇軟件集成設計體系是一個流程式設計體系,可劃分為5個功能模塊:
(1)用戶管理功能。主要是指對使用該軟件的設計人員進行管理,通過用戶名和口令進行合法用戶判斷,按其需要分配不同權限,對其訪問權限和操作權限進行安全限制。
(2)項目定義功能。指對新建項目進行項目名、項目密級等方面管理,對已有項目及其各類屬性進行數據庫建檔管理。該功能中定義的某些屬性將傳入到下游設計中。
(3)部件設計模式功能。指根據項目及其設計部件類型,選取相應的設計模式和軟件。該功能中定義的某些屬性也將傳入到下游設計中。
(4)程序集成處理功能。采取軟件封裝性質的內置.exe執行程序,將各專業計算軟件均作為一個單獨的可執行程序嵌入設計流程主程序內部,在流程中選擇不同計算程序計算時,主控程序將輸入數據采用外部文件的方法傳遞給計算程序,啟動計算。這種集成模式對專業程序的改動較小,專業計算程序與系統主模塊的調用關系和數據傳遞關系較為簡單,可靈活變動。
(5)程序數據管理功能。除進行設計軟件的集成和管理外,還需考慮設計數據的分類管理:①項目管理,對項目進行標識和初步管理;②版本管理,對設計數據進行有效管理,主要有數據庫正式版本數據管理和臨時目錄下不同計算版本管理。③設計結果管理,將設計結果數據或數據文件保存到數據庫中進行有效管理。
3.2數據庫邏輯結構設計
選用Oracle數據庫作為數據庫平臺,對數據進行存儲和各種操作。通過Java提供的訪問數據庫方式JDBC技術與程序交換信息。
在流程化設計中,以中國燃氣渦輪研究院為例,氣動計算大部分是在Linux下運行(如1D、2D分析等程序),而結構設計軟件又只能在Window下運行(如UG)。因此將氣動設計集成系統開發為在Linux平臺下運行的系統,將結構設計、強度分析集成系統開發為在Window平臺下運行的系統。在軟件設計上,采用一個主界面兩個主控程序、一個數據中心兩個平臺的方法,來實現各個功能模塊的調用,并用一個數據庫系統共享數據。其數據結構設計見圖2。
4.1Process類和Runtime.exec()方法[3,4]
在結構設計和強度分析平臺中,需調用NX和ANSYS處理軟件。以NX為例,要啟動NX,首先要了解其啟動程序ugraf.exe所在路徑。通過讀取系統環境變量即可調用該軟件,節約了程序處理時間。
在Java中,利用Process類啟動和控制其它進程以獲取上述變量,通過Process對象可向進程發送信息、從進程讀取信息和銷毀進程。采用Runtime的exec()執行程序時,首先使用Runtime的靜態方法得到一個Runtime,然后調用Runtime的exec()方法。可將要執行的外部程序和啟動參數、環境變量、工作目錄作為參數傳遞給exec()方法,該方法執行后返回一個Process代表所執行的程序。其中方法定義之一為:
public Process exec(String command);其中command表示啟動其它進程的執行命令,可將命令和參數作為一個字符串command傳遞給exec()方法。
Runtime對象中封裝的是Java程序運行時環境的信息與資源,因此需要通過Runtime類中的靜態方法getRuntime來獲取當前運行的Runtime對象:
public static Runtime getRuntime();
NX寫入環境變量的路徑變量為UGII_BASE_DIR,通過啟動cmd.exe回顯命令echo將變量值讀入緩存區,利用Process類中getInputStream()方法獲取從進程來的輸入流;從此輸入流中可讀取進程執行過程中的輸出信息,將讀取信息存儲在緩沖區字節數組中,轉換成字符串類型,便得到NX的絕對路徑。
Runtime r=Runtime.getRuntime();//獲取Runtime對象
Process p;
當然,這些成績也在財報中有所顯現。其第二季度財報顯示,拓展海外市場和新市場帶動營業利潤增長129.3%。實際上,2017年以來,像愛茉莉太平洋這般積極拓展海外市場的韓妝品牌不勝枚舉。
byte[]env=new byte[1000];
//Runtime執行命令,Process獲取UGII_BASE_DIR的變量值
try{p=r.exec("cmd/c echo%UGII_BASE_DIR%");
//獲取從進程來的輸入流,從此流中可以讀取進程執行過程中的輸出信息
InputStream in=p.getInputStream();

圖2 數據結構圖Fig.2 Data structure
in.read(env);//從輸入流中讀取信息并將其存儲在緩沖區字節數組env中
dir=new String(env).trim();
}catch(Exception et){et.printStackTrace();}
4.2數據導入及解析
在系統設計中,結構設計及性能計算往往產生大量數據文件,某些數據文件包含大量參數,作為下一步設計提供的輸入數據或結果數據,需保存在數據庫中。主要采取自動入庫和手動入庫兩種方式。
而設計過程中,也需要查看某些數據文件,或通過修改其中參數改變結果,這需要對數據庫中數據文件進行導出并解析。
4.2.1數據入庫[5,6]
向關系數據庫模型中輸入/輸出數據,需要運用Java I/O提供的基于Reader、Writer、InputStream、Out?putStream數據流的派生類實現,數據導入的關鍵在于對更新數據庫的事務進行并發控制,保證入庫數據的準確性和唯一性。
數據導入之前有兩個必要步驟,一是通過主鍵信息確定導入記錄的唯一性,二是鎖定將對其操作的表,當數據表被鎖定后,別的事務無法再對其加鎖,只有鎖定它的用戶可對其進行寫操作,其它用戶只允許查詢操作。鎖在事務結束(提交或回滾)時打開,使用的是排它型鎖EXCLUSIVE,加鎖語句為:lock table數據表名in exclusive mode nowait,這樣就不會發生兩個用戶同時更新數據庫的問題。
字符型、數值型數據入庫:字符在數據庫中以Vchar2屬性字段保存和管理;數值數據根據數據表中數據類型對應入庫類型。這兩類數據寫入數據庫相對簡單,用一條插入或修改的sql語句便可完成。
數組類型數據入庫:一組數值作為一個數組,利用Oracle數據庫系統中的對象類型,在數據庫系統中建立一個數組對象類型,在數據表中利用已建立的數組對象類型的繼承屬性,定義數據表相應的字段構建為數組屬性,將Java中的數組轉為ARRAY對象寫入數據庫,設置方法為setArray()。
二進制數據入庫:可以字節形式和字符形式存儲。如一些文件、圖片、錄音或錄像等數據信息以字節形式的二進制大對象(BLOB)入庫。在程序中將欲入庫文件轉成文件輸入流(FileInputStream),再將其依次讀入緩沖,最后將數據寫入數據庫,設置方法setBinaryStream(col,inputstream,byte num)。其中col表示列數,inputstream是緩沖中文件數據流,byte num代表文件字節數。
4.2.2數據解析
通過Java中提供的I/O流讀取并解析文本類型數據文件,先將數據存入緩沖區,為數據入庫做準備。數據解析中用得最多的是BufferedReader類(是Reader類的派生類),用來讀取一個文本行,并返回包含該行內容的字符串,不包含任何終止符。先將欲解析文件轉換成BufferedReader流,調用Buff?eredReader流的readLine()方法,以字符串形式一行行讀入,根據不同數據文件、不同約束類型來解讀。
在壓氣機/風扇結構設計強度分析集成平臺的構建中,基于J2EE分布式應用程序架構,采用B/S網絡計算模式具有較好的開放性和通用性,應用框架的設計做到了完備性、靈活性、可理解性,同時能用于不同場合;開發人員能輕松地添加和修改功能,定制框架;可配置具體業務模塊功能;交互清晰。該集成平臺真正實現了系統的集成設計、設計的流程控制、設計的規范管理、技術的持續發展、資源的數據庫管理,為風扇/壓氣機設計提供了一套完整的設計平臺及經驗積累知識庫;實現了先進信息技術、計算技術和發動機設計技術的融合。經多輪迭代驗證,該平臺已傾成熟,并在設計中推廣應用,取得好的應用效果。本研究可為其它專業設計體系建設提供參考。
[1]宋波,于戈.Java Web開發與應用教程[M].北京:清華大學出版社,2006.
[2]Monnox A.J2EE快速開發[M].北京:機械工業出版社,2006.
[3]吳亞峰,紀超.Java SE 6.0編程指南[M].北京:人民郵電出版社,2007.
[4]Holaner S.Java技術內幕[M].北京:機械工業出版社,2002.
[5]Fisher M,Ellis J,Bruce J.JDBC API教程與參考手冊[M].北京:清華大學出版社,2004.
[6]王行言.Oracle數據庫應用開發基礎[M].北京:清華大學出版社,2003.
Integrated Platform of Structural Design and Strength Analysis for Compressor/Fan Based on J2EE
LI Dan,MENG Ling-yong
(China Gas Turbine Establishment,Chengdu 610500,China)
The integrated platform of compressor/fan structural design and strength analysis developed on the basis of Java 2 enterprise Edition(J2EE)was discussed.Considering the requirements of operation func?tion,function module design,database logic structure design as well as related technologies,e.g.the meth?od of establishing new process and data resolution input were introduced.Thanks to the integration of com?pressor/fan structural and strength design that could operate in the Linux and Windows system,the capabili?ties of design process control,management standardization,model parametric design,dynamic search of graphics and datasheet query were realized.Therefore,this whole design platform and repository of fan/com?pressor research could be referential for other specialties.
Java Applet;network database;parametric design;structural and strength design;design system;integrated platform
V23
A
1672-2620(2013)03-0043-04
2012-08-29;
2013-06-08
李聃(1983-),女,四川儀隴人,工程師,碩士,現從事信息化項目管理工作。