Моделирование систем управления. Формирование требований и разработка концептуальной модели. Разработка математической модели системы массового обслуживания, страница 10

- QUEUE – захват (вход в очередь);

- DEPART – выход из очереди.

Очереди имеют следующие СЧА:

Q $ j – длина j-ой очереди;

QM $ j – максимальная длина j-ой очереди;

QA $ j – средняя длина очереди;

QT $ j – среднее время ожидания ТА в очереди  с учётом транзитных ТА, то есть которые не задерживались;

4.  Функции с помощью этого объекта устанавливается функциональная зависимость между СЧА. В основном это законы распределения случайной величины.

Функции бывают:      -  непрерывные – C;

      -  дискретные – D.

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

Операторы GPSS

Формат операторов:

    Метка…Операция…Операнды…Комментарии

Метка – это символьный адрес перехода. Символьный адрес должен занимать не более 5 знаков. Метка обязательно начинается с буквы. Первый символ всегда устанавливается в 1-ом столбце поля. Начиная с 6-го столбца, записывается операция, состоящая из названия программного блока. В  названии должно быть не менее 4-х символов. Далее через пробел записываются операнды. В качестве операндов фигурируют СЧА, численные значения функции, соотношения. Если операндов несколько, между ними ставится запятая. После операндов пишутся комментарии. Поле операндов от комментария отделяется точкой с запятой.

Описание операторов GPSS

Операторы GPSS делятся на 2 класса:

1)  Операторы управления типа SIMULATE, END, EQU.

2)  Функциональные операторы, реализующие устройства очереди, правила обслуживания, потоки.

1.  SIMULATE (моделировать).

Устанавливается в начале модели и необходим для запуска модели на исполнение.

           Формат:   SIMU [LATE].

2.  EQU(эквивалентность).

Устанавливается в начале алгоритма и необходим для присвоения символам численного значения.

           Формат:   symbol EQU num

Символов не должно быть больше 5.

3.  FUNCTION (функция).

Программный блок-функция устанавливается в начале модели. С помощью функции записывается функциональная зависимость между параметрами или СЧА. В основном используется для задания закона распределения случайной величины.

            Формат:      символ (номер или имя) FUNC A, B        , 

где в поле A устанавливается аргумент функции. Если это аргумент случайной функции, то в поле A устанавливается:    A = RN $.

В поле B записывается тип функции (C, D), где C-непрерывная, D-дискретная. За буквой C или D записывается количество пар точек. Далее перечисляются координаты точек по формату:  x1, y1/x2, y2/x3, y3/…/xn, yn.

При записи пар точек необходимо соблюдать следующие условия:

1. x (аргумент) должен обязательно возрастать;

2. совпадения значений x не допускаются.

4. GENERATE (генерировать).

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

           Формат:        GENE A, B, C, D.

В поле A записывается математическое ожидание интервала следования транзактов (). Здесь и в дальнейшем значения записываются только в виде целого числа.

В поле B записывается величина отклонения случайной величины от математического ожидания (). По умолчанию отклонение  равно 0. Так записывается поле B в случае равномерного закона распределения. Если закон отличается от равномерного,  в поле B записывается закон распределения, установленный выше блоком функция.

В поле C устанавливается время появления на выходе генератора 1-го транзакта,  (t1).

В поле D записывается число транзактов, которое должен сформировать генератор.

Примечание:

Если в поле B записана не функция, а интервал , то генератор выдаёт числа с равномерным законом распределения в интервале (A-B, A+B).

Если в поле B записана функция FN$ (имя функции или номер), то генератор выдаёт случайные числа, равные (A*FN$), где A – мат. ожидание.

5. TRANSFER (передать).

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

            Формат:        TRAN A, B, C, D.

В поле A устанавливается условие (режим) передачи.

В поле B указывается номер следующего блока по условию. В поле C указывается номер блока, в который должен перейти ТА, если блок, указанный в поле B, занят. В поле D записывается индекс, используемый в условии «ALL».

Описание условий в поле A:

ü  «Пробел» (в поле A ничего не стоит). По этому условию ТА передаётся в блок, указанный в поле B, (безусловный переход). Если блок занят, ТА остаётся в предыдущем блоке (вTRANSFER ).

ü  «’’» - по этому условию внутри апострофа записывается вероятность, с которой  ТА будет переходить в блок, указанный в поле C.

ü  «ALL» - ТА пытается войти в цепочку блоков: B, B+D, B+2D и т.д. до C. По этому условию ТА пытается войти в блок B, если он занят, то в B+D, если тот занят, то в B+2D и т.д. до C.

ü  «BOTH» - ТА пытается войти в блок B, если он занят, то в блок C, если блок C занят, то остаётся в предыдущем блоке (TRANSFER).

6.SEIZE (занять).

С помощью этого оператора (блока) производится ввод ТА в устройство, имитирующее обслуживание.

                Формат:         SEIZ A.

В поле A указывается номер устройства.

7. ADVANCE (задержать).

Блок имитирует обслуживание путём выделения транзакту определённого времени нахождения в блоке.

                Формат:         ADVA A, B.

В поле A – математическое ожидание времени обслуживания. В поле B – разброс времени обслуживания (аналогично блоку GENERATE).

8. ASSIGN (присвоить, изменить).

С помощью этого оператора параметрам ТА присваиваются значения.

                Формат:          ASSI A, B.

В поле A записывается имя параметра. Далее могут быть установлены +(-). В поле B – новое значение параметра или изменённое значение.

Примечание:   если в поле A после имени параметра не указаны знаки +(-), параметр принимает значение, указанное в поле B; если после имени параметра стоит «+», то параметр принимает значение (A+B); если «-»,то (A-B).

9. QUEUE (встать в очередь).

Оператор имитирует постановку ТА в очередь.