> 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/italiano/tutorial/creating-a-reservoir-system/control-curves-and-demand-savings/modelling-catchment-reservoir-systems.md).

# Aggiungere curve di controllo dei giacimenti e risparmiare sulla domanda (riduzioni)

## Introduzione

Le curve di controllo possono essere utilizzate per implementare una riduzione della domanda quando i livelli dei giacimenti scendono al di sotto di determinate soglie. Ciò rappresenta l'implementazione di misure temporanee di gestione della domanda. In questo esercizio la domanda verrà ridotta in modo incrementale man mano che il serbatoio scende al di sotto di determinate soglie di stoccaggio. Questo esercizio dimostrerà il[ Parametro dell'indice della curva di controllo](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter), il [Parametro dell'array indicizzato](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter) così come il [Parametro aggregato](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter) così come l'annidamento dei parametri.

## Clona lo scenario e definisci una curva di controllo

1. Clona il **«Fonti bilanciate»** scenario e dai un nome a quello nuovo **«Riduzioni della domanda»**
2. Per prima cosa definiremo un **curva di controllo** che utilizza soglie di volume di archiviazione per ridurre progressivamente la domanda per modellare le restrizioni della domanda imposte a una domanda. La prima curva è una [Profilo mensile](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/monthly-profile) (60% nei mesi a venire e 45% negli altri) tenendo conto dei cambiamenti stagionali mentre le due curve successive sono [Costanti ](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/constant)(40% e 10% della capacità di stoccaggio del serbatoio).

<figure><img src="/files/tJWl93PxiAwTkhUB87yn" alt=""><figcaption><p>Curva di controllo del serbatoio</p></figcaption></figure>

La curva di controllo sarà definita nel **Parametri** scheda. Nella scheda Parametri aggiungere un **Pywr\_Parametro**.

<figure><img src="/files/2bdoeKuvfb8FXU9vyvN5" alt="" width="375"><figcaption><p>Aggiungere un Pywr_Parameter</p></figcaption></figure>

Assegna un nome al parametro **'curva di controllo dello stoccaggio'** e premere *Entra*\*\*. \*\*

<figure><img src="/files/V8AtOJAXZ3qNpcu2gx0M" alt="" width="335"><figcaption><p><strong>curva di controllo dello stoccaggio</strong></p></figcaption></figure>

Incolla il seguente frammento di codice JSON qui sotto. Nota come si fa riferimento al `"Example reservoir"` nell'attributo \`"storage\_node"\`\`.

```
{
	«type»: «controlcurveindexparameter»,
	«storage_node»: «Esempio di serbatoio»,
	«curve_controllo»: [
		{
			«type»: «parametro del profilo mensile»,
			«valori»: [
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.6,
				0.6
			]
		},
		{
			«type»: «costante»,
			«valore»: 0.4
		},
		{
			«type»: «costante»,
			«valore»: 0.1
		}
	],
	«__registratore__«: {
		«timeseries»: vero
	}
}
```

<figure><img src="/files/THTDZq1HvRecDRO603LO" alt=""><figcaption><p>Incolla il codice e salva</p></figcaption></figure>

<figure><img src="/files/EDRC24FzsFpX8N9AP7K6" alt=""><figcaption><p>Seleziona le serie temporali di registrazione e salva</p></figcaption></figure>

Ad ogni passo temporale il [Parametro dell'indice della curva di controllo](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter) restituirà un valore di indice come mostrato di seguito:

<figure><img src="/files/tEup3mHORdfeXngIvHgH" alt=""><figcaption><p>Curva di controllo del serbatoio</p></figcaption></figure>

Questi indici possono essere associati a un fattore di domanda che verrà definito utilizzando un [Parametro dell'array indicizzato](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter). Il fattore di domanda verrà utilizzato per ridurre la domanda quando viene superata ogni soglia della curva di controllo.

## Fattore di domanda associato

1. Assoceremo quanto segue **Fattori di domanda** ai diversi livelli di errore della curva di controllo:

<figure><img src="/files/hpKT0HF151VDzBj4SsAF" alt=""><figcaption><p>Curva di controllo del serbatoio</p></figcaption></figure>

Questi ridurranno la domanda a 90%, 80% e 50% della domanda di base corrispondente a 10%, 20% e 50% e 50%.

2. Crea un nuovo **Pywr\_Parametro**

<figure><img src="/files/bPYNoChY7JLAM1oTwGDg" alt=""><figcaption><p>Crea un nuovo Pywr_Parameter</p></figcaption></figure>

3. Assegna un nome al parametro **'fattore di domanda della curva di controllo'** e premere *Entra*\*\*. \*\*

<figure><img src="/files/7E0uXJX04auKMNySQLac" alt="" width="275"><figcaption><p>Assegna un nome al parametro</p></figcaption></figure>

4. Incolla il seguente frammento di codice JSON qui sotto. Nota come si fa riferimento alla `"`curva di controllo dello storage» nell'attributo `"index_parameter"`.

```
{
	«tipo»: «indexedarrayparameter»,
	«index_parameter»: «curva di controllo dello storage»,
	«parametri»: [
		1,
		0.9,
		0.8,
		0.5
	],
}
```

<figure><img src="/files/avemlqWYc3c6U00Qs7st" alt=""><figcaption><p>Incolla il codice e salva</p></figcaption></figure>

L'attributo `params`accetta scalari o parametri Pywr e l'indice dell'array corrisponde all'indice nel parametro a cui si fa riferimento nel **indice\_parametro** che in questo caso è la curva di controllo.

5. Selezionate per rendere l'output di questo parametro.

<figure><img src="/files/LGFsa3kX5phnLdxpebMR" alt=""><figcaption><p>Seleziona le serie temporali di registrazione e salva</p></figcaption></figure>

## Definire la domanda di base

Successivamente definiremo la domanda di base. Questa è la domanda che il serbatoio ha prima che vengano attuate eventuali riduzioni. Nel tutorial precedente, la richiesta di esempio è definita come uno scalare (0.1) sull'attributo Max\ \_flow del nodo di output della domanda di esempio:

<figure><img src="/files/9x8DUjREQccMQ0FYNtl7" alt=""><figcaption><p>Esempio di domanda</p></figcaption></figure>

Lo sostituiremo con un **Riferimento ai parametri.**

1. Innanzitutto, definiremo la domanda di base utilizzando a **Parametro costante.**

Aggiungi un nuovo \*\*Pywr\_parametro. \*\*

<figure><img src="/files/upXJGL2P55DncCgoSIAR" alt=""><figcaption><p>Aggiungi un nuovo PyWR_Parameter</p></figcaption></figure>

E chiamalo **Domanda di base** e premere *Entra*.

<figure><img src="/files/boS0E1B1pFyLZ5Pqsjjs" alt="" width="274"><figcaption><p>Assegna un nome al nuovo PyWR_Parameter</p></figcaption></figure>

2. La domanda di base rimarrà 0.1 MM3/giorno. Copia e incolla lo snippet di codice JSON nella scheda JSON.

```
{
	«type»: «costante»,
	«valore»: 0.1
}
```

<figure><img src="/files/WG9zD2pD6kL4CiNJDKRv" alt=""><figcaption><p>Incolla il codice e salva</p></figcaption></figure>

In ogni fase temporale, la domanda modellata sarà la domanda di base moltiplicata per il fattore di domanda:

`Domanda Timestep = Domanda di base x Fattore di domanda`

## Calcola **richiesta timestep**

Ciò può essere ottenuto utilizzando un [Parametro aggregato](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter).

1. Aggiungi un nuovo \*\*Pywr\_parametro. \*\*

<figure><img src="/files/vjPhEBeCDplvx8fEXc5B" alt=""><figcaption><p>Aggiungi un nuovo PyWR_Parameter</p></figcaption></figure>

Assegna un nome al nuovo parametro **'richiesta timestep'**

<figure><img src="/files/hOnfZDmjb00WPvtTZF0Y" alt="" width="274"><figcaption><p>Assegna un nome al nuovo parametro</p></figcaption></figure>

2. Copia e incolla lo snippet di codice JSON nella scheda JSON.

```
{
	«type»: «Parametro aggregato»,
	«agg_func»: «prodotto»,
	«parametri»: [
		«domanda di base»,
		«fattore di domanda della curva di controllo»
	]
}
```

<figure><img src="/files/YRGNT0whXYh2QFkJHMu8" alt=""><figcaption><p>Incolla il codice e salva</p></figcaption></figure>

Seleziona per fare in modo che questo valore del parametro venga emesso in ogni fase temporale.

<figure><img src="/files/3O2a8gwFWMBqiypLesDY" alt=""><figcaption><p>Seleziona la registrazione delle serie temporali</p></figcaption></figure>

3. Il **'richiesta timestep'** definisce la domanda in ogni fase temporale tenendo conto dello stato (cioè stoccaggio in tempo reale) nel serbatoio.

Questo **Parametro** deve essere referenziato sul **massimo\_attributo flow** del nodo Demand.

4. Fai clic sul nodo Demand e scrivi o incolla '**«richiesta timestep»** nell'attributo max\ \_flow che sostituisce il valore scalare (0.1).

<figure><img src="/files/4hWir10GCSj1Yhvqbjf6" alt=""><figcaption><p>Inserisci il nome dell'attributo max_flow</p></figcaption></figure>

Nota: se il nome del parametro non viene salvato, cambia il tipo di voce in **«Descrittore»**.

<figure><img src="/files/998dnyqtEhR20uNRwOdn" alt=""><figcaption><p>Fai clic su modifica il max_flow</p></figcaption></figure>

<figure><img src="/files/ccZx2ma8t2iDtYjedMkS" alt=""><figcaption><p>Seleziona DESCRITTORE</p></figcaption></figure>

<figure><img src="/files/v51AFrX3Uye1WOZuJmVR" alt=""><figcaption><p>Inserisci il nome</p></figcaption></figure>

Non dimenticare di salvare le modifiche.

## Esegui il modello e visualizza i risultati

1. **Esegui** il modello.

<figure><img src="/files/CzHnNYZhG5NcCgVUnwae" alt="" width="327"><figcaption><p>Fare clic su per eseguire il modello</p></figcaption></figure>

2. Visualizza il **simulato** \ \_volume sul serbatoio

<figure><img src="/files/sXsKoAKSxaofwFOb0ToC" alt=""><figcaption><p>_volume simulato sul serbatoio</p></figcaption></figure>

Puoi **ingrandire** nella siccità, ad esempio questa è la siccità avvenuta in 2042-2044.

<figure><img src="/files/uK9USSckg59kva3ALx6T" alt=""><figcaption><p>_volume simulato sul serbatoio in 2042-2044</p></figcaption></figure>

Nello scenario con riduzioni della domanda, il serbatoio non è sceso al minimo di stoccaggio (9.4 vs 8.17 Mm3).

3. Fate clic sul\ \_flow simulato del nodo Demand. È possibile visualizzare le riduzioni della domanda.

<figure><img src="/files/hM8QzFQJlSgPxCpjmWuA" alt=""><figcaption><p>simulated_flow del nodo Demand</p></figcaption></figure>

4. È possibile visualizzare l'output del parametro Control Cure facendo clic su **Dati di rete** vista.

<figure><img src="/files/iICT9ugz4d485hV0XUjH" alt=""><figcaption><p>Fate clic per visualizzare l'output del parametro Control Cure</p></figcaption></figure>

Cliccando su **simulato\_la curva di controllo della memorizzazione** mostra quale indice restituisce la curva di controllo della memorizzazione in ogni fase temporale. Questo varia tra 0-2.

<figure><img src="/files/5058pcRu9MRc9GD5VZx5" alt=""><figcaption><p>Controllo dell'uscita dei parametri di cura</p></figcaption></figure>

## Esercizio <a href="#exercise" id="exercise"></a>

1. Aumentare il parametro della domanda di base. Quanto può essere elevata la domanda di base prima che il serbatoio si svuoti completamente?


---

# 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/italiano/tutorial/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.
