Программа stat реализует алгоритм модели, который подробно изложен в разделе
Download 1,05 Mb.
|
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 2025
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling