«Самарский государственный технический университет»
РЕФЕРАТ
ПО ДИСЦИПЛИНЕ « Компьютерное моделирование »
ТЕМА: «Виды управления модельным временем.
Управляемые подсистемы.»
Выполнил студент:
Краснов С.П. ЗФ III курс 41гр.
Проверил преподаватель:
Федотов Ю.А.
Самара 2015
Управление модельным временем
Виды представления времени в модели
Приступая к изучению механизмов управления модельным временем, уместно поговорить о том, какую роль вообще играет время в имитационном моделировании. При знакомстве с имитационным экспериментом мы отмечали, что он представляет собой наблюдение за поведением системы в течение некоторого промежутка времени. Конечно, далеко не во всех статистических испытаниях фактор времени t играет ведущую роль, а в некоторых и вообще может не рассматриваться. Вспомните, например,, задачу о вычислении площади круга: полученный результат не зависел от того, сколь долго мы «бомбили» квадрат случайными точками (речь в данном случае не идет о количестве этих точек). Но значительно больше задач, в которых оценка эффективности моделируемой системы напрямую связана с временными характеристиками ее функционирования. К ним относятся упоминавшиеся уже задачи по оценке производительности, некоторые задачи по оценке надежности, качества распределения ресурсов, а также все задачи, связанные с исследованием эффективности процессов обслуживания. Характерной особенностью большинства практических задач является то, что скорость протекания рассматриваемых в них процессов значительно ниже скорости реализации модельного эксперимента. Например, если моделируется работа вычислительного центра в течение недели, вряд ли кому-то придет в голову воспроизводить этот процесс в модели в таком же масштабе времени. С другой стороны, даже те имитационные эксперименты, в которых временные параметры работы системы не учитываются, требуют для своей реализации определенных затрат времени работы компьютера.
В связи с этим при разработке практически любой имитационной модели и планировании проведения модельных экспериментов необходимо соотносить между собой три представления времени:
реальное время, в котором происходит функционирование имитируемой системы;
модельное (или, как его еще называют, системное) время, в масштабе которого организуется работа модели;
машинное время, отражающее затраты времени ЭВМ на проведение имитации.
С помощью механизма модельного времени решаются следующие задачи:
отображается переход моделируемой системы из одного состояния в другое;
производится синхронизация работы компонент модели;
изменяется масштаб времени «жизни» (функционирования) исследуемой системы;
производится управление ходом модельного эксперимента;
моделируется квазипараллельная реализация событий в модели.
Приставка «квази» в данном случае отражает последовательный характер обработки событий (процессов) в ИМ, которые в реальной системе возникают (протекают) одновременно.
Необходимость решения последней задачи связана с тем, что в распоряжении исследователя находится, как правило, однопроцессорная вычислительная система, а модель может содержать значительно большее число одновременно работающих подсистем. Поэтому действительно параллельная (одновременная) реализация всех компонент модели невозможна. Даже если используется так называемая распределенная модель, реализуемая на нескольких узлах вычислительной сети, совсем не обязательно, что число узлов будет совпадать с числом одновременно работающих компонент модели. Немного забегая вперед, следует отметить, что реализация квазипараллельной работы компонент модели является достаточно сложной технической задачей. Некоторые возможные методы ее решения рассматриваются в следующей лекции.
Существуют два метода реализации механизма модельного времени — с постоянным шагом и по особым состояниям.
Выбор метода реализации механизма модельного времени зависит от назначения модели, ее сложности, характера исследуемых процессов, требуемой точности результатов и т. д.
Изменение времени с постоянным шагом
При использовании данного метода отсчет системного времени ведется через фиксированные, выбранные исследователем интервалы времени. События в модели считаются наступившими в момент окончания этого интервала. Погрешность в измерении временных характеристик системы в этом случае зависит от величины шага моделирования t.
Метод постоянного шага целесообразно использовать в том случае, если:
события появляются регулярно, их распределение во времени достаточно равно-| мерно;
число событий велико и моменты их появления близки;
невозможно заранее определить моменты появления событий.
Данный метод управления модельным временем достаточно просто реализовать в том случае, когда условия появления событий всех типов в модели можно представить как функцию времени.
Пусть, например, событие состоит в том, что летящий самолет пересекает некоторый воздушный рубеж, расстояние до которого равно R. Если самолет движется по прямой с постоянной скоростью V, можно вычислять путь, пройденный самолетом, с интервалом времени t: S=S+V-At. Соответственно, событие считается наступившим, если выполняется условие S>R, а момент времени наступления события принимается равным n-t, где n — номер шага моделирования, на котором условие стало истинным.
В общем виде алгоритм моделирования с постоянным шагом представлен на рис. 1 ( — текущее значение модельного времени, — заданный интервал моделирования), а для рассмотренного выше примера с самолетом — на рис. 2. Обратите внимание на то, что в отличие от обобщенного алгоритма, в приведенном примере моделирование завершается не по истечении заданного интервала времени, а при наступлении интересующего нас события. В связи с этим необходимо еще раз подчеркнуть, что при моделировании с постоянным шагом результат моделирования напрямую зависит от величины этого шага. Причем, если шаг будет слишком большим, то результат, скорее всего, будет неверным: момент окончания очередного шага очень редко будет совпадать с реальным моментом пересечения самолетом заданного рубежа. Такая ситуация показана на рис. 3.
Рис. 1. Алгоритм моделирования с постоянным шагом
Рис. 2. Пример моделирования с постоянным шагом
Рис. 3. Зависимость результата эксперимента от шага модельного времени
На рисунке использованы следующие обозначения:
tm1 —ось модельного времени при использовании шага t1;
tm2 —ось модельного времени при использовании шага t2
tp — ось реального времени;
ТR — реальный момент пересечения самолетом рубежа; ;
ТR1, TR2 — моменты пересечения рубежа, полученные для соответствующих величин t.
Приведенный пример призван обратить внимание на то, что выбор величины шага моделирования является нелегким и очень важным делом. Универсальной методики решения этой проблемы не существует, но во многих случаях можно использовать один из следующих подходов:
принимать величину шага равной средней интенсивности возникновения событий различных типов;
выбирать величину шага равной среднему интервалу между наиболее частым (или наиболее важными) событиями.
Изменение времени по особым состояниям
При моделировании по особым состояниям системное время каждый раз изменяется на величину, строго соответствующую интервалу времени до момента наступления очередного события. В этом случае события обрабатываются в порядке их наступления, а одновременно наступившими считаются только те, которые являются одновременными в действительности.
Для реализации моделирования по особым состояниям требуется разработка специальной процедуры планирования событий (так называемого календаря событий). Если известен закон распределения интервалов между событиями, то такое прогнозирование труда не составляет: достаточно к текущему значению модельного времени добавить величину интервала, полученную с помощью соответствующего датчика.
Пусть, например, за летящим самолетом, фигурировавшем при описании моделирования с постоянным шагом, наблюдает диспетчер. Он вводит информацию о самолёте, причем интервалы между вводом двух соседних сообщений являются случайными величинами, распределенными по нормальному закону с заданными параметрами Иллюстрация к такой ситуации приведена на рис. 4 (Тс — момент ввода очередного сообщения, t—случайный интервал).
Рис. 4. Изменение модельного времени по особым состояниям.
Если же момент наступления события определяется некоторыми логическими условиями, то необходимо сформулировать эти условия и проверять их истинность для каждого последующего шага моделирования. Практика показывает, что сложности в реализации механизма изменения времени по особым состояниям связаны в первую очередь с корректным описанием таких условий. Трудности еще более возрастают, если в модели фигурируют несколько типов взаимосвязанных событий.
Моделирование по особым состояниям целесообразно использовать, если:
события распределяются во времени неравномерно или интервалы между ними велики;
предъявляются повышенные требования к точности определения взаимного положения событий во времени;
необходимо учитывать наличие одновременных событий.
Дополнительное достоинство метода заключается в том, что он позволяет экономить машинное время, особенно при моделировании систем периодического действия, в которых события длительное время могут не наступать.
Обобщенная схема алгоритма моделирования по особым состояниям представлена на рис. 5 (tco6.i — прогнозируемый момент наступления i-го события).
Риc. 5. Алгоритм моделирования по особым состояниям
Чтобы «почувствовать разницу» в использовании двух методов управления модельным временем, вернемся к примеру с диспетчером. Дополним его следующим условием: необходимо подсчитать число сообщений, которые успеет ввести диспетчер в течение заданного интервала моделирования.
Прежде всего необходимо ответить на вопрос: что понимать под «особыми состояниями», которые должны влиять на изменение модельного времени? На практике обычно вместо состояний рассматривают события, определяющие смену состояний моделируемого процесса. Для процесса ввода информации диспетчером такой переход выполняется достаточно просто: событие — это ввод очередного сообщения; другими словами, ввод очередного сообщения «продвигает» модельное время соответствующий интервал. Так, если интервалы между сообщениями подчиняются нормальному закону с параметрами m и s, то очередное i-е значение модельного времени tm( i) определяется следующим образом:
tm(i)=tm(i-1)+norm(m, s)
В этом выражении слагаемое norm(m, s) означает обращение к генератору чисел, распределенных по нормальному закону.
Алгоритм работы модели приведен на рис. 6 (N — число введенных сообщений).
Рис. 6. Пример работы модели по особым состояниям
Подведем итоги изложенному в этом разделе.
Выбор механизма изменения модельного времени определяет технологию реализации имитационной модели.
На выбор метода моделирования влияет целый ряд факторов, однако определяющим является тип моделируемой системы: для дискретных систем, события в которых распределены во времени неравномерно, более удобным является изменение модельного времени по особым состояниям.
Если в модели должны быть представлены компоненты реальной системы, работа которых измеряется в разных единицах времени, то они должны быть предварительно приведены к единому масштабу.
Подсистема это фрагмент Simulink-модели, оформленный в виде отдельного блока. Использование подсистем при составлении модели имеет следующие положительные стороны:
Уменьшает количество одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).
Позволяет создавать и отлаживать фрагменты модели по отдельности, что повышает технологичность создания модели.
Позволяет создавать собственные библиотеки.
Дает возможность синхронизации параллельно работающих подсистем.
Позволяет включать в модель собственные справочные средства.
Дает возможность связывать подсистему с каким-либо m-файлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы).
Использование подсистем и механизма их блоков позволяет создавать блоки, не уступающие стандартным по своему оформлению (собственное окно параметров блока, пиктограмма, справка и т.п.).
Количество подсистем в модели не ограничено, кроме того подсистемы могут включать в себя другие подсистемы. Уровень вложенности подсистем друг в друга также не ограничен.
Связь подсистемы с моделью (или подсистемой верхнего уровня иерархии) выполняется с помощью входных (блок Inportбиблиотеки Sources) и выходных (блок Outport библиотеки Sinks) портов. Добавление в подсистему входного или выходного порта приводит к появлению на изображении подсистемы метки порта, с помощью которой внешние сигналы передаются внутрь подсистемы или выводятся в основную модель. Переименование блоков Inportили Outportпозволяет изменить метки портов, отображаемые на пиктограмме подсистемы со стандартных (In и Out) на те, которые нужны пользователю.
Подсистемы могут быть виртуальными (Subsystem) и монолитными (AtomicSubsystem). Отличие этих видов подсистем заключается в порядке выполнения блоков во время расчета. Если подсистема является виртуальной, то Simulink игнорирует наличие границ отделяющих такую подсистему от модели при определении порядка расчета блоков. Иными словами в виртуальной системе сначала могут быть рассчитаны выходные сигналы нескольких блоков, затем выполнен расчет блоков в основной модели, а затем вновь выполнен расчет блоков входящих в подсистему. Монолитная подсистема считается единым (неделимым) блоком и Simulink выполняет расчет всех блоков в такой подсистеме, не переключаясь на расчеты других блоков в основной модели. Изображение монолитной подсистемы имеет более толстую рамку по сравнению с виртуальной подсистемой.
Подсистемы могут быть также управляемыми или неуправляемыми. Управляемые подсистемы всегда являются монолитными. Управляемые подсистемы имеют дополнительные (управляющие) входы, на которые поступают сигналы активизирующие данную подсистему. Управляющие входы расположены сверху или снизу подсистемы. Когда управляемая подсистема активизирована – она выполняет вычисления. В том случае если управляемая подсистема пассивна, то она не выполняет вычисления, а значения сигналов на ее выходах определяются настройками выходных портов.
Для создания в модели подсистемы можно воспользоваться двумя способами:
Скопировать нужную подсистему из библиотеки Subsystem в модель.
Выделить с помощью мыши нужный фрагмент модели и выполнить команду Create Subsystemиз менюEditокна модели. Выделенный фрагмент будет помещен в подсистему, а входы и выходы подсистемы будут снабжены соответствующими портами. Данный способ позволяет создать виртуальную неуправляемую подсистему. В дальнейшем, если это необходимо, можно сделать подсистему монолитной, изменив ее параметры, или управляемой, добавив управляющий элемент из нужной подсистемы находящейся в библиотеке. Отменить группировку блоков в подсистему можно командой Undo.
Рис. 7 иллюстрирует процесс создания подсистемы вторым способом. На рис. 8 показан результат этого процесса. В примере использована модель управляемого функционального генератора.