首页 > 范文大全 > 正文

探究仿真支撑平台数据管理的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇探究仿真支撑平台数据管理的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文根据仿真支撑平台的特点及应用,设计了一个基于windwos平台的多用途和支持分布式应用的仿真支撑平台。仿真支撑平台除了提供仿真程序的编制和编译、任务的调度与管理以及数管理等基本功能外,它还应具备实时控制、数据库管理及其相关的实时仿真数据库、共享内存区功能。

关键词:仿真支撑平台;客户机/服务器软件;测试 Data Management

中图分类号:TP391.9文献标识码:A文章编号:1007-9599 (2010) 03-0034-03

Simulation Supporting Platform Data Management

Design and Achievement

Liang Hongyu

(Chongqing Municipal School,Chongqing400042,China)

Abstract:According to characteristics&application of simulation supporting platform,we designed a platform based on the windwos distributed applications and support multi-purpose simulation platform support.

Simulation platform in addition to providing programming for simulation and compilation, task scheduling and management, and the number of management and other basic functions, it should with real-time control, database management and related real-time simulation database, shared memory area function.shared-memory area function.

Keywords:Simulation Supporting Platform;Client/server Software;Test Data Management

一、仿真支撑平台的总体架构

(一)仿真支撑环境的基本结构及实现方式

从仿真语言发展成一体化建模与仿真环境是一个大的跃进。一体化建模仿真环境是一类采用计算机支持建模仿真环境,它向用户提供了一个完全类似于对实际系统进行实验的框架。同时,它对仿真中涉及到的各种资源,如模型、算法、实验框架以及行为数据进行统一管理。另外,它还应具有多功能并行工作的能力。它的主要性能表现在:支持建模仿真全过程:一体化集成程度;方便的用户接口;开放性等。一体化仿真环境应具有四个相互独立的管理系统及一个实验运行系统:

1.模型库管理系统;

2.算法库管理系统;

3.实验管理系统;

4.数据管理系统;

5.实验运行系统:

四个管理系统通过一个中心数据库与实验运行系统实现集成。从软件工程的角度分析仿真环境,可认为仿真开发过程就是一类具体的软件开发过程,故软件工程的各种方法、技术和工具可应用于仿真模型及其支撑系统一仿真环境的开发过程中。一个理想的仿真环境是一个复杂的软件系统,由许多部分组成,通过开放的、模块化公共软件体系结构,设计和实现这些成员,构造仿真环境。在具体实施时将根据实际需要实现上述系统中的部分功能。根据一体化的构成,可以有以下几种实现方式:

1.不同功能软件通过一个软件,利用数据建模接口实现一体化,这是最初级的一体化方式;

2.以数据库为中心,实现仿真全过程不同阶段活动的数据共享,支持各类活动的集成,实现一体化;

3.开发仿真操作系统,由仿真操作系统实现对仿真关联资源的有效管理,并支持这些资源的匹配运行,实现整个仿真软件系统的高度一体化。一个仿真操作系统应具有对仿真关联资源(模型、参数集、实验框架、算法和实验结果等)进行描述、存储和管理的功能,支持模型在实验框架内的实验,并具有一个交互式的用户界面,它支持仿真研究全过程,有关仿真研究的工作都可以在该仿真操作系统支持下完成。

(二)仿真支撑平台的总体设计

1.仿真支撑平台的体系结构设计

根据一体化仿真环境的基本结构,结合仿真培训系统的特点,本实时仿真支撑软件采用构建一体化仿真环境的第二种方式进行实现,即以数据库为中心,实现仿真全过程不同阶段活动的数据共享,支持各类活动的集成,实现一体化。该系统主要由四个功能模块组成:数据管理模块、网络通信模块、模型管理模块、外部接口模块:每个功能模块都紧紧围绕着仿真数据库来设计实现。

(1)数据管理模块

