Курсовая_Моделирование (538756), страница 9
Текст из файла (страница 9)
TD$j - стандартное среднеквадратическое отклонение табулируемой переменной.
1.9 ЯЧЕЙКИ
Для записи в процессе моделирования текущих значений СЧА используют ячейки. Занесение информации в ячейку осуществляет блок SAVEVALUE. При входе транзакта в этот блок требуемое значение СЧА фиксируется в ячейке, номер которой определяется операндом блока SAVEVALUE. Ячейки имеют различные форматы (слово, полуслово, с плавающей точкой),которым соответствуют следующие СЧА:
Х$] - текущее значение, записанное в ячейке j формата слово;
XH$j - текущее значение, записанное в ячейке j формата полуслова;
XL$j - содержимое ячейки с плавающей точкой.
Изменение содержимого ячеек может осуществляться блоками SDECREMENT и SINCREMENT. Блок SDECREMENT вычитает заданное значение из величины, содержащейся в ячейке. Блок SINCREMENT добавляет требуемое приращение к содержимому ячейки.
1.10 ФУНКЦИИ И ПЕРЕМЕННЫЕ
Функции служат для отображения зависимостей между двумя (СЧА. В GPSS/PC имеется два типа функций: непрерывные (С) и дискретные (D). Функцию задают набором пар точек - координат. Непрерывная функция воспроизводится в виде ломаной кривой, отрезки которой соединяют соседние точечные значения.
Дискретная функция имеет вид ступенчатой кривой. На рис. 1.3 представлены непрерывная (а) и дискретная (б) функции, соответствующие одному и тому же набору точек ,
;
,
;
,
;
,
, где X означает аргумент, а Y - значение функции.
Функцию описывают картой FUNCTION. За ней помещают одну или несколько карт, содержащих координатные точки.
Карта описания функции задает ее тип, количество пар точек ( ,
) и СЧА, используемый в качестве аргумента. Формат этой карты имеет следующий вид:
НОМЕР FW[CTION] A,B
Где: НОМЕР - номер функции, задаваемый программистом;
А - аргумент (любой СЧА);
В - тип функции.
Тип функции указывают как - для непрерывной и
- для дискретной функции, где n - число пар точек (
,
).
Карты, содержащие точки ( ,
), имеют следующий вид:
,
/
,
/.../
,
/.../
,
причем обязательно
<
<...
<...<
.
В GPSS/PC существуют также операторы для описания переменных, составляемых из стандартных числовых атрибутов. Целочисленные переменные, а также булевы переменные описывают оператором VARIABLE. Переменные с плавающей точкой
описывают оператором FVARIABLE.
Операторы переменной имеют следующий формат:
ИМЯ VARIABLE SNA(oper)SNA(oper)... (FVARIABLE)
где:
SNA - допустимые стандартные числовые атрибуты;
(орег) - арифметические и логические операции:
"+" - сложить;
"-" - вычесть;
"/" - разделить;
"@" - разделить по модулю;
"()" -скобки;
"1" - логическое "И";
" " - логическое "ИЛИ";
"=" - равенство;
"о" - не равно;
"<" - меньше;
">=" - больше чем или равно;
"<=" - меньше чем или равно;
">" - больше.
2 ФОРМАТЫ ОПЕРАТОРОВ GPSS/PC
Операторы GPSS/PC имеют следующий формат:
Метка Операция Операнды ;Комментарии
Знак "_" указывает пробел, знак ";" объявляет начало поля комментариев.
Метка, если она имеется, должна начинаться с первой колонки и содержать не более пяти алфавитно-цифровых символов, начинающихся с буквы.
Звездочка (*) в первой колонке означает строку комментариев.
Поле операции содержит название блока или служебного оператора (карты). Это поле может начинаться со второй колонки и должно быть отделено от метки пробелом. Длина поля операции не менее четырех символов (начальные символы блоков или карт).
Поле операндов отделяют от поля операции пробелом. Между операндами должны стоять запятые.
Пример:
^FACILITY DESCRIPTION
FAC SEIZE 1 ;CPU
ADVAN 10,5 ;MSEC
RELEASE 1
MAC TRANSFER 3,FAC
Карты описания таблиц, функций, переменных и памятей должны иметь в поле метки число от 1 до 32767 (2Л15 - 1) или предварительно определенный символ.
Примеры:
^ ENTITIES DESCRIPTION
1 STORAGE 1280 ;MAIN
4 TABL М1Д10ДО
В полях операндов могут быть использованы следующие обозначения.
Константа - целое число от 1 до 32767 или предварительно определенная последовательность символов.
СЧА $ const -стандартный числовой атрибут, номер которого определяется
константой const.
* const -значение параметра, номер которого определяется константой const
СЧА1*СЧА2 $ const - косвенная адресация с использованием стандартного -числового атрибута 1 (СЧА1), номер которого задан значением стандартного числового атрибута 2 (СЧА2), определяемого константой const.
СЧА%СЧА $ const - косвенная адресация через стандартные числовые атрибуты.
Примеры:
XF*V$2
Содержимое полнословной ячейки, номер которой определяется значением переменной 2.
FN*P$1 Значение функции,номер которой определяется содержимым параметра 1.
ХЩ2 Содержимое полусловной ячейки номер два.
*TERM
Значение параметра, номер которого определен константой TERM. В описательной части программы значение константы TERM должно быть определено оператором EQU, например: TERM EQU 10 при этом *TERM означает содержимое десятого параметра.
Ниже дано полное описание форматов блоков, а также служебных и управляющих операторов GPSS/PC.
2.1 БЛОКИ
2.1.1 ADVANCE (ЗАДЕРЖАТЬ)
ADVANCE - задерживает транзакт.
Формат: ADVA[NCE] A,B
А - среднее время задержки (константа, если В не задано);
В - разброс относительно среднего значения, должен быть меньше или равен А.
Блок ADVANCE моделирует временную задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, то время задержки является случайным числом, распределенным равномерно на интервале от (А+В) до (А-В). Если поле В является функцией FN$, то время задержки определяется произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящими от А.
Примеры:
ADVANCE 75
Транзакт будет оставаться в блоке ADVANCE в течение 75 единиц модельного времени.
ADVANCE 12,5
Транзакт будет оставаться в блоке от 7 до 17 единиц времени.
ADVANCE 5,FN$1
Время задержки равно произведению значения функции FN$1 на число пять.
См.также:
GENERATE
2.1.2 ASSEMBLE (СОЕДИНИТЬ)
ASSEMBLE - объединение транзактов, принадлежащих одному семейству (или ансамблю).
Формат: ASSE[MBLE] A
А - число объединяемых транзактов.
Первый транзакт семейства, достигнув блока ASSEMBLE, задерживается в нем до тех пор, пока остальные члены семейства не поступят в этот блок. Когда транзакты, число которых указано в поле А, поступят в этот блок, они будут удалены из модели, а первый прибывший транзакт продолжит движение.
Пример:
ASSEMBLE 3
После того, как 3 транзакта одного семейства войдут в блок, один (первый) выйдет из блока и продолжит движение, остальные будут уничтожены.
См.также:
GATHER
MATCH
SPLIT
2.1.3 ASSIGN (ПРИСВОИТЬ)
ASSIGN - изменяет значение параметра транзакта.
Формат: ASSI[GN] A,B
А - номер изменяемого параметра (+, -);
В - новое значение параметра.
Если за полем А следует знак "+" или "-", то значение поля В соответственно добавляется или вычитается из А. Если знаки "-" или "+" не указаны, то значение поля В становится текущим значением параметра.
Примеры:
ASSIGN 2,8
Присваивает параметру 2 значение 8.
ASSIGN 3+,V$5
Добавляет значение переменной 5 к параметру 3.
См.также:
DECREMENT INCREMENT
2.1.4 BUFFER (ВОЗОБНОВИТЬ ПРОСМОТР СПИСКА)
BUFFER - возобновляет просмотр списка текущих событий.
Формат: BUFF[ER]
Не имеет операндов.
Останавливает процесс движения транзакта и заново начинает просмотр списка текущих событий. Не связан с временем задержки.
Пример:
BUFFER Возобновляет просмотр списка текущих событий.
См.также:
PRIORITY
2.1.5 DECREMENT (УМЕНЬШИТЬ ЗНАЧЕНИЕ)
DECREMENT - уменьшает значение параметра транзакта.
Формат: DECREMENT] A,B
А - номер изменяемого параметра;
В - значение для вычитания.
Величина, указанная в поле В, вычитается из значения параметра, номер
которого указан в поле А.
Примеры:
DECREMENT 3,7
Вычитается число 7 из значения третьего параметра текущего транзакта.
DECREMENT XH$6,V$4
Значение переменной 4 вычитается из параметра, номер которого задан ячейкой 6 формата полуслово.
См.также: