Программа stat реализует алгоритм модели, который подробно изложен в разделе


Download 1.05 Mb.
Sana26.02.2023
Hajmi1.05 Mb.
#1233321
TuriПрограмма
Bog'liq
Word yozilgani


3.3. Программное обеспечение разработанного метода моделированая
В данном разделе рассматривается программа выполненная на основе методики и алгоритмаб разработанных в диссертационной работе.
STAT–программа определения значений параметров стохастического потокораспределения в трубопроводных инженерных сетях.
Программа STAT реализует алгоритм модели, который подробно изложен в разделе 3.2.
Как видно из блок–схемы, приведенной на рис. 3.11, программа STAT состоит из основной программы, которая производит ввод данных и определяет значения параметров и шести подпрограмм:
I. Подпрограмма СМАТ (C,Y,Z, AIS, LI, M1, M2), предназначена для первоначалъного расчета матрицы С. Входные параметры:
С (I) – действителъный одномерный массив длиной M · Y когда записываются полученная матрица С по строкам;
M, N – количество ветвей и узлов схемы;
Y (1) – вспомогательный одномерный размерностью M · N;
AIS(1) – массив сопротивлений ветвей, размерностью M;
Z(1) – вспомогательный одномерный массив размерностью N;
LI(1) – вспомогательный одномерный целый, 2–х байтовый массив размерностью M;
M1, M2 – одномерные, целый, 2–х байтовые массивы размерностью M, куда записываются начальные и конечные номера узлов и ветвей.
Необходимые подпрограммы:
SINV (AN, EPS, IER) – стандартны подпрограммы обращения треугольной матрицы;
LINEM, COLM – подпрограммы вычисления соодветственно строки и столбца I – й матрица инциденций M.

Рис. 3. II. Блок – схема работы программы STAT.
2. Подпрограмма YMATCC, Y, Z.LI, М1, М2).
Предназначена для вычисления матриц Yij.
C (I) – входной массив матрицы С, записаннай по строкам, размерностью M·N;
Y(I) выходной массив, действительный, длина (M(M–1)/2)+М куда записывается полученная матрица Уij в треугольном виде, 2 только верхняя часть, по строкам, например:

Остальные параметры аналогично пункту I.
Требуемая подпрограмма – COLM.
3. Подпрограмма LINEM (K, M, L, M1, M2)
Предназначена для вычисления строки I – й матрицы инцинденций:
K – какую строку надо определить;
М – количество ветвей в сети;
M1, M2 – аналогично, как и в предыдущих;
L(1) – вспомогательный массив, длиной М.
4. Подпрограмма COLM (K, N, L, M1, M2)
Предназначена для вычисления столбца I–й матрицы инциденций M:
К – номеру столбца, определяемого подпрограммой;
N – количество узлов в схеме.
M1, M2, L(1) – аналогично п.3.
5. Подпрограмма DISPER (C, JS, RO, M, N, ID, H)
Предназначена для вычисления расходов в ветвях Предназначена сети, при заданном значении коэффициента корреляции между ППЦП в узлах.
C(I) – аналогично, п.I;
JS(1) – массив длиной N, действительный, содержит исходные данные о среднеквадратическом отклонении нагрузок узлов сети;
RO – входная, действительная переменная, содержит значение коэффициента корреляции между столбцами расходов в узлах;
M, N – аналогично, п.I;
ID(1) – входной, действительный, одномерный массив длиной М, содержит значение дисперсии расходов в ветвях;
H(1) – вспомогательный одномерный, действительный массив длиной М;
Предназначена для вычисления дисперсии расходов в ветвях сети, при заданном значении коэффициента корреляции между ППЦП в узлах.
C(I) – аналогично, п.I;
JS(1) – массив длиной N, действительный, содержит исходные данные о среднеквадратическом отклонении нагрузок узлов сети;
RO – входная, действительная переменная, содержит значение коэффициента корреляции между столбцами расходов в узлах;
M N – аналогично, п.I;
ID()– входной, действительный, одномерный массив длиной М, содержит значение дисперсии расходов в ветвях;
H(1) – вспомогательный одномерный, действительный массив длиной М ;
Необходимая подпрограмма GMMRR.
6. Подпрограмма GMMRR (C, JMO, H2, M, N, 1) стандартная подпрограмма умножения матрицы на вектор.
Входные параметры:
C(I) – аналогична п.I и п.2;
JMO(1) – массив длиной N , действительный, содержит исходные данные о математическом ожидании
– аналогично п.I;
Входным параметром является одномерный массив H2(I), длиной M ;
7. Подпрограмма NAPUZ (HU, QU, Z)
Предназначена для определения напоров в узлах рассчитываемой сети.
Входные параметры:
HU(1) – действительный вектор напоров в узлах размерностью N;
QU(1) – действительный вектор расходов в узлах размерностью N;
Выходной параметр:
Z(N,N) – действительная матрица узловых сопротивлений размерностью N·N;
8. Подпрограмма NUPBT(HB, HU, M1, M2).
Предназначена для определения потерь напоров в ветвях сети.
Входные параметры:
HU(1) – аналогично п.7;
M1, M2 – аналогично п.I.
Выходной параметр:
HB(1) – действительный вектор потерь напора в ветвях сети размерностью М.
Как было сказано в разделе 3.2, при работе алгоритма имитациионного моделирования работы сети, используется блок А2, предназначенный для расчета формирования линеаризованных значений исходных уравнений. Такой метод расчета предложена в работе Т.Марлоу и другие [I22]. Ниже приводится блок-схема алгоритма A2 разработанного на основе этого метода ( рис 3.12) [IO7].
Алгоритм состоит из 20 этапов.
I. Начало работы блока А2; исходными данными для работы блока
являются Hj, Sj, Qj, где HjϵN – предварительное значение напоров в узлах сети, Si, iϵM – значение сопротивлений линий, Qj, jϵN – значение узловых отборов.
2. Присвоение I → 0, для начало работы счетчика циклов.
3. Счетчик циклов по I, Служит для присвоения значения линеаризованных коэффициентов i – ым элементам формируемой системы уравнений.
4. Присвоение правой части формируемой системы уравнений значения узловых отборов Qj.
5. Анализируем значение сопротивлений линий сети, усли iϵM·Si>0, то переходим к пункту 6. Если ЭiϵM·Si=0 – переход к пункту 7.
6. Формирование линеаризованных значений системы уравнений по формуле:

