- •Введение
- •1. Концептуальные модели
- •2. Языки моделирования
- •3. Способы дискретного моделирования
- •4. Событийное моделирование
- •4.1. Общие положения
- •4.2. Алгоритм дискретно-событийной имитации
- •4.3. Пример событийной модели
- •5. Сканирование активностей
- •6. Процессно-ориентированный подход
- •7. Непрерывное имитационное моделирование
- •7.1. Общие положения
- •7.2. Алгоритм интегрирования рунге-кутта-фелберга
- •7.3. Пример непрерывно-дискретной модели
- •8.1. Стохастические системы и процессы
- •8.2. Вероятность
- •8.3. Законы распределения
- •8.4. Генерация псевдослучайных чисел
- •8.5. Основные понятия математической статистики
- •9. Системы имитационного моделирования
- •9.1. Gpss
- •9.2. Слам II
- •9.3. Matlab
- •9.4. BpSimulator
- •9.5. Uml
- •9.6. Rational Rose
- •9.7. AnyLogic
- •10. Технология имитационного моделирования
7. Непрерывное имитационное моделирование
7.1. Общие положения
При непрерывном имитационном моделировании поведение исследуемого объекта обычно отображается, помимо прочего, набором уравнений - алгебраических, разностных или дифференциальных. Уравнения помещаются в особую процедуру STATEв порядке, определяемом языком программирования и позволяющем производить
Инициализация
переменных
Планирование
событий
Извлечение первого
события
Обновление TNOW
Обработка события
Отчет по прогону
Итоговый отчет
Нет
Да
Да
Нет
Планированиепоступления в
следующий узел
Нет
Освобождение
действия
Да
Да
Нет















Рис. 6.1. Алгоритм
работы процессно-ориентированной
модели
вычисления, не приводящие к неопределенностям.
Зависимые переменные модели составляют группу переменных состояния (структурных переменных) SS(I), имеющих начальное значениеSSL(I). РасчетSS(I) ведется либо по типуSS(I) =f(SSL(I),TNOW) (общая алгебраическая форма), либо в виде разностного уравнения:SS(I) =SSL(I)+ +DTNOW*RATE(I), гдеRATE(I) - темп (скорость) изменения переменнойSS(I). В дифференциальных уравнениях вместоRATE(I) используется переменнаяDD(I) - производная отSS(I) - с начальным значениемDDL(I) в моментTTLAS(конец предыдущего шага времени):
SS(I) =SSL(I)
+
,
где DTFUL- шаг интегрирования.
На любом временном отрезке интегрирования DTFULобычно процедураSTATEвызывается несколько раз для уточнения производнойDD(I), поэтому модельное время продвигается с шагомDTNOW, составляющим часть отDТFUL. Последний, в свою очередь, зависит от ряда условий. Поэтому в общем случаеDTNOW=f(DТFUL), аDDFUL=min[DTACC,TTSAV-TTLAS,TNEXT-TTLAS], гдеDTACC- шаг интегрирования, гарантирующий точность (зависит от метода численного решения уравнений) и меняющийся, с учетом текущей погрешности расчетов, в пределах отDTMINдоDTMAX(задаются пользователем);TTSAV- момент сбора статистических данных;TNEXT- время свершения ближайшего основного события.
Если в модели возможны структурные события, их время возникновения предсказать невозможно. Поэтому DDFULне учитывает указанные события и их времена. Однако после проведения всех требуемых расчетов шагаDTFULв случае выполнения условий возникновения событий интервалDTFULвычитается изTNOW, уменьшается, и проверка условий продолжается, как было изложено ранее. Следует обратить внимание на то, что при неопределенности инициализации переменных (например, они еще не известны) в правой части выражения
DDFUL=min[TTSAV-TTLAS,TNEXT-TTLAS] всем неизвестным переменным необходимо задать максимально возможные значения.
Если численное интегрирование не используется, продвижение модельного времени выполняется по какому-либо упрощенному алгоритму, не учитывающему DDFUL, например, путем последовательного наращиванияTNOWс шагомDTNOW=min[TTSAV-TTLAS,TNEXT-TTLAS]. В более простых ситуациях шагDTNOWможет быть постоянным.
