跳转到内容

从 A 到 Z 的建模/废物管理系统建模

来自维基教科书,为开放世界提供开放书籍

下一代核电站及废物管理

[编辑 | 编辑源代码]


看来,核电站将在可预见的未来与我们同在。此外,重要的不是发电,而是管理产生的废物。

废物管理并非核电领域的独有现象。当前,为了应对气候变化和全球变暖,迫切需要一场绿色革命,而这场革命的关键取决于如何回收或焚烧塑料等石油产品。许多国家都存在着猖獗的非法倾倒现象。

在本节中,我们将从核工业中借鉴的一个废物管理方面进行研究,并展示它如何被重新用于一般的废物管理。这种发展本身说明了 (软件) 过程改进中的一个普遍原则。真实的系统不断发展和迁移。它们很少从头开始。任何软件开发计划都应该遵循与系统相同的过程改进以实现匹配。

跟踪就像搜索。它依赖于地址。现在我们知道,地址可能是放置 cookie 或 RFID 标记的问题。

灵感来源

[编辑 | 编辑源代码]

我们将通过查看一些已经发表的作品来开始我们的模型。也就是说,我们不会假装有任何原创性或创造性。我们的起点将是“跟踪管理器研究”(TMS)[1],该研究是在“计算机跟踪系统在核电技术安全案例中的应用研究[2]中进行的。

本质上,有两种类型的事物:容器和放入容器中的东西。不同类型的容器很容易辨认出来。在 TMS[3] 中,有 5 种容器

我们已经从之前关于 Alloy 的工作中知道,我们可以为 Container 引入一个抽象签名,并将 5 种容器类型作为扩展引入

abstract sig Container {}
sig Crate, Package, Liner, Puck, Drum extends Container {}

放入某些类型容器中的那些东西可以称为材料。在我们对 TMS 的第一次研究中,我们将只关注 4 种材料类型[6]

  • 玻璃
  • 塑料
  • 金属
  • 液体

就像上面的 Container 一样,我们为 Material 引入了一个抽象签名,然后四种材料类型就成为扩展

abstract sig Material {}
sig Glass, Plastic, Metal, Liquor extends Material {}

最后,对于本介绍,要注意的是,废物管理系统中的处理阶段可以类似地分类

abstract sig Phase {}
sig Unpacking, Sorting, Assaying, Compacting, Exporting extends Phase {}

除了使用“Phase”这个词,人们可能更喜欢“Process”。以下是建模的阶段列表

  • 开箱 (箱)
  • 分类 (内容)
  • 化验 (材料)
  • 压实 (材料)
  • 出口 (物品)

跟踪管理系统 (TMS) 的合金模型

[编辑 | 编辑源代码]

这是对以下文献中描述的跟踪系统的重新建模

  1. John Fitzgerald 和 Cliff Jones,1998 年,第 1-28 页
  2. John. S. Fitzgerald,1999 年,第 69-94 页
  3. John Fitzgerald 和 Peter Gorm Larsen,第 137-201 页?


介绍性文字

[编辑 | 编辑源代码]

一个详细的系统形式模型距离实现只有一步之遥。这一步包括对形式数学表达式的推演。这种推演是硬件和软件的混合。其中大部分将是现成的。其中一些将必须是手工制作的。但是,在我们进入这个详细阶段之前,我们需要一个抽象的鸟瞰图。这种概述将抓住所有事物的本质,并且将是容易理解的。以下是 Alloy 支持的这种高层概述。

系统需求

[编辑 | 编辑源代码]

跟踪管理系统 (TMS) 监控着材料容器在工业厂 (IP)(如废物管理设施 (WMF))中经过各个处理阶段时的位置。

每个容器只容纳一种类型的材料,并且一次最多只能处于一个处理阶段。每个处理阶段都有一个最大容器容量,并且只能接受某些类型的材料。

系统状态

[编辑 | 编辑源代码]

在任何时间点,TMS 的系统状态必须记录

  1. WMS 中每个容器的材料类型内容目录。简而言之,这只需通过 cntCatalog 来表示
  2. 每个处理阶段的容器集合。
  3. 每个处理阶段的阶段属性
    • 最大容器容量 (maxCapacity) 和
    • 可接受的材料类型 (mtrType)。

系统状态约束

[编辑 | 编辑源代码]

在任何时间点,TMS 的系统状态都必须满足以下系统状态约束

  1. 每个容器最多只能容纳一种类型的材料。每个容器在给定时间最多只能处于一个处理阶段。每个处理阶段最多只能有一个最大容量值。
  2. 所有处理阶段都记录了阶段属性:最大容量和可接受的材料类型。
  3. 工业厂中的每个处理阶段的最大容量至少为 1。
  4. 任何给定处理阶段中的容器都记录了材料内容。
  5. 活动处理阶段记录了阶段属性:最大容量和可接受的材料类型。
  6. IP 中的每种材料类型都有一个可能的处理阶段。
  7. IP 中的每个阶段都在容量范围内运行。
  8. 在任何阶段,该阶段中的所有容器都包含预期类型的材料。

系统操作

[编辑 | 编辑源代码]

TMS 有一些操作可以修改系统状态

  1. initOp:指定 TMS 初始状态的属性。
  2. insertOp:将一个新的容器(其内容是给定材料类型)添加到工业厂容器目录中。(以前是引入操作)
  3. remOp:从给定的处理阶段中移除一个容器
  4. delOp:从容器内容目录和跟踪系统中删除一个容器。
  5. permitOp:决定是否允许将容器移入给定阶段。
  6. moveOp:将容器移入跟踪系统中的给定阶段处理。

合金模块

[编辑 | 编辑源代码]

模块 TrackingManagementSystem -- 简称 TMS

打开 util/relation 作为 rel -- 二元关系模块。
打开 util/natural 作为 nat -- 自然数模块。
打开 util/boolean 作为 bool -- 布尔模块

标识 Container, Material, Phase {} -- 容器、材料类型和处理阶段。

标识 SystemState {

cntCatalog: Container -> Material, -- 容器目录。

trkSystem: Container -> Phase, -- 跟踪系统。

maxCapacity: Phase -> Natural, -- 阶段最大容量记录。

mtrType: Phase -> Material -- 阶段材料类型记录。

}

可视化

[编辑 | 编辑源代码]

我们从之前对 Alloy 的工作中知道,这些信息足以让我们可视化元模型的结构。

跟踪管理系统元模型投影在 SystemState 上。

系统约束

[编辑 | 编辑源代码]

[1]

断言 FieldTypeCns(s: SystemState) {
    functional[sysState.cntCatalog, dom[sysState.cntCatalog]]
    functional[sysState.trkSystem, dom[sysState.trkSystem]]
    functional[sysState.maxCapacity, dom[sysState.maxCapacity]]
    dom[sysState.maxCapacity] = dom[sysState.mtrType]
    所有 phase: dom[sysState.maxCapacity] | sysState.maxCapacity[phase] != Zero
}

[2]

断言 TrackerContainerCns(sysState: SystemState) {
    dom[sysState.trkSystem] dom[sysState.cntCatalog]
}

[3]

断言 TrackerPhaseCns(sysState: SystemState) {
    ran[sysState.trkSystem] in dom[sysState.maxCapacity]
    ran[sysState.trkSystem] in dom[sysState.mtrType]
}

一个更简单的废物管理模型

[编辑 | 编辑源代码]


让我们从容器开始?想象一下你在一个建筑物里,里面有用于

  • 处理空水瓶的容器,
  • 使用过的喷墨墨盒,
  • 使用过的电池,以及
  • 废纸。

这些容器每周都会由垃圾公司NoWasteNoWant收集,并运送到城市里的废物管理设施。

容器注释

[编辑 | 编辑源代码]

当我们谈论“空水瓶”时,我们想到的是塑料或玻璃材料。现在,我们将只限制自己使用两种类型

  • 玻璃瓶
  • 塑料瓶

容器类型

[编辑 | 编辑源代码]

为了第一个废物管理模型。我们将假设只有两种类型的容器

  • 湿容器 — 用于所有液体物质,即塑料瓶或玻璃瓶。
  • 干容器 — 用于其他所有东西
  1. TMS 是我们的首字母缩略词。它代表Tracking Manager Study。在计算机科学中广泛使用首字母缩略词。这个习惯可能是由于编程变量的概念。验证这个假设会很好。我们将在自己的废物管理系统模型中使用这个首字母缩略词。但在这种情况下,TMS 代表Tracking Management System。首字母缩略词可以灵活,即使模棱两可。
  2. Fitzgerald&Jones 1998,第 28 页。
  3. Fitzgerald&Jones 1998,第 3 页
  4. 斯坦福大学 SLAC 的通用冰球的例子可能可以说明冰球是什么,它可能是什么样子,以及它如何使用。
  5. 报告 WSRC-MS-98-00571 对核废物管理问题进行了非常好的概述,包括关于使用冰球的非常有用的文本。
  6. Fitzgerald&Jones 1998,第 3 页。

参考文献

[编辑 | 编辑源代码]


阅读链接

[编辑 | 编辑源代码]
  1. Bicarregui,Juan Carlos(编辑),(1988)。VDM 中的证明:案例研究。伦敦:施普林格出版社。 ISBN 978-3540761860. {{cite book}}: |first= has generic name (help); Cite has empty unknown parameter: |coauthors= (help)CS1 maint: extra punctuation (link)
  2. Fitzgerald,John(1998)。“跟踪系统”。在 Bicarregui,Juan Carlos(编辑)中。VDM 中的证明:案例研究。伦敦:伦敦:施普林格出版社。第 1-29 页。 {{cite book}}: Cite has empty unknown parameter: |coeditors= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)

电子链接

[编辑 | 编辑源代码]
华夏公益教科书