КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Часть 2. Имитационное моделирование 1 страница
N 116 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 117
лена функция, имитирующая интервалы времени между прибытиями автомобилей на заправочную станцию. Поэтому для имитации потока автомобилей достаточно вставить в поле Mean Time соответствующего блока вызов функции INT. Использование функций повышает лаконичность и наглядность описания модели. Пример 5. Имитация случайных величин, заданных эмпирическим распределением (таблицей) В качестве примера описания в окне рис. 2.25 мы использовали функцию датчика случайных чисел, определенных эмпирическим законом распределения вероятностей. Такой закон обычно задается таблицей. Здесь приведен пример такой таблицы и краткий комментарий к составлению алгоритма вычисления функции INT.
Из данных, приведенных в таблице, следует, что в 25 % наблюдений интервалы времени между прибытиями автомобилей на автостанцию оказались меньше 100 сек, в 23 % (0,48—0,25) — от 100 до 200 сек, в 21 % (0,69—0,48) — от 200 до 300 сек и т. д. Датчик случайных чисел, имитирующий интервалы времени между приходами автомобилей, строится по простой схеме: сначала разыгрывается интервал (строка) таблицы, а затем число внутри этого интервала: {определение случайного числа R между 0 и 1} R:= random(); {определение случайного числа между 0 и 600} {определение случайного числа между 0 и 100} if R<0.25 then randomlnt(0,100) else {определение случайного числа между 100 и 200} if R<0.48 then randomlnt(100,200) else {далее аналогично } if R<0.69 then randomlnt(200,300) else if R<0.81 then randomlnt(300,400) else if R<0.9 then randomlnt(400,500) else randomlnt(500,600); Динамика моделирования Запуск и выполнение модели определяют динамический процесс моделирования. Этот процесс визуально отображается в двух формах: в виде процессов прохождения тэгов через структуру модели и в виде анимационных картин. Первая форма отображения связана с закрашиванием тех блоков модели, в которых в текущий момент времени находятся тэги, и с изображением тэгов, скапливающихся в определенных «узких» местах (в очередях или перед блоками с ограниченным доступом). Очередь, в которой находятся тэги, закрашивается так же, как и занятые блоки, а сами тэги изображаются символами. Вместо индивидуального изображения тэгов на диаграмме исполняемой модели может указываться общее количество тэгов в блоке, перед блоком или в очереди. Установки отображения тэгов в динамике работы модели назначаются в окне рис. 2.12 (Show Entities With). Выбор «Symbols» определяет индивидуальное отображение тэгов символами, выбор «Numbers» — отображение общего количества тэгов. Рисунок 2.26 иллюстрирует две формы отображения одного и того же состояния, наблюдаемого в динамике выполнения модели приме- Часть 2. Имитационное моделирование Дополнительные методы и средства имитации
ра 1. Отображаемое состояние характеризуется тем, что в каждом из двух блоков модели находится по одному тэгу, а в очереди стоят 12 тэгов, ожидающих освобождения бензоколонки. Форма анимационных картин (рис. 2.12 — Action View Functions) используется главным образом для презентации моделей. Средства анимации Micro Saint рассматриваются ниже. Отладка моделей При описании моделей в текстовых фрагментах могут быть допущены различные ошибки. Обнаружение и идентификация таких ошибок обычно проводятся в динамике выполнения модели, при этом пользователю выдается сообщение об ошибке. Получив такое сообщение, следует найти ошибку, исправить ее и продолжить выполнение модели или заново запустить модель. Ниже приводятся некоторые типичные примеры сообщений об ошибках. • Message Syntax ERROR Job 1 tag:=tag+l Semicolon expected at end. (в конце ожидается точка с запятой) • Message s:=l; Unrecognized word (неизвестное слово) • Message Matherror couldn't create the dialog box (Математическая ошибка не дает создать область диалога) Любое сообщение об ошибке начинается со слова Message. Первый тип сообщения — наиболее полный. В нем содержится тип ошибки (синтаксическая), место локализации ошибки (блок 1), выражение, в котором зафиксирована ошибка (tag:=tag+l) и собственно вид ошибки (в конце ожидается точка с запятой). При получении такого сообщения ошибку исправить легче всего для этого надо открыть окно описания блока 1, найти нужное выражение и вставить в конец его знак «;». (Попутно заметим, что этот знак должен «закрывать» любой оператор модели.) Второй тип сообщения не содержит места локализации ошибки. Здесь просто приводится выражение (s:=l;) и констатируется, что система не может распознать переменную s. Как правило, это связано с тем, что такую переменную забыли включить в список переменных. Устранение ошибки связано, таким образом, с включением переменной (или функции) в соответствующий список. Третий тип ошибки обычно связан с использованием переменной типа Array of Integers или Array of Reals. Ошибка заключается в том, что размерность массива недостаточна и ее следует увеличить. Обычно для этого нужно в окне описания соответствующей переменной в строке «first (second, third) index numbered 0 through 10» увеличить последнее число: «through 1000». Такая ошибка обычно возникает при использовании в качестве индекса массива переменной tag (например, tag:=tag+l; f[tag]:=l, и f описана как Array of Integers или Array of Reals). Все другие виды сообщений об ошибках по форме похожи на приведенные примеры. Однако наряду с рассмотренными видами ошибок, которые могут быть обнаружены исполнительной системой, в модели могут присутствовать семантические ошибки, которые может распознать только человек — разработчик и пользователь модели. Например, по замыслу разработчика должно использоваться выражение tag:=tag+l;, а в модель введено выражение tag:=tag— 1;. Формально (синтаксически) оно правильно, но результаты, полученные на такой модели, будут неадекватны исследуемой системе. Такие ошибки обнаружить достаточно трудно. В этом смысле может оказаться полезным использование исполнительного монитора (execution monitor), окно которого открывается кнопкой В этом _)ис. 2.27) отображаются значения переменных, ко- торые изменяются в процессе моделирования и характеризуют с точки зрения пользователя адекватность имитационной модели исследуемой системы. Рис. 2.27. Окно исполнительного монитора Любая- модификация записи в окне исполнительного монитора реализуется двойным кликом на соответствующей строке, а добавление новой записи производится уже известной нам кнопкой f-g. И в том и в другом случае открывается окно для ввода выражений, которые используются исполнительным монитором (рис. 2.28). В поле expression to be evaluated вводятся выражения, значения которых могут характеризовать адекватность модели. Пользователь, на- 120 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 121
Рис. 2.28. Окно ввода выражений для исполнительного монитора блюдая динамику изменений этих значений, может оценить, насколько правдоподобно поведение отлаживаемой модели. Календарь событий Модельное время — это системная переменная, имитирующая ход часов реального времени, в котором «живет» и развивается исследуемая система. Имитация хода реального времени основывается на концепции событий, которые связаны с изменениями состояния модели. Такие события упорядочены по времени их возникновения в специальной структуре — календаре (расписании) событий. Пересчет модельного времени связан с выбором ближайшего по времени события из календаря и «переводом стрелок часов» модельного времени на момент возникновения этого события. Такая схема предполагает, что события могут следовать одно за другим через интервалы времени разной величины, включая и ноль (одновременно происходящие события). Таким образом, календарь событий представляет собой своеобразный сценарий моделирования. Каждое событие такого сценария связано с выполнением определенного набора действий, которые должны произойти в тот или иной момент времени, по тому или иному условию. Сценарий содержит события двух типов: 1) события, связанные с изменением текущего состояния системы 2) запланированные события, специально введенные в календарь
События первого типа полностью определяются структурой модели и описанием ее элементов, события второго типа управляют компьютерным экспериментом. Такое управление может быть связано с остановкой модели, установкой новых значений переменных в процессе моделирования, выполнением дополнительных вычислений по окончании этапа моделирования и т. п. Планирование событий в календаре обычно используется для обработки промежуточных результатов компьютерного эксперимента и внесения необходимых изменений в динамике интерпретации модели. В качестве примера использования календаря событий для управления экспериментом приведем планирование события остановки модели. Допустим, что нам необходимо остановить модель примера 1 через 1 сутки работы заправочной станции: 1 сутки= 24(час)*60 (мин/час)=1440 (мин). Для планирования такого события кнопкой открываем окно календаря событий (рис. 2.29), затем открываем окно описания события (для этого используется уже знакомая нам общая кнопка добавления объектов) и в этом окне (рис. 2.30) заполняем соответствующие поля. Рис. 2.29. Пример записи в календаре событий В поле Perform at Time назначается время наступления события (1440 единиц модельного времени (ЕМВ.), 1 ЕМВ.=1 мин.), в поле Expression определяется оператор, который должен быть выполнен в назначенное время (оператор остановки halt()). Нажатие кнопки Accept приводит к появлению в календаре событий соответствующей строки — уведомления о событии (см. рис. 2.29). Внесение в календарь такого уведомления приведет к остановке модели в момент времени clock=1440, т. е. ровно через сутки функционирования исследуемой системы (бензозаправочной станции) в реальном времени. Использование полей Repeating и Stop связано с перепланированием событий через определенный интервал времени (Repeat Interval) до момента окончания процесса перепланирования (Stop Time). Перепланирование событий используется для внесения управляющих воздействий в динамике развития модели через определенные интер- 122 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 123
Рис. 2.30 Окно описания события валы времени. Например, перепланирование события «Пауза» (pause ()) приведет к периодическим остановкам в процессе компьютерного моделирования. Единица модельного времени и ее связь с реальным временем Модельное (или системное) время — одно из основных понятий имитационного моделирования. Модельное время всегда связано с определенной системной переменной, которая должна копировать ход часов реального времени. Работа исследуемой системы на протяжении длительных периодов реального времени (сутки, месяцы, годы) воспроизводится в компьютерной имитационной модели за секунды или минуты с сохранением всех хронологических особенностей исследуемой системы (всей хронологии причинно-следственных связей, действующих в исследуемой системе). Такая хронологическая адекватность модели обусловлена тем, что единица модельного времени (ЕМВ) определяет своеобразный масштаб, соотносящий размерности реального времени и машинного таймера, определяющего скорость интерпретации модели. Выбор единицы модельного времени (ЕМВ) полностью определяется условиями задачи. Если все хронологические характеристики исследуемой системы заданы в одних и тех же временных единицах (например, секундах), то определение ЕМВ тривиально: ЕМВ = 1 сек. Если же для описания отдельных компонент системы используются разные временные единицы (например, месяцы и дни), то выбор ЕМВ определяется из субъективных соображений представления о точности и адекватности модели. Выбор ЕМВ = 1 (день) приведет к более точной модели, но ее использование может потребовать больших затрат машинного времени, а выбор ЕМВ = 1 (месяц) — к менее точной, но более быстродействующей модели. Системная переменная clock, определяющая модельное время, имеет тип Real (действительное число). В этом смысле такой формат представления времени позволяет выбирать в качестве ЕМВ любую единицу реального времени с минимальной потерей точности. Тем не менее, если в задаче используются сильно отличающиеся по протяженности временные отрезки, то целесообразно в качестве ЕМВ выбирать наименьший из них, соответствующий минимальной единице реального времени. Разработка многоуровневых структурных моделей До сих пор мы рассматривали модели только одного (нулевого, верхнего) уровня. В общем случае сетевая структура модели может быть представлена на нескольких уровнях. При этом нулевой уровень определяет основную модель, составленную из компонент, каждая из которых в свою очередь может рассматриваться как модель первого, второго и т. д. уровня. Концепция многоуровневой модели позволяет уточнять структуру составляющих ее компонент на нижних уровнях, оставляя на верхних только общие «архитектурные контуры» исследуемой системы. Для конструирования многоуровневой модели используются дополнительные средства панели инструментов конструирования сетевой структуры (рис. 2.31). Эти средства включают в себя: • создание подуровня сетевой структуры; • средства навигации (перемещения) по иерархической структуре • дополнительные средства вставки/вырезки структурных объ 124 Дополнительные методы и средства имитации 125
Рис. 2.31. Средства конструирования многоуровневых моделей Для знакомства с ними обобщим описанный в разделе «Быстрое начало» пример 1. Допустим, что на автозаправочной станции имеется магазин и каждый водитель после заправки автомобиля может подъехать к этому магазину и сделать несколько покупок. Такая обобщенная модель в дополнение к введенным ранее блокам будет содержать еще модель обслуживания покупателей в магазине. Не определяя детали этой вновь вводимой компоненты, выделим для нее специальный подуровень модели. Для введения этого подуровня в структуру модели следует нажать кнопку и связать появившийся на экране монитора прямоугольник с ранее определенными блоками. Затем для определения структуры модели обслуживания покупателей в магазине следует перейти в окно подуровня и определить эту модель обычными средствами. В результате мы получим двухуровневую структуру, приведенную на рис. 2.32. В этой модели окно EXAMPL1.MOD: Network О EXAMPL1 определяет структуру модели примера 1 с добавленным фрагментом модели магазина, которую мы назвали «Shopping». Прямоугольная рамка блока с номером 3 определяет, что модель, заключенная в этом блоке, обладает собственной сетевой структурой, которую мы определили в окне EXAMPL1.MOD: Network 3 Shopping как состоящую из трех блоков задач: осмотр магазина (survey), оплату покупок у кассы (pay desk) и выход (exit). Любой блок-прямоугольник, используемый в процессе разработки модели, определяет собственную сетевую диаграмму. Таким образом, в рамках одной общей модели можно определить множество вло-
Рис. 2.32. Пример многоуровневой модели женных сетевых структур. Заметим, что нумерация блоков при этом остается сквозной, проходящей через все сетевые диаграммы, составляющие модель системы. Отметим, что в тех случаях, когда сетевой блок-прямоугольник имеет выходящие стрелки, в его сетевой структуре в качестве завершающего элемента используется псевдоблок в виде окружности. Этот псевдоблок не имеет своего номера, он фактически является двойником блока, следующего за сетевым в диаграмме верхнего уровня. Сказанное иллюстрируется рис. 2.33. 126 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 127
При моделировании сложных систем использование концепции многоуровневых моделей и «вложенных» сетей делает структуру модели значительно более наглядной и легко понимаемой. Анимация имитационных моделей Для презентации имитационных моделей и наглядного представления процессов функционирования исследуемой системы используются специальные средства анимации модели. С помощью этих средств в отдельном окне Action View, предназначенном для просмотра анимационных картин, строится сцена, на которой в процессе имитации будут демонстрироваться процессы перемещения объектов (тэгов), определяющие динамику развития исследуемой системы. Для того чтобы реализовать анимацию созданной модели, необходимо: • определить фон, на котором будут развиваться анимационные • связать динамику изменения сцены с программой модели. Окно сцены (Action View) открывается нажатием кнопки (средний ряд панели инструментов). Проиллюстрируем анимацию имитационной модели на примере 1 «Модель обслуживания автомобилей на заправочной станции» (см. рис. 2.1). Определение фона Этот этап обычно связан с использованием готового рисунка или его созданием с использованием графического редактора. В качестве такого редактора проще всего использовать Paint, который включен в группу «Стандартные» общего списка программ Windows. Рисунок сохраняется в файле с расширением BMP. Для вставки фонового рисунка в окно Action View необходимо: • открыть вставляемый рисунок в графическом редакторе, • скопировать его (в буферную область памяти), • открыть окно Action View, • вставить рисунок в окно Action View. Последнее действие реализуется с использованием меню Micro Saint (раздел Edit — Paste) или кнопкой (верхний ряд панели инструментов). Динамика изменения сцены Для реализации анимационной динамики необходимо выбрать изображения динамических объектов (иконки), которые в процессе моделирования будут перемещаться по сцене на подготовленном фоне. Иконки выбираются в меню Action View, раздел View Icons. Поскольку для рассматриваемого примера движущимся объектом является автомобиль, выберем иконку с изображением автомобиля (например, иконку с номером 447). Все процессы имитации движения автомобилей в программе модели будут иллюстрироваться передвижением соответствующих иконок на фоновом рисунке. Траектории такого передвижения определяются отрезками прямых с заданными начальной и конечной точками. Указание этих точек проводится непосредственно на фоновом рисунке в окне Action View с помощью специальной панели инструментов (нижний ряд справа).
Панель инструментов для размещения иконки объекта на сцене левая кнопка с изображением трейлера (курсор-трейлер) для размещения иконки на сцене в точке начала траектории (в этой точке иконка появляется на сцене); средняя кнопка с изображением стрелки (курсор-стрелка) для перемещения иконки по сцене в соответствии с планируемым отрезком траектории от точки начала отрезка до точки его конца; 128 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 129
• правая кнопка с изображением перечеркнутого трейлера (курсор-крест) для удаления иконки со сцены в точке окончания траектории. После выполнения первого действия окно Action View будет выглядеть, как показано на рис. 2.35. Рис. 2.35. Конструирование анимационной сцены — 1 В левом нижнем углу окна установлена точка появления иконки автомобиля на сцене — в это место фонового рисунка устанавливается курсор-трейлер и делается щелчок левой кнопкой мыши. При этом в строке под заголовком Action View (строке оператора) размещается оператор создания изображения объекта (автомобиля) на сцене create. Этот оператор фиксирует, что мы создали объект (tag) с иконкой номер 447, с координатами места на сцене, где разместилась иконка объекта (X = 38, Y = ИЗ). Для того чтобы оператор создания изображения объекта на сцене (create) выполнялся синхронно с оператором создания объекта в модели, его (оператор create) необходимо скопировать из окна Action View и вставить в соответствующее место программы. Копирование оператора в окне Action View связано с использованием команды Сору редактора Edit, а вставка в окно задачи — команды Paste. Для рассматриваемого примера такую вставку следует сделать в раздел Beginning Effect блока car coming (см. рис. 2.5). При этом каждый раз, когда в модели появляется новый тэг-автомобиль, приехавший на заправочную станцию, в окне Action View на сцене появляется его иконка, иллюстрирующая событие появления автомобиля. Анимация передвижения автомобиля от точки начала траектории до бензоколонки связана с «перетаскиванием» иконки объекта от точки его появления на сцене до изображения бензоколонки. Для этого необходимо курсором-стрелкой (средняя кнопка панели инструментов анимации) перетащить иконку в нужное место экрана. При этом в левом верхнем углу окна Action View появится оператор перемещения объекта move, который определяет новые координаты положения иконки объекта на сцене и время, за которое произошло перемещение (duration). Этот оператор должен быть скопирован и перенесен в поле Launch Effect блока car coming (см. рис. 2.5). Рис. 2.36. Конструирование анимационной сцены — 2 Удаление иконки объекта со сцены выполняется с помощью правой кнопки панели инструментов анимации. Для этого курсор-крест, связанный с этой кнопкой, устанавливается на удаляемой иконке объекта и делается щелчок кнопкой мыши. Оператор удаления Dispose появляется в строке операторов окна Action View и переносится в соответствующее место программы модели аналогично. (Если мы ограничимся только анимацией приезда автомобилей на заправку, этот оператор должен быть размещен в поле Ending Effect блока car coming.) Таким образом, сделанные анимационные добавления в программу модели приводят к описанию блока car coming, приведенному на рис. 2.37. При запуске этой программы в окне Action View можно наблюдать динамический анимационный процесс приезда автомобилей на заправочную станцию. 130 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 131
Дата добавления: 2015-06-27; Просмотров: 450; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |