В соответствии с приведённым выше планом была реализована программа на языке GPSS (полная реализация приведена в Приложении А).
Выше была представлена программа, позволяющая смоделировать работу по сбору агрегатов в течение 8 часов. Опишем программу моделирования системы, созданную на основе блок-схемы моделирующего алгоритма, Q-схемы модели системы, а также описания работы в задании.
Оператор SIMULATE предназначен для инициализации процесса моделирования (в некоторых версиях не обязателен).
Выделяем память для приборов.
KNTRS STORAGE 2
PRIBOR STORAGE 1STORAGE 1- определяет емкость памяти. Форматы: num STOR[AGE] А num - номер памяти.А - емкость. STOR[AGE]A,B А - память (S) (стандартный числовой атрибут) В - емкость памяти (по умолчанию 32767). Устанавливает определенную емкость памяти. Если емкость не определена, то значением по умолчанию является 32767.
Затем мы генерируем транзакты (детали) которые в дальнейшем будут обслуживать филиалы А, В и С.5.5,2
В программе используется формат GENERATE [<A>],[<B>].
В поле А указывается время, которое определяет интервал между моментами генерации сообщений блоком GENERATE. В поле В задается модификатор, который изменяет значения интервала генерации сообщений по сравнению с интервалом, указанным в поле А. Задан модификатор-интервал, с помощью которого задается равномерный закон распределения времени между генерацией сообщений.QUEUE TYPE1- помещает транзакт в конец очереди. Формат: QUEU[E] А,В А - номер очереди (числовое или символьное имя очереди); В - число добавляемых к очереди элементов (по умолчанию 1). Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.
Работа с устройством.
ENTER KNTRSTYPE19,3
DEPART - удаляет транзакт из очереди. Формат: DEPA[RT] А,В А - номер (имя) очереди; В - число удаляемых из очереди элементов. Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержи-мое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.
Блок SEIZE имеет следующий формат: SEIZE <A>. Операнд А может быть именем, положительным целым, СЧА или СЧА*<параметр>. Свободный блок SEIZE позволяет вошедшему в него сообщению занять указанное устройство. Блок SEIZE задерживает сообщение, если устройство занято или находится в состоянии недоступности. В поле А задается номер занимаемого устройства. В нашем случае говорится о первом устройстве - устройстве погрузки изделий в филиале А.
Блок ADVANCE имеет следующий формат записи: ADVANCE <A>, [<B>]. Блок ADVANCE задерживает продвижение сообщения на заданный период времени. В поле А задается среднее время пребывания сообщения в блоке ADVANCE. В поле В указывается способ модификации среднего значения, заданного в поле А. Операнд В может быть именем, положительным целым числом, СЧА или СЧА*<параметр>. Интервал изменения среднего времени задержки может быть задан константой, значение которой не должно превосходить среднего времени задержки, вычисленного для данного сообщения. Эта константа определяет интервал, в котором времена задержки распределены равномерно. Все времена задержки выражаются целыми числами. Любое из (2В+1) целых чисел, заключенных в интервале (А-В, А+В), будет выбираться с вероятностью 1/(2B+1). В нашем случае мы в течении 20 единиц времени осуществляем погрузку изделий. Константа, определяющая интервал времени задержки, не должна превосходить среднего времени задержки, в противном случае может быть получено отрицательное время задержки в блоке ADVANCE. Отрицательное значение задержки всегда считается ошибкой.
LEAVE KNTRS
LEAVE - выводит транзакт из памяти. Формат: LEAV[E] А,В А - номер памяти; В - число освобождаемых единиц, памяти (по умолчанию 1). Транзакт удаляется из памяти, имя (номер) которой указано в поле А. Число осво-бождаемых при этом единиц памяти определяется полем В.
TRANSFER 0.15,SERVICEABLE,BROKEN
TRANSFER - изменяет движение транзакта в модели. Формат: TRAN[SFER] А,В,С,D А - режим передачи (ALL,BOTH,FN,P,PICK,SBR,SIM); В - следующий блок; С - следующий блок; D - значение индекса, используемое в режиме ALL. Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А. Режимы передачи поля А: 1. Пробел - транзакт передается в блок, определяемый полем В. 2. "." - статистический режим; в поле А указано десятичное число, выражающее вероятность перехода в блок С; его дополнение до единицы указывает вероятность перехода в блок В. 3. ALL - транзакт последовательно пытается перейти в блоки, определяемые значениями В, B+D, B+2D .C. 4. BOTH - транзакт последовательно пытается войти в блок В, затем в блок С, до тех пор, пока один из них станет доступным. 5. FN - функциональный режим: поле В является номером функции; следующий блок определяется суммой значения этой функции поля С. 6. Р - параметрический режим: поле В является номером параметра; следующий блок определяется суммой значения этого параметра и поля С. 7. PICK - выборочный режим: блок выбирается с равной вероятностью из блоков с номерами: В, B+l, ., С. 8. SBR - режим перехода к подпрограмме: номер текущего блока помещается в параметр, указанный в поле С, а транзакт передается в блок, номер которого указан в поле В. 9. SIM - одновременный режим: проверяется одновременное выполнение условий беспрепятственного движения транзактов в задерживающих блоках . Если условие выполняется, транзакт передается в следующий блок, в противном случае транзакт переходит на блок С.
Самое читаемое:
Локальные системы автоматики
1). Закон регулирования - ПИД; критерий качества регулирования 20%
перерегулирования (=20%).
Рис. 1. Кривая разгона.
Аппроксимация кривой разгона апериодическим звеном первого порядка с
запаздыванием. Определение соотношения наклона угла (0.1 - 0.2).
Рис. 2.
Рассмотрим кривую разгона (рис. 1) с с ...