Работа 1. Лабораторная работа 3 (1). Динамические системы и методы их математического моделирования в пакете Matlab Simulink
Скачать 363.5 Kb.
|
3. Описание языка моделирования GPSS GENERATE (ГЕНЕРИРОВАТЬ) Назначение оператора: генерирование транзактов в соответствии с заданным правилом формирования интервалов между транзактами. Формат оператора: GENERATE [A],[B],[C],[D],[E] Значения операндов: A – средний интервал времени между генерируемыми транзактами или вероятностное распределение интервала из встроенной библиотеки процедур, заключённое в круглые скобки; [по умолчанию – ноль]; B – величина полуинтервала равномерно распределенного интервала или модификатор таблично заданной функции; [по умолчанию – ноль]; С – смещение – момент формирования первого транзакта; [по умолчанию – ноль]; D – ограничитель – число генерируемых данным оператором транзактов; [по умолчанию – не ограничено]; Е – уровень приоритета от 0 до 127 (чем больше номер, тем выше приоритет); [по умолчанию – ноль]. Примечание. Несмотря на то, что операнды A и D – необязательные операнды, в операторе GENERATE обязательно должен использоваться один из них: либо операнд A, либо операнд D. TERMINATE (ЗАВЕРШИТЬ) Назначение оператора: удаление транзактов из модели. Формат оператора: TERMINATE [A] Значения операндов: A – указатель уменьшения счетчика завершений (целое положительное число); [по умолчанию – ноль]. ADVANCE (ЗАДЕРЖАТЬ) Назначение оператора: задержка транзакта на заданное время. Формат оператора: ADVANCE [A],[B] Значения операндов: A – среднее время задержки или вероятностное распределение из встроенной библиотеки процедур, заключённое в круглые скобки; [по умолчанию – ноль]; B – величина полуинтервала равномерно распределенного интервала задержки или модификатор таблично заданной функции; [по умолчанию – ноль]. SEIZE (ЗАНЯТЬ) Назначение оператора: занятие транзактом прибора. Формат оператора: SEIZE A Значения операндов: A – идентификатор (число или имя) занимаемого прибора. RELEASE (ОСВОБОДИТЬ) Назначение оператора: удаление транзакта из прибора (освобождение прибора). Формат оператора: RELEASE A Значения операндов: A – идентификатор (число или имя) освобождаемого прибора. QUEUE (СТАТЬ В ОЧЕРЕДЬ) Назначение оператора: занесение транзакта в очередь (точнее – регистрация статистики очереди, связанная с фиксацией момента поступления транзакта в очередь и увеличением ее длины). Формат оператора: QUEUE A,[B] Значения операндов: A – идентификатор (число или имя) очереди; B – количество элементов, на которое должна увеличиться длина очереди; [по умолчанию – один]. DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) Назначение оператора: удаление транзакта из очереди (точнее – регистрация статистики очереди, связанная с уменьшением ее длины и фиксацией момента удаления транзакта из очереди с целью определения времени ожидания). Формат оператора: DEPART A,[B] Значения операндов: A – идентификатор (число или имя) очереди; B – количество элементов, на которое должна уменьшиться длина очереди; [по умолчанию – один]. ENTER (ВОЙТИ) Назначение оператора: вход транзакта в многоканальное устройство. Формат оператора: ENTER A,[B] Значения операндов: A – идентификатор (число или имя) многоканального устройства; B – количество занимаемых приборов многоканального устройства; [по умолчанию – один]. LEAVE (ВЫЙТИ) Назначение оператора: удаление транзакта из многоканального устройства. Формат оператора: LEAVE A,[B] Значения операндов: A – идентификатор (число или имя) многоканального устройства; B – количество освобождаемых приборов многоканального устройства; [по умолчанию – один]. TEST (ПРОВЕРИТЬ) Назначение оператора: поверка значения (обычно СЧА) и передача активного транзакта в блок, отличный от последующего, если указанное условие не выполняется. Формат оператора: TEST Х A,B,[C], Значения операндов: A – проверяемое значение; B – контрольное значение; C – имя (метка) блока назначения C; [по умолчанию – Режим отказа]; Х – оператор отношения, определяющий условие проверки операнда А с операндом В:
Блок TEST может функционировать в двух режимах: в режиме альтернативного выхода (если задан операнд C); в режиме отказа (если операнд C не задан). Когда транзакт пытается войти в блок TEST в режиме альтернативного выхода и проверяемое условие не выполняется, транзакт передается блоку, указанному в операнде С. Когда транзакт пытается войти в блок TEST в режиме отказа (при отсутствии операнда С) и заданное условие не выполняется, транзакт блокируется до тех пор, пока условие не будет выполнено. TRANSFER (ПЕРЕДАТЬ) Назначение оператора: передача транзакта в блок, отличный от последующего. Режимы использования оператора TRANSFER: режим безусловной передачи; режим статистической передачи; режим BOTH (ОБА); режим ALL (ВСЕ); режим PICK (выборочный); режим FN (функциональный); режим P (параметрический); режим SBR (подпрограммный); режим SIM (одновременный). Далее рассматриваются только первый, третий и четвертый режим. Режим безусловной передачи Назначение оператора: безусловная передача транзакта в блок, отличный от последующего. Формат оператора: TRANSFER ,B Значения операндов: A – НЕ используется, что является признаком режима безусловной передачи; B – имя блока, к которому направляется активный транзакт. Режим BOTH (ОБА) Назначение оператора: В этом режиме каждый входящий транзакт сначала пытается перейти к блоку, указанному в поле В. Если это сделать не удается, транзакт пытается перейти к блоку, указанному в поле С. Если транзакт не сможет перейти ни к тому, ни к другому блоку, оно остается в блоке TRANSFER и будет повторять в том порядке попытки перехода при каждом просмотре списка текущих событий, до тех пор, пока не сможет выйти из блока TRANSFER. Формат оператора: TRANSFER A,B,C Значения операндов: A – равно BOTH, что является признаком режима ОБА; B,С – имена блоков, к которым может направляется активный транзакт. Режим ALL (ВСЕ) Назначение оператора: В этом режиме каждый входящий транзакт прежде всего пытается перейти к блоку, указанному в поле В. Если транзакт в этот блок войти не может, то последовательно проверяются все блоки в определенном ряду в поисках первого, способного принять этот транзакт, включая блок, указанный операндом С. Номер каждого проверяемого блока вычисляется как сумма номера предыдущего блока и шага, заданного операндом D Формат оператора: TRANSFER A,B,C,D Значения операндов: A – равно ALL, что является признаком режима ВСЕ; B – первый блок к которому направляется транзакт; C – последний блок к которому направляется транзакт; D – шаг, количество операторов который пропускает транзакт до следующего блока, если и блок который указ в операнде C, цикл начинается с начала. TABULATE (ТАБУЛИРОВАТЬ) Назначение оператора: занесение значений в таблицу. Формат оператора: TABULATE A,[B] Значения операндов: A – имя таблицы, в которую заносится соответствующее значение и которая должна быть описана с помощью оператора описания (команды) TABLE; B – весовой коэффициент; [по умолчанию – Коэффициент равен 1]. При попадании активного транзакта в оператор TABULATE обновляется статистика, связанная с таблицей, указанной в операнде A STORAGE (МНОГОКАНАЛЬНОЕ УСТРОЙСТВО) Назначение: описание ёмкости многоканального устройства (памяти). Формат оператора: <Имя> STORAGE A Здесь: <Имя> – имя многоканального устройства. Значения операнда: A – количество приборов (каналов) в многоканальном устройстве. TABLE (ТАБЛИЦА) Назначение: описание таблицы, используемой в модели для накопления частоты попадания некоторой случайной величины в заданные частотные интервалы и построения гистограммы плотности распределения. Формат оператора: <Имя> TABLE A,B,C,D Здесь: <Имя> – имя таблицы (не более 32-х алфавитно-цифровых символов). Значения операндов: A – имя случайной величины (СЧА), значения которой должны учитываться в таблице; операнд А игнорируется дисперсионным анализом, но должен быть определен, когда используется блоками TABULATE; B – ширина первого частотного интервала; C – ширина всех промежуточных частотных интервалов; D – количество частотных интервалов таблицы, включая левый и правый (целое положительное число). QTABLE (ТАБЛИЦА ОЧЕРЕДИ) Назначение: описание таблицы очереди, используемой в модели для накопления частоты попадания времени нахождения транзакта в очереди (времени ожидания) в заданные частотные интервалы и построения гистограммы плотности распределения. Формат оператора: <Имя> TABLE A,B,C,D Здесь: <Имя> – имя таблицы (не более 32-х алфавитно-цифровых символов), в которой будут накапливаться значения частот. Значения операндов: A – имя очереди, для которой формируется таблица; B – ширина первого частотного интервала; C – ширина всех промежуточных частотных интервалов; D – количество частотных интервалов таблицы, включая левый и правый (целое положительное число). VARIABLE (АРИФМЕТИЧЕСКАЯ ПЕРЕМЕННАЯ) Назначение: описание арифметической переменной. Формат оператора: <Имя> VARIABLE X Здесь: <Имя> – имя арифметической переменной. Значения операнда: X – арифметическое выражение для вычисления значения переменной <Имя>. START (НАЧАТЬ) Назначение: запуск процесса моделирования. Формат оператора: START A,[B],,[D] A – начальное значение «счетчика завершений»; B – признак вывода статистики: значение NP (no printout) блокирует вывод стандартной статистики; необязательный операнд; D – признак вывода списков: значение 1 включает вывод списков будущих и текущих событий в стандартный отчет; необязательный операнд. Групповые имена (наименования) и значения основных СЧА объектов, таких как приборы, многоканальные устройства, очереди итаблицы приведены ниже. СЧА приборов
СЧА многоканальных устройств
СЧА очередей
Кроме того, могут использоваться следующие СЧА объектов: СЧА таблиц: TB$<Имя> – Среднее значение элементов таблицы TC $<Имя> – Количество учтенных в таблице элементов TD $<Имя> – Стандартное отклонение элементов таблицы СЧА функции: FN$<Имя> – результат вычисления функции; СЧА переменной: V$<Имя> – результат вычисления переменной. Примеры СЧА объектов: FR3 – возвращает значение загрузки прибора с номером 3; FT$Auto_Master – возвращает среднее время занятия транзактом прибора с именем Auto_Master. S22 – возвращает количество занятых приборов в многоканальном устройстве с номером 22; SM$Kassa_2m – возвращает максимальное количество занятых приборов в многоканальном устройстве с именем Kassa_2m. V$F_5 – возвращает значение переменной F_5. К СЧА системы относятся такие глобальные переменные как: АС1 – значение абсолютного модельного времени (с момента начала моделирования или последней команды CLEAR); С1 – значение относительного модельного времени (с момента последней команды RESET); TG1 – текущее значение счетчика завершения; Z1 – свободная оперативная память ЭВМ в байтах. К СЧА транзактов относятся: MP<Число> или MP$<Имя> – транзитное время транзакта(абсолютное модельное время минус значение, содержащееся в параметре <Число> или <Имя>); P<Число> или P$<Имя> – значение параметра <Число> или <Имя>; PR – приоритет транзакта; M1 – резидентное время транзакта (абсолютное модельное время минус время появления транзакта в модели); XN1– номер активного транзакта. Встроенная библиотека процедур GPSS World содержит более 20 вероятностных распределений, в том числе: равномерное (Uniform); экспоненциальное (Exponential); геометрическое (Geometric); Пуассона (Poisson); Бета (Beta); Гамма (Gamma); биномиальное (Binomial); дискретно-равномерное (Discrete Uniform); треугольное (Triangular); нормальное (Normal); Парето (Pareto); … Для обращения к вероятностному распределению необходимо указать имя библиотечной процедуры и её параметры, заключённые в круглые скобки и отделённые друг от друга запятой: <Имя процедуры>(G,А,В, …) Здесь G – номер генератора равномерно распределённых случайных чисел (от 1 до 999) – используется в качестве аргумента для формирования случайных величин с заданным законом распределения. Остальные параметры A, B, …, количество которых для разных распределений составляет от 1 до 4, задают непосредственно параметры вероятностного распределения. Ниже рассматриваются только некоторые из перечисленных распределений, наиболее часто используемые в моделях массового обслуживания. 1. Равномерное распределение: UNIFORM (G,Min,Max), где Min и Max – соответственно минимальное и максимальное значение равномерно распределённой случайной величины. 2. Экспоненциальное распределение: EXPONENTIAL (G,Min,Mean), где Mean – математическое ожидание (среднее значение) случайнойвеличины, распределённой по экспоненциальному закону; Min – смещение распределения относительно нуля (минимальное значение случайной величины). 3. Распределение Пуассона: POISSON (G,Mean), где Mean – математическое ожидание (среднее значение) случайной величины. 4. Геометрическое распределение: GEOMETRIC (G,P), где P – параметр распределения, принимающий значения в интервале (0;1). Библиотечные процедуры вероятностных распределений могут использоваться в выражениях, в том числе арифметических, а также в качестве операнда A в операторах GENERATE и ADVANCE. В последнем случае они рассматриваются как выражения языка PLUS и должны быть заключены в круглые скобки. |