Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛИРОВАНИЕ ПРОЦЕССОВ И СИСТЕМ / Консп_лекц_МПиС_бак_очн_14г(нужно от 16 стр.).doc
Скачиваний:
112
Добавлен:
21.03.2016
Размер:
2.3 Mб
Скачать

7.2. Алгоритм интегрирования рунге-кутта-фелберга

Это самозапускающийся метод с переменным размером шага, позволяющий интегрировать системы обыкновенных дифференциальных уравнений первого порядка, представленных в виде

()=((),)

и при начальных условиях (), где()=,() - в общем случае вектор. Причем()=SS(I),()=DD(I),()=SSL(I).

Алгоритм представляет собой одношаговую процедуру, включающую вычисление шести функций в течение шага =DTFUL. Пусть=+, где=TTLAS. Для вычислениянадо решить следующие уравнения:

=((),), где()=() (начальный уровень);

=(()+,+);

=(()++,+);

=(()+-+,+);

=(()+-+-,+);

=(()-+-+-,+);

EERR=--++;

()=()+++-;

TERR=AAERR+RRERR*(),

где AAERR,RRERR- заданные пользователем значения абсолютной и относительной ошибок. ЕслиEERRTERR, значение() считается допустимым. ЕслиQ=EERR/TERR1, значениеуменьшают; еслиQ1, значениеувеличивают; всегдаDTMIN=/Q1/5=DTACCDTMAX.

7.3. Пример непрерывно-дискретной модели

Рассмотрим упрощенный процесс приема данных, поступающих в базу данных равномерно с шагом DTNOW. В базе данных сначала заполняются единичные ячейки с общим объемом К3=150, затем ячейки половинного размера. Вся база данных имеет объемZP=200 единиц. После ее заполнения начинается обработка всего массива поступившей информации. Необходимо определить время заполнения единичных ячеек и общее время приема данных.

Выбор концептуальной модели. В самой постановке задачи нет явных сведений о наличии функциональной зависимости между какими-либо параметрами и временем. Поэтому возможны различные подходы к моделированию информационных процессов.

Если представить разрабатываемую модель как дискретную с основными событиями трех классов (приход порции данных, заполнение крупных ячеек, заполнение мелких ячеек), то неудобным обстоятельством оказывается большое количество реализаций событий (150 событий заполнения единичных ячеек, 100 событий заполнения ячеек половинного размера).

Если составить несложные уравнения процесса заполнения ячеек и выделить два класса структурных событий (окончание заполнения крупных ячеек и окончание заполнения всей базы данных), то общее количество реализаций событий окажется равным только двум.

Процедура проверкиусловий возникновения событийSEVNTдолжна вырабатывать два значенияI:

SUBROUTINE SEVNT

COMMON …

IF(ZP.EQ.200) GOTO 2

IF(K.EQ.K3) GOTO 1

RETURN

1 I=1

CALL EVENT(I)

RETURN

2 I=2

CALL EVENT(I)

RETURN

END

Здесь первый оператор IFпроверяет окончание приема всех данных, а второй - заполнение крупных ячеек (К - текущее число принятых элементарных пакетов). Таким образом, формально налицо два класса структурных событий: первый класс определяется условиемIF(K.EQ.K3), второй -IF(ZP.EQ.200).

Подпрограмму уравненийSTATEпредставим в следующем виде:

SUBROUTINE STATE

COMMON…

IF(K.GE.K3) GOTO 1

K1=K1+1

GOTO 2

1 K1=K3

K2=K2+1

2 ZP=K1*EZP1+K2*EZP2

K=K1+K2

RETURN

END

Вначале, при КК3, растет количество заполненных единичных ячеек К1 (определим начальное значение К1=0). Затем идет переход по метке 2 и рассчитывается общий объем заполненияZP(EZP1 - размер крупной, аEZP2 - размер мелкой ячеек; К2 - число заполненных ячеек половинного размера с начальным значением К2=0). Далее рассчитывается общее число К заполненных ячеек для последующих проверок состояния базы данных. Когда текущее К=К3, следует переход по метке 1, число К1 больше не меняется, растет количество заполненных ячеек половинного объема, что учитывается в следующем операторе дляZP.

Если второе структурное событие в рассматриваемом примере традиционно по своему назначению (окончание имитации), то первое существенно меняет ход самой имитации, поскольку приводит к вариации K2 вместоK1. Кроме того, так как необходимые условия для возникновения этих событий (см. процедуруSEVNT) выполняются с предельной для ЭВМ точностью, соответствующие временаTSOBдолжны быть приняты равными моментамTNOW, при которых выполняются указанные условия. Таким образом, уточнениеTSOBне имеет смысла, и сканирование активностей в данном случае использовано в узком плане.

Процедура поискапрограммы реализации событийEVENTимеет обычный вид:

SUBROUTINE EVENT(J)

GOTO(1,2),J

  1. CALL SOB1

RETURN

  1. CALL SOB2

RETURN

END

Коды событий (J), передаваемые в подпрограмму, используются оператором переходаGOTO(1,2),Jдля вызова соответствующей процедуры обработки -SOB1,SOB2.

Процедура обработки событий первого классазапоминает время, соответствующее заполнению единичных ячеек:

SUBROUTINE SOB1

COMMON…

TSOB1=TNOW

RETURN

END

Поскольку вызов SOB1 происходит из процедурыEVENTсразу после проверки условий в модулеSEVNTдля событияSOB1 в моментTNOW, это время оказывается равнымTSOB1, что и фиксируется операторомTSOB1=TNOW. Значение переменнойTNOWпередается в процедуруSOB1 через общую областьCOMMON.

Процедура обработки событий второгокласса имеет аналогичный вид:

SUBROUTINE SOB2

COMMON…

TSOB2=TNOW

RETURN

END

Здесь, как и в предыдущем случае, вызов SOB2 производится изEVENTпри выполнении условий возникновения событияSOB2 в момент времениTNOW. Сказанное формально подтверждается операторомTSOB2=TNOW.

Модуль управления имитациейможет содержать операторы задания времени или вызов соответствующей процедурыPTNOWизменения системного времени:

SUBROUTINE SLAM

COMMON…

  1. CALL INTLC

  2. CALL PTNOW

IF(TNOW.GE.TSOB2) GOTO 1

CALL STATE

CALL SEVNT

GOTO 4

  1. CALL OTPUTN

IF(NRNS.GE.NNRNS) GOTO 2

GOTO 3

  1. CALL OTPUT

RETURN

END

После INTLCвызывается программаPTNOWдля изменения модельного времени. Первый операторIFделает проверку на окончание прогона. Если прогон продолжается, в очередной раз вызывается процедураSTATE, вычисляются переменные модели (время, определяющее параметры К1 и К2 вSTATE, используется неявно через последовательные вызовыPTNOWиSTATE, что каждый раз приводит к увеличению К1 или К2 на единицу в соответствии с очередным приращениемTNOW). Если прогон должен быть завершен, переход по метке 1 приводит к оформлению прогонного отчета. Дальнейшая проверка вторым операторомIFпоказывает направление работы (к следующему прогону по метке 3 или к окончанию имитации - метка 2). Очевидно, что к этому моменту значенияNRNSиNNRNSдолжны быть известны.NNRNS(всепрогонный параметр) и начальное значениеNRNS(прогонные параметры) задаются в главном модуле.

Процедура изменения времениможет быть достаточно простой:

SUBROUTINE PTNOW

COMMON…

TNOW=TNOW+DTNOW

RETURN

END

Алгоритм изменения системного времени не предусматривает реверса и коррекции, как было пояснено выше. Шаг DTFULотсутствует, так как нет численного интегрирования. ИнтервалDTNOWпостоянен, поскольку отсутствуют другие компоненты времени, требующие учета –TTSAVиTNEXT.

Процедура INTLCсодержит операторы инициализации прогонных переменных (в том числе момента начала прогона):

SUBROUTINE

COMMON…

NRNS=NRNS+1

ZP=0.

TNOW=TTBEG

K1=0

K2=0

RETURN

END

Главный модульзадает значения всепрогонных, а также начальное значение прогонного параметраNRNSдля первого прогона:

COMMON…

NNRNS=1 (один прогон, для учебных целей)

NRNS=0

TTBEG=0

TTFIN=900

DTNOW=2.

EZP1=1.

EZP2=.5

K3=150

CALL SLAM

STOP

END

Процедуры выводаOTPUTNиOTPUTдля непрерывного моделирования не отличаются по функциям от аналогичных подпрограмм дискретных моделей.

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

8. СТАТИСТИЧЕСКИЕ АСПЕКТЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