Компьютерной имитации и анимации

Разработка модели компьютерной имитации и анимации показана на примере, в котором рассматривается процесс обслуживания нескольких рабочих мест робокаром.

Описание объекта моделирования

Робокар обслуживает 5 рабочих мест, расположенных на разном расстоянии от склада (табл. 14). С рабочих мест на склад поступают заявки. Поток заявок является случайным, с равномерным законом распределения. Интервал между поступлениями заявок 120±20 минут. По мере поступления заявок с рабочих мест устанавливается очередность обслуживания. Робокар по заданной программе управления оснащается требуемым грузом, перемещается к рабочему месту, разгружается и возвращается на склад.

Таблица 14

Расстояния от склада до рабочих мест

Рабочее место Расстояние от склада до рабочего места, м

Продолжительность загрузки и разгрузки робокара колеблется в интервале от 6 до 10 мин, распределенном по нормальному закону. Скорость робокара постоянна и равна 30 м/мин.

Задание

Используя методы компьютерной имитации и анимации, определите:

количество обслуженных заявок за 8-часовой рабочий день;

среднюю продолжительность обслуживания заявки;

загрузку робокара;

средний размер очереди на обслуживание из всех рабочих мест;

среднее время ожидания заявки в очереди.

Исследуйте изменение загрузки робокара при изменении числа рабочих мест от 1 до 5.

Оцените изменение среднего размера очереди заявок на обслуживание от числа рабочих мест при скорости движения робокара 30 и 52 м/мин.

Решение

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

Процесс отображается системой массового обслуживания, в которой заявки, поступающие из n рабочих мест, последовательно проходят через обслуживающий прибор – робокар. Поток требований, формируемый рабочими местами, и время обслуживания каждого требования являются случайными величинами. Представим требование на определенный груз как заявку, а робокар – как прибор, выполняющий заявку за определенное время. Тогда технология обслуживания n-го количества рабочих мест робокаром может быть описана как однофазная, многоканальная СМО без отказов с прибором, выполняющим заявки на загрузку, перемещение и разгрузку определенного груза (рис. 48).

компьютерной имитации и анимации - student2.ru

Рис. 48. Процесс обслуживания рабочих мест робокаром

в виде СМО

Этап 2. Разработка в соответствии с СМО имитационной модели на специализированном языке GPSS/Н.

Переходя от системы массового обслуживания к специализированному языку компьютерной анимации GPSS/H, определим, что заявки в СМО соответствуют транзактам в имитационной модели. Для их ввода в модель используем блоки GENERATE. Так как по условию задания необходимо моделировать 5 рабочих мест, то модель построим из 5 сегментов, которые отображают поступление заявок с каждого рабочего места. Для перенаправления заявок на обслуживание робокаром используем блок TRANSFER в режиме безусловной передачи. Прибором в модели является робокар с именем ROB. Его описываем цепью блоков SEIZE-RELEASE. Для моделирования продолжительности операций загрузки, разгрузки и перемещения робокара используем блоки ADVANCE с распределением временных интервалов согласно заданию. Продолжительность рейса робокара зависит от продолжительности загрузки, разгрузки и движения до рабочего места и обратно. Так как расстояния до рабочих мест разные, то заявки должны обслуживаться за разное время, т.е. в модели необходимо ввести различие между заявками с разных рабочих мест. Для этих целей воспользуемся блоками ASSIGN, при помощи которых в параметры транзактов действительного типа (REAL) будут записываться тип транзакта и продолжительность движения в зависимости от расстояния до рабочего места. Значения, записанные в эти параметры, будут использоваться затем в модели для имитации рейсов робокара. Для отображения выполненной заявки используем блок TERMINATE, который удаляет транзакты из модели. Для имитации 8-часового рабочего дня в модель введем дополнительный сегмент, состоящий из двух блоков GENERATE и TERMINATE.

Разработанная в соответствии с СМО блок-схема имитационной модели процесса обслуживания рабочих мест робокаром приведена на рис. 49. Она содержит 31 блок в 6 сегментах.

