# 增加油藏控制曲线和需求节约（减少）

## 导言

当水库水位低于特定阈值时，控制曲线可用于减少需求。这意味着临时需求管理措施的实施。在这项工作中，随着水库低于一定的储量阈值，需求将逐步减少。本练习将演示[ 控制曲线索引参数](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter)， [索引数组参数](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter) 以及 [聚合参数](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter) 以及参数嵌套。

## 克隆场景并定义控制曲线

1。克隆 **'平衡来源'** 场景并命名新的场景 **'需求减少'** 2。首先，我们将定义一个 **控制曲线** 它使用存储量阈值逐步减少需求，对需求限制进行建模。第一条曲线是 [每月概况](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/monthly-profile) （未来几个月为60％，其他月份为45％）允许季节性变化，而随后的两条曲线是 [常量 ](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/constant)（40% 和 10% 的水库存储容量）。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-bab33ad7f70504b7d4b9907dafe5514e0c33554e%2Fimage%20(191).png?alt=media" alt=""><figcaption><p>水库控制曲线</p></figcaption></figure>

控制曲线将在中定义 **参数** 选项卡。在 “参数” 选项卡中添加 **Pywr\_参数**。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-44c6302ba7ffee95819750da0697a1870493f81d%2Fimage%20(192).png?alt=media" alt="" width="375"><figcaption><p>添加 Pywr_Parameter</p></figcaption></figure>

为参数命名 **'存储控制曲线'** 然后按 _输入_**。**

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-e627f0872fd82c2f1dc8d8a4f20da3a6a2889484%2Fimage%20(194).png?alt=media" alt="" width="335"><figcaption><p><strong>存储控制曲线</strong></p></figcaption></figure>

粘贴以下 JSON 代码片段。请注意在 “storage\_node” 属性中是如何引用的 “示例储存库”。

```
{
	“类型”：“控制曲线索引参数”，
	“storage_node”: “示例水库”，
	“控制曲线”: [
		{
			“类型”：“月度配置文件参数”，
			“价值观”：[
				0.45，
				0.45，
				0.45，
				0.45，
				0.45，
				0.45，
				0.45，
				0.45，
				0.45，
				0.45，
				0.6，
				0.6
			]
		}，
		{
			“类型”：“常量”，
			“值”：0.4
		}，
		{
			“类型”：“常量”，
			“值”：0.1
		}
	]，
	“__录音机__“: {
		“时间序列”：真的
	}
}
```

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-42ee8ff4ed1b7b6c3dc4e943726ea65d1befd08d%2Fimage%20(195).png?alt=media" alt=""><figcaption><p>粘贴代码并保存</p></figcaption></figure>

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-4eb5c41ff93c5840dd10420159803fe8b1d4116b%2Fimage%20(196).png?alt=media" alt=""><figcaption><p>选择录制时间序列并保存</p></figcaption></figure>

每一步都是 [控制曲线索引参数](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter) 将返回一个索引值，如下所示：

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-fc738783e2f74cd69c55e9b1b15d843780a3d843%2Fimage%20(197).png?alt=media" alt=""><figcaption><p>水库控制曲线</p></figcaption></figure>

这些指数可以与需求因子相关联，需求因子将使用 [索引数组参数](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter)。当超过每个控制曲线阈值时，需求因子将用于减少需求。

## 关联需求因素

1。我们将关联以下内容 **需求因素** 到不同的控制曲线故障级别：

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-8489f0840b3bfaa29119f4cd3fcc7deb4abd7ada%2Fimage%20(198).png?alt=media" alt=""><figcaption><p>水库控制曲线</p></figcaption></figure>

这将把需求减少到900\_\_％、80％和50％的基准需求，对应于10％、20％和50％的需求减少。

2。创建一个新的 **Pywr\_参数**

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-817a2e1e358d8a48920b79b6f0ef0dd4d57eabe4%2Fimage%20(199).png?alt=media" alt=""><figcaption><p>创建一个新的 Pywr_Parameter</p></figcaption></figure>

3.为参数命名 **'控制曲线需求因子'** 然后按 _输入_**。**

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-97b9e167ecc5f41e7688b436c790b39682aaab9c%2Fimage%20(200).png?alt=media" alt="" width="275"><figcaption><p>为参数命名</p></figcaption></figure>

4。粘贴以下 JSON 代码片段。请注意在 “索引参数” 属性中是如何引用存储器控制曲线的。

```
{
	“类型”：“indexedarrayparameter”，
	“索引_参数”：“存储控制曲线”，
	“参数”：[
		1,
		0.9，
		0.8，
		0.5
	]，
}
```

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-451786a7db32c504bb4bba194e5746d22b15ad62%2Fimage%20(201).png?alt=media" alt=""><figcaption><p>粘贴代码并保存</p></figcaption></figure>

`params`属性接受标量或 Pywr 参数，数组的索引对应于中引用的参数中的索引 **索引\_参数** 在本例中为控制曲线。

5。选择输出此参数。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-2f2e7d710387239023de9428b6a61cfa2f75878f%2Fimage%20(202).png?alt=media" alt=""><figcaption><p>选择录制时间序列并保存</p></figcaption></figure>

## 定义基准需求

接下来，我们将定义基准需求。这是水库在实施任何削减措施之前的要求。在前面的教程中，示例需求被定义为示例需求输出节点的 Max\ \_flow 属性上的标量 (0.1)：

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-dd735af992eccbc5c107e27897cc6accb493b186%2Fimage%20(203).png?alt=media" alt=""><figcaption><p>需求示例</p></figcaption></figure>

我们将把它替换为 **参数参考。**

1。首先，我们将使用以下方法定义基准需求 **常量参数。**

添加一个新的 **Pywr\_参数。**

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-0c291e642a757a907c2ea16af661dd15eafdbad0%2Fimage%20(205).png?alt=media" alt=""><figcaption><p>添加新的 PyWR_Parameter</p></figcaption></figure>

然后给它起个名字 **基准需求** 然后按 _输入_。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-78fb7b4320fe5da19fbd92672fdb7e3d1e6b9230%2Fimage%20(206).png?alt=media" alt="" width="274"><figcaption><p>命名新的 PyWR_Parameter</p></figcaption></figure>

2。基准需求将保持每天0.1 mm3。将 JSON 代码片段复制并粘贴到 JSON 选项卡中。

```
{
	“类型”：“常量”，
	“值”：0.1
}
```

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-06752aaf2ece009e3264208681d81ec7277e6a18%2Fimage%20(207).png?alt=media" alt=""><figcaption><p>粘贴代码并保存</p></figcaption></figure>

在每个时间步中，建模需求将是基准需求乘以需求系数：

“时间步长需求 = 基准需求 x 需求因子”

## 计算 **时间步长需求**

这可以通过使用来实现 [聚合参数](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter)。

1。添加一个新的 **Pywr\_参数。**

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-a8515683ec0d8e08842d11ba9e5e6ac7d441e91b%2Fimage%20(208).png?alt=media" alt=""><figcaption><p>添加新的 PyWR_Parameter</p></figcaption></figure>

为新参数命名 **'时间步长需求'**

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-147d44abcd8b603f3bc1330bac3cc49ae18a4df1%2Fimage%20(209).png?alt=media" alt="" width="274"><figcaption><p>为新参数命名</p></figcaption></figure>

2。将 JSON 代码片段复制并粘贴到 JSON 选项卡中。

```
{
	“类型”：“聚合参数”，
	“agg_func”：“产品”，
	“参数”：[
		“基准需求”，
		“控制曲线需求因子”
	]
}
```

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-e49fd7ce61fad69fb6fce0ced157c706c7588dcb%2Fimage%20(210).png?alt=media" alt=""><figcaption><p>粘贴代码并保存</p></figcaption></figure>

选择使该参数值在每个时间步中都输出。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-db46ee2926b20e3f8abc8660c25c934ab34316c3%2Fimage%20(211).png?alt=media" alt=""><figcaption><p>选择记录时间序列</p></figcaption></figure>

3.这个 **'时间步长需求'** 考虑到水库中的状态（即实时存储），定义每个时间步的需求。

这个 **参数** 需要在上面引用 **最大\_需求节点的 flow** 属性。

4。单击 “需求” 节点，然后写入或粘贴 '**时间步长需求'** 在 max\ \_flow 属性中替换标量值 (0.1)。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-fcd38a4ad69d276e085cbc967620801c4fc3b0b9%2Fimage%20(218).png?alt=media" alt=""><figcaption><p>输入 max_flow 属性名称</p></figcaption></figure>

请注意，如果参数名称未保存，请将条目类型更改为 **“描述符”**。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-dcd39ed02f0f35044135fafab4e27e0715259e14%2Fimage%20(219).png?alt=media" alt=""><figcaption><p>点击编辑 max_flow</p></figcaption></figure>

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-70bfdd4ca9a1916eff474c5415eae2188f6eaf67%2Fimage%20(214).png?alt=media" alt=""><figcaption><p>选择描述符</p></figcaption></figure>

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-936b7cc452ca4bf346309e98c2770b9be16e7f98%2Fimage%20(220).png?alt=media" alt=""><figcaption><p>输入名字</p></figcaption></figure>

别忘了保存更改。

## 运行模型并查看结果

1。 **跑** 模型。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-23a397691922fca45756ec6315af0e23b00c4f5b%2Fimage%20(224).png?alt=media" alt="" width="327"><figcaption><p>点击运行模型</p></figcaption></figure>

2。查看 **模拟** \ \_水库上的音量

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-66f21a32ee8e19d22c5cae2b0a609b47f221f543%2Fimage%20(216).png?alt=media" alt=""><figcaption><p>水库上的模拟 _volume</p></figcaption></figure>

你可以 **缩放** 例如，这是 2042-2044 发生的干旱。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-9d1e7382a6ae09faf012f9c873a39d9223fc1740%2Fimage%20(217).png?alt=media" alt=""><figcaption><p>2042-2044 中水库的模拟 _volume</p></figcaption></figure>

在需求减少的情景中，水库的储量没有降到如此低的水平（9.4与8.1234567890\_\_1\_\_1234567890\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_m3）。

3.单击 “需求” 节点的模拟\ \_flow。需求的减少可以看出。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-33b30a5ef57b5518c21948184426b0b591369ce4%2Fimage%20(221).png?alt=media" alt=""><figcaption><p>需求节点的 simulated_flow</p></figcaption></figure>

4。您可以通过单击 “查看控制固化参数输出” **网络数据** 观点。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-f79adfff87cace6450c9fb3870a77359b6a15a5c%2Fimage%20(222).png?alt=media" alt=""><figcaption><p>点击查看控制固化参数输出</p></figcaption></figure>

点击 **模拟\_存储控制曲线**显示存储控制曲线在每个时间步返回的索引。这在 0-2 之间变化。

<figure><img src="https://2456626420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FroBiEJ09sszXPUfSv5uk%2Fuploads%2Fgit-blob-136770d7c8cbd70370bb0e5fedbae3ad1b1154c4%2Fimage%20(223).png?alt=media" alt=""><figcaption><p>控制固化参数输出</p></figcaption></figure>

## 运动 <a href="#exercise" id="exercise"></a>

1。增加基准需求参数。在水库完全排空之前，基准需求能有多高？
