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

# Añadir curvas de control de yacimientos y ahorrar en la demanda (reducciones)

## Introducción

Las curvas de control se pueden utilizar para implementar una reducción de la demanda cuando los niveles de los embalses están por debajo de ciertos umbrales. Esto representa la implementación de medidas temporales de gestión de la demanda. En este ejercicio, la demanda se reducirá gradualmente a medida que el depósito descienda por debajo de ciertos umbrales de almacenamiento. Este ejercicio demostrará la[ Parámetro de índice de curva de control](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter), el [Parámetro de matriz indexada](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter) así como el [Parámetro agregado](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter) así como el anidamiento de parámetros.

## Clone el escenario y defina una curva de control

1. Clona el **«Fuentes equilibradas»** escenario y nombre al nuevo **«Reducciones de la demanda»**
2. Primero definiremos un **curva de control** que utiliza umbrales de volumen de almacenamiento para reducir progresivamente la demanda a fin de modelar las restricciones de demanda que se imponen a una demanda. La primera curva es una [Perfil mensual](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/monthly-profile) (60% en los próximos meses y 45% en otros), lo que permite los cambios estacionales, mientras que las dos curvas siguientes son [Constantes ](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/constant)(40% y 10% de la capacidad de almacenamiento del depósito).

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

La curva de control se definirá en **Parámetros** pestaña. En la pestaña Parámetros, añada un **Pyr\_Parámetro**.

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

Asigne un nombre al parámetro **'curva de control de almacenamiento'** y presione *Entrar*\*\*. \*\*

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

Pegue el siguiente fragmento de código JSON a continuación. Ten en cuenta cómo se hace referencia al `"depósito de ejemplificado"` en el atributo `"storage_node"`.

```
{
	«tipo»: «parámetro controlcurveindex»,
	«storage_node»: «Ejemplo de depósito»,
	«curvas de control»: [
		{
			«type»: «parámetro de perfil mensual»,
			«valores»: [
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.45,
				0.6,
				0.6
			]
		},
		{
			«tipo»: «constante»,
			«valor»: 0.4
		},
		{
			«tipo»: «constante»,
			«valor»: 0.1
		}
	],
	«__grabadora__«: {
		«timeseries»: verdadero
	}
}
```

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-42ee8ff4ed1b7b6c3dc4e943726ea65d1befd08d%2Fimage%20(195).png?alt=media" alt=""><figcaption><p>Pega el código y guarda</p></figcaption></figure>

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-4eb5c41ff93c5840dd10420159803fe8b1d4116b%2Fimage%20(196).png?alt=media" alt=""><figcaption><p>Selecciona series temporales de grabación y guarda</p></figcaption></figure>

En cada paso temporal, el [Parámetro de índice de curva de control](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter) devolverá un valor de índice como se muestra a continuación:

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

Estos índices se pueden asociar a un factor de demanda que se definirá mediante un [Parámetro de matriz indexada](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter). El factor de demanda se utilizará para reducir la demanda cuando se supere cada umbral de la curva de control.

## Factor de demanda asociado

1. Asociaremos lo siguiente **Factores de demanda** a los diferentes niveles de fallo de la curva de control:

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

Esto reducirá la demanda al 90%, 80% y 50% de la demanda básica correspondiente a las reducciones de la demanda de 10%, 20% y 50%.

2. Crea un nuevo **Pyr\_Parámetro**

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

3. Asigne un nombre al parámetro **«factor de demanda de la curva de control»** y presione *Entrar*\*\*. \*\*

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-97b9e167ecc5f41e7688b436c790b39682aaab9c%2Fimage%20(200).png?alt=media" alt="" width="275"><figcaption><p>Asigne un nombre al parámetro</p></figcaption></figure>

4. Pegue el siguiente fragmento de código JSON a continuación. Ten en cuenta cómo se hace referencia a la `"`curva de control"`del almacenamiento en el atributo`"index\_parameter"\`.

```
{
	«tipo»: «indexedarrayparameter»,
	«index_parameter»: «curva de control de almacenamiento»,
	«parámetros»: [
		1,
		0.9,
		0.8,
		0.5
	],
}
```

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-451786a7db32c504bb4bba194e5746d22b15ad62%2Fimage%20(201).png?alt=media" alt=""><figcaption><p>Pega el código y guarda</p></figcaption></figure>

El atributo `Params`incluye parámetros escalares o Pywr y el índice de la matriz corresponde al índice del parámetro al que se hace referencia en **índice\_parámetro** que en este caso es la curva de control.

5. Seleccione esta opción para convertir este parámetro en la salida.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-2f2e7d710387239023de9428b6a61cfa2f75878f%2Fimage%20(202).png?alt=media" alt=""><figcaption><p>Selecciona series temporales de grabación y guarda</p></figcaption></figure>

## Definir la demanda de referencia

A continuación, definiremos la demanda de referencia. Esta es la demanda que tiene el embalse antes de implementar cualquier reducción. En el tutorial anterior, la demanda del ejemplo se definió como un escalar (0.1) en el atributo Max\ \_flow del nodo de salida de la demanda del ejemplo:

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

Reemplazaremos esto por un **Referencia de parámetros.**

1. En primer lugar, definiremos la demanda de referencia utilizando un **Parámetro constante.**

Añadir un nuevo \*\*Pyr\_parámetro. \*\*

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-0c291e642a757a907c2ea16af661dd15eafdbad0%2Fimage%20(205).png?alt=media" alt=""><figcaption><p>Agregar un nuevo PyWR_Parameter</p></figcaption></figure>

Y nómbralo **Demanda de referencia** y presione *Entrar*.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-78fb7b4320fe5da19fbd92672fdb7e3d1e6b9230%2Fimage%20(206).png?alt=media" alt="" width="274"><figcaption><p>Asigne un nombre al nuevo PyWR_Parameter</p></figcaption></figure>

2. La demanda de referencia se mantendrá 0.1 MM3/día. Copia y pega el fragmento de código JSON en la pestaña JSON.

```
{
	«tipo»: «constante»,
	«valor»: 0.1
}
```

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-06752aaf2ece009e3264208681d81ec7277e6a18%2Fimage%20(207).png?alt=media" alt=""><figcaption><p>Pega el código y guarda</p></figcaption></figure>

En cada etapa temporal, la demanda modelada será la demanda de referencia multiplicada por el factor de demanda:

`Demanda temporal = Demanda de referencia x Factor de demanda`

## Calcular **demanda temporal**

Esto se puede lograr mediante el uso de un [Parámetro agregado](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter).

1. Añadir un nuevo \*\*Pyr\_parámetro. \*\*

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-a8515683ec0d8e08842d11ba9e5e6ac7d441e91b%2Fimage%20(208).png?alt=media" alt=""><figcaption><p>Agregar un nuevo PyWR_Parameter</p></figcaption></figure>

Asigne un nombre al nuevo parámetro **«demanda temporal»**

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-147d44abcd8b603f3bc1330bac3cc49ae18a4df1%2Fimage%20(209).png?alt=media" alt="" width="274"><figcaption><p>Asigne un nombre al nuevo parámetro</p></figcaption></figure>

2. Copia y pega el fragmento de código JSON en la pestaña JSON.

```
{
	«tipo»: «Parámetro agregado»,
	«agg_func»: «producto»,
	«parámetros»: [
		«demanda de referencia»,
		«factor de demanda de la curva de control»
	]
}
```

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-e49fd7ce61fad69fb6fce0ced157c706c7588dcb%2Fimage%20(210).png?alt=media" alt=""><figcaption><p>Pega el código y guarda</p></figcaption></figure>