компьютерной имитации и анимации - student2.ru компьютерной имитации и анимации - student2.ru

GPSS/H- программирование

Для ввода исходных данных в модель, при помощи текстового редактора создан файл-меню. Часть этого файла представлена ниже (полная распечатка файла-меню приведена в прил. 1).

****************************************************************

* Исходные данные для модели процесса обслуживания рабочих мест робокаром

****************************************************************

* Значение * Тип данных

****************************************************************

1 *Рабочее место 1 (включено 1; выключено 0)

1 *Рабочее место 2 (включено 1; выключено 0)

.

.

8 *Средняя продолжительность разгрузки робокара, мин

2 *Отклонение от средней продолжительности, мин

480 *Продолжительность моделирования, мин

****************************************************************

А – Создание .atf-файла и определение переменных

В соответствии с разработанной блок-схемой написана программа на языке GPSS/H, часть которой представлена ниже (полная распечатка программы приведена в прил. 2). В программе можно выделить несколько частей:

ATF FILEDEF 'ROBO.ATF' Создать файл

robo.atf

INTEGER &M1,&M2,&M3,&M4,&M5,&SHIFT Определение целых

переменных

REAL &SA1,&SAS1,&SA2,&SAS2 Определение дейст-

вительных переменных

Б – Ввод исходных данных из файла-меню в модель

GETLIST FILE=ROBO,(&M1) Выключатель рабочего места 1

.

.

.

GETLIST FILE=ROBO,(&RASG) Ср. продолжительность разгрузки

робокара

GETLIST FILE=ROBO,(&RASGR) Отклонение от средней

продолжительности

GETLIST FILE=ROBO,(&SHIFT) Продолжительность моделиро-

вания

В – моделирование технологических операций с вводом команд файла управления анимацией

****************************************************************

* Моделирование рабочего места 1

****************************************************************

GENERATE &SA1,&SAS1,,,,1PL,1PH Поступление заявки с

рабочего места 1

TEST NE &M1,0,DES Проверка включения

рабочего места 1

ASSIGN 1,&RES1/&SCOR,PL Время движения до

рабочего места 1

ASSIGN 1,1,PH Принадлежность заявки

1 рабочему месту

BPUTPIC FILE=ATF,LINES=6,AC1,&SA1,&SAS1,&RES1,PL1

Запись в файл .atf в 6 линий следующих команд:

time *.* Текущее время

create m m1 Создать динамический объект – рабочее место 1

place m1 -30 38 Поместить объект в координатное пространство Proof Animation

set m1 color red Окрасить рабочее место 1 в красный цвет

write z1 * * Вывести на экран математическое ожидание и

дисперсию поступления заявки

write r1 L=*m Вывести на экран расстояние от склада до рабочего места 1

write re1 t=*min Вывести на экран продолжительность движения робокара до рабочего места 1

TRANSFER ,ROB Переход заявки на обслуживание к робокару

.

.

.

****************************************************************

* Моделирование работы робокара

****************************************************************

ROB QUEUE HUK Ожидание освобождения робокара

SEIZE CAR Занятие робокара

DEPART HUK Конец ожидания

ADVANCE RVNORM(1,&POG,&POGR) Загрузка робокара

Г – Вывод результатов моделирования на экран

BPUTPIC FILE=ATF,LINES=6,AC1,N(BOX),FT(CAR),_

FR(CAR)/10,QA(HUK),QT(HUK)

time *.* Текущее время

write b * Количество обслуженных заявок

write ft *.** Среднее время обслуживания заявки

write fr *.** Загрузка робокара

write qa *.** Средний размер очереди на обслуживание

write qt *.** Среднее время ожидания заявки в очереди

DES TERMINATE Заявка выполнена

Этап 3. Отображение динамики технологического процесса при помощи языка компьютерной анимации Proof Animation.

Динамику работы робокара отобразим на компьютерной мнемосхеме технологического процесса при помощи языка компьютерной анимации Proof Animation. Анимация состоит из статических элементов и динамических объектов, которые накладываются на статический фон. В нашем случае статическими элементами являются траектории движения робокара, склад и надписи, а динамическим объектом – робокар.

