15.3. Расчет оптимальной регулирующей емкости резервуаров
с применением ЭВМ

Постановка задачи

Приводимые ниже алгоритм и программа расчета величины объема регулирующих емкостей разработаны для самого простого случая - двухступенчатой подачи насосов.

Исходными данными для расчета являются часовые расходы в процентах от

94

суточного водопотребления. Расчетом требуется определить час включения и час выключения одной из подач насосов, величины обоих подач, а также объем регулирующей емкости.

Решаемая задача является задачей многомерной оптимизации, т.е. сводится к поиску экстремума целевой функции, зависящей от нескольких независимых переменных. В данном случае целевой функцией является величина объема регулирующей емкости, которая должна быть минимальной, а независимыми переменными - час включения, час выключения одной подачи и отношение величин подач (рис. 15.8). На этом рисунке изображена поверхность целевой функции, которая получена при расчете конкретного примера.

Рис. 15.8. Функция отклика - зависимость регулирующего объема от пары переменных: часа включения и выключения большой подачи.
Рис. 15.8. Функция отклика - зависимость регулирующего объема от пары переменных: часа включения и выключения большой подачи.

Общие принципы расчета

Расчет заключается в подборе пары значений: часа включения и выключения одной из подач насосов (которую условно назовем большой) так, чтобы регулирующий объем был минимальным. Непосредственно расчет величины объема при заданных часах включения и выключения предусматривает определение такого соотношения подач, при котором объем также будет минимальным. Таким образом, основным содержанием расчета является двухмерная оптимизация, включающая в себя на каждом приближении одномерную оптимизацию.

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

Описание алгоритмов и программ

Реализация алгоритмов расчета выполнена в виде программы Regul. Названия подпрограмм, входящих в основную программу, приведены в табл. 15.4.

95

Таблица 15.4

Основные подпрограммы, используемые в программе

Название Описание
Volume Расчет объема регулирующей емкости при трех заданных параметрах
Perebor Последовательный перебор с переменным шагом
AllDirect Выбора варианта перехода на следующий шаг методом прямого поиска
Optimize Прямой поиск
CalcVolume Расчет остатка воды в емкости и часа нулевого объема

Исходные данные о часовых процентных расходах вводятся пользователем в массив Rash. В программе используются следующие переменные (табл. 15.5).

Таблица 15.5

Переменные, используемые в алгоритмах и программе

Переменная Описание
Простые переменные  
NulHour Час нулевого объема
BigOn, BigOff Час включения и выключения большой подачи
QBig, QSmall Величина большой и малой подачи
XQ Отношение большой и малой подач
RegulVolume Регулирующий объем
Массивы  
VolumeWater Остаток воды в емкости по часам суток
Pritok Подача воды насосами по часам суток

Подпрограмма Volume реализует вычисление непосредственно целевой функции RegulVolume = f(XQ, BigOn, BigOff) - объема регулирующего емкости в зависимости от соотношения подач и часов включения и выключения одной из подач.

В подпрограмме Perebor реализована одномерная оптимизация целевой функции RegulVolume с независимой переменной - отношением большой и малой подач XQ (при постоянных значениях часа включения и выключения большой подачи). Задачей оптимизации является нахождение такого значения XQ, при котором RegulVolume достигает своего минимального значения. Как уже было указано выше, для решения этой задачи был выбран метод последовательного перебора с переменным шагом /7/, который имеет некоторое преимущество по показателю трудоемкости по сравнению с другими.

Подпрограмма AllDirect является вспомогательной для двухмерной оптимизации. Ее назначение - производить перебор вариантов для изменения значений часа включения и выключения большой подачи (переменные I и J) по всем восьми возможным направлениям с целью выяснения такой пары I, J, при которой функция Perebor минимальна. Схема перебора представлена на рис. 15.9.

Рис. 15.9. Схема выбора вариантов по 8-ми направлениям.
Рис. 15.9. Схема выбора вариантов по 8-ми направлениям.

В подпрограмме Optimize производится двухмерная оптимизация целевой функции методом прямого поиска /8/. Этот метод заключается в пошаговом изменении значений независимых переменных (I, J), вычислении целевой функции у и сравнении ее с предшествующим значением у0. Результат у < у0 будет свидетельствовать о том, что шаг сделан в правильном направлении, поэтому следует принять у0 = уи продолжить процесс поиска. В противном случае оптимизация считается завершенной. На рис. 15.10

96

изображен алгоритм подпрограммы Optimize.

Рис. 15.10. Алгоритм оптимизации.
Рис. 15.10. Алгоритм оптимизации.

На рис. 15.11 приведена схема поиска, произведенного при расчете примера.

