Разработка имитационной модели.
Имитационная модель представляет собой вычислительный алгоритм, в котором реализован принцип имитации (воспроизведения) последовательности выполнения операций, протекающих в реальном объекте. Имитационная модель воспроизводит, имитирует процесс функционирования реального объекта средствами вычислительной техники.
Имитационная модель строится в четыре этапа:
1) Проводится выбор имитаторов основных функций.
2) Проводится выбор имитаторов сервисных функций, к которым относятся сбор и обработка статистических данных, установка начальных параметров, организация эксперимента.
3) Составление структуры моделирующего алгоритма.
4) Описание полученного алгоритма.
В качестве программных средств выбираем язык моделирования GPSS.
Выбор имитаторов основных функций.
Система включает в себя 3 элемента, функционирование которых необходимо имитировать: входные потоки, процесс обслуживания и правила обслуживания.
Входные потоки. В качестве входных потоков в данной модели выступают машины, подходящие к перекрестку со стороны улицы А каждые 32 с, улицы С 62 с. Средствами GPSS они имитируются блоком GENERATE A,B , где в поле A записывается математическое ожидание интервалов подхода машин, а в поле B записывается величина отклонения от математического ожидания. В нашем случае для улицы А: A=3 с, B=2 с, С: А=6 с, В=2 с.
Процесс обслуживания. В нашем случае процесс обслуживания состоит в занятии машиной данного направления движения, проезд по перекрестку и освобождение направления движения. Следовательно устройство обслуживания имитируется тремя блоками:
SEIZE A имитирует ввод транзакта в устройство, где A – номер или имя устройства, в нашем случае наименование улицы в сторону которой осуществляется движение, т.е. SEIZE A, SEIZE B, SEIZE C, SEIZE D.
ADVANCE A имитирует обслуживание, выделяет транзакту время нахождения в блоке, для нашей модели это время необходимое машине для проезда перекрестка, значит А=2 с.
RELEASE A имитирует вывод транзакта из устройства, где A – номер или имя устройства, в нашем случае наименование улицы в сторону которой осуществляется движение, т.е RELEASE A, RELEASE B, RELEASE C, RELEASE D.
Перекресток содержит очереди при подходе машин с улиц А и С. Они реализуются блоками QUEUE A - постановка машины в очередь, и DEPART A - покидание очереди. В поле А указывается номер или имя очереди, для улицы А – UlicaA, C – UlicaC.
Правила обслуживания. Обслуживания определяется блоком TEST R А,В. В поле R устанавливается условие сравнения. В нашем случае это условие E, что соответствует знаку “=”. В полях А и В записываются стандартные числовые атрибуты, подлежащие сравнению. В нашем случае это значение логического ключа LOGIC I SVET - LS$SVET, которое конвертирует свое значение каждые 20 с в соответствии с переключением светофора, и 0; 1 в соответствии с улицами А; С. А также блоком TRANSFER A, B, C. В поле A устанавливается условие передачи. В поле B указывается номер следующего блока по условию. В поле C указывается номер блока в который должен перейти транзакт если блок указанный в поле B занят. В нашем случае - TRANSFER .500, О1, О2 для направления 50% машин в направлении АС; TRANSFER .600, К1, К2 для направления оставшихся 30% и 20% в направлении AD и AB соответственно; TRANSFER .600, L1, L2 для направления 40% и 60% машин в направлении СВ и СА соответственно.
Выбор имитаторов сервисных функций.
Средствами GPSS может осуществляться сбор, обработка и установка начальных условий, всё это реализуется внутри самих блоков. Искомые характеристики: число машин, проехавших в каждом из направлений, максимальные и средние длины очередей в течение получаса можно получить в стандартном отчёте GPSS.
Структура моделирующего алгоритма.
Описание алгоритма.
GENERATE 3,2 генерируется входной поток машин со стороны улицы А, далее машины встают в очередь QUEUE UlicaA. После этого 50% машин проходят в направлении АС, 30% в направлении АD и 20% в направлении АВ блоками TRANSFER .500,O2,O1 и TRANSFER .600,K2,K1. Поток разветвляется на 3 направления в каждую из сторон движения. C: DEPA UlicaA – ТА выводится из очереди, SEIZE C – машина занимает данное направление движения, ADVANCE 2 – задержка необходимая машине для преодоления перекрестка, RELEASE C – освобождение данного направления движения; D: аналогично как для направления С, DEPA UlicaA, SEIZE D, ADVANCE 2, RELEASE D; В: TEST E LS$SVET,0 – проверка состояния светофора, если проезд разрешен (LS$SVET=0) то блоком DEPART UlicaA ТА выводятся из очереди и дальше проходят по направлению B аналогично как для С, SEIZE D, ADVANCE 2, RELEASE D, если проезд запрещен то ТА остается в очереди.
GENERSTE 6,2 генерируется входной поток машин со стороны улицы С, далее машины встают в очередь QUEUE UlicaC. После этого проводится проверка разрешающего сигнала светофора TEST E LS$SVET,1, если проезд разрешен (LS$SVET=1) то блоком DEPART UlicaС ТА выводятся из очереди и дальше проходят по направлению B - 40% и С - 60% блоком TRANSFER .600,L2,L1. SEIZE А – занять направление движения А, ADVANCE 2 – задержка на время прохождения машиной перекрестка, RELEASE А – освобождение направления движения. SEIZE В – занять направление движения В, ADVANCE 2 – задержка на время прохождения машиной перекрестка, RELEASE В – освобождение направления движения. Если проезд запрещен то ТА остается в очереди.
Блоком TERMINATE 1 ТА удаляются из модели. GENERATE 20 – генерируется время переключения светофора, LOGIC I SVET – логическая переменная изменяющая свое значение каждые 20с, задает текущее состояние светофора. TERMINATE 1 – удаление ТА из модели.
Программа на языке GPSSWorld.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
* Моделирование работы перекрестка *
* Гуленков / Лемешкин *
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.