# 水库和存储节点

### 对水库的分配罚款 <a href="#ref161067076" id="ref161067076"></a>

水库和存储节点都有分配罚款（成本）。负成本意味着水库将积水，而正成本意味着水库将释放水。分配罚款可以是常量（恒定参数）或随时间变化的配置文件（每月、每天、每周）。此外，分配罚款可以有不同的水平，由基于储层容量的不同控制曲线定义。尽管水库和储量分配罚款会影响水储量，但考虑到下游节点的分配罚款，这些节点的释放将源于系统的成本平衡。

以下是不同的示例。

#### 持续的分配罚款

此示例将使用常量值作为网络中不同节点的分配惩罚。图 1 显示了一个由集水区、存储、需求和出口节点组成的简单网络。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-78983ebcfbf1e20e449eefebdd3b9351d9cf4314%2F0.png?alt=media)

图 1。在 WaterStrategy 中实现的简单 Pywr 模型

集水节点包括流入时间序列，如图 2 所示。storage node 的最大容量为 2000000 Mm3，需求节点的需求为 **1234567890**\_\_ mm3/天。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-7887c20e89291f6e837643db503644ce94a70eff%2F1.png?alt=media)

图 2。与 Catchment 节点相关的流入时间序列

这个简单的网络对存储和需求节点有两种分配惩罚。storage node 的分配惩罚为 -5，需求节点为-**1234567890**\_\_。图 3 显示了 storage node 的模拟体积和需求节点的再供应。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-d45454a0ed20b77a9f2511978303728b819f7f34%2F2.png?alt=media)

!\[带有直线的图形

描述自动生成]\(../.gitbook/assets/3.png)

图 3.storage node 的模拟体积和需求节点的供水。存储分配惩罚 = -5，需求分配惩罚 =-10

图 3 显示，在仿真期间，**1234567890\_\_\_\_\_\_m3/天的需求始终得到满足。这是因为需求节点的分配惩罚高于 storage node 的惩罚。同样，如果未设置 storage node 的分配惩罚，则结果将与图 3 中的结果相同。现在，如果分配惩罚倒置，即存储分配惩罚为-10，需求分配惩罚为 -5，则 1234567890** 将保留水量，并且需求节点将没有供应（图 4）。

!\[一条线向上延伸的图形

描述自动生成]\(../.gitbook/assets/4.png)

!\[带有直线的图形

描述自动生成]\(../.gitbook/assets/5.png)

图 4.storage node 的模拟体积和需求节点的供水。存储分配惩罚 =-10，需求分配惩罚 = -5

#### 配置文件分配罚款

此示例将使用月度配置文件作为 storage node（图 5）的分配惩罚，使用等于-10 的恒定分配罚款。图 1 中的网络将演示 Pywr monthlyProfileParameter 的使用。任何其他配置文件 Pywr 参数都可以以相同的方式使用。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-000b26ee73ff154d8cd26db7083b1a5b74d01e94%2F6.png?alt=media)

图 5.每月个人资料分配罚款。

从 5 月到 9 月，分配罚款低于需求节点的罚款，因此 storage node 仅在这些月份为满足需求而释放（参见图 6）。

!\[一条线向上延伸的图形

描述自动生成]\(../.gitbook/assets/7.png)

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-c7e9976fa741085a02b96bcc1bb0f17907603ff0%2F8.png?alt=media)

图 6.使用月度配置文件参数对 storage node 和需求节点的供水量进行模拟

#### 分配惩罚相等的节点

正如第 1.1 节所述，分配罚款用于表示网络中的供应优先级。在缺水且存在两个或多个具有同等优先级的节点的情况下，不可能使用相等的分配惩罚来实现比例供应。图 7 显示了具有两个需求节点且需求和优先级相等的网络中缺水的示例。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-4569fed30809d38a054c8c92d288057c720b7e76%2F9.png?alt=media)

图 7.在 WaterStrategy 中实现的简单 Pywr 模型，分配罚款相等

如果我们在图 7 中运行网络，则节点需求 1 和 2（图 8）的供应量不相等，因为这将取决于求解器解决水资源分配问题。在图 7 的示例中，求解器向需求 2 节点分配更多的水，如图 8 所示。

!\[带有数字和线条的图形

描述自动生成]\(../.gitbook/assets/10.png)

图 8.向需求节点供水，分配优先级相同。

尽管使用等额分配罚款不可能实现均等供应，但在WaterStrategy中，“AggregatedNode” 可用于实现缺水时按比例供应的理想行为（参见图 9）。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-fbad0b59452aa003e507d6f4f89e4a27f6c10279%2F11.png?alt=media)

图 9.在 WaterStrategy 中实现的简单 Pywr 模型，使用 “AggragtedNode”，分配罚款相等

在这种情况下，在 “AggregatedNode” 的 “节点” 属性中，用户需要输入分配惩罚相等的节点，并在 “因子” 属性中输入节点之间所需的供应比例，例如，对于两个节点中供应比例相等，因子应\ \[0.5，0.5]，参见图 0.5 \_\_\_\_。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-694eb54bd218c0dd34eadd6f81273ef9acf93a7b%2F12.png?alt=media)

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-3079104e602d4a51ff2eae78b82cee99c26d226d%2F13.png?alt=media)

图 10。聚合节点中的节点和因子属性。

请注意，“聚合节点” 未连接到网络中的任何节点（图 9）。如果我们运行这个新网络，则节点需求 1 和 2 的供水量相等（参见图 11）。

!\[带有数字和线条的图形

描述自动生成]\(../.gitbook/assets/14.png)

图 11。向具有相同分配优先级和聚合节点的需求节点供水。

### 水力发电计划建模

Pywr 没有明确的节点可以对水力发电厂进行建模。或者，用户可以组合 “链接” 节点、Pywr参数和记录器来对水电站进行建模。该参数可以是 “HydropowerTarget参数”，而记录器可以是 “HydropowerRecorder”。水力发电目标参数是用于计算生成特定水力发电目标所需的流量的参数。它打算在代表涡轮机的节点上使用，在该节点上，每个时间步都需要特定的生产目标。水力发电记录器使用水力发电方程计算和保存发电量。该记录器可在每个时间步中保存一系列水力发电量。为了便于用户与 Pywr 互动，WaterStrategy 包括一个 “涡轮机” 节点，该节点显示了一个用于输入水电站信息的接口（图 12），并在内部创建了 “HydropowerTargetParametargetParameter” 和 “HydropowerRecorder”。

![](https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-66821322f656958a155c3a798353feb384c1033f%2F15.png?alt=media)

图 12。WaterStrategy 中的接口，用于输入涡轮机节点的技术数据。

可以使用 “涡轮” 节点在 WaterStrategy 中对水库水力发电或径流水电站进行建模。唯一的区别是，需要为水库水力发电厂定义storage node，以考虑水库的水位变化进行功率计算。功率计算的头部是根据 “存储” 中的给定水位计算得出的\_节点” 和 “涡轮机\_“海拔” 值。如果给出水面高度的 storage node，则水头是水和涡轮机之间的海拔差。如果水位高程参数为 “无”，则水头只是涡轮机海拔。
