Сборник задач и упражнений по курсу "Моделирование" (Событийный подход. Программное моделирование)

Страницы работы

Содержание работы

Событийный подход

При событийном подходе система моделируется путем идентификации изменений, происходящих в ней в моменты свершения событий. Задача исследователя заключается в описании событий, которые могут изменить состояние системы, и определении логических взаимосвязей между ними. Имитация функционирования системы осуществляется путем выполнения упорядоченной во времени последовательности логически взаимосвязанных событий.

Подход сканирования активностей

При использовании подхода сканирования активностей разработчик описывает действия, в которых принимают участие элементы системы, и задает условия, определяющие начало и окончание этих действий. События, которые начинают или завершают действие, не планируются разработчиком модели, а инициируются по условиям, определенным для данного действия. Условия начала или окончания действия проверяются после очередного продвижения имитационного времени. Если заданные условия удовлетворяются, происходит соответствующее действие. Для того чтобы было выполнено каждое действие в модели, сканирование условий производится для всего множества действий при каждом продвижении имитационного времени.

Процессо-ориентированный подход

Многие имитационные модели содержат последовательности компонентов, которые возникают в них по  определенной схеме, например очередь, в которой клиенты ожидают обслуживания. Логика возникновения компонентов по требуемой схеме может быть обобщена и задана в одном операторе. Имитационный язык затем транслирует такие операторы в соответствующую последовательность событий, происходящих с компонентами модели. Имитационные языки, включающие операторы для моделирования процесса прохождения элементов через систему, обычно называются процессо-ориентированными. Эти операторы определяют последовательность событий, которые автоматически выполняются имитационным языком, по мере того как элементы продвигаются через систему.

Процессо-ориентированный подход сочетает в себе черты событийного подхода и подхода сканирования активностей. Он обеспечивает описание прохождения компонентов через процесс,содержащий ресурсы. Простота этого подхода состоит в том, что определяемая операторами логика событий заложена в самом имитационном языке.  

3.2. Программное моделирование

3.2.1. Работа карьера

Описание системы

В карьере работает один экскаватор, который нагружает машины различной грузоподъемности. Машины подъезжают в карьер через случайные промежутки времени, равномерно распределенные в интервале от 7 до 12 минут. Время, затрачиваемое машиной на подъезд к экскаватору и отъезд от экскаватора, и грузоподъемность машин также случайные величины, распределенные равномерно в интервалах  [20,30] и [3,5], соответственно. Экскаватор тратит на погрузку одной тонны породы 2 минуты. Время прибытия машин в карьер носит случайный характер и распределено равномерно в пределах  [10,20].

Необходимо промоделировать данную систему с целью получения  загрузки самосвала, объема груза за смену и среднее время пребывание самосвалов в карьере в течение 8 ч.

Описание классов

Объект «машина»

Правила поведения объекта «машина»:

1.  Машина подъезжает к экскаватору и встает в очередь на погрузку.

2.  Экскаватор загружает машину по очереди.

3.  Загруженная машина уезжает от экскаватора и покидает систему.

Описание класса «машина»

Process  CLASS Car(TimeCarIn,GrCar,TimeCarout);

comment Car - имя класса;

comment Описание формальных параметров;

comment TimeCarIn,GrCar,TimeCarout - формальные параметры;

comment TimeCarIn - время подъезда к экскаватору;

comment GrCar - грузоподъемность;

comment TimeCarOut - время отъезда от экскаватора;

Real TimeCarIn,TimeCarOut;

Integer GrCar;

Begin

comment   Описание переменных класса "машина";

comment  TimeCarSys - время входа машины в систему;

real TimeCarSys;

comment Запоминание времени входа в систему;

TimeCarSys:=TIME;

comment  Задержка на время подъезда к экскаватору;

HOLD(TimeCarIn);

comment  Машина встает в очередь и активизирует экскаватор;

INTO(HeadCar);

ACTIVATE Eks;

comment Машина ожидает загрузки в очереди;

PASSIVATE;

comment Загруженная машина уезжает из системы;

HOLD(TimeCarOut);

GrAll:=GrAll+GrCar;

TimeCarAll:=TimeCarAll+(TIME-TimeCarSys);

end;

Объект «экскаватор»

Правила поведения объекта «экскаватор»:

1.  Если в очереди есть машины, экскаватор выбирает первую машину из очереди.

2.  Экскаватор загружает машину.

3.  Загруженная машина уезжает от экскаватора и покидает систему.

4.  Если в очереди нет машин, экскаватор переходит в режим простоя до тех пор, пока не приедет машина.

Описание класса «экскаватор»

Process  CLASS Ekskavator(PrEks);

comment  Ekskavator - имя класса;

comment Описание формальных параметров;

comment PrEks - производительность экскаватора;

integer PrEks;

Begin

comment   Описание переменных класса "экскаватор";

comment  TimeEksStart - время начала простоя;

comment  TimeEksProstoy - простой экскаватора;

real TimeEksStart,TimeEksProstoy;

comment описание ссылочной переменной на машину;

ref(Car) M;

comment Сначала простой равен времени начала работы экскаватора;

Похожие материалы

Информация о работе

Предмет:
Моделирование
Тип:
Методические указания и пособия
Размер файла:
154 Kb
Скачали:
0