一种仿真数据的可视化与协同共享方法
技术领域
仿真数据的可视化与协同共享方法属于数据可视化技术领域。
背景技术
随着网络技术的发展,数据可视化(Data Visualization)成为可视化技术中的研究热点。现代的数据可视化概念来自科学计算可视化(Visualization in Scientific Computing),其任务是将多种格式的数据(包括表格数据、离散采样数据、多重半结构网格数据和非结构网格数据等)融合成二维/三维的图形图像。数据可视化的实现对仿真过程有重要意义。与产品设计和仿真信息中的其他信息不同,仿真过程输入输出数据往往是格式复杂多样、数据量大、无法用一般浏览/阅读器来查看和理解的数据文件,需要进行有针对性的可视化处理才能得到直观的表现形式,帮助仿真人员理解仿真状况和结果,对仿真过程和原模型进行优化设计。例如在进行有限元分析仿真时,应用可视化技术可实现网格剖分及有限元分析结果数据的图形显示,即所谓有限元分析的前后处理,并根据分析结果,实现网格剖分的优化,使计算结果更加可靠和精确。数据可视化技术加快数据信息的获得速度,提高数据的利用率,更清晰地显示和检索数据,提高了理解仿真数据以及发掘仿真数据的内在规律的能力,提高仿真效率。
随着国内企业信息化建设的发展,对基于网络的异地、多学科协同仿真的需求也日益增加。现有网络仿真数据管理平台缺乏在网络环境下对仿真信息进行可视化共享和实时协同分析的支持,平台上的数据文件大多需要下载到本地,并使用专用的仿真软件打开查看,此访问方式不能满足信息快速获得的需求,限制了仿真信息的共享效率,不便于协同仿真的开展。将数据可视化技术应用到仿真数据共享中,提供一个基于Internet的仿真数据可视化共享方案,使异地开发人员在网络公共虚拟环境下基于可视化的仿真数据进行协同分析讨论,实现异地人员对远程仿真数据的可视化处理和同步实时共享具有创新和实用意义。
发明内容
本发明的目的在于:针对现有仿真数据管理平台对仿真信息可视化共享的支持不足的情况,建立一种网络环境下仿真数据的可视化与协同共享方法,使异地人员能够对远程仿真数据进行可视化处理,并在网络公共虚拟环境下基于可视化的仿真数据进行协同分析讨论。
本发明的特征在于:所述方法是基于互联网,利用J2EE技术、C++技术和Socket技术,依次按以下步骤实现的:
(步骤1)在存储仿真数据文件的计算机服务器端依次按以下步骤建立一个仿真数据可视化处理模块,以提供一个用户参数提交界面和处理引擎,实现对仿真数据文件按照所需参数进行可视化处理,并保存处理结果;
(步骤1.1)使用微软公司提供的结构化查询语言数据库Microsoft SQL Server,创建仿真数据文件信息数据库SimFiles,用于存放需要进行可视化共享的仿真数据文件的信息,以便于对文件进行检索和提取;在其下建立存放数据文件信息的主表MetaData,包括以下8个列:文件编号、文件名称、文件描述、文件大小、文件存放地址、文件所有者、文件入库日期、文件修改日期;上述仿真数据文件存放在服务器端,其上传和修改以及对应的MetaData表内容的增加和修改由服务器端的仿真文件管理系统完成;
(步骤1.2)使用Amtec Engineering公司提供的Tecplot科学数据可视化包作为数据绘图引擎,根据其宏命令参数接口,在上述服务器端上建立J2EE项目VisualDataShare,在该项目目录下建立基于Web服务器的动态JSP页面,基于Web服务器的动态JSP页面,设置参数表单用来接收客户端请求;
将参数表单划分为两大部分,一是文件参数表单,二是处理参数表单,其中文件参数表单包括需要处理的仿真数据文件名和文件编号的输入框和提交按钮,限制最高可同时提交的数据文件数量为十组,供后处理引擎进行数据相加、相减和比较处理;
处理参数表单根据Tecplot可视化处理功能的分类,设置为12个可选的分表单,包括:仿真数据加载参数表单Dataloader、绘图类型表单Layertype、XY和极坐标绘图参数表单XYPolar、网格和边界绘图参数表单MeshEdge、等高线图绘图参数表单Contour、矢量图绘图参数表单Vector、散点图绘图参数Scatter、三维切片参数表单Slices、阴影/透明度/灯光参数表单ShadeLight、数据操作参数表单DataManipulation、图例参数表单Legend、输出参数表单Output,每个分表单提供与Tecplot宏命令参数接口对应的参数设置项;
(步骤1.3)在VisualDataShare项目目录下开发基于J2EE技术的业务逻辑处理组件,建立业务逻辑处理类addMacro(),作为可视化处理命令生成类,其中包括以下操作:通过java输入输出类库的request.getParameter()方法获得用户端提交的文件参数值和处理参数值,客户端没有提交的处理参数值设置为Tecplot默认参数值;通过File.createNewFile()方法,根据客户端提交的文件参数值中带后缀的仿真数据的文件名,判断其文件格式和应采用的可视化处理命令,生成可视化处理宏命令文件——macro文件,保存在服务器端;建立可视化处理引擎类runMacro(),其中包括以下操作:通过Runtime.getRuntime().exec()方法建立可视化处理线程,调用Tecplot引擎按照所生成的宏命令文件进行可视化处理,并将处理结果保存在服务器端;通过showRvm()将处理结果保存地址返回到客户端;
(步骤2)在步骤1所述服务器端依次按以下步骤建立一个仿真数据协同共享模块,以提供一个基于互联网的协同显示和交流的公共虚拟环境,实现对仿真数据可视化处理结果进行异地同步显示、添加文本意见和展开小组讨论;
(步骤2.1)利用C++技术,根据以下步骤开发基于互联网的协同显示和交流程序:
(1)在CIMMETRY公司的VCET库基础上实现对处理结果操作的同步显示,通过建立CVCETCtrl类对VCET API进行包装,实现同步显示参数的控制;通过建立CVCETLib类包装VCET库操作,实现同步显示操作;
(2)在MARKUP API基础上实现对处理结果添加评注和意见,通过建立CMarkCtrl类包装MARKUP API,实现对评注意见参数的控制;通过建立CMarkLib类包装MARKUP库操作,实现评注操作;
(3)利用市售AutoVue工具提供的二次开发接口对其进行二次开发,使其作为格式转换接口集成到工具中,以解决多种格式文档/模型的兼容性问题;
(4)利用流式套接字Socket技术进行网络通信,实现同步传送和更改显示,通过建立CChatSocket类创建服务器端通讯套接字,通过建立CClientSocket类创建客户端套接字,通过建立CListening类创建服务器端监听套接字,通过CCreateRoom类建立主持会议对话框,通过CJoinMeeting类建立参加会议对话框,通过建立COpMsg类发送客户/服务器通信的信息;
(5)开发图形用户界面,建立负责显示窗口操作的CBrowseView类、负责文件操作的CSampDoc类、负责处理工具条的各种消息和操作的工具条类CScribbleBar类;其中工具条包括放大、缩小、平移在内的显示操作按钮,打开、保存在内的文件操作按钮,主持小组会议、参加小组会议在内的会议通信按钮,添加意见、显示意见、修改意见在内的评注意见操作按钮;
(6)在VC++的Microsoft Foundation Class框架中对上述各类进行编译,生成协同显示和交流工具程序;
(步骤2.2)在步骤1所述服务器端建立仿真数据可视化共享JSP页面,将上述协同显示和交流工具程序利用ActiveX技术打包成协同共享控件VisualDS.ocx,加载到此页面上,在页面上通过request.getParameter()方法获得步骤1.3所述的处理结果保存地址,并通过控件的参数接口传递给控件;
(步骤3)所述方法的客户端使用通用浏览器提供操作界面,运作流程如下:
(1)进入参数提交页面,提交需要处理的仿真数据文件信息和控制参数信息,将可视化处理参数传送到业务逻辑处理类addMacro();
(2)业务逻辑处理组件从服务器端获得所需数据文件并在服务器端进行可视化处理,处理后,将处理结果返回客户端,自动更新客户端页面,客户端打开可视化共享JSP页面,首次打开该页面时客户端浏览器自动下载安装协同共享控件VisualDS.ocx,并加载到页面供用户使用,由该控件下载步骤1.3所述的处理结果到客户端,并在客户端之间、客户端与服务器端之间以端到端的模式实现对处理结果的协同显示和批注。
所述仿真数据的可视化与协同共享方法的优点在于:
(1)实现了网络环境下异地仿真人员对仿真数据文件进行可视化处理,并在一个共享的空间中基于仿真可视化处理结果的图形进行直观的协同交流,支持使用异构仿真系统的用户在不依赖于特定的仿真系统的环境下对仿真结果进行可视化共享。
(2)具有丰富的可视性。支持X-Y图法、极坐标图法、网格法、矢量图法、等值线法、离散点图法等十四种以上的可视化方法,支持对数据间相互关系的形象比较分析。支持多参数控制的高质量2D和3D图形输出。
(3)具有交互性。支持以交互的方式对仿真数据进行可视化处理,用户可指定可视化参数表单,针对不同类型的数据处理要求,提供12组80个控制参数对可视化处理作完整的控制。支持对可视化处理结果的显示进行放大、缩小、平移等交互操作。
(4)具有协同性。支持异地仿真人员之间的协同感知和数据共享,可以在人与人之间实现图像通信和讨论交流。支持异地人员主持和参加网络小组会议。支持异地人员对显示内容和评注意见的交互操作的同步显示。
(5)具有兼容性。支持包括FEA、CFD领域在内的主流仿真软件(如ANSYS、ABAQUS、Fluent、NASTRAN等)数据格式,支持通用CAD模型格式,可处理包括Excel表、DAT、文本文档和自定义格式的数据文件。支持包括jpg,bmp,gif,doc,pdf等在内的多种格式可视化处理结果的协同显示。
(6)具有实时性。支持可视化处理结果的实时同步显示。使用通用浏览器提供执行环境,能有效提高仿真效率,提高企业研发能力和竞争力。
附图说明
图1.所述仿真数据的可视化协同共享方案设计图;
图2.协同共享模块端到端模式图;
图3.仿真数据的可视化与协同共享工具结构图;
图4.协同共享模块类图;
图5.所述仿真数据的可视化协同共享方法的流程图。
具体实施方式
本发明采用的方案如图1所示,位于客户端的用户将需求通过网络传送到服务器端的仿真数据可视化处理模块;可视化处理模块业务逻辑处理组件从数据库搜索需进行可视化处理的数据文件,并将需求参数传递至可视化处理引擎。引擎根据参数至数据库提取文件,进行可视化处理,保存处理结果,并由业务逻辑组件将处理结果输出到客户端的协同共享模块。在该方案中,可视化处理模块采用胖服务器+瘦客户端的结构,仿真数据的可视化处理操作在服务器中进行,通过网络传输的只是处理需求和结果,仿真数据文件本身不需要进行传输,因此对网络的速度的要求比较低。
上述方案中的协同共享模块是一个相对独立的模块,支持对可视化处理结果的协同显示和基于处理结果的交流讨论,对实时性的要求比可视化处理更高。基于网络的协同应用的两种常用结构——瘦服务器+胖客户端结构和胖服务器+瘦客户端结构——不能满足此实时性要求,需要采用更灵活的结构。本发明采用了共享应用或服务(端到端)的模式建立协同共享模块,如图2所示。在此端到端模式中,应用和服务模块共存于同一系统,可操作其它系统应用模块,或访问其它系统服务模块,可方便建立远程服务或应用操作。相比之下,端到端模式更适用于灵活的、即时的、快速的、中小型规模的协同显示和交流讨论。
本发明根据上述方案通过建立一个仿真数据的可视化与协同共享工具实现。该工具结构如图3所示,包括数据可视化处理和协同共享两个主要模块。其中数据可视化处理模块利用Tecplot科学数据可视化包作为数据绘图引擎,根据其宏命令参数接口进行二次开发,使其支持网络协同作业;利用美国Sun公司的J2EE(Java 2 Platform,Enterprise Edition)技术实现模块的业务逻辑,利用JSP/Servlet技术建立用户参数提交界面。协同共享模块利用C++技术建立程序,利用ActiveX技术打包成控件在网页上加载。其中显示部分在CIMMETRY公司的VCET库基础上实现,标示部分在MARKUP API基础上实现,格式转换接口在AutoVue接口基础上实现,利用Socket通信技术进行异地通信,实现同步传送和更改显示。上述两个主要模块分别介绍如下:
一、数据可视化处理模块
数据可视化处理模块提供一个用户参数提交界面和处理引擎,实现对仿真数据文件按照所需参数进行可视化处理,并保存处理结果。该模块依次按以下步骤建立:
(步骤1.1)使用微软公司提供的结构化查询语言数据库Microsoft SQL Server,创建仿真数据文件信息数据库SimFiles,用于存放需要进行可视化共享的仿真数据文件的信息,以便于对文件进行检索和提取;在其下建立存放数据文件存放信息的主表MetaData,具体定义如表1所示,包括以下8个列:文件编号、文件名称、文件描述、文件大小、文件存放地址、文件所有者、文件入库日期、文件修改日期;上述仿真数据文件存放在服务器端,其上传和修改以及对应的MetaData表内容的增加和修改由服务器端的仿真文件管理系统完成;
(步骤1.2)使用Amtec Engineering公司提供的Tecplot科学数据可视化包作为数据绘图引擎,根据其宏命令参数接口,在存储仿真数据文件的计算机服务器端上建立基于Web服务器的动态JSP页面,设置参数表单用来接收客户端请求;
将参数表单划分为两大部分,一是文件参数表单,二是处理参数表单,其中文件参数表单包括需要处理的仿真数据文件名和文件编号的输入框和提交按钮,限制最高可同时提交的数据文件数量为十组,供后处理引擎进行数据相加、相减和比较处理;
处理参数表单根据Tecplot可视化处理功能的分类,设置为12个可选的分表单,包括:仿真数据加载参数表单Dataloader、绘图类型表单Layertype、XY和极坐标绘图参数表单XYPolar、网格和边界绘图参数表单MeshEdge、等高线图绘图参数表单Contour、矢量图绘图参数表单Vector、散点图绘图参数Scatter、三维切片参数表单Slices、阴影/透明度/灯光参数表单ShadeLight、数据操作参数表单DataManipulation、图例参数表单Legend、输出参数表单Output,每个分表单提供与Tecplot宏命令参数接口对应的参数设置项;
(步骤1.3)在VisualDataShare项目目录下开发基于J2EE技术的业务逻辑处理组件,建立业务逻辑处理类addMacro(),作为可视化处理命令生成类,其中包括以下操作:通过java输入输出类库的request.getParameter()方法获得用户端提交的文件参数值和处理参数值,客户端没有提交的处理参数值设置为Tecplot默认参数值;通过File.createNewFile()方法,根据客户端提交的文件参数值中带后缀的仿真数据的文件名,判断其文件格式和应采用的可视化处理命令,生成可视化处理宏命令文件——macro文件,保存在服务器端;;建立可视化处理引擎类runMacro(),其中包括以下操作:通过Runtime.getRuntime().exec()方法建立可视化处理线程,调用Tecplot引擎按照所生成的宏命令文件进行可视化处理,并将处理结果保存在服务器端;通过showRvm()将处理结果保存地址返回到客户端。
二、仿真数据协同共享模块
仿真数据协同共享模块提供一个基于互联网的协同显示和交流的公共虚拟环境,实现对仿真数据可视化处理结果进行异地同步显示、添加文本意见和展开小组讨论。该模块依次按以下步骤建立:
(步骤2.1)利用C++技术,根据以下步骤开发基于互联网的协同显示和交流程序:
(1)在CIMMETRY公司的VCET库基础上实现对处理结果操作的同步显示,通过建立CVCETCtrl类对VCET API进行包装,实现同步显示参数的控制;通过建立CVCETLib类包装VCET库操作,实现同步显示操作;
(2)在MARKUP API基础上实现对处理结果添加评注和意见,通过建立CMarkCtrl类包装MARKUP API,实现对评注意见参数的控制;通过建立CMarkLib类包装MARKUP库操作,实现评注操作;
(3)利用市售AutoVue工具提供的二次开发接口对其进行二次开发,使其作为格式转换接口集成到工具中,以解决多种格式文档/模型的兼容性问题;作为高效的图文浏览批注软件,AutoVue支持包括常用的格式如dwg,dwf,bmp,gif,doc,pdf等在内的200种以上的文档/模型格式的转换和显示,而不依赖于原来的生成/编辑软件,这样在信息可视化共享中可以显示和批注多种格式的图形文件,可视化兼容性问题就得到了解决;
(4)利用流式套接字Socket技术进行网络通信,实现同步传送和更改显示,通过建立CChatSocket类创建服务器端通讯套接字,通过建立CClientSocket类创建客户端套接字,通过建立CListening类创建服务器端监听套接字,通过CCreateRoom类建立主持会议对话框,通过CJoinMeeting类建立参加会议对话框,通过建立COpMsg类发送客户/服务器通信的信息;
(5)开发图形用户界面,建立负责显示窗口操作的CBrowseView类、负责文件操作的CDocProc类、负责处理工具条的各种消息和操作的工具条类CScribbleBar类;其中工具条包括放大、缩小、平移等显示操作按钮,打开、保存等文件操作按钮,主持小组会议、参加小组会议等会议通信按钮,添加意见、显示意见、修改意见等评注意见操作按钮;
(6)在VC++的Microsoft Foundaion Class框架中对上述各类进行编译,生成协同显示和交流工具程序。
上述程序的类图如图4所示。
(步骤2.2)在步骤1所述服务器端建立仿真数据可视化共享JSP页面,将上述协同显示和交流工具程序利用ActiveX技术打包成协同共享控件VisualDS.ocx,加载到此页面上,在页面上通过request.getParameter()方法获得步骤1.3所述的处理结果保存地址,并通过控件的参数接口传递给控件,由控件下载该处理结果并实现对处理结果的协同显示和批注;
所述方法的客户端使用通用浏览器提供操作界面。在客户端第一次打开可视化共享JSP页面时,浏览器自动下载安装协同显示控件VisualDS.ocx,并加载到页面供用户使用。
实施例
将以上方法应用于国防预研项目中的微型飞行器异地协同仿真项目,为该项目的异地仿真人员提供了可视化仿真结果分析工具。在此应用中,该发明显著提高了异地人员仿真效率,获得用户好评。流程如图5所示。
步骤1在设计中心的存储仿真数据文件的服务器主机上配置WEB服务器:安装j2EE和JBoss服务器,配置环境变量及测试JBoss默认服务;下载免费开源软件Eclipse与Lomboz提供的组件集成的开发平台作为Java开发环境,安装Microsoft VisualC++软件作为C++开发环境,安装Macromedia公司的Dreamweaver软件作为网页的可视化辅助开发工具;
步骤2在服务器上安装微软公司提供的SQL数据库,建立仿真数据文件信息数据库SimFiles,配置ODBC数据源,在其下建立存放数据文件存放信息的主表MetaData,设计8个列用以存放文件编号、文件名称等信息;
步骤3使用Tecplot科学数据可视化包作为数据绘图引擎,根据其宏命令参数接口,在Eclipse平台上建立VisualDataShare项目,在该项目目录下建立基于Web服务器的动态JSP页面,设置参数表单用来接收客户端请求,开发基于J2EE技术的业务逻辑处理类addMacro和runMacro,通过前者的操作处理获得用户端提交的文件参数值和处理参数值,根据客户端提交的文件参数值中带后缀的仿真数据的文件名,判断其文件格式和应采用的可视化处理命令,生成可视化处理宏命令文件,保存在服务器端;通过后者的操作处理调用Tecplot引擎按照所生成的宏命令文件进行可视化处理,并将处理结果保存在服务器端;将处理结果保存地址返回到客户端;
步骤4利用C++技术,建立基于互联网的协同显示和交流程序;利用ActiveX技术打包成控件以便在网页上加载;其中显示部分在CIMMETRY公司的VCET库基础上实现,标示部分在MARKUP API基础上实现,格式转换接口在AutoVue接口基础上实现,利用Socket通信技术进行异地通信,实现同步传送和更改显示;
步骤5在步骤2所述VisualDataShare项目目录下建立仿真数据可视化共享JSP页面,将上述协同显示和交流工具程序利用ActiveX技术打包成协同共享控件VisualDS.ocx,加载到此页面上,在页面上获得步骤3所述的处理结果保存地址,并通过控件的参数接口传递给控件,由控件下载该处理结果并实现对处理结果的协同显示和批注;
步骤6利用Eclipse平台自带的发布功能将步骤2、3、5所述业务逻辑处理类包和网页文件包发布至JBoss服务器default目录,开启JBoss服务器,设置端口,获得IP后,输入服务器ip/端口号/VisualDataShare即可进入工具页面;技术中心各仿真人员、各合作单位仿真人员为单位在Internet的远程PC上,通过IE等通用浏览器进入工具页面,提交需要处理的仿真数据文件信息和控制参数信息,服务器端对数据文件进行可视化处理后,自动更新页面,打开可视化共享JSP页面,(客户端首次打开该页面时浏览器自动下载安装协同显示控件VisualDS.ocx,并加载到页面供用户使用),仿真人员对可视化处理结果进行协同共享。
字段名称 |
意义 |
长度 |
数据类型 |
备注 |
fileId |
文件编号 |
4 |
长整型 |
不允许空 |
fileName |
文件名称 |
255 |
字符串 |
不允许空 |
fileSize |
文件大小 |
255 |
字符串 |
|
ownerName |
文件所有者 |
255 |
字符串 |
|
description |
文件描述 |
255 |
字符串 |
|
directory |
文件存放地址 |
255 |
字符串 |
|
SetTime |
文件入库日期 |
255 |
字符串 |
|
modifyTime |
文件修改日期 |
255 |
字符串 |
|
表1仿真数据文件信息表MetaData表