Связь анимации с имитационной моделью
Генерирование файла трассировки (.atf)
Имитационной моделью
Управляющим оператором и блоком, создающим линии файла трассировки, являются оператор PUTPIC и блок BPUTPIC.
Формат:
PUTPIC opt,..., (list)
BPUTPIC opt,..., (list)
где opt – опция, а list – список чисел, числовых выражений, переменных, стандартных числовых атрибутов, которые GPSS/H записывает во внешний файл (файл.atf).
Опции, связанные с оператором PUTPIC и блоком BPUTPIC:
FILE=log
LINES=unt
где log – логическое имя внешнего файла, в который будут записываться данные (по умолчанию данные будут выводиться на экран), а unt – число строк, отображаемых после блока BPUTPIC.
Для создания GPSS/H-модели файла управления анимацией, сначала его необходимо связать с логическим именем, которое будет использоваться в GPSS/H-программе. Для такой связи используется специальный оператор FILEDEF.
Формат оператора FILEDEF:
LOG FILEDEF 'NAME'
где NAME – имя .atf-файла, а LOG – логическое имя файла.
Например,
...
ATF FILEDEF «TIME.ATF»
...
BPUTPIC FILE=ATF,LINES=3,АС1
TIME *.**
CREATE rob rob
PLACE rob at 12 18
В приведенном примере файл «TIME.ATF» будет автоматически создан в текущей директории, связан с логическим именем ATF и в него будут записаны три строки, расположенные ниже блока BPUTPIC. При этом вместо звездочек (*.**) запишется значение текущего времени моделирования (значение стандартного числового атрибута АС1).
Для записи в файл управления команды END используется управляющий оператор PUTPIC:
PUTPIC FILE=ATF
END
Такая запись обязательна, она используется для завершения анимации и обычно записывается после оператора START.
Переменные в GPSS/H-моделях
При связи GPSS/H-модели с внешними файлами используют переменные. Переменные позволяют читать из внешнего файла входные параметры и записывать во внешний файл (.atf) результаты моделирования.
Для определения переменных в GPSS/H-моделях используются утверждения INTEGER (целая) и REAL (действительная).
Формат INTEGER и REAL:
INTEGER &v, . . .
REAL &v, . . .
где v – имя переменной.
При объявлении переменных их начальные значения равны 0. Для присвоения численных значений, отличных от нуля, используются оператор LET и блок BLET.
Формат блока BLET и оператора LET:
LET &v=var
BLET &v=var
где v – имя переменной, а var – числовое значение или математическое выражение.
Предположим, что переменные &TIME, &V и &S определены в модели как действительные
REAL &TIME,&V,&S
и обозначают соответственно время движения транспортного средства от склада до рабочего места, скорость движения и расстояние доставки соответственно. Тогда для присвоения переменной &TIME числового значения можно использовать строку
LET &TIME=&V/&S
Примечание
Для получения нецелого результата, например в выражении 3/2, необходимо значения числителя и знаменателя записывать через десятичную точку, т.е. 3.0/2.0. В противном случае из результата выражения будет отброшена дробная часть.
Чтение данных из внешнего файла
Оператор GETLIST – читает данные из внешнего файла или с клавиатуры (данные во внешнем файле должны быть в свободном формате, с входными значениями, отделяемыми одним или более пробелами или написанными на разных строках).
Формат оператора GETLIST:
GETLIST FILE=(логическое имя файла),(list),…
где FILE – опция, определяющая логическое имя файла, из которого должны читаться входные данные, а list – список переменных, которым будут присвоены числовые значения.
Например, в GPSS/H-модели значение переменной &I, обозначающей количество станков в цехе, должно читаться из внешнего файла «IN». Этого можно добиться, записав в модели строку:
GETLIST FILE=IN,(&I)
Пример связи анимации с имитационной моделью
Для демонстрации связи анимации с имитационной моделью воспользуемся примером имитационного моделирования, приведенным в п. 4.5, и примером анимации в п. 5.6 данного учебного пособия.
Свяжем имитационную и анимационную модели технологического процесса изготовления деталей, причем так, чтобы входные данные вводились из внешнего файла, а результаты моделирования выводились на монитор компьютера.
Метод построения модели
Создадим файл входных параметров под именем data, используя текстовый редактор, например, оболочки NC5.0. Текст этого файла приведен ниже.
***********************************************************
28 * Интервалы поступления заготовок, мин
32 * Время движения заготовок до станков типа А, мин
10 * Отклонение от среднего времени, мин
63 * Средняя прод-ть обработки заготовки на ст. типа А, мин
9 * Отклонение от средней прод-ти, мин
12 * Среднее время движения до станка типа В, мин
5 * Отклонение от среднего времени, мин
55 * Средняя прод-ть обработки детали на станке типа В, мин
5 * Отклонение от средней прод-ти, мин
50 * Кол-во деталей, которые необходимо изготовить, шт.
***********************************************************
Изменим GPSS/H-модель в соответствии с заданными требованиями:
- для ввода входных параметров модели из внешнего файла используем GPSS/H-переменные (с утверждениями INTEGER и REAL) и оператор GETLIST;
- для перенаправления заготовок к свободному станку группы А добавим в имитационную модель «внутрь» многоканального устройства STA1 два прибора STAN1 и STAN2;
- для формирования файла управления анимацией воспользуемся блоком BPUTPIC совместно с управляющим оператором FILEDEF;
- для вывода результатов моделирования на монитор компьютера используем стандартные числовые атрибуты;
- в места, где требуется анимация операций, введем команды файла управления Student Proof Animation.
После ввода изменений сохраним файл как primer.gps. Измененная программа модели компьютерной имитации и анимации представлена ниже:
SIMULATE
ATF FILEDEF 'PRIMER.ATF'
REAL &POST,&TDSA,&OTDSA,&TOSA,&OTOSA
REAL &TDSB,&OTDSB,&TOSB,&OTOSB
INTEGER &NDET
GETLIST FILE=DATA,(&POST)
GETLIST FILE=DATA,(&TDSA)
GETLIST FILE=DATA,(&OTDSA)
GETLIST FILE=DATA,(&TOSA)
GETLIST FILE=DATA,(&OTOSA)
GETLIST FILE=DATA,(&TDSB)
GETLIST FILE=DATA,(&OTDSB)
GETLIST FILE=DATA,(&TOSB)
GETLIST FILE=DATA,(&OTOSB)
GETLIST FILE=DATA,(&NDET)
STORAGE S(STA1),2
GENERATE RVEXPO(1,&POST)
BPUTPIC FILE=ATF,LINES=3,AC1,XID1,XID1
TIME *.**
CREATE det *
PLACE * ON p1
ADVANCE RVNORM(3,&TDSA,&OTDSA)
QUEUE LINE1
ENTER STA1
DEPART LINE1
TRANSFER BOTH,,DRUG
SEIZE STAN1
BPUTPIC FILE=ATF,LINES=3,AC1,XID1,QA(LINE1)
TIME *.**
PLACE * 29 35
WRITE QUEUE1 Average queue=*.*
ADVANCE &TOSA,&OTOSA
RELEASE STAN1
LEAVE STA1
BPUTPIC FILE=ATF,LINES=5,AC1,XID1,XID1,FR(STAN1)/10,SR(STA1)/10
TIME *.**
SET * COLOR YELLOW
PLACE * ON p2
WRITE UTIL1 Util=*%
WRITE UTIL Util=*%
ADVANCE RVNORM(5,&TDSB,&OTDSB)
TRANSFER ,OSP
DRUG SEIZE STAN2
BPUTPIC FILE=ATF,LINES=2,AC1,XID1
TIME *.**
PLACE * 29 15
ADVANCE &TOSA,&OTOSA
RELEASE STAN2
LEAVE STA1
BPUTPIC FILE=ATF,LINES=5,AC1,XID1,XID1,FR(STAN2)/10,SR(STA1)/10
TIME *.**
SET * COLOR YELLOW
PLACE * ON p2
WRITE UTIL2 Util=*%
WRITE UTIL Util=*%
ADVANCE RVNORM(5,&TDSB,&OTDSB)
OSP QUEUE LINE2
SEIZE STA2
DEPART LINE2
BPUTPIC FILE=ATF,LINES=3,AC1,XID1,QA(LINE2)
TIME *.**
PLACE * 55 25
WRITE QUEUE2 Average queue=*.*
ADVANCE &TOSB,&OTOSB
RELEASE STA2
BOX BPUTPIC FILE=ATF,LINES=5,AC1,XID1,XID1,FR(STAN2)/10,N(BOX)+1
TIME *.**
SET * COLOR RED
PLACE * ON p3
WRITE UTIL3 Util=*%
WRITE N *
TERMINATE 1
START &NDET
PUTPIC FILE=ATF
END
END
Запустим интерпретатор GPSS/H. В строке запроса имени файла указываем имя *.gps-файла нашей модели (primer.gps) и нажмем клавишу <Enter>. В результате сформируется файл управления анимацией (файл primer.atf) с результатами моделирования.
Примечание
В ходе анимации заявки, двигающиеся по путям и скапливающиеся перед графическими аналогами станков, будут накладываться друг на друга. Для того чтобы этого не происходило, необходимо войти в режим Path, выделить путь р1 и изменить опцию Non-Accum (ненакопляемый) на Accumulating (накопляемый). Затем тоже проделать с путем р2. После этого необходимо войти в режим Class, выбрать класс под именем det и изменить значения Fore Clr и Aft Clr (см. п. 5.4 Движение в Proof Animation).
На рис. 47 представлен фрагмент компьютерной анимации с результатами имитационного моделирования.
Рис. 47. Фрагмент анимации с результатами имитационного моделирования
Этапы создания модели