Seleccione esta opción para que este valor de parámetro se muestre en cada paso de tiempo.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-db46ee2926b20e3f8abc8660c25c934ab34316c3%2Fimage%20(211).png?alt=media" alt=""><figcaption><p>Seleccione la grabación de las series temporales</p></figcaption></figure>

3. El **«demanda temporal»** define la demanda en cada etapa temporal teniendo en cuenta el estado (es decir, el almacenamiento en tiempo real) del embalse.

Esto **Parámetro** necesita ser referenciado en el **máximo\_atributo flow** del nodo Demand.

4. Haga clic en el nodo Demanda y escriba o pegue '**demanda temporal»** en el atributo max\ \_flow reemplazando el valor escalar (0.1).

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-fcd38a4ad69d276e085cbc967620801c4fc3b0b9%2Fimage%20(218).png?alt=media" alt=""><figcaption><p>Introduzca el nombre del atributo max_flow</p></figcaption></figure>

Tenga en cuenta que si el nombre del parámetro no se guarda, cambie el tipo de entrada a **«Descriptor»**.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-dcd39ed02f0f35044135fafab4e27e0715259e14%2Fimage%20(219).png?alt=media" alt=""><figcaption><p>Haga clic en editar el max_flow</p></figcaption></figure>

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-70bfdd4ca9a1916eff474c5415eae2188f6eaf67%2Fimage%20(214).png?alt=media" alt=""><figcaption><p>Seleccione DESCRIPTOR</p></figcaption></figure>

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-936b7cc452ca4bf346309e98c2770b9be16e7f98%2Fimage%20(220).png?alt=media" alt=""><figcaption><p>Ingresa el nombre</p></figcaption></figure>

No olvides guardar los cambios.

## Ejecute el modelo y vea los resultados

1. **Corre** el modelo.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-23a397691922fca45756ec6315af0e23b00c4f5b%2Fimage%20(224).png?alt=media" alt="" width="327"><figcaption><p>Haga clic para ejecutar el modelo</p></figcaption></figure>

2. Ver el **simulado** \ \_volumen en el depósito

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-66f21a32ee8e19d22c5cae2b0a609b47f221f543%2Fimage%20(216).png?alt=media" alt=""><figcaption><p>Volumen _simulado en el embalse</p></figcaption></figure>

Puedes **zoom** en la sequía, por ejemplo, esta es la sequía que ocurrió en 2042-2044.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-9d1e7382a6ae09faf012f9c873a39d9223fc1740%2Fimage%20(217).png?alt=media" alt=""><figcaption><p>Volumen simulado en el depósito en 2042-2044</p></figcaption></figure>

En el escenario con reducciones de la demanda, el depósito no alcanzó un nivel de almacenamiento tan bajo (9.4 frente a 8.17 Mm3).

3. Haga clic en el\ \_flow simulado del nodo Demand. Se pueden ver las reducciones de la demanda.

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

4. Puede ver el resultado del parámetro de curado de control haciendo clic en el **Datos de red** vista.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-f79adfff87cace6450c9fb3870a77359b6a15a5c%2Fimage%20(222).png?alt=media" alt=""><figcaption><p>Haga clic para ver el resultado del parámetro de curado de control</p></figcaption></figure>

Al hacer clic en **simulado\_La curva de control de almacenamiento** muestra el índice que devuelve la curva de control de almacenamiento en cada paso de tiempo. Esto varía entre 0 y 2.

<figure><img src="https://2948356152-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFNe7L0vZu0Va3aSbFYVf%2Fuploads%2Fgit-blob-136770d7c8cbd70370bb0e5fedbae3ad1b1154c4%2Fimage%20(223).png?alt=media" alt=""><figcaption><p>Salida del parámetro de curado de control</p></figcaption></figure>

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

1. Aumente el parámetro de demanda de referencia. ¿Qué tan alta puede ser la demanda de referencia antes de que el depósito se vacíe por completo?


---

# 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/espanol/tutoriales/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.
