4.4. Моделирование системного времени Модель всей системы обычно представляется в виде структурной схемы, состоящей из модулей (моделей компонентов) и информационных связей (стрелок). С каждой стрелкой ассоциируется некоторая переменная, которая может принимать те или иные значения. Значение переменной присваивается в том модуле, из которого выходит связанная с ней стрелка. То есть для каждой переменной есть единственный модуль, в котором она генерируется или вырабатывается. Значение переменной может использоваться во многих модулях, а именно в тех, куда направлена соответствующая входящая стрелка.
Рис. 4.41. Фрагмент покомпонентной модели с явной "разводкой" переменной tM
Для динамических моделей одна переменная - время - является выделенной переменной, поскольку она используется во всех остальных модулях. Для ее реализации должен быть специальный модуль, который генерирует и подает в нужном формате во все остальные модули значение системного (модельного) времени tM (modeling time). Процесс моделирования также осуществляется во времени, но это уже другое время, назовем его временем прогона tR (run time).
В данном разделе пойдет речь реализации модельного времени tM.Ввиду очевидности использования переменной tM ее зачастую явно вообще не объявляют1, а соответствующие линии со стрелками на схеме не показывают. Несмотря на интуитивную ясность проблема представления модельного времени существует и ее так или иначе приходится решать, по крайней мере на этапе составления компьютерной программы.
Существую два основных метода представления модельного времени:
МФШ - метод фиксированного шага;
МПШ - метод переменного шага.
МФШ - в этом случае временные метки (или значения времени в какой-то шкале, чаще в равномерной), соответствующие заранее определенным моментам времени, выдаются с помощью специального модуля - генератора времени - и распространяются по всем остальным динамическим модулям модели. При этом метки времени выдаются независимо от того, происходят или не происходят заданные события в модели.
Пример: представление сигналов в виде массивов отсчетов после равномерной дискретизации и обработка массивов путем последовательного их перебора (просмотра в цикле по номеру отсчета). Здесь модельное время представляется в виде tM=i·Δt, где i - номер временного шага, Δt - его длительность. Важно отметить, что в программе явно используется только "дискретное время" -, которое генерируется обычно с помощью оператора цикла (i используется в качестве счетчика циклов). Для перехода к "физическому" модельному времени необходимо знать величину Δt, которая явно в программе может отсутствовать, поскольку при обработке массивов отсчетов непосредственно не используется.
Достоинства МФШ:
1) простота реализации механизма времени в модели;
2) простота синхронизации прогона разных модулей.
Недостатки МФШ:
1) требуется априорно решать задачу выбора временного шага Δt;
2) возможна потеря существенной информации при большом Δt;
3) возможно качественное ухудшение модели (потеря устойчивости, сходимости, возникновение неадекватных эффектов и т.п.).
МПШ - здесь значения переменной tM (модельное время) вырабатывается одним из модулей в качестве выходной величины на основании величин, получаемых в ходе моделирования в других модулях. То есть в данном случае время есть зависимая величина. При этом временные метки выдаются только для тех моментов модельного времени, когда в модели происходят заданные существенные события.
Пример: в модели системы массового обслуживания время наступления очередного события (запроса) tMi моделируется с помощью генератора псевдослучайных чисел непосредственно в процессе моделирования.
Достоинства МПШ:
1) экономится память и процессорное время при моделировании существенно нерегулярных событий;
2) не требуется решать задачу априорного выбора шага Δt;
3) сохраняется инвариантность1 причинно-следственных связей в объекте и в модели.
Недостатки МПШ:
1) нужно уметь находить время наступления очередного события в процессе моделирования (то есть, нужен алгоритм генерирования величины отрезка времени до следующего события);
2) применим в чистом виде только для моделирования систем с дискретными событиями.
|