英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
网络虚拟仿真系统的设计与实现
张泽华1,崔国国1,蔡淳才1,张国龙2
1.北京理工大学自动化学院,北京100081
电子信箱:edison3333@126.com,cuilingguo@bit.edu.cn,chaisc97@hotmail.com
2.辽宁省慈云石油镇石油生产厂辽河油田第一产油地区110206
E-mail: 18842704251@139.com
摘要:随着网络技术的飞速发展,近年来,基于网络的仿真技术得到了学术界和工业界的广泛关注。与传统仿真环境相比,它具有成本低,维护方便,便携等优点。为了满足仿真的新要求,本文提出了基于B / S架构的基于Web的虚拟仿真系统。传统仿真平台(MATLAB / Simulink)通过友好的用户界面和强大的模拟能力能直接移植到网络上。为了提高Web用户界面的质量,引入AsWing(由Flash脚本开发的一组UI组件:AcitonScript),通过Servlet将模拟任务信息从用户界面传输到MySQL数据库。该方法采用中心仿真平台(MATLAB / Simulink),从存储在数据库中的信息重构仿真,模拟结果将通过互联网发送回数据库和Web用户界面。在此论文中介绍了所提出的模拟环境的整体结构,并给出了演示仿真结果,以显示提供的系统的性能。
关键词:基于Web的仿真,MATLAB / Simulink,B / S架构,Aswing
1引言
仿真作为研究复杂控制系统的方法之一,通过虚拟系统仿真实际系统。随着电子计算机网络技术的快速发展,基于互联网的虚拟仿真系统越来越受到越来越多的关注。它具有便携性,分布式,高效率,低成本等优点,被广泛应用于学术和工业领域[1-4]。然而,在过去的大多数基于Web的仿真系统中,模块总是由组件(Activex,Java组件,CORBA等)建立,如[5]中作者提出的内容。在这种方式中,提供的平台的维护和改进非常困难,并且耗费大量工作量和时间。因此,使用现有的仿真软件进行基于Web的仿真具有重要意义。 Simulink集成在MATLAB中,是一种视觉仿真工具,用于动态系统的建模,分析和仿真。它具有丰富的模块库,友好的图形界面和强大的图形交互功能。除此之外,它具有适应性强,实用性强,效率高等优点,广泛应用于图像处理,鲁棒控制,系统识别,非线性系统分析等诸多领域[6]。然而,MATLAB占用了大量的系统资源,对CPU和内存的要求较高,缺乏基于Web的通信功能。软件的成本是限制其应用的另一个因素[7]。针对上述问题,本文提出了一种将网络技术与传统仿真平台相结合的基于B / S的网络虚拟仿真系统。该系统提供了一个基于Web的GUI,用于与Simulink类似的功能进行建模,并实现了GUI,数据库MySQL和中心仿真平台(MATLAB / Simulink)之间的通信,用于仿真。用户可以直接在网络上使用浏览器进行模拟,无需任何应用程序。本工作提供的分布式,远程和低成本的网络仿真环境降低了硬件环境和系统维护成本。此外,节省了工作量和时间,充分利用现有资源,提高分析效率。
在本文中,系统设计将在第2节中介绍。第3节将详细提出系统实现。最后,演示仿真结果将在第4节中给出。
2系统设计
该系统基于具有Web技术和HTTP协议的B / S网络架构。 根据它,用户可以直接打开一个浏览器进行仿真,无需任何其他应用程序。 用户界面主要通过浏览器显示,但大部分内容都是通过浏览器实现的服务器背景[8]。
通过对系统结构的分析,设计如下:首先,在客户端构建基于Web的GUI。 用户可以使用浏览器打开它来进行建模。 当建模完成时,GUI将通过相应的任务信息传送到数据库HTTP协议的Servlet。 最后,中心仿真平台(MATLAB / Simulink)读取数据库中的信息,重构仿真,并通过Java界面将结果发送回数据库。 并且数据库再次与GUI通信以显示结果。
系统架构如图1所示。
图1.系统结构框架
该系统由三个主要部分组成:客户端的基于Web的GUI,Web服务器端的数据库和中心仿真平台(MATLAB / Simulink)。 本文主要关注基于Web的GUI构建,数据库设计和实现方法的仿真。
2.1基于Web的GUI设计
基于Web的GUI是系统的人机交互界面,功能类似于Simulink。为Simulink等用户提供各种模块。用户可以选择它们,更改属性,并根据自己的要求将它们连接到仿真的链接。
Flash是一种流行的应用程序,用于开发具有少量字节的高质量矢量图形和交互式动画。具有良好的网络可移植性,适合设计Web GUI。 ActionScript3.0是Flash的最新脚本语言。与以前的版本相比,它更好地实现了面向对象的编程思想。其执行效率至少是以前版本的十倍。因此,Flash CS 5是Flash ActionScript 3.0作为其脚本语言的工具,被选为开发工具。 AsWing是由ActionScript3.0开发的一组UI组件。 AsWing的所有UI组件都由Sprite类扩展,Sprite是Flash的原始类。几乎每个AsWing组件都可以放入单独使用显示并且同时使用
它还有一个名为GuiBuilder的工具,方便地布局用户界面,并为每个布局生成相应的类。使用AsWing及其辅助工具,设计的界面更加视觉,友好和面向对象[9]。所以这项工作利用AsWing设计GUI的不同组件。首先,我们使用GuiBuilder布局GUI的各个部分,如菜单,工具栏,模块,工作区等,然后生成类。诸如树列表的复杂结构需要嵌套几个类。然后在主类中收集不同的结构类。最后,在Flash CS5中建立了一个主文件,导入主类来实现GUI框架。
2.2数据库设计
MySQL是一种将数据存储到不同表中而不是库的关系数据库。由于体积小,速度快,成本低,本文采用后端数据库。 MySQL还有一个名为“MySQL Front”的视觉界面。在这项工作中用于显示MySQL中的信息。数据库用于存储建模信息从Web GUI传输和MATLAB在此工作中发回的结果。所以在MySQL中,应该建立不同的表来存储不同的信息。有关信息的细节,表格分为许多不同的领域。
2.3仿真设计
1)通讯设计
由于Flash没有直接访问数据库的功能,因此平台至关重要。有很多平台可用。 Java是如此安全,易于使用和被很好的理解,所以它成为数据库应用程序中使用最广泛的编程语言之一。 Servlet是服务器端的Java应用程序。独立于平台和协议,它可以运行在多个平台并生成动态网页[10]。它可以像HTTP服务器端的数据库那样承担用户请求,如Web浏览器和服务器响应。
因此,基于Java的Servlet被用于本文中GUI和数据库之间的数据传输。
2)MATLAB中的核心仿真方法
MATLAB具有用于MATALB和其他应用程序之间的Whe数据传输的函数库,可以使用MATLAB作为系统背景中的应用程序进行计算。支持Java语言,MATLAB有一个可以调用Java API的Java接口包和类的关键功能。这项工作使用Java程序来创建一个具有以下功能的类:访问数据库并生成MATLAB命令。同时,MATLAB可以识别的文档被建立,以调用Java类重建模拟环境并发回结果。
3系统实施
3.1基于Web的GUI实现
如图2所示,基于Web的GUI由菜单,工具栏,树列表,弹出面板,工作区和状态栏等六个部分组成。
图2. 以web为基础的GUI仿真系统
用户可以单击树列表选择所需的模块,在弹出面板中拖动模块,将它们添加到工作区。当用户单击工作区域中的模块时,将显示相应的属性对话框,其中的参数可以修改。
然后用户可以通过链接将所需的模块分组在工作区。最后用户需要点击“开始”按钮运行它。用户可以通过点击示波器相应的模块来检查结果。为了实现GUI结构,这六个部分分为三个类。 GUI的类结构如图3所示。 Flash文件需要导入的是一个名为“MainClass”的主要类。它进口三大类,分别是“菜单”,“工具栏”
“WorkspacePanel”。 “菜单”负责菜单。 “工具栏”负责工具栏。所有其他部分均由“WorkspacePanel”负责。 “WorkspacePanel”导入两个类:“Item”和“Workarea”。项目导入两个类:“Itemlist”和“Itempanel”。 “Itemlist”负责加载树列表结构。它将“ItemTree”添加到构造函数中以实现树列表结构。 “Itempanel”导入弹出式结构的“ItemIconpanel”面板。 “ItemIconpanel”可动态导入“ItemIcon”,使其可以弹出可以选择性拖动的面板。在“WorkPanel”类中,有两个类导入“Workarea”和“Statusbar”。 “Workarea”用于主要工作区域,“Statusbar”用于监视用户的鼠标移动。它可以捕获鼠标的位置和用户的操作区域。
基于面向对象编程语言的思想,根据项目管理工作的不同范围和未来功能开发,将整个项目划分为多个课程是对项目的稳健性有帮助的。
图3. GUI的经典结构
1)用户界面的布局
菜单栏中有四个子菜单,分别是“文件”,“编辑”,“查看”和“帮助”。他们每个人都有一个更多的使用权。
工具栏项目分为五种不同的功能,分别负责一个项目的创建,模块调整执行,项目修改和操作流程。用户可以点击任意一个触发事件来完成相应的任务或功能。
树列表结构由“Item”类实现,它分配“ItemIcon”对象以显示每个子项的弹出面板。总共有“常用块”,“连续”,“不连续”,“离散”等16个子项,全部如图4左侧所示。树列表结构通过不同的叠加面板提供弹出和弹性功能。单击每个子项触发相应的事件。因此,加载不同种类的按钮面板并实现动态弹出功能。单击“Simulink”根项目隐藏并清除所有加载和显示按钮面板。
弹出式面板由不同数量的不同标签按钮组成。以“Continous”面板为例,标签按钮显示弹出模块图标及其名称,如图4右侧所示。对于不同的标签按钮,该类
“ItemIcon”处理由于加载滑动工具的类而导致显示界面溢出的图标的问题。由于不同的弹出模块的长度和名称不同,所以滑杆在水平或纵向相应地适应。
在工作区,用户可以点击选项卡左侧的按钮Ā ā添加一个新的工作区域,并点击每个工作区域的“删除”按钮,如图5所示。它的功能类似于我们现在使用的常用浏览器。 “工作室”课在整个系统中起着重要的作用。它完成了所有程序的最大功能,并记录了具有晶格结构背景和鼠标捕获功能的用户的操作行为。
图4. 树列表和弹出面板
图5. 工作区域和状态栏
状态栏保持用户在工作区域的行为状态。
一个是鼠标的位置坐标,另一个是当前工作区的选项卡ID。在右侧,有一个进度条显示访问数据库的时间表。状态栏与其工作区域相关联,它们位于同一个面板中,由“WorkPanel”类控制。
2)拖动功能
用户可以拖动弹出式面板中的图标将其放入工作区域。释放前,图标的透明度为0.5。将图标放入工作区后,将显示透明度为0.但是当图标没有放在正确的区域时,程序没有任何结果。
为了实现拖动的功能,设计了“DragLabel”类和其他几个主要类。当用户单击树列表的子项时,程序记录子项的名称并将其传输到弹出结构。
弹出式结构将显示相应的面板。
弹出式面板中显示的每个图标都通过“DragLabel”类集成。 “DragLabel”的对象在调用时携带初始化信息,包括主叫方的名称和输入和输出端口的数量。
程序使每个“DragLabel”在初始化后被拖放。当它被拖入工作区域并释放时,它创建一个可以根据初始化信息拖动的模块对象。在“Workarea”的范围内,面板可以知道触发“DragDrop”的事件,以便“Workarea”可以用作容器来响应拖放操作。
然后程序定义一个名为“DragDropResponse”的函数来响应“DragDrop”。
3)参数配置
在面向对象设计时,不同的类被设计为单个模块来实现程序的完整性。而Block被设计为他们的基础类。在类Block中,我们加载一个图标,为每个模块绘制输入和输出端口。继承块,每个模块类都加载自己的属性对话类。所有的课程都有相同的特点和自己独特的特点。
用户可以点击每个模块来显示自己的属性对话框来设置自己的参数。属性对话框只能被实例化一次。当工作区域中显示属性对话框时,您不能再单击相同的模块来显示其属性对话框。当用户关闭属性对话框时,用户可以单击模块,再次显示它们刚刚设置的参数。
属性对话框也可以在工作区中拖动。
使用GuiBuilder实现属性对话布局。 “常数”属性对话框如图6所示。
图6. “常数”属性对话框
4)绘制线
我们模仿Simulink绘制线条。 首先,我们使用一个数组来保存模块类中每个模块的输入或输出端口的位置。 然后当用户在模块的输入端口上按下鼠标左键时,将调用绘制线的功能。 如果您移动鼠标,它将从模块的输入端口绘制一条
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[139156],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。