基于J2EE的压气机/风扇结构强度设计集成平台研究
2013-07-05李聃孟令勇
李聃,孟令勇
基于J2EE的压气机/风扇结构强度设计集成平台研究
李聃,孟令勇
(中国燃气涡轮研究院,四川成都610500)
对基于J2EE(Java 2 enterprise Edition)开发的压气机/风扇结构设计和强度分析集成平台进行了探讨。结合业务功能需求,对功能模块设计、数据库逻辑结构设计和相关技术(如新进程建立方法、数据解析导入等)进行了介绍,实现了基于Linux系统和Windows系统两种运行平台的压气机/风扇结构强度设计集成,设计流程的控制、规范化管理、模型化参数设计,图形图像的动态检索输出,数据表查询等功能,为风扇/压气机设计提供了一套完整的设计平台及经验积累知识库。可为其它专业设计集成提供参考。
Java Applet;网络数据库;参数化设计;结构强度设计;设计体系;集成平台
1 引言
近几十年,随着我国航空技术的飞速发展,在发动机设计方面积累了大量经验,信息化技术在此领域的应用也越来越广泛。但如何依托于信息化技术,将设计经验、方法及规范集成,建立设计体系,对发动机设计过程进行数字化、规范化、标准化管理和控制,提高设计一次通过率,缩短研制周期,节省研制经费,逐步实现技术、知识、经验的继承和积累,促进航空发动机设计技术进步,亟待探索。
随着网络技术的发展,基于浏览器/服务器(B/S)结构模式逐渐成为应用系统的主流结构。Java语言具有独立于软硬件平台运行、面向对象开发、可对动态画面进行设计与操作、稳定性强及多线程的特点,利用Java语言设计Web方式的应用系统,改变了传统的工作模式,同时也提高了应用系统的可移植性、准确性和可靠性。
航空发动机设计中,压气机/风扇结构强度设计集成平台,是以设计经验、设计方法和设计软件为基础,按照设计规范建立的设计平台,实现对压气机/风扇的规范设计和经验积累。在开发技术应用方面,利用Oracle构建分布式网络数据库对数据存储管理;采用Java[1]技术开发软件,并按Java的J2EE[2]标准构建体系结构,充分利用Java中面向对象编程技术、组件技术和application及Applet开发技术。
2 系统架构
该结构设计、强度分析集成平台基于Linux系统和Windows系统两种运行平台,提供了数据库对数据管理、图形交互和显示及分析处理等功能。整个压气机/风扇软件集成设计体系,由气动设计集成系统和结构设计强度分析集成系统两部分组成。
结构设计模块:程序根据设计人员进入系统选择的项目、模式、部件、相应版本等相关选择条件,在数据库中找到相对应的气动造型文件进行转换操作、模版参数化设计,并将数据传送给UG进行结构造型。
强度分析模块:根据结构设计中生成的*.prt文件,调用后置强度气动力分布计算程序进行强度计算,并保存相应结果到数据库中。
根据该系统需求,结构设计与强度分析构建的系统构架如图1所示。图中,客户端层用来提供应用的Web操作界面,进行交互式操作;表示层包括Web服务器和动态页面,用来接收用户向服务器发出的请求,也可处理能向业务层发送请求的表示逻辑,然后创建返回客户端的动态内容外观;应用服务层由业务逻辑组成,在该层内的服务器运行的软件组件处理客户端请求;数据资源层由相关数据的数据资源库组成。
图1 系统架构图Fig.1 System architecture
3 功能模块及数据库逻辑结构设计
3.1功能模块
压气机/风扇软件集成设计体系是一个流程式设计体系,可划分为5个功能模块:
(1)用户管理功能。主要是指对使用该软件的设计人员进行管理,通过用户名和口令进行合法用户判断,按其需要分配不同权限,对其访问权限和操作权限进行安全限制。
(2)项目定义功能。指对新建项目进行项目名、项目密级等方面管理,对已有项目及其各类属性进行数据库建档管理。该功能中定义的某些属性将传入到下游设计中。
(3)部件设计模式功能。指根据项目及其设计部件类型,选取相应的设计模式和软件。该功能中定义的某些属性也将传入到下游设计中。
(4)程序集成处理功能。采取软件封装性质的内置.exe执行程序,将各专业计算软件均作为一个单独的可执行程序嵌入设计流程主程序内部,在流程中选择不同计算程序计算时,主控程序将输入数据采用外部文件的方法传递给计算程序,启动计算。这种集成模式对专业程序的改动较小,专业计算程序与系统主模块的调用关系和数据传递关系较为简单,可灵活变动。
(5)程序数据管理功能。除进行设计软件的集成和管理外,还需考虑设计数据的分类管理:①项目管理,对项目进行标识和初步管理;②版本管理,对设计数据进行有效管理,主要有数据库正式版本数据管理和临时目录下不同计算版本管理。③设计结果管理,将设计结果数据或数据文件保存到数据库中进行有效管理。
3.2数据库逻辑结构设计
选用Oracle数据库作为数据库平台,对数据进行存储和各种操作。通过Java提供的访问数据库方式JDBC技术与程序交换信息。
在流程化设计中,以中国燃气涡轮研究院为例,气动计算大部分是在Linux下运行(如1D、2D分析等程序),而结构设计软件又只能在Window下运行(如UG)。因此将气动设计集成系统开发为在Linux平台下运行的系统,将结构设计、强度分析集成系统开发为在Window平台下运行的系统。在软件设计上,采用一个主界面两个主控程序、一个数据中心两个平台的方法,来实现各个功能模块的调用,并用一个数据库系统共享数据。其数据结构设计见图2。
4 技术实现
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()方法,以字符串形式一行行读入,根据不同数据文件、不同约束类型来解读。
5 结束语
在压气机/风扇结构设计强度分析集成平台的构建中,基于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-),女,四川仪陇人,工程师,硕士,现从事信息化项目管理工作。