对象系统

学习操纵仿真对象的技巧,通过对象搭建共享黑板的宏观结构,塑造复杂系统的交互格局。

什么是对象?

对象(Object)是用来描述客观事物的实体,它具有固有的属性和行为。在仿真学中,对象是组成整个环境或系统的一部分,属于整体中的局部。在还原整体前,首先需要还原对象这一局部。为此,借鉴信息科学的“面向对象编程”(Object-Oriented Programming,OOP)概念,仿真建模需要引入对象这一概念,Sim-CPSS 进一步将其打造为对象系统,用于提升仿真模型的可复用性,降低复杂系统的刻画难度。

Sim-CPSS 的对象系统由以下几个部分组成:

许多对象都是参照现实中的某个事物及其特征来构建的,例如:在构建电力系统的仿真环境时,通常将“发电机组”视作该环境中的一个对象。

当面向“发电机组”这个整体进行建模不能满足研究需求,需要进一步细化时,还可以进一步解构“机组”,将其表示为“转子”、“定子”、“轴心”等更基础对象的组合体。

因此,选取怎样的现实参照物作为仿真对象,取决于具体研究需求及其目标。

面向特定问题,如何总结归纳出其中的对象?

在理解特定领域业务逻辑过程中,并不缺乏对牵涉的人、设备、组织、系统等潜在现实参照物及其特征的总结。以人(human)为例,每个人的个体往往具有相似的属性(特征变量),例如:“姓名”、“性别”、“年龄”等等。将这些共性特征加以归纳后,就可以建立 human 这个对象的属性表。此即为“类”(class)的由来。为了提高对这些相似事物属性的表达和建模效率,

从现实参照物出发进行总结归纳

由仿真空间的构建者根据领域知识,由抽象到具体,“自上而下”总结出“面向对象”的元件库。

元件库中每个元件均包含一组属性,这些属性可进一步采用“变量”来描述。

来自对变量集合结构性重复的分析

如果您不具备深刻的领域知识,也可以通过分析具体问题中涉及到的变量组,研究这些变量组之间的结构重复性,“自下而上”总结出“面向对象”的元件库。

例如,假如您把所有变量都放在【全局变量】这个对象中,同时您发现有一些变量组包含结构相同的变量集合,例如:“张三的性别、张三的年龄、李四的性别、李四的年龄”等等,这些集合数量相当、格式相同、名称相互关联,具有很强的重复性,那么可以考虑将这些变量组首先归纳为“人”这个元件,为新的元件赋予“年龄”、“性别”等属性变量;其次,基于这个元件创建“张三”、“李四”等一系列对象,然后修改这些对象中的变量数据,让它们足够反映具体人员的信息;最后,将有关变量组从【全局变量】这个对象中去除。

经过上述归纳和重新建模,黑板数据结构的复用性将显著增强。

两种代表仿真对象的节点比较

类别 作用 创建方式 操控性 外观 全局唯一性 连其它对象 连自己 删除影响
对象节点 代表对象本体 从元件 点击显示菜单 图标 & 名称 是 连接类型需匹配 允许 移除对象、映像及连接
映像节点 对象分身,为连接提供便利 从其它节点 点击显示菜单 小圆点,鼠标悬停显示名称 否 连接类型需匹配 允许 仅移除映像

仿真对象的连接

内涵

表示事物之间的逻辑关系

例子

现实世界的事物之间存在着许多逻辑关系。例如:书应放置在书架上;当我们需要查询一本书放置在哪个书架上时,我们可以通过名为"放置"的逻辑关系找到这本书关联的书架;反过来,通过"放置"这层关系也可以找到书架上全部的书。

Sim-CPSS 将"放置"这类逻辑关系称作类型为【放置】的连接(Connection):

在这个关系的表达中,“书架"提供了类型为【放置】的【虚拟插座】,而"书"提供了类型为【放置】的【虚拟插头】,两者的类型刚好匹配,因此"书"可以与"书架"建立连接,表示"书"放置在了"书架"上面。当然实际使用时,类型名应更准确,例如这里的【放置】应更名为【书籍与小型物件放置】或许更准确一些。那么对于"拖把"这类大型物件,就不具备【书籍与小型物件放置】这样的【虚拟插头】,也就不能放置在"书架"上了。

作用

连接(Connection)是描绘现实世界事物之间复杂交互关系的关键工具之一。下至简单逻辑关系、上至复杂网络(电网、能源网、交通网、物流网、人际关系网),使用连接工具都可以清晰表达。

特点

登录