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

# Adição de curvas de controle de reservatórios e economia de demanda (reduções)

## Introdução

As curvas de controle podem ser usadas para implementar reduções de demanda quando os níveis do reservatório caem abaixo de certos limites. Isso representa a implementação de medidas temporárias de gerenciamento de demanda. Neste exercício, a demanda será reduzida incrementalmente à medida que o reservatório ficar abaixo de certos limites de armazenamento. Este exercício demonstrará o[ Parâmetro do índice da curva de controle](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter), a [Parâmetro de matriz indexada](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter) bem como o [Parâmetro agregado](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter) bem como aninhamento de parâmetros.

## Clone o cenário e defina uma curva de controle

1. Clonar o **“Fontes equilibradas”** cenário e nomeie o novo **'Reduções de demanda'**
2. Primeiro, definiremos um **curva de controle** que usa limites de volume de armazenamento para reduzir progressivamente a demanda para modelar as restrições de demanda impostas a uma demanda. A primeira curva é uma [Perfil mensal](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/monthly-profile) (60% nos próximos meses e 45% nos outros) permitindo mudanças sazonais enquanto as duas curvas subsequentes são [Constantes ](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/constant)(40% e 10% da capacidade de armazenamento do reservatório).

<figure><img src="/files/6AQmpOUH7HIrGwQI1N9x" alt=""><figcaption><p>Curva de controle do reservatório</p></figcaption></figure>

A curva de controle será definida no **Parâmetros** aba. Na guia Parâmetros, adicione um **Pier\_Parâmetro**.

<figure><img src="/files/imsbqyELWYZwmoumo5rj" alt="" width="375"><figcaption><p>Adicionar um Pywr_Parameter</p></figcaption></figure>

Nomeie o parâmetro **'curva de controle de armazenamento'** e pressione *Entrar*\*\*. \*\*

<figure><img src="/files/m8jXkOPWe0TemBDPcxiZ" alt="" width="335"><figcaption><p><strong>curva de controle de armazenamento</strong></p></figcaption></figure>

Cole o seguinte trecho de código JSON abaixo. Observe como o `"Exemplo de reservatório”` é referenciado no atributo `"storage_node"`.

```
{
	“tipo”: “parâmetro de índice da curva de controle”,
	“storage_node”: “Exemplo de reservatório”,
	“curvas_de_controle”: [
		{
			“type”: “parâmetro mensal do perfil”,
			“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
		}
	],
	“__gravador__“: {
		“série temporal”: verdadeiro
	}
}
```

<figure><img src="/files/MZTiHa73n4OhRICgLxRn" alt=""><figcaption><p>Cole o código e salve</p></figcaption></figure>

<figure><img src="/files/qZiDlYFvwexhNXYCiYNN" alt=""><figcaption><p>Selecione a série temporal de gravação e salve</p></figcaption></figure>

A cada vez, pise o [Parâmetro do índice da curva de controle](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter) retornará um valor de índice conforme mostrado abaixo:

<figure><img src="/files/7UK5Gox4vkREHnMg6GSc" alt=""><figcaption><p>Curva de controle do reservatório</p></figcaption></figure>

Esses índices podem ser associados a um fator de demanda que será definido usando um [Parâmetro de matriz indexada](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter). O fator de demanda será usado para reduzir a demanda quando cada limite da curva de controle for ultrapassado.

## Fator de demanda associado

1. Associaremos o seguinte **Fatores de demanda** aos diferentes níveis de falha da curva de controle:

<figure><img src="/files/lQSfatijPabEp4pp9Rwp" alt=""><figcaption><p>Curva de controle do reservatório</p></figcaption></figure>

Isso reduzirá a demanda para 90%, 80% e 50% da demanda básica correspondente a 10%, 20% e 50% de reduções de demanda.

2. Crie um novo **Pier\_Parâmetro**

<figure><img src="/files/s3k4p1ypJZBDC89ZasHS" alt=""><figcaption><p>Crie um novo Pywr_Parameter</p></figcaption></figure>

3. Nomeie o parâmetro **'fator de demanda da curva de controle'** e pressione *Entrar*\*\*. \*\*

<figure><img src="/files/uW2oY4sDp4rbgcEAVBOo" alt="" width="275"><figcaption><p>Nomeie o parâmetro</p></figcaption></figure>

4. Cole o seguinte trecho de código JSON abaixo. Observe como a `"`curva de controle"`de armazenamento é referenciada no atributo`"index\_parameter"\`.

```
{
	“tipo”: “indexedarrayparameter”,
	“index_parameter”: “curva de controle de armazenamento”,
	“parâmetros”: [
		1,
		0.9,
		0.8,
		0.5
	],
}
```

<figure><img src="/files/H8JBUpOYUzTEcIxC8ErS" alt=""><figcaption><p>Cole o código e salve</p></figcaption></figure>

O atributo `Params`aceita parâmetros escalares ou Pywr e o índice da matriz corresponde ao índice no parâmetro referenciado no **índice\_parameter** que neste caso é a curva de controle.

5. Selecione para fazer com que esse parâmetro seja exibido.

<figure><img src="/files/HnEv605lexVCwaSoFujq" alt=""><figcaption><p>Selecione a série temporal de gravação e salve</p></figcaption></figure>

## Defina a demanda básica

A seguir, definiremos a demanda básica. Essa é a demanda que o reservatório tem antes que qualquer redução seja implementada. No tutorial anterior, a demanda de exemplo é definida como um escalar (0.1) no atributo Max\ \_flow do nó de saída de demanda de exemplo:

<figure><img src="/files/aHQ5vLkhdfvxEShr3W6V" alt=""><figcaption><p>Exemplo de demanda</p></figcaption></figure>

