<< Пред.           стр. 6 (из 6)           След. >>

Список литературы по разделу

  SIMULATE Пример 3.1 . Модель контроля качества
 * Временная дискрета : 1 минута
  TESTERS STORAGE 2 контролёры выходного контроля
  INTEGER ^I индекс петли управления
 * Модуль исполнения
 * Фрагмент 1 общий выходной контроль
  GENERATE 5.5,2 поступление готовых телевизоров,один за другим
  RETEST QUEUE LASTTEST организация очереди контроля
  ENTER TESTERS запрос контролёра
  DEPART LASTTEST выход из очереди контроля
  ADVANCE 10,3 время контроля
  LEAVE TESTERS освобождение контролёра
  TRANSFER .120,,ADJUSTIT 12% на подрегулировку
  TERMINATE 1 оставшиеся 88% на упаковку
 * Фрагмент 2 осуществление подрегулировки
  ADJUSTIT QUEUE ADJUSTQ организация очереди подрегулировки
  SEIZE ADJUSTER запрос регулировщика
  DEPART ADJUSTQ выход из очереди подрегулировки
  ADVANCE 30,10 время подрегулировки
  RELEASE ADJUSTER освобождение регулировщика
  TRANSFER ,RETEST возврат на общий контроль
 * Модуль управления
  START 100 СС=100, проведение первой реплики
  DO ^I=1,5,1 петля управления для 5 прогонов
  START 1 старт первой реплики
  CLEAR очистка для следующего прогона
  ENDDO окончание петли управления
  END окончание процесса ИМ
 5.Итоговый отчёт
 Отчёт имеет стандартный вид, но в связи с тем, что в рамках одного процесса ИМ проводилось 5 прогонов, для каждого из них даётся свой вариант отчёта в рамках одного листинга. Основные результаты сведены в таблицу 3.7 , которая в столбцах содержит информацию по 5 проведенным прогонам. Для точного сбора информации проведите ИМ в пакетном режиме и оцените полученные результаты по файлу с вашим именем, имеющим расширение .lies .
 
 
  Таблица 3.7 Перечень основных данных 5-ти реплик примера 3.1
 
 Объекты Данные по пяти прогонам
  Прогон 1 Прогон 2 Прогон 3 Прогон 4 Прогон 5
 Время 586.13 607.43 588.46 549.62 590.64
 Устройство
 Использование
 Число входов
 Среднее время
 0.706
 14
 29.56
 0.659
 13
 30.79
 0.738
 15
 28.92
 0.206
 5
 28.22
 0.627
 13
 28.23
 Память
 Использование
 Число входов
 Среднее число
 0.978
 115
 9.95
 
 0.965
 117
 10.02
 0.978
 116
 9.96
 0.952
 106
 9.87
 0.965
 114
 10.01
 Очереди
 LASTTEST
 Максимум
 Среднее
 Число входов
 Нульвходы
 ADJUSTQ
 Максимум
 Среднее
 Число входов нульвходы
 
 6
 2.24
 120
 10
 
 3
 0.603
 14
 5
 
 6
 1.335
 123
 14
 
 4
 1.28
 16
 5
 
 6
 2.676
 120
 8
 
 3
 0.587
 15
 5
 
 3
 0.644
 107
 24
 
 1
 0.033
 5
 4
 
 4
 1.388
 117
 13
 
 2
 0.421
 13
 4
 
 6.Выводы и обсуждение
  На основании примера 3.1 можно сделать несколько важных выводов:
 А. Для проведения нескольких реплик в пакетном режиме необходимо внести изменения только в модуль управления. Комбинация ОУ DO ENDDO позволяет проводить столько независимых прогонов, сколько раз это задано ОО INTEGER с помощью целочисленного АМП. При этом обнуляются все данные предыдущего прогона за исключением положения ГСЧ и ИН транзактов. Если обратиться к таблице 3.7 , то имеющийся разброс данных как раз и говорит о независимости реплик.
 Б. Если при использовании ОБ TRANSFER в статистической форме, пересылка по пути с большей вероятностью осуществляется к следующему последовательному ОБ (ОБ TERMINATE ) , то операнд В у ОУ может отсутствовать, а ОБ, к которому идёт пересылка при этом не имеет ярлыка , что видно из МФ.
 В. Показанная разбивка МФ на фрагменты не является обязательной, зависит только от предпочтений пользователя и может иметь и любой другой вид, при условии сохранения правил записи МФ. Более того сам порядок расположения фрагментов также не является обязательным, так Фрагмент 2 может предварять Фрагмент 1, не влияя на результаты ИМ ( проверьте это на практике, изменив порядок следования фрагментов ).
 Г. Отвечая на вопрос примера относительно мест на стеллажах, очевидно, что при максимальном числе членов очереди для общей очереди необходимо 6 мест, а для подрегулировки достаточно 3. Однако если оценивать среднее содержание, то необходимо гораздо меньше мест. Поэтому этот вопрос должен решаться с учётом условий производства и является компетенцией менеджера, а результаты ИМ служат основанием для принятия решения.
 
 
 3.7.2 Пример использования команд отладчика
 Пример 3.2 Обработка деталей в механическом цеху
  1. Постановка задачи . Заготовки в темпе 4 1 минуты поступают со склада на конвейерную линию, по которой они в течении 2 минут транспортируются до токарного станка, время обработки на станке составляет 3.75 1 минута, после чего обработанные детали выходят из системы, поступая на промежуточный склад.
  2. Допущения, сделанные в модели. Будем считать, что заготовки не ждут погрузки на конвейер. Система представляет собой одноканальную линию обслуживания. Задача решается для обработки 100 заготовок.
  3. Определения. Транзактами в этой модели являются заготовки, а устройством является токарный станок.
  4. Модельный файл
 * Модуль описания
  SIMULATE модель токарного цеха
 * Модуль исполнения
  GENERATE 4,1 поступление деталей
  ADVANCE 2 транспортировка по конвейеру
  SEIZE SERVER занятие станка
  ADVANCE 3.75,1 обработка детали
  RELEASE SERVER освобождение станка
  TERMINATE 1 уменьшение СС на единицу
 * Модуль управления
  START 100 обработка 100 деталей
  END окончание процесса ИМ
  А.Сеанс 1 . Произведём запуск отладчика командой
  gpssh ex3-2.gps tv ,
  после появления 3-х оконного отладчика в командной строке пишем
  step 1, s или нажимаем функциональную клавишу F10.
  Установим глобальное прерывание на ОБ 4 ( в примере этим ОБ является ОБ ADVANCE )
  BREAK 4 или b 4,
 для продолжения процесса ИМ используем одну из команд, печатаем в командной строке
  RUN или r, либо аналогичную команду CONTINUE или c .
 Моделирование продолжается до прихода Хакт в ОБ 4, после этого экран 3-х оконного отладчика приобретает вид , представленный на рис. 3.9
 
  GPSS/H SOURCE-MODE INTERACTIVE DEBUGGER ?????
 BLOCK CURRENT TOTAL SOURCE FOR MODEL EX3-2.GPS
 2 1 ADVANCE 2 транспортирование заготовки
 3 1 SEIZE SERVER занятие сервера
 4 0 ADVANCE 3.75,1 обслуживание на сервере
 5 0 RELEASE SERVER освобождение сервера
 6 0 TERMINATE 1 уменьшение СС на единицу
 ???????????????????????????????????????????????????
 ?S/C: ON ABS CLOCK: 5.5406 REL CLOCK: 5.5406 TTG: 100
 ???????????????????????????????????????????????????
 ?XACT: 1 CURBLK: 3 NEXTBLK: 4 CHAINS: CEC PC:
 ?MARK-TIME: 3.5406 MOVE-TIME: 5.5406 PRIORITY: 0
 ???????????????????????????????????????????????????
  Ready!
 : s 1
 XACT 1 POISED AT BLOCK 2. RELATIVE CLOCK: 3.5406
 : b 4
 : r
 XACT 1 HAS REACHED BREAKPOINT AT BLOCK 4. RELATIVE CLOCK: 5.5406
 :
 Рис. 3.9 Вид окна отладчика после исполнения первых команд
 
  В окне состояния видно, что Хакт1 достиг точки прерывания в ОБ 4 и располагается перед входом в ОБ, т.е. его текущим ОБ является SEIZE .
  Продолжим процесс ИМ, напечатав “c”, в диалоговом окне появляется сообщение:
 “XACT 2 HAS REACHED BREAKPOINT AT BLOCK 4” – Хакт 2 достиг точки прерывания в ОБ 4.
 Что за этот отрезок времени произошло с Хакт 1 , для выяснения напечатаем:
  “d XACT=1” ,
  после чего следует сообщение: “XACT 1 no longer exist” –Хакт 1 больше не существует. Отсюда следует, что Хакт 1 уже терминирован.
 Установим новую глобальную точку прерывания на ОБ 3 SEIZE командой “r 3”, нажатием Enter процесс ИМ продвигается до одной из точек прерывания. Для того, чтобы выяснить какие заданы точки прерывания печатаем в командной строке “d BRE”, что позволяет отобразить заданные точки прерывания. Установим теперь локальную точку прерывания на ОБ 6 TERMINATE, для этого напечатаем “c 6”, с помощью этой команды одновременно задаются локальные ограничения и запускается процесс ИМ. Процесс ИМ прерывается при достижении Хакт любого из ОБ с номерами 3,4,6 . Отобразим ОБ с наложенными ограничениями командой “d BRE”. Все команды проводите в сеансе работы с отладчиком, наблюдая за изменениями на экране. Отметьте , что в появившемся списке есть только ОБ 3 и 4 , ОБ 6 не включён, так как точка прерывания исполняется только при окончании действия команды “c 6”.
  Удалим действие прерывания на ОБ 3 командой “ unb 3” и для проверки исполнения вызовем список ограничений командой “d bre” , в списке окажется только ограничение на ОБ 4, удалим также прерывание с ОБ 4 командой “unb 4”.
  Предположим, что мы хотим получать информацию об использовании устройства каждый раз, когда Хакт оканчивает процесс обслуживания, для этого введём точку прерывания на ОБ 5 RELEASE командой “r 5”. Процесс ИМ останавливается в этом месте, получаем информацию об использовании устройства напечатав “d FAC(SERVER)” и запустив процесс ИМ командой “c”, т.е. написав две последовательные команды.
  Существует более компактный способ осуществить предыдущие операции:
 Вначале снимем ограничение на ОБ 5 командой “unb 5” и установим глобальное ограничение на ОБ 5 командой “AT 5”, после чего появится приглашение вида (@ ), затем вводим команду “d FAC(SERVER)” и, дождавшись нового приглашения (@) либо печатаем команду “end”, либо нажимаем клавишу Enter , после чего появляется обычное приглашение (:). После осуществления этих операций, программа каждый раз по достижении Хакт ОБ 5 будет в окне диалога выдавать информацию об использовании устройства. Напечатав команду ”c” окончим процесс ИМ, выходим из диалогового режима одним из возможных способов, в частности, наиболее часто применяемым путём подачи команды быстрого выхода – “QQ или qq”.
  Проведите сеанс отладчика несколько раз, вводя свои точки прерывания, для того чтобы убедиться в эффективности отладчика и приобрести практические навыки.
  Б. Сеанс 2. В целях приобретения дальнейших навыков в работе с отладчиком, ответим с его помощью на некоторые вопросы по примеру 3.2.
 1. Чему равняется коэффициент использования устройства, оцениваемый по каждой заготовке из первой партии равной 10 заготовкам, в какой момент пройдёт 10-я заготовка?
 2. Какова загрузка устройства в момент 100 дискрет МВ?
 3. Когда 34-я заготовка покинет склад и когда она попадёт на устройство?
 4. Когда 35-я заготовка попадёт в цех и остаётся ли в это время 34-я заготовка в модели?
 5. Когда 50-я заготовка покинет устройство?
  Очевидно, что можно задать любые вопросы, касающиеся моментов процесса ИМ, но и вышеприведенные должны продемонстрировать мощность и эффективность работы отладчика. Исходя из желания подвигнуть читателя на использование компьютера при отработке диалогового режима, видов окон отладчика больше отображаться не будет, а наиболее интересная информация, появляющаяся в диалоговом окне будет приводиться в тексте.
  1. Запускаем сеанс отладчика, для ответа на первый вопрос введём прерывание на ОБ 6 TERMINATE командой “b 6” и запускаем процесс ИМ командой “c”. Для получения информации об использовании устройства запишем команду
 “d FAC(SERVER)”. Точка прерывания сработала в 9.7701 дискрет МВ, коэффициент использования устройства равен 0.433.
  Для запуска процесса ИМ вводим команду “c” при этом помним, что условия прерывания не сняты. При достижении точки прерывания следующим Хакт, снова получаем информацию об использовании устройства командой “ d FAC(SERVER) “ . Такие операции надо произвести ещё 8 раз. Очевидно, что это экономичней осуществить с помощью последовательности команд :
  “AT – d FAC(SERVER - end “ и последующей команды “c” . Каждый раз при достижении ОБ 6 будет выдаваться информация о коэффициенте использования устройства. Данные о десяти проходах Хакт через точку прерывания приведены в таблице 3.8
  Таблица 3.8 Коэффициент использования устройства
 
 Хаст 1 2 3 4 5 6 7 8 9 10
 
 Ки
 0.433
 0.566
 0.655
 0.696
 0.720
 0.746
 0.778
 0.793
 0.812
 0.829
  Возрастание коэффициента использования объясняется тем, что первоначально предполагалось, что устройство свободно и заготовок в системе нет. Это переходное состояние, через какое то число заготовок перейдёт в установившееся состояние. Десятая заготовка выйдет из системы в 45.802 дискрет МВ. Снимем прерывание командой “unb 6”.
  2. Для ответа на второй вопрос используем условия запрета. Введём команду
 “ t CLO=100 “, а затем команду ”c”, с помощью которой достигаем значения времени 100.5762 , коэффициент использования устройства в этот момент равен 0.922 .
  3. Ответить на третий вопрос можно двумя путями : первый узнать, когда Хаст с ИН 34 появится на конвейере и для этого ввести точку прерывания на ОБ 2 и дождаться появление транзакта, второй более эффективный, наложить запрет на появление Хакт с ИН 34 командой “ t XACT=34” после чего появляется сообщение
  “ XACT 34 HAS NOT YET BEEN CREATED “ – Хакт 34 пока ещё не определён . Введя одну из команд “c или s или нажав клавишу F10 “ , запускаем процесс ИМ и узнаём время появления 34-ой заготовки на конвейере равное 133.7422 дискреты МВ. К устройству 34-я заготовка подъедет в 135.7422 (133.7422 + 2) дискрет МВ.
  Обратите внимание, что простота рассматриваемого МФ, в частности, непосредственное поступление заготовки со склада на конвейер, позволяет получить одинаковые значения времени, как для непрерывного, так и для шагового режима. В более сложных случаях влияние этих команд будет различным !
  4.Для ответа на четвёртый вопрос, необходимо отменить прежнее условие запрета командой “ unt 34 “ и наложить новый запрет командой “ t 35 “ и запустить процесс командой “c “. Исполнение остановится, когда Хакт 35 окажется перед входом в ОБ 1, это произойдёт в момент 137.1532 дискрет МВ. Для того чтобы узнать остался ли при этом Хакт 34 в модели, введём команду “d XACT=34 “ в сообщении диалогового окна говорится, что Хакт 34 ещё находится в модели, так как ему запрещён вход в ОБ 3 , так как Хакт ожидает обслуживания .
  5. Для ответа на пятый вопрос надо отменить предыдущий запрет командой
 “ unt XACT=35” и ввести запрет Хакт с ИН 50 командой “ t XACT=50” и запустить процесс ИМ командой “ c” . Процесс остановится, когда Хакт с ИН 50 окажется на входе в модель, так как в модели его ещё нет, то появится сообщение “ REQUEST QUEUED “ - запрашиваемый находится в очереди. Введя команду отмены запрета ”unt XACT=50”, получаем возможность оценить время, когда Хакт 50 покинет модель, для этого вводим команду прерывания на ОБ 6 TERMINATE “ b 6 “ и команду запуска ИМ “c”, получим, что время выхода из модели равно 202.8926 дискрет МВ. Таким образом, мы получили ответ на все поставленные вопросы и можно прерывать диалог командой “qq” и выходить в командную оболочку. Учитывая , что многие сейчас используют на своих компьютерах ОС Windows 2000 или XP можно все действия с программой проводить в рамках Windows Commander .
 
 ЛИТЕРАТУРА
  1. Варжапетян А.Г. , Глущенко В.В. Системы управления. Исследование и компьютерное проектирование. М. Вузовская книга, 2000 , 320с.
 
  2. Варжапетян А.Г. Моделирование на GPSS/H. СПб «Политехника» 2004, 390 с.
 
 3.Т. Дж. Шрайбер. Моделирование на GPSS. М.: Машиностроение, 1988. 595 с.
 
 4. Thomas J. Schriber An Introduction to Simulation Using GPSS/H. John Willey & Sons, NY, 1991, 437.
 
 5. Getting started with GPSS/H. Руководство по применению системы GPSS/H. Wolverine Software Corporation, 1998.

<< Пред.           стр. 6 (из 6)           След. >>

Список литературы по разделу