Где i=1, M; N= 1, n;
7. Присвоение γ значения ноль, для начала работы счетчика циклов.
8. Счетчик циклов, служит для присвоения рассчитанных значитний γ-ым элементам исходных уравнений.
9. Подготовка массива Aij для последующего его использования в работе блока.
10. Настройка программы для вычисления значения линеаризованных коэффициентов, если Si,j≠0, то переходим к пункту II, иначе к пункту I2.
II. Вычисление значения линеаризованных коэффициентов, для
формирования линеаризованной системы уравнений по-ым строкам и j-ым столбцам.
I2. Проверка условия i=j, если определены все значения линеаризуемых коэффициентов по i -ым строкам и j-ым столбцам, то переходим к пункту I3, иначе к пункту 15.
I3. Присвоение K→0, для начало работы счетчика циклов.
I4. Счетчик циклов K- предназначен для присвоения значений диагональным элементам формируемой системы линеаризованных уравнений.
I5. Проверка условия Si,j≠0, если все элементы по диагонали просмотрены, то переходим к пункту I7, иначе к пункту I6.
I6. Вычисление и формирование значений системы линеаризован-
ных уравнений по формуле:

где KϵN
17. Проверка окончания цикла по К - ым элементам, если условие выполняется то переход к пункту I4, иначе к пункту I8.
18. Проверка окончания цикла по j - ым элементам, если условие соблюдается то переходим к пункту 8, иначе к пункту I9.
19. Проверка окончания цикла по i - ым элементам, если условие выполняется то переходим для продолжения пекла, к пункту 3, если не выполняется, то к пункту 20.
20. Окончание счета.
После вычисления значений линеаризующих коэффициентов по вышеуказанному методу составляется на основе этого алгоритма система(N-1) уравнений баланса расходов в узлах сети, далее используя стандартную подпрограмму SIMQ, [I24] методом последовательного приближения, определяем новые значения напоров в узлах сети. Полученные таким методом значение напоров считается правильным, если выполняется условие Ꜫ≤0,01, где Ꜫ - разность полученных значений напоров в i и i+1 шаге решения системы линейных уравнений.
9. Подпрограмма RADEN (SIG, FMO, R)
Предназначена для получения значения случайного расхода распределенного по нормальноу закону, с математическим ожиданием FMO и среднеквадратичным отклонением расхода Ϭ -SIG.
Входные параметры: FMO и SIG.
Необходимая подпрограмма REGUL.
I0. Подпрограмма REGU(X).
Предназначена для получения случайныхо чисел с равномерным законы распределения в интервале 0 + I.
Входные параметри X - случайное число.
Необходимые подпрограммы:
BLOK1 - подпрограмма управления и формирования случайных чисел для последующего использования его черезь общие блокив главной подпрограмме.
BLOCK DATA - подпрограмма предназначена для присвоения начальных значений переменным из именованных общих областей.
Download 1.05 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling