Автор: Пользователь скрыл имя, 04 Ноября 2012 в 14:28, курс лекций
Дисциплина «Моделирование в проектировании сложных систем» рассматривает вопросы применения имитационного моделирования при проектировании сложных технических и других систем, к которым относятся гибкие производственные системы (ГПС), их подсистемы, и другие объекты дискретного производства, а также транспортные, информационные, банковские, торговые, и т.п. системы, в основе которых с точки зрения моделей лежат системы массового обслуживания.
Списки пользователя (СП) организуются как с целью экономии машинного времени (из–за устранения потерь на просмотр СТС для поиска заблокированных транзактов), так и для реализации различных дисциплин обслуживания.
Ввод транзактов в список пользователя осуществляется блоком LINK (внести в список), вывод – блоком UNLINK (вывести из списка).
Формат и изображение блока LINK:
В операнде А указывается символическое или цифровое имя списка пользователя.
Операнд В задает место списка, куда направляется транзакт.
Допустимые значения операнда В:
FIFO – в конец СП;
LIFO – в начало СП;
PR – в порядке убывания приоритета;
P – в порядке возрастания значения параметра;
M1 – в порядке возрастания относительного времени.
Операнд C указывает альтернативный выход. Если операнд C не задан (безусловный режим), то индикатор СП устанавливается в «1». Все транзакты заносятся в СП в порядке, определенном операндом В. Если операнд С задан, то проверяется индикатор СП. Если при этом индикатор в положении «1», то вошедший транзакт заносится в СП, в порядке определенном операндом В. Ели же индикатор окажется в положении «0», то он переводится в «1», а транзакт направляется по адресу, указанному в операнде С.
Например:
LINK FAC, FIFO
LINK DDD, M1, MET1
В первом случае транзакты присоединяются к СП по правилу FIFO. Во втором случае, если индикатор СП будет в положении «0», транзакт пойдет на метку MET1, а не в СП.
Рассмотрим блок UNILINK. Его формат и изображение:
В операнде А указывается символическое или цифровое имя СП.
В операнде В записывается метка, по которой направляются выведенные из СП транзакты.
В операнде С записывается число выводимых из СП транзактов или слово ALL (все), по умолчанию – ALL.
Операнды D и E вместе с операндом Х задают порядок вывода транзактов из СП.
В дополнительном операнде Х указываются операторы отношения (G, GE, L, LE, NE), по умолчанию Е (равно). При этом сравнивается значение операнда D со значением операнда Е.
В операнде D могут быть указаны булева переменная, номер параметра, слово BACK (обратно).
Если в D указана булева переменная, то операнды X и E пусты. Булева переменная вычисляется относительно транзакта из СП. Если BVj = 1, транзакт удаляется из СП, если BVj = 0 для всех транзактов СП, то вошедший транзакт пытается пройти по адресу, указанному в операнде F, если последний опущен, то в следующий оператор.
Если в D указан параметр, а операнд E отсутствует, то значение параметра вошедшего транзакта сравнивается со значением такого же параметра транзактов из СП, если E не пропущен, то со значением, указанным в операнде E. Удаляемые транзакты направляются по адресу, указанному в операнде B.
При использовании в операнде D ключевого слова BACK (операнд E отсутствует) транзакты выводятся из конца СП.
Операнд F указывает метку, по которой направляется транзакт, вошедший в блок UNLINK, если ни один транзакт не выводится из СП.
Например, блок UNLINK ABC, MET, ALL выводит все транзакты из списка пользователя с именем ABC по правилу LIFO и направляет их по адресу MET. Блок UNLINK BBB, ALFA, 1, BACK выводит из конца списка ВВВ один транзакт и направляет его по адресу ALFA.
Всего из–за сочетания значений операндов X, D и E может быть восемь вариантов вывода транзактов. Они рассмотрены в [3].
Примеры
Пример 6.1. На участке контроля и наладки изделий один стенд для одного изделия. Режим работы участка – трехсменный по 24 часа в сутки. Обычные (так называемые «фоновые») изделия поступают на участок по пуассоновскому закону со средним временем 48 часов, на их обслуживание уходит (3 ± 0,5) часа. «Плановые» изделия, необходимые для дальнейшего использования в производстве в данный плановый период, поступают по пуассоновскому закону со средним временем 24 часа, их обслуживание – экспоненциальное со средним временем 2 часа. Плановые изделия могут захватить стенд, после их обслуживания фоновые изделия дообслуживаются. Ежедневно через 8 часов после начала работы на участок поступают по пуассоновскому закону более приоритетные изделия и занимают стенд на 2 часа.
Составить модель работы участка в течение 25 суток.
Структура примера заимствована из источника [4] и адаптирована к условиям производства.
Особенности модели следующие. В модуле обычных изделий транзакты занимают и освобождают стенд с помощью блоков SEIZE STEND и RELEASE STEND; в модуле плановых изделий транзакты захватывают и освобождают стенд с помощью блоков PREEMPT STEND (режим прерывания) и RETURN STEND; в модуле более приоритетных изделий захват и освобождение стенда происходят с использованием блока PREEMPT STEND, РR (режим приоритетный) и RETURN STEND.
При единице модельного времени в одну минуту, модельное время составляет 25 × 3 × 8 × 60 = 36000 единиц.
Программа модели имеет вид:
; Фоновые изделия
GENERATE (EXPONENTIAL (1, 0, 2880))
SEIZE STEND
ADVANCE 180, 30
RELEASE STEND
TERMINATE
; Плановые изделия
GENERATE (EXPONENTIAL (2, 0, 1440))
PREEMPT STEND
ADVANCE (EXPONENTIAL (3, 0, 120))
RETURN STEND
TERMINATE
; Приоритетные изделия
GENERATE (EXPONENTIAL (4, 0, 1440)) , , 480, , 1
PREEMPT STEND, PR
ADVANCE 120
RETURN STEND
TERMINATE
; Модуль таймера
GENERATE 36000
TERMINATE 1
START 1
Результаты моделирования показывают, что за 25 недель прошло контроль и наладку 13 обычных, 25 плановых и 25 более приоритетных изделий (по числу входов в первый, второй и третий блоки TERMINATE).
Пример 6.2. Составить модель работы системы с реализацией дисциплины обслуживания FIFO, если транзакты генерируются с интервалами от 17,5 до 22,5 единиц, распределенными по равномерному закону, а задерживаются при обработке в одноканальном устройстве по экспоненциальному закону со средним значением 10 единиц.
Программа обработки 10000 транзактов с использованием блоков LINK и UNLINK при выводе из СП по одному транзакту имеет вид:
GENERATE 20, 2.5
LINK ALFA, FIFO, MET1
MET1 SEIZE ROBOT
ADVANCE (EXPONENTIAL (1, 0, 10))
RELEASE ROBOT
UNLINK ALFA, MET1, 1
TERMINATE 1
START 10000
При моделировании сложных производственных систем (ГПС механообработки, штамповки, сборки и других дискретных технологических процессов) возникают задачи ветвления путей и синхронизации движения объектов, создания копий транзактов, их объединения и сбора, разрешения конфликтных ситуаций из-за ограниченности ресурсов основного и вспомогательного оборудования. В связи с этим рассмотрим средства, предназначенные для моделирования ансамблей (семейств) транзактов, организации циклических процессов и логического управления.
Наряду с блоком GENERATE для ввода в модель транзактов применяется блок SPLIT (расщепить). Этот блок порождает копии входящего в него транзакта. Формат и изображение оператора:
В операнде А указывается количество копий (в виде константы или СЧА).
В операнде В указывается метка, по которой направляются копии транзактов. Порождающий транзакт проходит в следующий оператор. Если операнд В задан по умолчанию, то копии также проходят в следующий оператор.
В операнде С указывается номер параметра, в котором упорядочиваются номера копий транзакта. Если номер порождающего транзакта k, то после блока SPLIT его номер будет k + 1, а номера копий k + 2, k + 3 и т.д.
Различные номера копий могут быть использованы для задания адресов, по которым они могут пойти. Например:
.
.
.
ABC FUNCTION P5, D3
2, BLOK A / 3, BLOK B / 4, BLOK C
.
.
.
SPLIT 3, FN $ ABC, 5
.
.
.
Копии транзактов будут направлены по меткам (адресам) BLOK A или BLOK B или BLOK C.
Транзакты, порожденные с помощью блока SPLIT, образуют ансамбль. Для работы с транзактами, принадлежащими ансамблю, используются блоки ASSEMBLE, GATHER, MATCH.
Блок ASSEMBLE (соединить) применяется для объединения нескольких транзактов одного семейство в один и продвижения его по модели. Остальные выводятся из модели. Формат и изображение блока:
В операнде А указывается количество объединяемых транзактов. Например:
ASSEMBLE 10
объединяет 10 транзактов, при этом 9 уничтожаются, а 1 уходит в следующий оператор.
Блок GATHER (собрать) применяется для накопления транзактов до количества, указанного в операнде А.
Формат и изображение блока:
Когда количество вошедших в блок транзактов достигнет значения, указанного в операнде А, все они пойдут в следующий оператор.
Блок MATCH (синхронизировать) осуществляет синхронизацию движения транзактов по двум направлениям.
Формат и изображение блока:
При этом используются два блока, как показано ниже:
Здесь в качестве операнда А левого блока используется метка правого (сопряженного) блока и наоборот.
Для организации
цикла можно применить
Эта схема соответствует ситуации, когда, например, детали в паллете убывают (транзакты идут по метке NEXT) до тех пор, пока не обнулится содержимое паллеты (тогда транзакт пойдет дальше по программе).
Для моделирования такого цикла можно использовать специальный блок LOOP (организовать цикл). Его формат и изображение:
В операнде А указывается параметр, содержимое которого после уменьшения на единицу сравнивается с нулем. В операнде В указывается метка начального в цикле оператора. Для рассмотренного фрагмента в этом случае будет запись:
LOOP 5, NEXT
Для моделирования логического управления используются логические ключи, представляющие собой объекты, которые могут принимать одно из двух значений: включено (1), выключено (0).
Логический ключ моделируется блоком LOGIC (воздействовать на логический ключ).
Его формат и изображение:
Этот блок изменяет состояние логического ключа, имя которого указано в операнде А, в соответствии с вспомогательным операндом X. Операнд Х может принимать значения: S – установить (включить); R – сбросить (выключить); I – инвертировать (изменить состояние на противоположное).
Например: LOGIC R 12 переводит логический ключ в состояние «выключено», а LOGIC I ALFA изменяет состояние ключа с именем ALFA на противоположное.
Для проверки состояния логического ключа используется блок GATE (впустить). Его формат и изображение:
Этот блок может использоваться в режиме отказа (операнд В не задается), когда транзакт пройдет в следующий оператор лишь при успешном результате проверки ключа, имя которого указано в операнде А, или в режиме условной передачи (в операнде В указывается метка, по которой направляется транзакт при безуспешном результате проверки).
В дополнительном операнде Х указываются символы:
LS – равен 1, если ключ включен; 0 – если выключен;
LR – равен 1, если ключ выключен; 0 – если включен.
При использовании блока GATE для проверки состояния других объектов модели его формат и режимы такие же.
Для проверки состояния одноканальных устройств в операнде A указывается имя или номер устройства; в операнде X: U (занято), NU (не занято); I (захвачено), NI (не захвачено); FV (доступно), FNV (не доступно).
При проверке состояния многоканальных устройств в операнде A указывается имя или номер МКУ; в операнде Х: SE (пусто), SNE (не пусто); SF (заполнено), SNF (не заполнено); SV (доступно), SNV (не доступно).
При проверке состояния синхронизации исследуемого транзакта в операнде A указывается метка блока MATCH; в операнде X: M (есть ли в блоке MATCH ожидающий синхронизации транзакт), NM (нет такого транзакта).
Раcсмотрим ГАЛ механообработки, состоящую из склада SKL, обрабатывающего модуля ОМО, транспортного робота TRM (рис. 7.1).
Рисунок 7.1
Работа линии соответствует диаграмме (рис. 7.2), на которой приняты обозначения: ПСК и РСК – соответственно получение заготовок и размещение деталей на складе; ОбМ – обработка в модуле; ТРМ и ТРС – соответственно транспортировка к модулю и складу.
Информация о работе Моделирование в проектировании сложных систем