Для рисования статических элементов используем меню Mode и режим Draw Mode (рис. 50).

компьютерной имитации и анимации - student2.ru

Рис. 50. Статические элементы анимации

Рисование динамического объекта осуществляем в режиме Class Mode (рис. 51). Команды управления динамическими элементами для Proof Animation: TIME, CREATE, PLACE АТ, SET COLOR, WRITE и др. – заранее введены в программу на языке GPSS/Н (см. выше). В совокупности эти команды при работе программы GPSS/H образуют файл управления анимацией (.atf-файл).

компьютерной имитации и анимации - student2.ru

Рис. 51. Динамический объект анимации

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

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

В верхней строке экрана указывается: текущее время имитации (Time), скорость анимации (Speed), ускорение (Faster) или замедление (Slоwer) анимации, остановка изображения (Pause), пуск движущегося изображения (Go), выбор размера, расположения и участка изображения (View), выбор файлов анимации процесса (File), выбор режимов анимации (Mode).

компьютерной имитации и анимации - student2.ru

Рис. 52. Кадр анимации процесса обслуживания

рабочих мест робокаром

Этап 4. Оценка характеристик технологического процесса на разработанных моделях компьютерной имитации и анимации.

В имитационных экспериментах вводим исходные данные в файл-меню, запускаем GPSS/H-модель и анализируем результаты по сформированной анимации процесса.

В результате проведения имитационных экспериментов установлено, что за 8-часовой рабочий день обслужено 10 заявок. При этом средняя продолжительность обслуживания заявки составляла 33,93 мин, загрузка робокара – 76,40 %. Средний размер очереди заявок на обслуживание из всех рабочих мест равнялся 2,78. При этом среднее время ожидания заявки в очереди было 82,30 мин.

Для исследования изменения загрузки робокара при изменении числа рабочих мест изменяли число источников заявок (от 1 до 5) и оценивали степень использования робокара для каждого эксперимента.

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

По результатам имитационных экспериментов, выведенным на экран, были построены зависимость степени использования робокара от числа рабочих мест и зависимость среднего размера очереди заявок на обслуживание от числа рабочих мест и скорости робокара (рис. 53, 54).

компьютерной имитации и анимации - student2.ru компьютерной имитации и анимации - student2.ru

Рис. 53. Зависимость степени использования робокара k от числа рабочих мест n Рис. 54. Зависимость среднего размера очереди заявок на обслуживание q от числа рабочих мест n и скорости движения робокара v (_ v = 30 м/мин; - - v = 52 м/мин)

Установлено, что увеличение числа рабочих мест от 1 до 2 приводит к повышению степени использования робокара на 36 %. Увеличение числа рабочих мест от 2 до 5 несущественно влияет на загрузку робокара. Изменение составляет 2 %.

Средний размер очереди заявок на обслуживание практически не изменяется при числе рабочих мест 1–2. При этом изменение скорости робокара не оказывает никакого влияния на средний размер очереди заявок на обслуживание. При числе рабочих мест от 2 до 5 увеличение скорости робокара уменьшает средний размер очереди в среднем на 26 %.

ЗАКЛЮЧЕНИЕ

Математическое моделирование используется в случае, если технологическая система не поддается физическому эксперименту.Во многих случаях невозможно получить аналитические зависимости, отображающие поведение и взаимосвязь элементов технологической системы. Особенно трудно учесть действие случайных факторов и динамику функционирования объекта. Поэтому используют имитационное моделирование. Имитационное моделирование похоже на физические эксперименты, но эти эксперименты проводятся не на физическом объекте, а на его компьютерной модели. Сущность имитационного моделирования состоит в том, что над моделью проводят эксперименты типа «Что, если…?». Изменяя исходные показатели в модели, анализируют результаты экспериментов. Имитационная модель реализуется на ЭВМ при помощи языков программирования. Альтернативой является использование методов, основанных на специализированных языках и системах имитационного моделирования. Специализированные языки содержат, как правило, написанные на универсальном языке блоки – отдельные динамические модели. Поведение системы имитируется как смена ее состояний. Процесс отображается не системой уравнений, а взаимодействием отдельных динамических моделей во времени и пространстве. Поведение системы описывается от события к событию, означающих начало или окончание технологической операции.

