logo search
Учебное пособие_Моделир систем_Зиновьев

8. Пример создания модели компьютерной имитации и анимации

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

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

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

Таблица 14

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

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

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

1

2

3

4

5

500

300

100

200

160

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

Задание

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

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

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

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

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

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

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

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

Решение

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

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

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

в виде СМО

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

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

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

Рис. 48. Блок-схема GPSS/H-модели

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 52. Зависимость степени использования робокара k от числа рабочих мест n

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

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

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