数据管理模块是用来实现对仿真支撑平台各个数据库的统一调度、管理。据管理模块主要分为对以下几个数据库的管理:变量数据库、表和图库、模库、故障库。其中,变量数据库是系统运行的核心,通过平台提供的变量扫工具将数学模型中的变量扫描到变量数据库中,各种功能模块通过变量数据库中数据的存取及处理来完成其所要求的各种功能,是支撑软件的关键技术和主要部件;表和图库用来保存所有感兴趣的变量的信息和值,表可将感兴趣的100个变量以表格的形式进行实时输出监视,而图则用趋势图或直方图等可视化形式对变量进行监视,表和图库极大地丰富了变量监视的手段;数学模型是仿真活动的灵魂,模型库正是用来对各个数学模型进行分类管理的数据库;故障库是用来保存故障设置信息的数据库,对故障的保存为以后重设故障提供了极大的方便。

(2)模型管理模块

仿真是一种基于模型的活动,仿真模型必须通过模型调度程序的调度,才能表现出具体的行为特性。模型管理模块即围绕着模型的编写、编译、连接和运行展开的。首先,使用仿真支撑平台提供的建模工具,采用面向对象的方法用C++编写模型程序,仿真支撑平台支持模型的并行开发,即允许多个客户在各自的机器上编写子模型,完成后各个客户将各自的子模型保存在服务器上的某一共享目录中;模型编制完成后,操作人员在服务器上将刚才的共享目录指定为工作目录,通过支撑平台提供的编译窗口打开工作目录中的各个子模块,点击扫描变量按钮后,支撑平台利用指定的变量扫描规则将各个子模块中的变量扫描入库并建立变量与内存之间的映射关系;点击编译连接,支撑平台就可以用内嵌的程序模块组合规则将各个子模块组合成一个完整的模型源程序,这时就可以调用编译器对此模型源程序编译和连接,最终生成可执行程序;最后,编译链接完成后的模型可执行程序就可以被仿真运行在线控制系统实时调度。

(3)网络通信模块

网络通信模块用来负责仿真支撑平台的服务器和各个客户机之间实时数据和控制信号的传输。在仿真支撑平台整个系统的实时通信中,仿真主机作为服务器,监控机作为客户机,而且监控机可以有多台。服务器与客户机之间进行实时数据的通信是基于TCP胆网络协议的,使用流式的面向连接的网络套接字发送和接收实时数据和控制信号。服务器上模型程序的数据可能很大,且每个数据随时都可能会发生变化,为了保持服务器和所有客户机上数据的同步,一种最简单的办法就是服务器和客户机之间定期相互复制数据。这样,如果复制间隔较短时会使得网络的负荷非常繁重,甚至无法正确完成工作;而如果间隔过大,则无法在各计算机上实现数据的同步,而且由于每增加一个客户机都会导致服务器网卡负荷的增加,使得系统不能具备很好的扩展性,对仿真系统带来了很大的局限性。为了提高数据传输效率,减少不必要的资源浪费,我们对仿真支撑平台的网络通信在技术和思想上进行了专门的设计。考虑到服务器上数据某时刻并不是都在变化,我们专门开辟一个线程定时发送变化的数据,定时周期与仿真模型运算周期保持一致,这样能最大限度地使发送数据与模型运算同步。然后在每个客户机内存中都保存服务器上变量数据库的副本,当客户机收到变化的数据信息时就刷新各自的内存区,这时,各客户机就可以从自己的内存区中取得所需要的数据。这样有选择的发送数据,大大减少了网络通信量,提高了系统效率。

(4)外部接口模块

外部接口模块是仿真支撑平台提供给外部用户的一个开放的接口规范。它允许应用程序利用该接口库中的方法函数直接访问平台的变量数据库,这样用户就可以利用接口库中的接口函数对变量数据库中的数据进行取值、修改等操作。所有这些接口函数都被封装到动态连接库中,各种应用程序通过调用此动态连接库中的接口函数,就可以实现多个进程间数据的共享,又可以保证及时的响应速度。仿真支撑平台启动模型程序运行后,仿真支撑平台便建立了共享内存区,这时其它的应用程序就可以利用仿真支撑平台提供的外部接口函数,将外部接口对应的动态链接库导入内存中,再调用相应的接口函数建立应用程序与仿真支撑平台的共享内存区的映射关系,这样应用程序就可以通过相应的接口函数对仿真支撑平台的变量数据进行取值、修改等操作了。

(三)开发平台的选择

一个通用、高效的应用程序开发环境对于程序开发人员来说是至关重要的。当前,微软(Mcioros)tf公司的Windows在操作系统领域中独领,其良好的性能和“EnbalingTechnology”的“平台”设计思想为第三方软件开发商提供了众多的增值机会,因此成为广大软件开发人员的首选开发平台。微软公司推出的全新产品Windows2000突破了Windows操作系统在应用领域的界限,将适用于PC领域应用的Windowsxg系列和适用于企业领域应用的WindowNsT合二为一,最终成为一个真正通用的应用平台。

二、仿真支撑平台的数据管理的思路与实现

(一)仿真数据库的组成

1.数据存储与管理技术的比较与选择。

数据库管理技术的发展经历了人工管理、文件系统和数据库系统3个阶段。

(1)人工管理。20世纪50年代以前,计算机主要用于科学计算。在硬件方面,外存只有纸带、卡片和磁带,没有磁盘等直接存取的存储设备:在软件方面,没有操作系统,没有管理数据的软件:数据处理方式是批处理。

(2)文件系统。20世纪50年代后期到60年代中期,这时硬件方面已有了磁盘、磁鼓等直接存取的存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统;数据处理方式上不仅有了批处理,而且能够联机实时处理。

(3)数据库系统。20世纪60年代后期,计算机应用规模越来越大,数据量急剧增长。这时硬件已有大容量硬盘,硬件价格下降:软件则价格上升,为编制和维护系统软件及应用程序所需的成本相对增加,在各个应用领域如果一旦改变数据结构都要修改应用程序,代价无法计算;在数据处理方式上,联机实时处理的要求更多,并开始提出和考虑分布处理数据。文件系统管理数据已经不能满足应用的需求,于是为了解决多用户、多应用共享数据的要求,使数据为尽可能多的应用服务,数据库技术应运而生,出现了统一管理数据的专门软件一数据库管理系统。

2.仿真数据库的组成

仿真数据库按功能划分,包括变量数据库、模型库、故障库、表和图库。

(1)变量数据库。变量数据库是仿真数据库的核心数据库,它存储了仿真过程中的所有变量的信息和值。考虑到管理方便和提高性能,变量数据库必须放在内存中,而且把变量数据库分为两部分:变量信息部分和变量值部分。变量信息部分采用哈希表数据结构存储变量信息,运用哈希算法进行快速检索,进而对变量进行修改、删除等操作,变量信息并不保存在共享内存中,它是专门为提高仿真支撑平台和外部应用程序访问共享内存区的性能而创建的高效数据结构,所有的关于仿真支撑平台和外部应用程序对共享内存区的查找、修改等操作都是通过变量信息数据结构来实现的;变量值部分存储了包括输入变量、输出变量、常数等变t的值,既有模拟量,也有数字量和逻辑量。为了保证实时性,变量值部分以连续的结构数组的形式保存在共享内存区中。在仿真平台扫描变量过程中,通过哈希表将每个变童的变量信息映射到变量值的共享内存区的相应位置。经过对各种数据属性的抽象和归纳,用如下所示的数据结构来描述变量的数据结构,它完整地描述了一个仿真变量的所有性质,基于此数据结构的数据库构成了实时仿真支撑软件中的变量数据库。

(2)模型库。模型库是仿真支撑平台为了管理用户为众多系统创建的数学模型而建立的系统仿真模型数据库,是仿真数据库的关键,仿真模型的调度和运行控制都是在模型库的基础上进行的。首先,在仿真平台的服务器端建立一个共享目录,多个用户在服务器和各个客户机上同时编写数学模型,然后各个客户端利用Windows操作系统的重定向技术(应用程序利用网络远程访问Windows文件系统资源的机制)将各个数学模型模块保存在服务器端的共享目录中。每当新建一个任务时,必须指定该共享目录为此任务的工作目录,不同的数学模型正是根据任务的不同来分类保存。模型库是用文件系统来创建、以文件目录的形式来维护的,所有的模型文件保存在共享目录中被模型调度程序统一管理的。

(3)故障库。故障库存储了所有的故障设置情况,该数据库也是变量数据库的子集,库中所有的故障变量都映射到变量数据库。故障设置主要用于仿真系统中,对于普通的科学计算和监控人员来说,一般不会用到。仿真支撑平台利用故障设置对话框来增加故障、删除故障、修改故障属性和设置故障状态。故障库中每个故障称为故障项,若干个相关的故障的集合称为故障组,故障库是用文件系统来创建故障项、利用故障组来分组管理的。故障按照任务的不同,分别以文件的形式保存在各个任务的工作目录中。

(4)表和图。在仿真活动中,可能会有大量变量,甚至达到上万级。当用户需要监控变量时,这么多的数据在不同的页面显示会给用户带来不便,为此,我们采用了“表”的概念。表用来存储用户感兴趣的一组监视的变量,一般不超过100个。表为变量数据库的子集,其中所有受监视的变量都映射到变量数据库中。图主要用可视化的方法查看某个或某些变量的变化趋势,主要分为曲线图和直方图,其中的变量也都映射到变量数据库中。我们可以利用仿真平台提供的相关工具来建表和建图,并且支持多用户在线创建、编辑等操作。表和图也是按任务的不同,以文件的形式保存在相应的工作目录中。

(二)仿真数据库的通用存储策略

设计仿真数据库,处理时空矛盾时,理应优先考虑效率的要求。如果不在限定的时间内得到数据,则该数据就是过时数据,而过时数据是无效的数据。数据库的设计应以支撑平台对不同数据所要求的响应速度以及数据量的大小为依据,来决定数据的存取策略。传统的数据库技术具有数据共享性、独立性、安全性、完整性等优点,但是这是以牺牲计算机的空间和时间为代价的,它在相应速度上劣于文件系统。为了满足大量数据实时地访问、存取和快速的网络通信能力,仿真数据库需要专门设计。为此我们采用内存数据库、文件系统兼用的方式:模型计算和网络通信等追求实时性和高效率的模块我们采用内存数据库来保存数据,其它需要长期保存的数据则用文件系统统一分类保存。当系统运行时,先把变量通过扫描模型程序或直接从工况文件中装载到内存数据库中,之后模型运行通过内存数据库接口函数和内存数据库中的变量进行交互。这样,通过利用文件系统和内存数据库等多种存取方式和存储介质,既保证了数据的共享性、独立性、完整性和安全性,又节约了内存,提高了系统的响应速度。

三、结语

由于实时仿真支撑软件涉及到的技术含量高,系统庞大,结构复杂,要想开发一套成熟的仿真支撑软件,难度较大。因此,本仿真支撑软件拟进行一些改进,其主要优化表现在以下几方面:系统的界面设计不太美观;目前的实时仿真数据库只能存储整形、浮点型、布尔型变量,只能支持最多二维数组;建模工具还不够强大,模型建立不是非常的方便和灵活。只支持常规建模,没有提供图形建模等其它建模手段。

目前,随着internet技术在全世界范围内的流行,基于Wbe的仿真技术和Internet的远程培训系统的研究也是方兴未艾。今后在原有的基础上增加远程访问的功能,实现远程培训的目标。

参考文献:

[l]刘怪峰.李仁发,莫铁强,孙婷.实时操作系统仿真环境的UML建模[J].系统仿真学报,第14卷,第6期,2002年6月

[2]何江华.计算机仿真导论[M].北京:科学出版社,2001,1-10