> For the complete documentation index, see [llms.txt](https://water-strategy.gitbook.io/waterstrategy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://water-strategy.gitbook.io/waterstrategy/deutsch/tutorials/creating-a-reservoir-system/control-curves-and-demand-savings/modelling-catchment-reservoir-systems.md).

# Hinzufügen von Lagerstättenkontrollkurven und Bedarfseinsparungen (Reduktionen)

## Einführung

Steuerkurven können verwendet werden, um eine Bedarfsreduzierung vorzunehmen, wenn der Reservoirstand bestimmte Schwellenwerte unterschreitet. Dabei handelt es sich um die Umsetzung vorübergehender Maßnahmen zur Nachfragesteuerung. Dabei wird die Nachfrage schrittweise reduziert, wenn der Stausee bestimmte Speicherschwellen unterschreitet. In dieser Übung wird demonstriert,[ Parameter für den Kontrollkurvenindex](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter), das [Indizierter Array-Parameter](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter) sowie die [Aggregierter Parameter](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter) sowie Parameterverschachtelung.

## Klonen Sie das Szenario und definieren Sie eine Kontrollkurve

1. Klonen Sie die **„Ausgewogene Quellen“** Szenario und nenne das neue **„Nachfragerückgänge“**
2. Zuerst definieren wir eine **Steuerkurve** das Schwellenwerte für das Speichervolumen verwendet, um die Nachfrage schrittweise zu reduzieren, um Nachfragebeschränkungen zu modellieren, die einer Nachfrage auferlegt werden. Die erste Kurve ist eine [Monatliches Profil](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/monthly-profile) (60% in den kommenden Monaten und 45% in anderen) unter Berücksichtigung saisonaler Veränderungen, während die beiden nachfolgenden Kurven [Konstanten ](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/constant)(40% und 10% der Speicherkapazität des Reservoirs).

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-bab33ad7f70504b7d4b9907dafe5514e0c33554e%2Fimage%20(191).png?alt=media" alt=""><figcaption><p>Reservoir-Kontrollkurve</p></figcaption></figure>

Die Kontrollkurve wird in der **Parameter** Tab. Fügen Sie auf der Registerkarte Parameter eine hinzu **Pyr\_Parameter**.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-44c6302ba7ffee95819750da0697a1870493f81d%2Fimage%20(192).png?alt=media" alt="" width="375"><figcaption><p>Fügen Sie einen Pywr_Parameter hinzu</p></figcaption></figure>

Benennen Sie den Parameter **'Lagersteuerkurve'** und drücke *Geben Sie ein*\*\*. \*\*

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

Fügen Sie den folgenden JSON-Codeausschnitt unten ein. Bitte beachten Sie, wie im Attribut `"storage_node"`auf das `"Beispielreservoir"` verwiesen wird.

```
{
	„type“: „ControlCurveindexparameter“,
	„storage_node“: „Beispielreservoir“,
	„Control_Curves“: [
		{
			„type“: „monatlicher Profilparameter“,
			„Werte“: [
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.6,
				0.6
			]
		},
		{
			„Typ“: „konstant“,
			„Wert“: 0.4
		},
		{
			„Typ“: „konstant“,
			„Wert“: 0.1
		}
	],
	„__Recorder__„: {
		„Timeseries“: wahr
	}
}
```

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-42ee8ff4ed1b7b6c3dc4e943726ea65d1befd08d%2Fimage%20(195).png?alt=media" alt=""><figcaption><p>Fügen Sie den Code ein und speichern Sie</p></figcaption></figure>

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-4eb5c41ff93c5840dd10420159803fe8b1d4116b%2Fimage%20(196).png?alt=media" alt=""><figcaption><p>Aufnahmezeitreihen auswählen und speichern</p></figcaption></figure>

Bei jedem Zeitschritt [Parameter für den Kontrollkurvenindex](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter) gibt einen Indexwert zurück, wie unten gezeigt:

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-fc738783e2f74cd69c55e9b1b15d843780a3d843%2Fimage%20(197).png?alt=media" alt=""><figcaption><p>Reservoir-Kontrollkurve</p></figcaption></figure>

Diese Indizes können einem Nachfragefaktor zugeordnet werden, der mit einem definiert wird [Indizierter Array-Parameter](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter). Der Nachfragefaktor wird verwendet, um die Nachfrage zu reduzieren, wenn jeder Schwellenwert der Kontrollkurve überschritten wird.

## Assoziierter Nachfragefaktor

1. Wir werden Folgendes verbinden **Nachfragefaktoren** zu den verschiedenen Ausfallstufen der Steuerkurve:

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-8489f0840b3bfaa29119f4cd3fcc7deb4abd7ada%2Fimage%20(198).png?alt=media" alt=""><figcaption><p>Reservoir-Kontrollkurve</p></figcaption></figure>

Dadurch wird die Nachfrage auf 90%, 80% und 50% der Basisnachfrage reduziert, was 10%, 20% und 50% Nachfragerückgängen entspricht.

2. Erstellen Sie ein neues **Pyr\_Parameter**

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-817a2e1e358d8a48920b79b6f0ef0dd4d57eabe4%2Fimage%20(199).png?alt=media" alt=""><figcaption><p>Erstelle einen neuen Pywr_Parameter</p></figcaption></figure>

3. Benennen Sie den Parameter **„Bedarfsfaktor der Steuerkurve“** und drücke *Geben Sie ein*\*\*. \*\*

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-97b9e167ecc5f41e7688b436c790b39682aaab9c%2Fimage%20(200).png?alt=media" alt="" width="275"><figcaption><p>Benennen Sie den Parameter</p></figcaption></figure>

4. Fügen Sie unten den folgenden JSON-Codeausschnitt ein. Bitte beachten Sie, wie im Attribut `"index_parameter"`auf die `Kontrollkurve"` des Speichers verwiesen wird.

```
{
	„Typ“: „indexedarrayparameter“,
	„index_parameter“: „Speichersteuerkurve“,
	„Parameter“: [
		1,
		0.9,
		0.8,
		0.5
	],
}
```

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-451786a7db32c504bb4bba194e5746d22b15ad62%2Fimage%20(201).png?alt=media" alt=""><figcaption><p>Fügen Sie den Code ein und speichern Sie</p></figcaption></figure>

Das `params`-Attribut nimmt entweder Skalare oder Pywr-Parameter auf und der Index des Arrays entspricht dem Index in dem Parameter, auf den in der **indizieren\_Parameter**, der in diesem Fall die Steuerkurve ist.

5. Wählen Sie diese Option, um diesen Parameter auszugeben.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-2f2e7d710387239023de9428b6a61cfa2f75878f%2Fimage%20(202).png?alt=media" alt=""><figcaption><p>Aufnahmezeitreihen auswählen und speichern</p></figcaption></figure>

## Definieren Sie den Basisbedarf

Als Nächstes definieren wir die Basisnachfrage. Dies ist die Nachfrage, die das Reservoir hat, bevor irgendwelche Reduktionen vorgenommen werden. Im vorherigen Tutorial wurde der Beispielbedarf als Skalar (0.1) im Max\ \_flow-Attribut des Bedarfsausgabeknotens Beispiel definiert:

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

Wir werden dies durch eine ersetzen **Parameterreferenz.**

1. Zunächst definieren wir die Grundnachfrage anhand einer **Konstanter Parameter.**

Füge ein neues hinzu \*\*Pyr\_Parameter. \*\*

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-0c291e642a757a907c2ea16af661dd15eafdbad0%2Fimage%20(205).png?alt=media" alt=""><figcaption><p>Füge einen neuen Pywr_Parameter hinzu</p></figcaption></figure>

Und nenne es **Grundnachfrage** und drücke *Geben Sie ein*.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-78fb7b4320fe5da19fbd92672fdb7e3d1e6b9230%2Fimage%20(206).png?alt=media" alt="" width="274"><figcaption><p>Nennen Sie den neuen PYWR_Parameter</p></figcaption></figure>

2. Die Grundnachfrage bleibt bei 0.1 mm3/Tag. Kopieren Sie den JSON-Codeausschnitt und fügen Sie ihn in den JSON-Tab ein.

```
{
	„Typ“: „konstant“,
	„Wert“: 0.1
}
```

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-06752aaf2ece009e3264208681d81ec7277e6a18%2Fimage%20(207).png?alt=media" alt=""><figcaption><p>Fügen Sie den Code ein und speichern Sie</p></figcaption></figure>

In jedem Zeitschritt entspricht der modellierte Bedarf dem Basisbedarf multipliziert mit dem Nachfragefaktor:

`Zeitschrittbedarf = Basisbedarf x Bedarfsfaktor`

## Kalkulieren **Zeitschrittnachfrage**

Dies kann erreicht werden durch die Verwendung eines [Aggregierter Parameter](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter).

1. Füge ein neues hinzu \*\*Pyr\_Parameter. \*\*

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-a8515683ec0d8e08842d11ba9e5e6ac7d441e91b%2Fimage%20(208).png?alt=media" alt=""><figcaption><p>Füge einen neuen Pywr_Parameter hinzu</p></figcaption></figure>

Benennen Sie den neuen Parameter **„Zeitschrittnachfrage“**

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-147d44abcd8b603f3bc1330bac3cc49ae18a4df1%2Fimage%20(209).png?alt=media" alt="" width="274"><figcaption><p>Benennen Sie den neuen Parameter</p></figcaption></figure>

2. Kopieren Sie den JSON-Codeausschnitt und fügen Sie ihn in den JSON-Tab ein.

```
{
	„type“: „AggregatedParameter“,
	„agg_func“: „Produkt“,
	„Parameter“: [
		„Grundnachfrage“,
		„Bedarfsfaktor der Kontrollkurve“
	]
}
```

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-e49fd7ce61fad69fb6fce0ced157c706c7588dcb%2Fimage%20(210).png?alt=media" alt=""><figcaption><p>Fügen Sie den Code ein und speichern Sie</p></figcaption></figure>

Wählen Sie diese Option, damit dieser Parameterwert in jedem Zeitschritt ausgegeben wird.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-db46ee2926b20e3f8abc8660c25c934ab34316c3%2Fimage%20(211).png?alt=media" alt=""><figcaption><p>Wählen Sie die Aufnahme der Zeitreihen</p></figcaption></figure>

3. Das **„Zeitschrittnachfrage“** definiert den Bedarf in jedem Zeitschritt unter Berücksichtigung des Zustands (d. h. der Speicherung in Echtzeit) im Reservoir.

Das **Parameter** muss auf der referenziert werden **maximal\_flow**-Attribut des Demand-Knotens.

4. Klicken Sie auf den Knoten Nachfrage und schreiben oder fügen Sie 'ein**Zeitschrittanforderung“** im Attribut max\ \_flow, das den Skalarwert ersetzt (0.1).

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-fcd38a4ad69d276e085cbc967620801c4fc3b0b9%2Fimage%20(218).png?alt=media" alt=""><figcaption><p>Geben Sie den Namen des max_flow-Attributs ein</p></figcaption></figure>

Bitte beachten Sie, wenn der Parametername nicht gespeichert wird, ändern Sie den Typ des Eintrags in **„Deskriptor“**.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-dcd39ed02f0f35044135fafab4e27e0715259e14%2Fimage%20(219).png?alt=media" alt=""><figcaption><p>Klicken Sie auf max_flow bearbeiten</p></figcaption></figure>

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-70bfdd4ca9a1916eff474c5415eae2188f6eaf67%2Fimage%20(214).png?alt=media" alt=""><figcaption><p>Wählen Sie DESKRIPTOR</p></figcaption></figure>

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-936b7cc452ca4bf346309e98c2770b9be16e7f98%2Fimage%20(220).png?alt=media" alt=""><figcaption><p>Geben Sie den Namen ein</p></figcaption></figure>

Vergessen Sie nicht, die Änderungen zu speichern.

## Führen Sie das Modell aus und sehen Sie sich die Ergebnisse an

1. **Lauf** das Modell.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-23a397691922fca45756ec6315af0e23b00c4f5b%2Fimage%20(224).png?alt=media" alt="" width="327"><figcaption><p>Klicken Sie auf, um das Modell auszuführen</p></figcaption></figure>

2. Sehen Sie sich das an **simuliert** \ \_volume auf dem Reservoir

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-66f21a32ee8e19d22c5cae2b0a609b47f221f543%2Fimage%20(216).png?alt=media" alt=""><figcaption><p>Simuliertes _Volumen auf dem Reservoir</p></figcaption></figure>

Du kannst **zoomen** in die Dürre, das ist zum Beispiel die Dürre, die in 2042-2044 aufgetreten ist.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-9d1e7382a6ae09faf012f9c873a39d9223fc1740%2Fimage%20(217).png?alt=media" alt=""><figcaption><p>Simuliertes _Volumen auf dem Reservoir in 2042-2044</p></figcaption></figure>

Im Szenario mit Nachfragereduktionen erreichte das Reservoir nicht das niedrigste Speichervolumen (9.4 gegenüber 8.\_\_1234567890\_\_Mm3).

3. Klicken Sie auf den simulierten\ \_flow des Demand-Knotens. Die Nachfragerückgänge sind sichtbar.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-33b30a5ef57b5518c21948184426b0b591369ce4%2Fimage%20(221).png?alt=media" alt=""><figcaption><p>simulated_flow des Demand-Knotens</p></figcaption></figure>

4. Sie können die Ausgabe des Control-Cure-Parameters anzeigen, indem Sie auf das **Netzwerkdaten** Ansicht.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-f79adfff87cace6450c9fb3870a77359b6a15a5c%2Fimage%20(222).png?alt=media" alt=""><figcaption><p>Klicken Sie hier, um die Ausgabe des Kontrollhärtungsparameters anzuzeigen</p></figcaption></figure>

Klicken auf **simuliert\_Die Speichersteuerungskurve** zeigt, welchen Index die Speichersteuerungskurve bei jedem Zeitschritt zurückgibt. Dieser Wert variiert zwischen 0 und 2.

<figure><img src="https://1875979063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM66QWevUBo6VXSGCmO4L%2Fuploads%2Fgit-blob-136770d7c8cbd70370bb0e5fedbae3ad1b1154c4%2Fimage%20(223).png?alt=media" alt=""><figcaption><p>Steuern Sie die Ausgabe der Härtungsparameter</p></figcaption></figure>

## Übung <a href="#exercise" id="exercise"></a>

1. Erhöhen Sie den Parameter für den Basisbedarf. Wie hoch kann der Ausgangsbedarf sein, bevor sich das Reservoir vollständig entleert?


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://water-strategy.gitbook.io/waterstrategy/deutsch/tutorials/creating-a-reservoir-system/control-curves-and-demand-savings/modelling-catchment-reservoir-systems.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
