Автор: Пользователь скрыл имя, 04 Ноября 2012 в 14:28, курс лекций
Дисциплина «Моделирование в проектировании сложных систем» рассматривает вопросы применения имитационного моделирования при проектировании сложных технических и других систем, к которым относятся гибкие производственные системы (ГПС), их подсистемы, и другие объекты дискретного производства, а также транспортные, информационные, банковские, торговые, и т.п. системы, в основе которых с точки зрения моделей лежат системы массового обслуживания.
Команда STORAGE (хранилище) устанавливает емкость МКУ. Формат команды:
<метка> STORAGE A
В поле метки указывается символическое имя МКУ, в операнде А – целое положительное число, определяющее емкость МКУ.
Блок ENTER (войти) моделирует занятие канала МКУ, а блок LEAVE (выйти) – освобождение канала МКУ.
Их форматы:
ENTER A, [B]
LEAVE A, [B]
В операнде А обоих блоков указывается имя МКУ, определенное в поле метки команды STORAGE. В операнде В указывается количество каналов, которые занимаются (блок ENTER) или освобождаются (блок LEAVE), по умолчанию В = 1.
Графическое изображение блоков:
Когда транзакт входит в блок ENTER, увеличиваетcя на значение операнда В этого блока счетчик входов и текущее содержимое МКУ и уменьшается на это число его доступную емкость.
При входе транзакта в блок LEAVE уменьшается на значение операнда В текущее содержимое и увеличивается на это же число доступная емкость.
При моделировании
автоматически формируется
При исследовании систем с МКУ возможны различные дисциплины обслуживания: первым пришел – первым обслужен; первым пришел – первым обслужен внутри приоритетного класса и др.
Иногда возникает ситуация, когда МКУ становится недоступным (например, аварийное состояние устройства на его входе).
Недоступность МКУ моделируется блоком sunavail (S обозначает МКУ, AVAIL – доступно, UN – отрицание). Формат блока и изображение:
Доступность МКУ восстанавливается после прохождения транзактом блока SAVАIL. Его формат и изображение:
В операндах А этих блоков указывается имя МКУ (метка команды STORAGE).
Если в МКУ при его недоступности находились транзакты, то они будут обслуживаться, пока текущее содержимое МКУ не станет равным нулю.
Прежде чем рассматривать примеры с одноканальными и многоканальными устройствами изучим основные режимы оператора, позволяющего изменять маршруты движения транзактов в модели.
Для изменения маршрутов движения транзактов в модели используется блок TRANSFER (передать). Его полный формат:
TRANSFER [А], [В], [C], [D]
Операнд А задает режим работы этого блока. Всего существует 9 режимов: , (по умолчанию) – безусловный; ∙ (статистический) – случайный выбор одного из двух операторов; BOTH (последовательный) – выбор одного из двух операторов; ALL (последовательный) – выбор одного из нескольких операторов; PICK (случайный) – выбор одного из нескольких операторов; FN – функциональный; P – параметрический; SBR – подпрограммный; SIM – одновременный.
Операнды В и С задают адреса последующих по требуемому маршруту операторов.
Операнд D используется в режиме ALL для указания шага изменения положения последующих операторов.
Графическое изображение блока имеет вид:
Рассмотрим первые три режима блока TRANSFER, остальные режимы изложены в [1] и в лабораторном практикуме ЭУМК данной дисциплины.
Режим безусловной передачи. В этом режиме операнд А задается по умолчанию, в операнде В указывается метка оператора, куда направляется транзакт. Например, запись TRANSFER ,ALFA означает, что транзакт, вошедший в данный блок, направляется в оператор с меткой ALFA.
Режим статистической передачи. В этом режиме в операнде А после точки задается число (до трех знаков), показывающее долю (от тысячи) транзактов, входящих в данный блок, которые направляются по адресу, указанному в операнде С, остальные пойдут по адресу, указанному в операнде В. Если В задан по умолчанию, то эта часть транзактов пойдет в следующий за блоком TRANSFER оператор. Например, TRANSFER . 200,, MET1 означает, что 20 % всех транзактов, вошедших в данный блок, пойдут по MET1, остальные 80 % – в следующий оператор.
Режим BOTH. В этом режиме в операнде A указывается слово BOTH (оба). Вошедший в данный блок транзакт последовательно пытается войти в операторы, адреса которых указаны в их полях метками, записанными в операндах В и С данного блока TRANSFER, пока попытка не будет успешной. Операнд B, как и в предыдущем режиме, может быть задан по умолчанию.
Режим ALL. В этом режиме в операнде А указывается слово ALL (все) в В и С – метки начального и конечного операторов, куда последовательно направляется транзакт с шагом по программе, указанным в операнде D. Например, эта ситуация моделируется фрагментом программы:
∙
∙
∙
TRANSFER ALL, MET1, MET2,4
MET1 SEIZE 1
ADVANCE 3
RELEASE 1
TERMINATE
SEIZE 2
ADVANCE 3
RELEASE 2
TERMINATE
SEIZE 3
ADVANCE 3
RELEASE 2
TERMINATE
MET2 SEIZE 4
ADVANCE 3
RELEASE 4
TERMINATE
∙
∙
∙
Транзакт, вошедший в оператор TRANSFER, пытается войти в блок SEIZE 1, если он не принимает, то в блок SEIZE 2 и т. д.
Пример 3.2. Изделия с интервалами (5 ± 2) мин. поступают в пункт технического контроля – ожидают в очереди – параллельно обслуживаются двумя контролерами по (9 ± 3) мин. – после этого 92 % уходят на упаковку – 8 % в очередь к наладчику – обслуживаются наладчиком в течение (30 ± 10) мин. и снова поступают в пункт технического контроля. Промоделировать работу участка в течение 5 недель при пятидневной неделе и двухсменном режиме работы. При единице модельного времени в 1 минуту время моделирования будет 5 × 5 × 2 × 8 × 60 = 24000 мин.
Особенность модели: одно МКУ (2 контролера) и одно одноканальное устройство (1 наладчик).
Программа модели:
CON STORAGE 2
GENERАТЕ 5, 2
BETTA QUEUE CONTR
ENTER CON
DEPART CONTR
АDVANСЕ 9, 3
LEAVE CON
TRANSFER ∙ 080, , ALFA
ТЕRМINАТЕ
ALFA QUEUE NALAD
SEIZE NAL
DEPART NALAD
АDVANСЕ 30, 10
RЕLЕАSЕ NAL
TRANSFER , BETTA
GENERАТЕ 24000
ТЕRМINАТЕ 1
START 1
Команда управления CLEAR (очистить) используется для подготовки модели к повторному прогону после переопределения операндов одного или нескольких операторов. Формат команды:
CLEAR [A]
В операнде А может быть указано OFF, тогда обнуляется вся статистика, кроме сохраняемых величин и логических ключей. Если операнд А задан по умолчанию (соответствует символу ON), то обнуляется вся статистика. При действии команды CLEAR все транзакты выводятся из модели. В обоих случаях значения генераторов случайных чисел не сбрасываются.
Команда управления RESET (сбросить) применяется для многократных прогонов модели при изучении работы моделируемой системы в течение длительного периода времени, включающего как переходный, так и стационарный режимы. Этот оператор не имеет операндов. Команда RESET сбрасывает в ноль статистику и относительное модельное время. При этом абсолютное модельное время не сбрасывается. Транзакты не выводятся из модели, а счетчик текущих значений каждого блока устанавливается равным числу транзактов, находящихся в блоке. Не сбрасываются в исходное состояние генераторы случайных чисел.
Рассмотрим некоторые объекты, необходимые для построения более сложных моделей систем с рассматриваемыми одноканальными и многоканальными устройствами.
СЧА – это условные обозначения объектов модели, к которым могут обращаться программы GPSS в процессе моделирования. Необходимость в СЧА обусловлена стремлением к минимизации программ. Все СЧА можно подразделить на два класса: системные СЧА, к которым пользователь может обратиться, но не может изменить (например С1 – относительное модельное время, АС1 – абсолютное модельное время, RNj – случайное число, генерируемое датчиком случайных чисел и другие), и СЧА объектов модели, которые могут изменяться пользователем (СЧА устройств, МКУ, очередей, таблиц, блоков, транзактов, объектов вычислительной категории, сохраняемых величин и др.).
Для обозначения СЧА используют одну–две буквы, определяющие групповое имя объекта (например, Q – длина очереди, FN – функция) и идентификатор в зависимости от способа адресации. При прямой адресации задают объект константой, например, SEIZE 10, или СЧАj, где j – номер объекта или $ имя, а имя – символическое имя объекта, например: SEIZE Р1 (имя объекта содержится в первом параметре активного транзакта), SEIZE P$ABC (имя объекта содержится в параметре с именем АВС активного транзакта). При косвенной адресации СЧА определяют так: СЧА*СЧА объекта, например SEIZE P*Х10 означает, что номер устройства содержится в параметре (Р), номер которого определяется значением сохраняемой ячейки (Х10).
Рассмотрим СЧА наиболее распространенных объектов.
СЧА одноканальных устройств
Код |
Значение |
Fj |
Занятость: 1 – занято, 0 – не занято |
FIj |
Прерванность: 1 – прервано, 0 – не прервано |
FVj |
Доступность: 1 – доступно, 0 – не доступно |
FRj |
Коэффициент использования в долях тысячи |
FTj |
Среднее время использования устройств одним транзактом |
FCj |
Количество занятий устройства |
СЧА многоканальных устройств
Код |
Значение |
Rj |
Доступная емкость |
Sj |
Текущее содержимое |
SAj |
Среднее значение содержимого за определенное время |
SRj |
Коэффициент использования в долях тысячи |
SMj |
Максимально занятое (одновременно) количество каналов |
SCj |
Счетчик числа входов |
STj |
Среднее время использования одного канала |
SEj |
Занятость: 1 – занято, 0 – не занято |
SFj |
Заполненность: 1 – заполнено, 0 – не заполнено |
SVj |
Доступность: 1 – доступно, 0 – не доступно |
СЧА очередей
Код |
Значение |
Qj |
Текущее содержимое |
QAj |
Средняя длина очереди |
QMj |
Максимальная длина очереди |
QCj |
Число входов в очередь |
QZj |
Число нулевых входов в очередь |
QTj |
Среднее время пребывания транзакта в очереди для всех транзактов |
QXj |
Среднее время пребывания транзакта в очереди без нулевых входов |
СЧА блоков
Код |
Значение |
Nj |
Счетчик входов |
Wj |
Текущее содержимое |
СЧА других объектов будут рассматриваться при изучении соответствующих операторов.
Переменные пользователя создаются командой EQU (эквивалентировать) или PLUS–процедурами.
Рассмотрим оператор EQU. Он имеет формат:
<метка> EQU A
Эта команда
присваивает имени переменной, указанному
в поле метки, или в поле операнда,
числовое значение, а также переменной
пользователя – строковое значение
(двойные кавычки для
Например, запись ALFA EQU 1 означает, что имя ALFA (допустим в операторе SEIZE ALFA) переименуется в имя цифровое (1) и при этом в выходной статистике будет FACILITY…, а не FACILITY… .
1 ALFA
Запись АВС EQU 32.5 означает, что переменной пользователя АВС присвоено числовое значение 32.5.
При исследовании влияния вариации какого–либо фактора на показатели системы необходимо использовать переменные пользователя.
В GPSS есть возможность использовать специальные ячейки памяти с начальными значениями, устанавливаемыми пользователем. Такие ячейки называют сохраняемыми величинами (сохраняемыми ячейками).
Рассмотрим линейные сохраняемые величины. Их СЧА – Xj, где j – целое положительное число или $ имя, например, Х1 или Х $ АВС. Сохраняемые величины могут использоваться в качестве операндов операторов, аргументов функций и таблиц.
Информация о работе Моделирование в проектировании сложных систем