Vamos substituir isso por um **Referência de parâmetros.**

1. Primeiro, definiremos a demanda básica usando um **Parâmetro constante.**

Adicionar um novo \*\*Pier\_parâmetro. \*\*

<figure><img src="/files/7lqJ64UnLVxTKCWoykXo" alt=""><figcaption><p>Adicionar um novo Pywr_Parameter</p></figcaption></figure>

E dê um nome **Demanda básica** e pressione *Entrar*.

<figure><img src="/files/PLCKvHnc7p2HvexvzJ7E" alt="" width="274"><figcaption><p>Nomeie o novo Pywr_Parameter</p></figcaption></figure>

2. A demanda básica permanecerá 0.1 MM3/dia. Copie e cole o trecho de código JSON na guia JSON.

```
{
	“tipo”: “constante”,
	“valor”: 0.1
}
```

<figure><img src="/files/KbYoKjdzXSaC95QbEWUg" alt=""><figcaption><p>Cole o código e salve</p></figcaption></figure>

Em cada etapa de tempo, a demanda modelada será a demanda básica multiplicada pelo fator de demanda:

`Demanda por intervalo de tempo = demanda básica x fator de demanda`

## Calcular **demanda por etapas de tempo**

Isso pode ser feito usando um [Parâmetro agregado](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter).

1. Adicionar um novo \*\*Pier\_parâmetro. \*\*

<figure><img src="/files/sf6AHbp0wSrMF577RJwO" alt=""><figcaption><p>Adicionar um novo Pywr_Parameter</p></figcaption></figure>

Nomeie o novo parâmetro **'demanda por intervalo de tempo'**

<figure><img src="/files/mZ0rhFG1lpLyjLh5LIve" alt="" width="274"><figcaption><p>Nomeie o novo parâmetro</p></figcaption></figure>

2. Copie e cole o trecho de código JSON na guia JSON.

```
{
	“tipo”: “Parâmetro agregado”,
	“agg_func”: “produto”,
	“parâmetros”: [
		“demanda básica”,
		“fator de demanda da curva de controle”
	]
}
```

<figure><img src="/files/NuvyWBy3pNifdNZrHMfz" alt=""><figcaption><p>Cole o código e salve</p></figcaption></figure>

Selecione para fazer com que esse valor de parâmetro seja gerado em cada etapa de tempo.

<figure><img src="/files/p5E2JjlewPvlPfLxFkOA" alt=""><figcaption><p>Selecione a gravação da série temporal</p></figcaption></figure>

3. O **'demanda por intervalo de tempo'** define a demanda em cada etapa de tempo levando em consideração o estado (ou seja, armazenamento em tempo real) no reservatório.

Isso **Parâmetro** precisa ser referenciado no **máximo\_atributo flow** do nó Demand.

4. Clique no nó Demanda e escreva ou cole '**demanda de etapa de tempo”** no atributo max\ \_flow substituindo o valor escalar (0.1).

<figure><img src="/files/A9oBsfxTMzHIlKJdTcAB" alt=""><figcaption><p>Insira o nome do atributo max_flow</p></figcaption></figure>

Observe que, se o nome do parâmetro não for salvo, altere o tipo da entrada para **“Descritor”**.

<figure><img src="/files/ziY4VP8LVlr3VY3ynvYl" alt=""><figcaption><p>Clique em editar o max_flow</p></figcaption></figure>

<figure><img src="/files/0NHneK7pQj8nidwJM0Dl" alt=""><figcaption><p>Selecione DESCRITOR</p></figcaption></figure>

<figure><img src="/files/DjQ61e1PKijrGa5rq8v8" alt=""><figcaption><p>Digite o nome</p></figcaption></figure>

Não se esqueça de salvar as alterações.

## Execute o modelo e veja os resultados

1. **Corra** o modelo.

<figure><img src="/files/UhrgaymMDOIghS3j40uk" alt="" width="327"><figcaption><p>Clique em para executar o modelo</p></figcaption></figure>

2. Veja o **simulado** \ \_volume no reservatório

<figure><img src="/files/LPGXsuBEWaZpNvwXUE53" alt=""><figcaption><p>_volume simulado no reservatório</p></figcaption></figure>

Você pode **zoom** na seca, por exemplo, esta é a seca que ocorreu em 2042-2044.

<figure><img src="/files/g1iumwcLCKi5qn8PcWLt" alt=""><figcaption><p>_volume simulado no reservatório em 2042-2044</p></figcaption></figure>

No cenário com reduções de demanda, o reservatório não teve um armazenamento tão baixo (9.4 vs 8.17 Mm3).

3. Clique no fluxo\ \_flow simulado do nó Demand. As reduções da demanda podem ser vistas.

<figure><img src="/files/AEp5LG5BM1rh8O5oqcfx" alt=""><figcaption><p>fluxo_simulado do nó de demanda</p></figcaption></figure>

4. Você pode visualizar a saída do parâmetro de cura de controle clicando no **Dados de rede** vista.

<figure><img src="/files/AuXDEzbBJlZm4JirfhyY" alt=""><figcaption><p>Clique para visualizar a saída do parâmetro de cura de controle</p></figcaption></figure>

Clicando em **simulado\_a curva de controle de armazenamento** mostra qual índice a curva de controle de armazenamento está retornando em cada etapa de tempo. Isso varia entre 0-2.

<figure><img src="/files/7WQiAK42cOJsjOqmbZeG" alt=""><figcaption><p>Saída do parâmetro de cura de controle</p></figcaption></figure>

## Exercício <a href="#exercise" id="exercise"></a>

1. Aumente o parâmetro de demanda da linha de base. Qual pode ser a demanda básica antes que o reservatório se esvazie totalmente?


---

# 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/portugues/tutoriais/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.
