ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ПРОИЗВОДСТВЕННЫХ ПРОЦЕССОВ

Основные характеристики имитационного моделирования

Часто производственные системы могут идентифицироваться как многофазные или комбинированные, поведение которых невозможно описать аналитически существующим математическим аппаратом. Например, зона ТО, имеющая поточную линию, идентифицируется как многофазная, разомкнутая, смешанного типа, без приоритетов (или с приоритетами, если есть указания службы перевозок, какой автомобиль надо обслужить раньше).

При рассмотрении совместной работы постов ТО и специализированного поста смазки их можно идентифицировать как комбинированную СМО. Входные и выходные потоки в реальных СМО редко описываются законом Пуассона, а чаще — более сложными законами: нормальным, логарифмическим, Вейбулла и др. Для описания таких систем применяется имитационное моделирование [10, 11, 13].

Смоделировав работу СМО какого-либо предприятия (или его производственного участка), можно провести исследования, направленные на выявление «слабых мест» в системе или оценить необходимость введения в нее дополнительных элементов. Меняя различные параметры модели СМО, можно достигать оптимального соотношения обслуживаний и очередей.

При имитационном моделировании для каждой СМО получают:

  • ? среднее время ожидания обслуживания;
  • ? среднее время простоя СМО;
  • ? максимальную длину очереди;
  • ? коэффициент использования каналов;
  • ? среднее время нахождения заявки на обслуживании;
  • ? максимальное время нахождения заявки на обслуживании.

Выводятся также общие показатели системы:

  • ? общее время прихода N заявок;
  • ? время выхода последней заявки;
  • ? общий коэффициент использования системы по времени;
  • ? общий коэффициент использования системы по числу заявок.

Любая моделируемая система может быть описана в терминах небольшого набора абстрактных элементов — объектов. Таким же образом логические правила, лежащие в основе систем, могут быть сведены к обобщенному набору простых операций. Следовательно, язык моделирования необходимо составлять из абстрактных объектов и операций. Специфические элементы и логические правила конкретных систем могут быть представлены в терминах абстрактных объектов и операций этого языка. Комбинируя элементы модели и логические операции, можно выполнять эксперименты значительно быстрее и с меньшими затратами, чем в реальной системе.

Для реализации имитационного моделирования в настоящее время разработаны и используются различные языки моделирования на ЭВМ: GPSS, SOL, СИМУЛА, СИМСКРИПТ и др. Для моделирования производственных ситуаций на предприятиях автомобильного транспорта хорошо подходит язык GPSS (General Propouse Simulation Sistem). Его сокращенное русское название — ОЦСМ, т.е. общецелевая система моделирования. Это интерпретирующий язык, обеспечивающий имитацию пространственных перемещений объектов (например, автомобилей) при фиксированной блок-схеме. В нем предусмотрены различные виды синхронизации и взаимосвязи. В данной главе будут рассмотрены вопросы использования GPSS.

Модель строится из наборов простых объектов, разделяемых на четыре класса: динамические, аппаратно-ориентиро- ванные, статистические и операционные.

Динамические объекты, представляющие собой элементы потока обслуживания, называются в ОЦСМ транзактами. Они «создаются» и «уничтожаются» так, как это необходимо в процессе моделирования. С каждым транзактом может быть связано некоторое число параметров, которые назначаются пользователем для задания характеристик этого транзакта. Если, например, под транзактами подразумевать автомобили, то в параметры можно записать их основные и дополнительные характеристики, которые можно изменять (или модифицировать) при моделировании.

Аппаратно-ориентированные объекты соответствуют элементам оборудования, которые управляются транзактами. Они содержат устройства, накопители и логические переключатели. Устройство может обслуживать одновременно только один транзакт. Оно представляет собой потенциальное «узкое место». Накопитель может обслуживать одновременно несколько тран- зактов. Логический переключатель является бистабильным индикатором, который, принимая при прохождении одного транзакта состояние «включено» или «выключено», может изменять путь других транзактов.

Чтобы оценить поведение системы, применяют статистические объекты двух типов: очереди и таблицы. Каждой очереди соответствуют перечень транзактов, задержанных в какой-либо точке системы, и запись длительности этих задержек. Таблицы могут использоваться для построения распределений выбранных величин.

Наконец, операционные объекты, называемые блоками, формируют логику системы, давая транзактам указания, куда идти и что делать дальше. Эти блоки в совокупности с другими классами объектов, указанными выше, и составляют средства языка ОЦСМ (прил. 9).

Для описания структур различных систем широко используются блок-схемы. Они состоят из последовательности блоков, каждый из которых описывает определенный этап действия системы. Линии, соединяющие, блоки, указывают на порядок прохождения через систему или описывают последовательность событий, которые нужно проанализировать. Альтернативные ситуации, возникающие в системе, изображаются более чем одной линией, выходящей из блока. Наоборот, один блок может иметь несколько входящих линий (этим отображается тот факт, что один блок является общим для нескольких последовательных событий). Выбор пути при наличии нескольких вариантов может быть случайным или логическим, т.е. зависящим от состояния системы в момент выбора. В ОЦСМ используются оба этих метода.

