PetriSim – 离散仿真环境

新闻

» PetriSim 5 已经发布!

 

[ PetriSim 及其 History | 为什么是PetriSim | 什么类型的Petri 网 | 下载和安装 | 要求 ]

[ 使用旧型号 | PetriSim手册 | PetriSim屏幕 | 作者 ]


PetriSim及其历史

PetriSim (My Pet reasonably interactive Simulator) 是一个离散模拟模型的生成器,也可以用作 Petri网络 的编辑和模拟器。通过在 PetriSim 创建的网络中添加 Pascal 代码片段来创建仿真模型。要做到这一点,你需要 Turbo 或(更好)Borland Pascal 7。不过它们只有一个 PC 版本。

PetriSim 1 最初是作为Petri 网的图形编辑器和模拟器(即所谓的位置/过渡网)创建的。因此,PetriSim 一次可以对几乎任何数量的Petri 网进行直观、用户友好的创建、编辑和模拟。大多数操作都是通过在屏幕上用鼠标绘制来完成的。可以添加 Pascal 代码片段来构建用户模型,但时间控制完全由用户负责。

PetriSim 2 介绍了所谓的时间网。PetriSim 网络使用触发延迟概念(从输入位置删除令牌和向触发转换的输出位置添加令牌之间可能存在一定的延迟)。延迟是由启动时激活的用户代码片段生成的。通过将这个非常简单的发射延迟概念与 Petri 网的图形语言一起应用,可以创建离散仿真模型典型的复杂定时和同步结构。因此 Petrisim2 是一个离散仿真模型的生成器。时间网用作框架,控制所有活动的顺序和时间。用户代码生成延迟并对用户数据执行所有操作。用户应该只需知道 Petri 网和中级 Pascal 编程的基本思想。

PetriSim 3 带来了两个主要的改进:可视化编程在转换和代码片段之间提供了清晰的链接。单击转换将打开一个菜单,其中两个选项启动文本编辑器以输入或编辑开始和结束代码段。所以用户代码可以在 PetriSim 会话期间写入。PetriSim 自动生成所有 Pascal 源代码文件。编辑完用户代码后,整个 PetriSim 程序必须在 Pascal IDE 中重新编译。继承结构已打开。可以使用基本网络对象(位置、转换、弧)的修改行为编写子类。因此,编写基于 PetriSim 的仿真环境仍然可以利用强大的 PetriSim 编辑和仿真控制设施。到目前为止,这已经被用于实现带有抑制弧的网络和一个简单的排队网络模拟器。

PetriSim 3.1 删除了一些错误,并添加了更多类型的弧。首先对抑制剂电弧进行了推广。它现在有一个权重,因此可以测试一个地方是否有少于一定数量的令牌。然后可以定义一个测试弧,它只测试一个地方是否至少有一定数量的令牌。

PetriSim 4 与以前的版本都是基于相同的网络模型,但是为了方便用户模型的创建,还有更多的功能。首先,有一个透明的统计数据收集和评估:一个地方的令牌数量、令牌在一个地方花费的时间、触发转换的持续时间。因此,如果一个位置被用作队列,并且一个转换被用作服务器,那么 G/G/1 模型中关于该位置和转换(包括方差)的所有常规统计信息都将自动可用。有一套支持模型初始化和实验评估的过程。因此,用户编程大大减少了。如果用户对标准输出满意,那么唯一的编程就是编写代码片段。

PetriSim 5 至少对于大多数模型来说,不需要编写用户代码。定时网络的所有参数,如射击的随机延迟、分支概率等,都是在屏幕编辑模式下直接输入的。因此,大多数仿真模型不需要任何 Pascal 编程。当然,像状态依赖行为这样的事情必须被编程。

PetriSim 还包含一些具有典型模拟功能的支持单元,例如统计数据的自动收集和评估、随机数的生成以及链表(队列)的处理。这些单元被设计用在编写用户代码片段时,但它们也可以被当做一般用途使用。

回到顶部


为什么是PetriSim?

PetriSim 被创建为一种工具,用以支持以下教学:

  • Petri 网
  • 离散仿真
  • 面向对象编程

PetriSim5 可以通过在屏幕上创建一个定时网络来创建离散的仿真模型。你所需要的只是关于 Petri 网的基础知识。在特殊情况下,需要中间 Pascal 编程。这使得几乎所有人都可以使用离散模拟。问题是,在一个学期的课程中,学生或不定期模拟的用户不可能掌握模拟语言。因此,PetriSim 是专业的可视化仿真工具(如 ARENATM 或 Extendtm)的免费易用替代品。

回到顶部


支持哪种类型的Petri网?

直接放置/转换网络并处于“用户模式”定时网络中。用户编写的过程可以修改网络的行为,因此可以实现其他高级 Petri 网模型。从 PetriSim3 开始,所有这些都可以作为网络对象的用户定义方法以清晰一致的方式完成。您可以向每个地方添加数据,以任何方式概括标记。您可以实现谓词以启用某些活动等。

请注意,PetriSim 只使用Petri 和定时网络作为描述性工具!它不会对网络模型执行任何自动分析。您所能做的(不创建用户模型)就是以各种模式模拟,以分析网络的行为并搜索死锁。这有两个原因。首先,有足够好的工具来提供净分析。另一个原因是,一个“完美”的Petri网可以从用户的角度对一个完全错误的系统进行建模。这就是为什么PetriSim 面向仿真的原因,对于仿真来说,定时网络模型是解决模型定时和同步问题的一种方法,这是最需要的仿真任务。

回到顶部


下载和安装

PetriSim 免费. 你可以以任何方式使用它,只要你通知作者你的PetriSim 使用-见下面的电子邮件参考。要获得它,只需下载文件 petrism.zip(2 MB)并按照以下说明操作,我们假设在驱动器C中安装:

  • 如果在 C:\PETRISIM 中有旧版本的 PetriSim ,请将目录重命名-例如,重命名为 C:\PETRISIM4。
  • 在 C:\ 中解压缩文件 petrisim.zip。这将创建包含所有子目录的目录 C:\PETRISIM 。
  • 通过对应目录中的批处理文件 S.BAT 启动简单主菜单:

C:\Petrisim\gg1>S

  • 如果没有 Pascal,可以直接在特定目录下启动 PETRISIM.EXE:

C:\petrism\gg1>petrisim

  • 您可以在 C:\PETRISIM\HTMLMAN 中找到 HTML 手册。在浏览器中为它做一个书签,以便在 PetriSim 会话期间使用它作为帮助。
  • 在 Windows 平台中,我们建议使用每个模型的快捷方式创建一个文件夹 PetriSim (所有快捷方式都在特定目录中启动 S.BAT 或 PETRISIM.EXE )。
  • 访问此 PetriSim 主页以获取更新和更多演示模型。

回到顶部


要求

PetriSim 是一个 MS-DOS 应用程序,可以在任何与 PC 兼容的计算机上运行。可以使用支持 MS DOS 鼠标功能的任何鼠标(或任何其他指针设备)驱动程序。Petrisim也可以不使用鼠标,但不推荐使用。Petrisim 可以在Windows3.x/95/98/nt/me/xp 平台中无任何问题地启动。

要创建包含用户源代码的模型,需要使用 Turbo 或 Borland Pascal 7(不能使用旧版本,因为PetriSim使用开放数组参数)。如果您有 Borland Pascal,请使用受保护的目标来避免任何内存问题。对于Turbo Pascal,存在传统内存有限的问题。petrism.exe文件大约为210kb(确切长度取决于 user.pas 单元)。然后必须有一些空间用于图形、DOS shell,尤其是文本编辑器来编辑用户代码片段。如果内存出现问题,请尝试调整堆大小(在 petrism.pas 中),删除所有不需要的 TSR,或者使用一些短文本编辑器(演示示例使用c:\windows\system32\edit.com)。在随源文件分发的 readme.txt 和手册中有更多详细信息。

回到顶部


使用旧型号

加载使用旧版本创建的网络文件时不应出现任何问题。有必要修改单元用户,因为现在它要短得多,大多数与用户相关的声明都已移动到单元用户部分。看看第5版提供的其中一个演示模型的单元用户。通常,您应该能够使用代码片段。从单元用户的旧版本中,可以使用模型评估部分,但也可以考虑使用版本5中提供的标准评估。如果您有问题,请联系作者寻求帮助。

回到顶部


浏览 PetriSim手册

现在浏览在线 PetriSim5 手册

回到顶部


查看 PetriSim 屏幕

PetriSim 教程假设您了解 Petri 网的基本概念。所以考虑先访问这个页面。

启动一个 PetriSim 教程,该教程还可以用作在版本4中创建简单用户模型的教程。对于版本5,您只需输入定时网络参数并模拟网络以获得标准输出。

回到顶部


作者

如果有任何问题,请立即联系我:

Jaroslav Sklenar 
副教授
统计运筹系
马耳他大学
木西达MSD 2080 
马耳他

电子邮件:   jaroslav.sklenar@um.edu.mt
网址:   http://staff.um.edu.mt/jskl1/
电话:(+ 356)2340 3070     传真:(+ 356)2131 2110

原文链接:http://staff.um.edu.mt/jskl1/petrisim/index.html

回到顶部