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

# Добавление кривых управления резервуарами и экономия (сокращение) спроса

## Введение

Контрольные кривые можно использовать для снижения спроса, когда уровни в резервуарах опускаются ниже определенных пороговых значений. Это означает принятие временных мер по управлению спросом. В ходе этого мероприятия спрос будет постепенно снижаться по мере того, как запасы в водохранилище превышают определенные пороговые значения. В этом упражнении будут продемонстрированы[ Параметр индекса контрольной кривой](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="/files/OhzEJazPt57anEZhopoy" alt=""><figcaption><p>Кривая управления резервуаром</p></figcaption></figure>

Кривая управления будет определена в поле **параметры** вкладка. На вкладке «Параметры» добавьте **Пивр\_Параметр**.

<figure><img src="/files/WauMqOhZMvd13UMu2K2b" alt="" width="375"><figcaption><p>Добавьте параметр Pywr_</p></figcaption></figure>

Присвойте параметру имя **«кривая управления хранением»** и нажмите *Введите*\*\*. \*\*

<figure><img src="/files/c4GXWF5XoXT4iudCIhHc" 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="/files/niDBBgm8n29EHZ7NIRUL" alt=""><figcaption><p>Вставьте код и сохраните</p></figcaption></figure>

<figure><img src="/files/fxlbLTW0qjBQnKCekEot" alt=""><figcaption><p>Выберите таймсерию записи и сохраните</p></figcaption></figure>

Каждый раз делайте шаг [Параметр индекса контрольной кривой](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/control-curve-index-parameter) вернет значение индекса, как показано ниже:

<figure><img src="/files/8IbEcC2xRpaHFlIzUGRu" alt=""><figcaption><p>Кривая управления резервуаром</p></figcaption></figure>

Эти индексы могут быть связаны с фактором спроса, который будет определен с помощью [Параметр индексного массива](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/indexed-array-parameter). Коэффициент спроса будет использоваться для снижения спроса при достижении порогового значения каждой контрольной кривой.

## Ассоциированный фактор спроса

1. Мы свяжем следующее **Факторы спроса** к различным уровням отказов кривой управления:

<figure><img src="/files/BwvCQg2TnSeiMT6wEjHy" alt=""><figcaption><p>Кривая управления резервуаром</p></figcaption></figure>

Это снизит спрос до **1234567890**%, 80% и 50% от базового спроса, что соответствует сокращению спроса **1234567890**%, 20% и 50%.

2. Создайте новый **Пивр\_Параметр**

<figure><img src="/files/E39UErdArB0GldMSXyGb" alt=""><figcaption><p>Создайте новый параметр Pywr_Parameter</p></figcaption></figure>

3. Присвойте параметру имя **«коэффициент спроса на контрольную кривую»** и нажмите *Введите*\*\*. \*\*

<figure><img src="/files/oXJtRX0hWQGGsQlSLIjs" alt="" width="275"><figcaption><p>Присвойте параметру имя</p></figcaption></figure>

4. Вставьте следующий фрагмент кода JSON ниже. Обратите внимание, что в атрибуте «index\_parameter» содержится ссылка на «контрольную кривую» хранилища.

```
{
	«тип»: «indexedarrayparameter»,
	«index_parameter»: «кривая управления хранением»,
	«параметры»: [
		1,
		0.9,
		0.8,
		0.5
	],
}
```

<figure><img src="/files/PcMNvH3h91dgIrEIMyjc" alt=""><figcaption><p>Вставьте код и сохраните</p></figcaption></figure>

Атрибут `Params` принимает скаляры или параметры Pywr, а индекс массива соответствует индексу параметра, указанного в поле **индекс\_параметр**, который в данном случае является контрольной кривой.

5. Выберите, чтобы вывести этот параметр.

<figure><img src="/files/Yf3CWH6B9gLevPzSpDAE" alt=""><figcaption><p>Выберите таймсерию записи и сохраните</p></figcaption></figure>

## Определите базовый спрос

Далее мы определим базовый спрос. Это спрос на водохранилище до того, как будут произведены какие-либо сокращения. В предыдущем уроке спрос в примере определялся в виде скаляра (0.1) в атрибуте Max\ \_flow в выходном узле Example demand:

<figure><img src="/files/yj9lzHdDxcyElsKJ1IVw" alt=""><figcaption><p>Пример спроса</p></figcaption></figure>

Мы заменим это на **Ссылка на параметр.**

1. Во-первых, мы определим базовый спрос, используя **Постоянный параметр.**

Добавить новое \*\*Пивр\_параметр. \*\*

<figure><img src="/files/GRe4J1bPswL4WGPweN00" alt=""><figcaption><p>Добавьте новый параметр PYWR_</p></figcaption></figure>

И назовите его **Базовый спрос** и нажмите *Введите*.

<figure><img src="/files/WH7hqlXHxnscsUxFlakp" alt="" width="274"><figcaption><p>Присвойте новому параметру PYWR_имя</p></figcaption></figure>

2. Базовый спрос сохранится на уровне 0.1 мм3/день. Скопируйте и вставьте фрагмент кода JSON на вкладку JSON.

```
{
	«тип»: «константа»,
	«значение»: 0.1
}
```

<figure><img src="/files/2tL7DsSTDMYn8DLHHu8n" alt=""><figcaption><p>Вставьте код и сохраните</p></figcaption></figure>

На каждом временном этапе смоделированный спрос будет представлять собой базовый спрос, умноженный на коэффициент спроса:

«Спрос на временной шаг = базовый спрос x фактор спроса»

## Вычислить **спрос на временные рамки**

Это может быть достигнуто с помощью [Агрегированный параметр](https://water-strategy.gitbook.io/water-strategy/modelling-fundamentals/parameters/aggregated-parameter).

1. Добавить новое \*\*Пивр\_параметр. \*\*

<figure><img src="/files/p9IO7bjyVMnflcT0Dmjf" alt=""><figcaption><p>Добавьте новый параметр PYWR_</p></figcaption></figure>

Присвойте новому параметру имя **«спрос на временные шаги»**

<figure><img src="/files/7BvlVBlEr2Opw4rOHP0i" alt="" width="274"><figcaption><p>Присвойте новому параметру имя</p></figcaption></figure>

2. Скопируйте и вставьте фрагмент кода JSON на вкладку JSON.

```
{
	«тип»: «Агрегированный параметр»,
	«agg_func»: «продукт»,
	«параметры»: [
		«базовый спрос»,
		«коэффициент спроса на контрольную кривую»
	]
}
```

<figure><img src="/files/M1hpZovOjMKvgoKfDfQ6" alt=""><figcaption><p>Вставьте код и сохраните</p></figcaption></figure>

Выберите, чтобы значение этого параметра выводилось на каждом временном шаге.

<figure><img src="/files/toPzRWr2MWSthaz9HP3V" alt=""><figcaption><p>Выберите запись временных рядов</p></figcaption></figure>

3. **«спрос на временные шаги»** определяет спрос на каждом временном этапе с учетом состояния резервуара (т.е. хранилища в реальном времени).

Это **Параметр** должна быть указана на **макс\_атрибут flow** узла Demand.

4. Нажмите на узел «Спрос» и напишите или вставьте '**спрос на временные рамки»** в атрибуте max\ \_flow, заменяющем скалярное значение (0.1).

<figure><img src="/files/RYElpv2CxSnkfpMUtbw8" alt=""><figcaption><p>Введите имя атрибута max_flow</p></figcaption></figure>

Обратите внимание, что если имя параметра не сохраняется, измените тип записи на **«Дескриптор»**.

<figure><img src="/files/wmBFVv9gnC5Y0KTiPbh9" alt=""><figcaption><p>Нажмите на редактирование max_flow</p></figcaption></figure>

<figure><img src="/files/uz3kwm21CbbJYSU8lX04" alt=""><figcaption><p>Выберите ДЕСКРИПТОР</p></figcaption></figure>

<figure><img src="/files/qea2RB9hhs6gyGyK89wc" alt=""><figcaption><p>Введите имя</p></figcaption></figure>

Не забудьте сохранить изменения.

## Запустите модель и просмотрите результаты

1. **Беги** модель.

<figure><img src="/files/281fPNxZ1OxFkTXiaYr8" alt="" width="327"><figcaption><p>Нажмите, чтобы запустить модель</p></figcaption></figure>

2. Просмотрите **смоделирован** \ \_объем на водохранилище

<figure><img src="/files/Wew4TsdRNv1sFar2R3uq" alt=""><figcaption><p>Смоделированный объем резервуара</p></figcaption></figure>

Вы можете **зум** в засуху, например, это засуха, произошедшая в 2042-2044.

<figure><img src="/files/tTeQYRZaYwhBJ9NigU7W" alt=""><figcaption><p>Смоделированный объем резервуара в 2042-2044</p></figcaption></figure>

В сценарии, предусматривающем сокращение спроса, запасы запасов в водохранилище снизились не так низко (9.4 против 8.17 Мм3).

3. Нажмите на смоделированный\ \_поток узла Demand. Можно увидеть снижение спроса.

<figure><img src="/files/L3lsp9OdgkkvraF4Z3pT" alt=""><figcaption><p>simulated_flow узла «Спрос»</p></figcaption></figure>

4. Вы можете просмотреть выходные данные параметра контрольного отверждения, нажав на **Сетевые данные** вид.

<figure><img src="/files/dJRN9EyFvBV2MF8B8zgf" alt=""><figcaption><p>Нажмите, чтобы просмотреть выходные данные параметра контрольного отверждения</p></figcaption></figure>

Нажав на **смоделировано\_кривая управления хранением** показывает, какой индекс возвращает кривая управления хранением на каждом временном шаге. Это значение варьируется от 0 до 2.

<figure><img src="/files/kUPkNLA3R5NWH9fVg0DY" alt=""><figcaption><p>Вывод параметров контрольного отверждения</p></figcaption></figure>

## Упражнение <a href="#exercise" id="exercise"></a>

1. Увеличьте базовый параметр спроса. Насколько высоким может быть базовый спрос до полного опорожнения резервуара?


---

# 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/russkii/uchebnye-posobiya/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.