В подпрограмме CalcVolume рассчитывается неотрицательные остатки воды в емкости по часам суток и час, когда в емкости воды нет (час нулевого объема).

Общая часть программы Regul включает в себя ввод массива значений расходов воды Rash, подпрограмм Optimize и CalcVoIume и вывод на печать всех вычисленных величин (рис. 15.12).

Некоторые замечания к алгоритму расчета.

Приведенный алгоритм имеет ряд недостатков, самый главный из них - нерациональный расчет первоначального размера шага в подпрограмме Perebor. Это значительно замедляет работу программы. Для того чтобы этого избежать, следует:

  • 1) изменить верхний предел интервала неопределенности до значения b = Rmax/Rmin, где Rmax и Rmin - соответственно максимальный и минимальный часовые расходы, а нижний предел принять a = Rmin/Rmax;
  • 2) определить величину первоначального шага ≈1%;
  • 3) установить точность е в прямую зависимость от разности (Rmax - Rmin)

Следующее замечание касается подпрограммы Optimize. Стартовое значение независимых переменных (часа включения и выключения подачи) принимается равным 12. Для большей надежности получаемых результатов следует проводить оптимизацию несколько раз, начиная с разных стартовых значений переменных, выбранных случайным образом. Это исключает неправильное нахождение объема при наличии на поверхности целевой функции нескольких локальных минимумов. В этом случае весь процесс оптимизации заканчивается, если последние 3-5 раз метод прямого поиска приводит к одним и тем же значениям регулирующего объема.

97

Рис. 15.11. Нахождение минимума целевой функции методом прямого поиска.
Рис. 15.11. Нахождение минимума целевой функции методом прямого поиска.
Рис. 15.12. Алгоритм расчета регулирующей емкости.
Рис. 15.12. Алгоритм расчета регулирующей емкости.

98

Рис. 15.13. График суточного недопотребления и подачи к примеру расчета.
Рис. 15.13. График суточного недопотребления и подачи к примеру расчета.

Таблица 15.6

Результаты расчета регулирующей емкости

Часы суток Расход, % Подача, % Поступление в бак, % Расход из бака, % Остаток в баке, %
1 2 3 4 5 6
0-1 3 2.66 --- 0.34 0.92
1-2 3.2 2.66 --- 0.54 0.37
2-3 2.5 2.66 0.16 --- 0.53
3-4 2.6 2.66 0.06 --- 0.59
4-5 3.5 4.56 1.06 --- 1.65
5-6 4.1 4.56 0.46 --- 2.11
6-7 4.5 4.56 0.06 --- ---
7-8 4.9 4.56 --- 0.34 1.84
8-9 4.9 4.56 --- 0.34 1.51
9-10 5.6 4.56 --- 1.04 0.47
10-11 4.9 4.56 --- 0.34 0.14
11-12 4.7 4.56 --- 0.14 0.00
12-13 4.4 4.56 0.16 --- 0.16
13-14 4.1 4.56 0.46 --- 0.63
14-15 4.1 4.56 0.46 --- 1.09
15-16 4.4 4.56 0.16 --- 1.26
16-17 4.3 4.56 0.26 --- 1.52
17-18 4.1 4.56 0.46 --- 1.99

Продолжение табл. 15.6

1 2 3 4 5 6
18-19 4.5 4.56 0.06 --- 2.05
19-20 4.5 4.56 0.06 --- 2.11
20-21 4.5 4.56 0.06 --- 2.18
21-22 4.8 4.56 --- 0.24 1.94
22-23 4.6 4.56 --- 0.04 1.91
23-24 3.3 2.66 --- 0.64 1.26
Час "нулевого" объема : 12:00
"Большая" подача включается в : 4:00
"Большая" подача выключается в : 23:00
"Большая" подача, % 4.564 %
"Малая" подача, % 2.656 %
Объем регулирующей емкости, % 2.179%

Кроме этого, если в конце всего расчета окажется, что QBig < QSmall и BigOn > BigOff, в подпрограмме CalcVolume следует предусмотреть "обмен" часов и подач для приведения в соответствие величины большой подачи ее названию.

Описанные алгоритмы были использованы в программном комплексе REGULAT, разработанном на кафедре водоснабжения и водоотведения Вологодского государственного технического университета.

Пример расчета

Результаты расчета регулирующего объема приведены в табл. 15.6 и на рис. 15.13. Интересно, что объем регулирующей емкости (2,179%) получился даже меньше, чем в примере из литературы (2,5%) /9/.

98

Lib4all.Ru © 2010.
Корпоративная почта для бизнеса Tendence.ru