Студопедия

КАТЕГОРИИ:


Архитектура-(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.

 

Интервалы времени между при­бытиями автомобилей (сек) Суммарная частота Интервалы времени между прибытиями автомобилей (сек) Суммарная частота
Меньше 0     0,81
  0,25   0,9
  0,48   1,0 ■
  0,69    

Из данных, приведенных в таблице, следует, что в 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()). Нажатие кнопки Ac­cept приводит к появлению в календаре событий соответствующей строки — уведомления о событии (см. рис. 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


 


           
   
     
 


Ниже на рис. 2.34 приведен вариант фонового рисунка, созданно­го для рассматриваемого примера в редакторе Paint.

При моделировании сложных систем использование концепции многоуровневых моделей и «вложенных» сетей делает структуру моде­ли значительно более наглядной и легко понимаемой.

Анимация имитационных моделей

Для презентации имитационных моделей и наглядного представ­ления процессов функционирования исследуемой системы использу­ются специальные средства анимации модели. С помощью этих средств в отдельном окне 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. Для рассматриваемого примера такую вставку следует сделать в раздел Be­ginning 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; Просмотров: 428; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.078 сек.