第2章 Plant Simulation概览

Plant Simulation is software for integrated, graphic and object-oriented modelling, simulation, and animation. Many complex systems may be modelled and displayed in great detail closely resembling reality.

2.1 面向对象

Plant Simulation是完全面向对象的。 了解面向对象编程的基本原理,能够使您以一种有组织且可维护的方式建立大型复杂系统模型。

类、属性和实例

假设我们需要对病人建模,病人相关的属性包括年龄、预约时间和性别等。我们不需要关心确切的年龄、预约时间和性别,但一个病人模型必须要含有这些属性。用面向对象的术语,我们需要定义一个Patient类,有ageappointmentTimegender等属性。
Patient类不是指代某个病人个体,它用于描述所有病人的特性。对Patient类进行实例化,可以得到病人个体。这些个体称为Patient类的实例。每个实例都有相同的属性(ageappointmentTimegender),但属性的数值会有差异。

image.png

派生和继成

当模型变得更加复杂,可能需要区分成人和儿童。 二者都具有Patient类的所有属性,但是对于儿童,我们只需要知道他们是否已接种疫苗。 我们可以通过将属性ageCategoryisVaccinated添加到Patient类中,这会影响成人和儿童。 面向对象提供了一个更合适的工具——推导。 从原始的“患者”类别中派生出两个新类,并将它们称为AdultChild类。 对于后一类,我们添加属性isVaccinated。 当我们谈论PatientAdultChild类之间的关系时,Patient类是父类或起源类,而AdultChild类是Patient类的子类。
AdultChild类继承了Patient的三个已有的属性。这意味着,如果我们更改(例如重命名)Patient类中的属性,则该更改也将同时反映在AdultChild中。 但是继承仅适用于从源到子类的继承。 如果您在AdultChild中更改了继承的某个属性,则相当于不再继承该属性,并且更改不会反映在Patient类中。同样,AdultChild可以像其他任何类一样实例化或者派生。

Note
  1. Plant Simulation将类和实例都看成对象,但要认识到二者是不同的
  2. 除了派生,还可以复制某个类。复制的类跟原来的类之间不存在继成关系。
  3. Plant Simulation中有各种基础类,可以用它们创建自定义的building blocks。 可以使用复制和派生来创建自己的专用类。 而有时您需要用一组现有类来创建一个新类,通过内建对象Frame能够做到这一点(在Frame上放置多个基本类可以创建一个新类); 本书将在部分B探讨这一话题。 而部分A所涉及的Frame就是包含完整仿真模型的Frame。我们称之为RootFrame

2.2 Plant Simulation桌面

建立一个新模型

  1. 打开Plant Simulation
  2. 选择新建模型
  3. 创建2D模型
    Plant Simulation桌面如下图所示,包括一些工具栏和停靠窗口:
  • Class Library:结构化显示当前模型所有可用对象类(object classes)。 对象类以熟悉的Windows树格式保存。 您可以自己添加文件夹,移动、复制、创建和删除类。 但是请注意千万不要删除Plant Simulation的基本类!
  • 控制台Console:显示Plant Simulation执行操作的有关信息。
  • 工具箱:结构化显示当前模型的对象类。 默认工具箱包含一些经常使用的对象类,可以更轻松地在模型中插入对象类。另外,还可以构造自定义工具箱。
  • RootFrame:包含组成模型的所有对象。
    image.png
注解
  1. 如果某个工具栏或窗口尚未激活,则可以在功能区选择Windows->Dockable Windows将其激活。
  2. 打开,关闭和保存模型要用到File菜单。 一次只能打开一个模型,因此打开新模型前必须先关闭模型。
  3. 您可以在主页(Home)菜单中启用或禁用动画。禁用动画将加快仿真速度,例如当您需要进行大量重复实验时。
  4. 文件->首选项(File->Preference)菜单可以进行多项设置。 例如,您可以在常规(General)下更改时间格式,在“建模”下选择要显示和隐藏的元素,还可以在“许可证”下修改许可证设置。

2.3 Class Library和Toolbox

Plant Simulation提供了一组基本对象,在许多情况可以直接在仿真模型中使用。 但是,现实世界中的部署模型会涉及各样各类的对象,以致于无法为每种场景都提供适当的对象。 因此,Plant Simulation提供了一些基础对象,您可以对其进行修改以满足您的特定需求。 这些对象称为应用对象。


image.png

Plant Simulation提供的基本对象按照一些简单的标准来分类。 了解这些标准后,有助于您更方便地找到最能代表真实世界实体的对象。 如果找不到合适的对象,则可以通过修改或组合现有的基本对象来创建一个新对象。 您可以在类库(Class Library)中找到对象。 Plant Simulationt以文件夹和子文件夹这类分层视图的形式展示基础对象。 有需要时,您可以添加,重命名和删除文件夹。 默认情况下,类库包含八个文件夹:

  • MaterialFlow对象包括两类:(1)运输或处理模型内移动单元(MUs)对象(主动型),(2)存储部件及显示部件的移动轨迹(被动型)。
  • Fuilds对象,比如PipesTanksMixers,简化了流体材料的建模。 这些材料可以是液体,气体或其他可流动的形式。
  • Resource对象用于添加工人到工站,还可设置工人在工站之间的路径上移动。
  • InformationFlow对象用于对象间交换信息(例如,变量,TableFile或方法)
  • UserInterface对象用于用户与模型之间的交互。例如,用于模型输入的对话框和用于模型输出的图表和报表。
  • MUs代表物料流。 它与其他对象类的区别在于MUs可在模型中移动。 属于MUs类型的有EntityContainerTransporter
  • Tools文件夹包含用于执行特定仿真任务的特殊加载项。
  • Models文件夹存储用户创建的模型。您也可以在Class Library中创建新的文件夹或者子文件夹。
    工具箱有很多工具栏组成,通过工具栏快速访问对象类。是否要使用类库或工具箱进行模型构建是个人喜好的问题。 通常来说,使用工具箱会更快更便捷。
    image.png

2.4 基础对象概览

如上一节中所述,Plant Simulation提供了一组基本对象,这些对象在类库的不同文件夹中分组管理。 标准类库中的文件夹有Material Flow、Resources、Information Flow、User Interface、Mobile Units和Tools,通过这些文件夹我们可以访问最常用的基本对象(通过主页->管理类库可以添加其他库)。

2.4.1 Material Flow

这里先简要介绍MaterialFlow文件夹内的最重要的对象类,后期用到时将会进一步介绍
Connector:建立MaterialFlow对象之间的连接,然后MUs能够在模型中移动。Connector中的箭头表示方向,一个Connect只有能一个方向。
EventController:Plant Simulation是一种离散事件仿真器,仅关注仿真模型中事件发生的时刻。EventController用于管理和同步这些事件。
Frame:Frame用于聚集对象和建立层次化的结构模型。每个模型都要以一个有EventController的Frame对象作为开始,这个Frame称为RootFrame。
Interface:Interface表示Frame中进入和离开的接口,用于多个Frames的互连。MUs通过Interface可以从Frame之间流动。
Source:用于创建MUs,一般放在模型的开始位置。MUs的创建时间间隔可以表示为随机变量
Drain:用于毁坏MUs,一般放在模型的最后位置。MUs完成处理后,要离开系统时则进入Drain。
Station:Station捕获一个MU,持有一段时间(即加工或服务时间),然后尝试将它传递给下一个对象。例如,加工能力是1的机器。
ParallelStation:同样捕获一个MU,持有一段时间(即加工或服务时间),然后尝试将它传递给下一个对象。多个MUs可以在ParallelStation上同时加工,MUs的加工时间可能会有差异,并且独立传递。例如,加工能力>1的机器。
Store:Store接受被动型MUsMU留在Store中直到用户控制它离开。例如,存储货架系统。
Buffer:

你可能感兴趣的:(第2章 Plant Simulation概览)