В настоящем учебном пособии рассматривалось применение одного из наиболее распространенных специализированных языков имитационного моделирования – GPSS, предложенного фирмой IBM в 1962 г., и программы компьютерной анимации (CIMAN – CINEMA, GPSS/H – Proof Animation), позволяющими отображать динамику процесса на экране компьютера в соответствии с работой имитационной модели и выводить результаты на монитор.

Приложения

Приложение 1

Файл-меню модели процесса обслуживания

рабочих мест робокаром

1 *Рабочее место 1 (включено 1; выключено 0)

1 *Рабочее место 2 (включено 1; выключено 0)

1 *Рабочее место 3 (включено 1; выключено 0)

1 *Рабочее место 4 (включено 1; выключено 0)

1 *Рабочее место 5 (включено 1; выключено 0)

120 *Среднее время поступления заявки с рабочего места 1

20 *Отклонение от среднего времени

120 *Среднее время поступления заявки с рабочего места 2

20 *Отклонение от среднего времени

120 *Среднее время поступления заявки с рабочего места 3

20 *Отклонение от среднего времени

120 *Среднее время поступления заявки с рабочего места 4

20 *Отклонение от среднего времени

120 *Среднее время поступления заявки с рабочего места 5

20 *Отклонение от среднего времени

500 *Расстояние до рабочего места 1

300 *Расстояние до рабочего места 2

100 *Расстояние до рабочего места 3

200 *Расстояние до рабочего места 4

160 *Расстояние до рабочего места 5

30 *Скорость робокара, м/мин

8 *Средняя продолжительность загрузки робокара, мин

2 *Отклонение от среднего времени, мин

8 *Продолжительность разгрузки робокара, мин

2 *Отклонение от среднего времени, мин

480 *Продолжительность моделирования, мин

***********************************************************

Распечатка GHSS/H-программы с вводом команд

управления анимацией

**************************************************************

* Модель процесса обслуживания рабочих мест робокаром

**************************************************************

* Создание .atf-файла и определение переменных

**************************************************************

SIMULATE Начало модели

рования

ATF FILEDEF 'ROBO.ATF' Создание .atf

файла

Приложение 2

INTEGER &M1,&M2,&M3,&M4,&M5,&SHIFT Целые пере-

менные

REAL &SA1,&SAS1,&SA2,&SAS2 Действитель

ные перемен

ные

REAL &SA3,&SAS3,&SA4,&SAS4,&SA5,&SAS5

REAL &RES1,&RES2,&RES3,&RES4,&RES5

REAL &SCOR,&POG,&POGR,&RASG,&RASGR

************************************************************ Ввод исходных данных из файла-меню

***********************************************************

GETLIST FILE=ROBO,(&M1) Выключатель рабочего места 1

GETLIST FILE=ROBO,(&M2) Выключатель рабочего места 2

GETLIST FILE=ROBO,(&M3) Выключатель рабочего места 3

GETLIST FILE=ROBO,(&M4) Выключатель рабочего места 4

GETLIST FILE=ROBO,(&M5) Выключатель рабочего места 5

GETLIST FILE=ROBO,(&SA1) Среднее время поступления

заявки с рабочего места 1

GETLIST FILE=ROBO,(&SAS1) Отклонение от среднего времени

GETLIST FILE=ROBO,(&SA2) Среднее время поступления

заявки с рабочего места 2

GETLIST FILE=ROBO,(&SAS2) Отклонение от среднего времени GETLIST FILE=ROBO,(&SA3) Среднее время поступления

заявки с рабочего места 3

GETLIST FILE=ROBO,(&SAS3) Отклонение от среднего времени GETLIST FILE=ROBO,(&SA4) Среднее время поступления

заявки с рабочего места 4

GETLIST FILE=ROBO,(&SAS4) Отклонение от среднего времени GETLIST FILE=ROBO,(&SA5) Среднее время поступления

заявки с рабочего места 5

GETLIST FILE=ROBO,(&SAS5) Отклонение от среднего времени GETLIST FILE=ROBO,(&RES1) Расстояние от склада до рабочего

места 1

GETLIST FILE=ROBO,(&RES2) Расстояние от склада до рабочего

места 2

GETLIST FILE=ROBO,(&RES3) Расстояние от склада до рабочего

места 3

GETLIST FILE=ROBO,(&RES4) Расстояние от склада до рабочего

места 4

GETLIST FILE=ROBO,(&RES5) Расстояние от склада до рабочего

места 5

GETLIST FILE=ROBO,(&SCOR) Скорость движения робокара

Продолжение прил. 2

GETLIST FILE=ROBO,(&POG) Средняя продолжительность

загрузки робокара

GETLIST FILE=ROBO,(&POGR) Отклонение от среднего времени

GETLIST FILE=ROBO,(&RASG) Средняя продолжительность

загрузки робокара

GETLIST FILE=ROBO,(&RASGR)Отклонение от среднего времени

GETLIST FILE=ROBO,(&SHIFT) Продолжительность

моделирования

PUTPIC FILE=ATF,LINES=8,AC1

time *.*

create m m1

create m m2

create m m3

create m m4

create m m5

create rob rob

place rob 0 6

***********************************************************

* Рабочее место 1

***********************************************************

GENERATE &SA1,&SAS1,,,,1PL,1PH Поступление заявки с

рабочего места 1

TEST NE &M1,0,DES Проверка включения

рабочего места 1

ASSIGN 1,&RES1/&SCOR,PL Время движения до

рабочего места 1

ASSIGN 1,1,PH Принадлежность заявки

1-му рабочему месту

BPUTPIC FILE=ATF,LINES=6,AC1,&SA1,&SAS1,&RES1,PL1

TIME *.*

set m1 color red

place m1 -30 38

write z1 * *

write r1 L=*m

write re1 t=*min

TRANSFER ,ROB Переход к робокару

***********************************************************

* Рабочее место 2

***********************************************************

GENERATE &SA2,&SAS2,,,,1PL,1PH Поступление заявки с

рабочего места 2

TEST NE &M2,0,DES Проверка включения

Продолжение прил. 2

рабочего места 2

ASSIGN 1,&RES2/&SCOR,PL Время движения до

рабочего места 2

ASSIGN 1,2,PH Принадлежность заявки

2-му рабочему месту

BPUTPIC FILE=ATF,LINES=6,AC1,&SA2,&SAS2,&RES2,PL1

time *.*

set m2 color red

place m2 -20 38

write z2 * *

write r2 L=*m

write re2 t=*min

TRANSFER ,ROB Переход к робокару

***********************************************************

* Рабочее место 3

*********************************************************** GENERATE &SA3,&SAS3,,,,1PL,1PH Поступление заявки с

рабочего места 3

TEST NE &M3,0,DES Проверка включения

рабочего места 3

ASSIGN 1,&RES3/&SCOR,PL Время движения до

рабочего места 3

ASSIGN 1,3,PH Принадлежность заявки

рабочему месту 3

BPUTPIC FILE=ATF,LINES=6,AC1,&SA3,&SAS3,&RES3,PL1

TIME *.*

set m3 color red

place m3 -10 38

write z3 * *

write r3 L=*m

write re3 t=*min

TRANSFER ,ROB Переход к робокару

***********************************************************

* Рабочее место 4

***********************************************************

GENERATE &SA4,&SAS4,,,,1PL,1PH Поступление заявки с

рабочего места 4

TEST NE &M4,0,DES Проверка включения

рабочего места 4

ASSIGN 1,&RES4/&SCOR,PL Время движения до

рабочего места 4

ASSIGN 1,4,PH Принадлежность заявки

Продолжение прил. 2

рабочему месту 4

BPUTPIC FILE=ATF,LINES=6,AC1,&SA4,&SAS4,&RES4,PL1

TIME *.*

set m4 color red

place m4 10 38

write z4 * *

write r4 L=*m

write re4 t=*min

TRANSFER ,ROB Переход к робокару

************************************************************ Рабочее место 5

***********************************************************

GENERATE &SA5,&SAS5,,,,1PL,1PH Поступление заявки с

рабочего места 5

TEST NE &M5,0,DES Проверка включения

рабочего места 5

ASSIGN 1,&RES5/&SCOR,PL Время движения до

рабочего места 5

ASSIGN 1,5,PH Принадлежность заявки

рабочему месту 5

BPUTPIC FILE=ATF,LINES=6,AC1,&SA5,&SAS5,&RES5,PL1

TIME *.*

set m5 color red

place m5 20 38

write z5 * *

write r5 L=*m

write re5 t=*min

***********************************************************

* Моделирование работы робокара

***********************************************************

ROB QUEUE HUK Ожидание робокара

SEIZE CAR Занятие робокара

DEPART HUK Конец ожидания

ADVANCE RVNORM(1,&POG,&POGR) Загрузка робокара

BPUTPIC FILE=ATF,LINES=4,AC1,PH1,PL1/2,PH1

time *.*

set rob color red

set path p* travel *.*

place rob on p*

ADVANCE PL1 Движение робокара к

рабочему месту

ADVANCE RVNORM(1,&RASG,&RASGR) Разгрузка робокара

Продолжение прил. 2

BPUTPIC FILE=ATF,LINES=5,AC1,PH1,PH1,PL1/2,PH1

time *.*

set rob color green

set m* color green

set path p1* travel *.*

place rob on p1*

ADVANCE PL1 Движение робокара к

складу

BOX RELEASE CAR Освобождение робокара

BPUTPIC FILE=ATF,LINES=6,AC1,N(BOX),FT(CAR),_

FR(CAR)/10,QA(HUK),QT(HUK)

time *.*

write b *

write ft *.**

write fr *.**

write qa *.**

write qt *.**

DES TERMINATE Заявка выполнена

***********************************************************

* Продолжительность моделирования

***********************************************************

GENERATE &SHIFT Появление транзакта-таймера

TERMINATE 1 Удаление транзакта-таймера

START 1

PUTPIC FILE=ATF,LINES=2,AC1

time *.*

END

END

Список рекомендуемой Литературы

1. Советов, Б. Я. Моделирование систем : учеб. для вузов / Б. Я. Советов, С. А. Яковлев. – 3-е изд., перераб. и доп. – М. : Высш. шк., 2001. – 343 с.

2. Шеннон, Р. Имитационное моделирование систем – искусство и наука. – М. : Мир, 1978. – 420 с.

3. Кузин, Л. Т. Основы кибернетики : учеб. пособие для студентов вузов / Л. Т. Кузин. – М. : Энергия, 1979. – 584 с.

4. Шрайбер, Т. Д. Моделирование на GPSS. – М. : Машиностроение, 1980. – 593 с.

5. Основы моделирования на GPSS/PC : метод. указания для слушателей ФПКП по моделированию систем и сетей связи на GPSS/PC / сост. : Л. А. Воробейчиков, Г. К. Сосновиков. – М. : МТУСиИ, 1993. – 58 с.

6. Разработка САПР : методические указания по лабораторной работе «Имитационное моделирование систем массового обслуживания» / сост. : И. П. Норенков, Е. В. Федорук. – М. : МГТУ им. Н. Э. Баумана, 1994. – 67 с.

7. Компьютерная имитация и анимация : метод. указания по выполнению курсовой работы / сост. : В. В. Зиновьев. – Кемерово : КузГТУ, 2001. – 12 с.

8. Компьютерная имитация и анимация : программа, методические указания и контрольные задания для студентов заочной формы обучения специальности 210200 «Автоматизация технологических процессов и производств». – Кемерово : КузГТУ, 2002. – 32 с.

9. Построение анимационных моделей в Proof Animation :методические указания к лабораторной работе / сост. : А. В. Протодьяконов, А. А. Будников, В. В. Зиновьев. – Кемерово : КузГТУ, 2001. – 16 с.

Наши рекомендации