Для симулятора ОЦСМ введены некоторые общие представления о моделируемых системах, каждое из которых соответствует некоторому действию или условию, обычно встречающемуся в системах. В блок-схему могут быть введены случайные величины, предусмотрены различные процедуры формирования статистик. В процессе моделирования транзактам могут присваиваться приоритеты различных уровней, и тогда сами транзакты будут обеспечивать принятие сложных логических решений. Возможно также моделирование взаимосвязи переменных в системе, таких как длина очереди и интенсивность поступления транзактов, стоимость и время обработки. Для того чтобы смоделировать систему, необходимо составить ее описание в терминах ОЦСМ. Затем симулятор генерирует транзакты, продвигает их через заданные блоки и выполняет действия, соответствующие блокам.

Симулятор ОЦСМ передвигает транзакты от блока к блоку аналогично тому, как движутся в реальной системе единицы потоков (например, автомобили), изображаемые транзактами. Каждое продвижение транзакта является событием, которое должно произойти в определенный момент времени. Симулятор регистрирует время наступления каждого события, затем производит обработку событий в правильной временной последовательности. Если транзакты заблокированы и не могут двигаться в данный момент, то симулятор продвинет их тогда, когда изменится блокирующее условие (или условия).

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

абсолютным временем. Имеется другое значение времени, называемое относительным временем. Это значение также показывает текущее время в модели. Однако с помощью специальной карты относительное время может устанавливаться в процессе моделирования в нуль, и последующий его счет будет производиться от этой точки. Другой специальной картой в нуль могут устанавливаться оба значения времени. Все времена в модели изображаются целыми числами. Единица времени моделируемой системы, соответствующая единичному изменению показания часов, определяется пользователем, который задает все временные интервалы в выбранных им единицах. Выбранная единица времени, какой бы она ни была (миллисекунда или год), должна быть выдержана во всей модели. В ОЦСМ используются только целочисленные временные значения.

Симулятор не анализирует состояние системы в каждый следующий момент времени (отстоящий от текущего на единицу). Вместо этого он изменяет значение абсолютного времени, полагая его равным времени наступления ближайшего из рассматриваемых событий. Следовательно, фактором, определяющим время счета модели, является число событий, которые нужно смоделировать, а не продолжительность моделируемого интервала времени в реальной системе.

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

Цепь текущих событий включает те транзакты, планируемое время наступления событий которых равно или меньше текущего времени (к ним относятся транзакты, движение которых планировалось в некоторый предыдущий момент времени, но которые были блокированы).

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

Цепь будущих событий содержит транзакты, планируемое время наступления событий которых больше текущего часового времени, т.е. наступление этих событий должно произойти в будущем.

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

Цепь парных транзактов содержит транзакты, которые в текущий момент времени имеют статус парности (т.е. ожидают прибытия синхронизирующих транзактов).

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

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

Модель-программа на языке ОЦСМ пишется на бланках определенного формата. Формат ввода содержит 72 колонки, разбитые на три поля: поле «Метки» (колонки 2-6), поле «Операции» (колонки 8-18) и поле «Переменные» (начиная с колонки 19). Поле «Переменные» содержит подполя, обозначаемые А, В, С, ..., Н. Последующие подполя отделяются от предыдущих запятыми; если подполе, которое должно стоять между указанными подполями, пропущено, то вместо него необходимо ставить запятую. Конец поля переменных обозначается первой пустой клеткой, считая от колонки 19. Подполе, не определенное пользователем в поле переменных, считается программой пустым. Любая информация, следующая за пропуском после поля переменных, воспринимается как комментарий. Комментарии можно писать после знака точка с запятой (;) в любом месте программы или после символа звездочка (*), которая должна находиться в первой колонке формата ввода.

Каждый из объектов ОЦСМ требует определенного количества ячеек основной памяти, в которых во время моделирования хранятся атрибуты объекта. Атрибуты объектов, к которым может обращаться программист, называются стандартными числовыми атрибутами (СЧА). Все стандартные числовые атрибуты имеют одно- или двухбуквенные мнемонические обозначения. Мнемоническое обозначение указывает на тип атрибута, а целочисленное значение — на конкретный атрибут.

Номера блоков можно обозначать символами. При этом обозначение должно включать от трех до пяти знаков, отличных от пробела, первые три из которых должны быть буквами. Эти ограничения необходимы для того, чтобы избежать смешивания атрибутов системы и символов. Дополнительным ограничением является недопустимость таких специальных знаков, как «+», «-», «*» и др.

Если в полях А, В, С блока представлены стандартные числовые атрибуты Nj или Wp то необходимо, чтобы номер блока был представлен в качестве аргумента. Если этот номер обозначен символом, то такое представление должно быть отличным от мнемонических обозначений, указанных СЧА (N или W). В качестве префикса символа необходимо использовать знак доллара ($). Для удобства этот знак может быть предпослан всем символам в поле переменных. Пользователь может применять относительную адресацию. В символьной записи CROSS ± п обозначение CROSS указывает на нужный блок, а число п — на номер блока, отсчитываемого от номера блока CROSS.

При косвенной адресации предполагается, что нужный аргумент представлен некоторым параметром. Последний обозначается звездочкой (*), за которой следует целое число, определяющее соответствующий параметр. Например, S*10 соответствует текущему значению накопителя, номер которого задан параметром 10. Косвенная адресация может производиться с помощью любого СЧА, кроме Cl, Ml и RNn.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >