一种基于DEVS的虚拟实验系统研究(1)
2015-03-24 01:08
导读:计算机应用论文论文,一种基于DEVS的虚拟实验系统研究(1)在线阅读,教你怎么写,格式什么样,科教论文网提供各种参考范例:
摘 要 提出并讨论了一种基于DEVS形式理论的虚拟实验系统模型。
摘 要 提出并讨论了一种基于DEVS形式理论的虚拟实验系统模型。该模型较好地克服了传统虚拟实验系统中因实体缺乏统一的形式化规范而导致的可重用性差,互操作性差,难以适应跨平台和分布式应用需求的困难。 关键词 离散事件系统规范;虚拟实验系统;虚拟实体;Java3D;0 引言 虚拟实验系统实体模型的构建是实现虚拟实验的关键。多年来,国内外一些研究机构提出多种很好的实体模型[1-2],成功地建立自己的虚拟实验系统,如芝加哥伊利诺伊大学的虚拟有机
化学实验室,新墨西哥州大学自动
控制工程中心的V-Lab系统,中国科技大学的大学物理仿真实验系统等。但这些系统都是针对特定的应用领域,采用不同的技术实现,难以适应跨平台和分布式应用的需求,其虚拟实验平台和虚拟实验设备也缺乏统一的形式化描述,虚拟设备间的可重用性和互操作性差,难以构建开放的虚拟实验平台。 解决上述问题方法目前主要有两种:一种是利用人工智能的理论和方法构建结构化、智能化的实体模型,如基于Agent的实体模型[3,4];另一种是研究和建立虚拟实验的通用标准[5]。但目前面向Agent的
软件工程(Agent-Oriented Software Engineering,AOSE)方法还不完善,缺乏成熟稳定的Agent系统开发平台[6],因而软件开发难度大,Agent系统的稳定性也有待商榷,而对虚拟实验标准化的研究目前也处于探索阶段,标准的完善和广泛认同还需要很长时间,为此,本文提出了一种基于DEVS(Discrete EVent System Specifications,DEVS)的虚拟实验系统模型,从而较好地解决了上述问题。1 DEVS形式理论 DEVS是美国学者Bernard P. Zeigler提出的一种离散事件系统形式化描述模型[7]。它将每个子系统都看作是一个具有独立内部结构和I/O接口的基本功能模块,负责描述离散事件系统的自治行为,包括系统状态转换、外部输入事件响应和系统输出等,称为DEVS原子模型(atomic DEVS)。 DEVS原子模型通常可用一个七元组描述[8]:

其中,X是输入集;Y是输出集;S是系统的有序状态集;ta为时间推进函数,

表示在没有外部事件输入时系统状态保持为s的时间,

表示静止状态,ta(s)=0为瞬时态,表示不消耗时间的即时运算,该状态的运行中不推进仿真时钟;

是atomicDEVS的全状态集,其中e表示系统在状态s停留的时间;

为内部状态转移函数,若无外部事件输入,系统经ta(s)时间后自动将状态转移到

,同时将e置0;

为外部状态转移函数,若有外部事件

输入,系统立即转到状态

,并将e置0;

为输出函数,输出在系统内部状态转移时产生,状态转移前的状态s用于产生输出

,其它非内部状态转移时不产生输出。 DEVS耦合模型(coupled DEVS)由多个DEVS原子模型通过一定的连接规则构成,它可以作为更大的子系统的原子模型使用,从而形成对整个系统模型的层次模块化描述。DEVS耦合模型的结构描述如下:

其中,M是耦合模型的成员集,每个M都是原子DEVS;EIC为外部输入耦合关系,从耦合模型的输入端连接到内部成员的输入端;EOC为外部输出耦合关系,从内部成员的输出端连接到耦合模型的输出端;IC为内部耦合关系,从内部成员的输出端连接到其它成员的输入端;SELECT为选择函数,当耦合模型中的多个成员同时发生状态转移时,选择优先级最高的成员的状态转移作为耦合模型的状态转移。 在DEVS中,模型的功能执行通过抽象仿真器实现,抽象仿真器是一种算法描述,用以说明如何将指令隐含地传给模型以产生模型的行为,负责收发消息,调用模型的转移函数,修改本地的仿真时钟。抽象仿真器与模型之间是一一对应关系。2 虚拟实验系统的DEVS形式化模型2.1 虚拟实验系统中实体的DEVS模型 虚拟实验系统(Virtual Experiment System, VES)中的实体可分为虚拟器件(Virtual Instrument, VI)和虚拟场景(Virtual Scenes, VS)两类[12]: