Для построения машинной модели системы в комбинированном виде, т.е. с использованием аналитико-имитационного подхода, необходимо часть процессов в системе описать аналитически, а другую часть сымитировать соответствующими алгоритмами. На данном этапе построения аналитической модели зададим математические соотношения в виде явных функций.
Загрузку технических средств системы и число циклов выполнения остальных заданий в виде явных функций записать трудно. Эти величины определим с помощью языка имитационного моделирования.
На данном подэтапе достоверность модели системы проверяется по следующим показателям:
а) возможности решения поставленной задачи:
Решение данной задачи с помощью математических отношений нецелесообразно, так как искомые данные не имеют явных функций. Использование имитационного моделирования решает эти сложности, но для правильной реализации нужно точно и безошибочно определить параметры и переменные модели, обосновать критерии оценки эффективности системы, составить концептуальную модель и построить логическую схему. Все эти шаги построить модель данного процесса;
б) точности отражения замысла в логической схеме:
При составлении логической схемы, важно понимать смысл задачи, до этого построить концептуальную модель. Проверку точности можно выполнить при подробном описании самой схемы, при этом, сопоставлять с описанием концептуальной модели;
в) полноте логической схемы модели:
Проверить наличие всех выше описанных переменных, параметров, зависимостей, последовательности действий;
Раздел 3. Формализация и алгоритмизация модели
Построение концептуальной модели в виде Q-схемы
В качестве типовой математической схемы применяется Q-схема, состоящая из одного источника (И), накопителя (Н), четырех каналов (К1, К2, К3, К4), двух клапанов (рис. 2). После генерации заданий в источнике И, следует их запуск при помощи дисплея, канал К1, работая на нем 55±35 сек. После запуска задание поступают в накопитель Н, а затем в клапан 1, который управляется каналом К2. Если в канале К2 выполняется задание с более высоким приоритетом, то задание поступает в накопитель Н. Если канал К2 свободен, или обрабатывается задание с более низким приоритетом, то начинается обработка поступившего задания в течении 130±40 сек. После обработки задание поступает в канал К3, где выводится на печать в течении 35±13 сек. Затем задание поступает в канал К4, где производится анализ задания в течение 65±23 сек. Клапан 2 принимает задания от канала К4, управляется соответствующим каналом, при этом выполнение задания либо заканчивается NВЫП1,2,3, либо отправляется в накопитель Н для повторной обработки.
Рис. 2. Концептуальная модель в виде Q-схемы
Формальная модель системы:
Q = { И, Н, К1, К2, К3, К4, NВЫП1,2,3, кл1, кл2}.
Согласно разработанной концептуальной модели окончательные гипотезы и предположения совпадают с ранее принятыми. Выбранная процедура аппроксимации определения средних значений выходных переменных соответствует реальным случайным процессам, протекающим в системе массового обслуживания.
EMKEQU 2; | кол-во мест в очереди | |
Prov1 BVARIABLE (F$Rem1); | проверка1 на занятость первичной обработки | |
Prov2 BVARIABLE (F$Rem2); | проверка2 на занятость вторичной обработки | |
Prov3 BVARIABLE (F$Rem3); | проверка3 на занятость полной обработки | |
generate 45,2 | генерация поступающих агрегатов | |
TEST E BV$Prov1,0,met1; | обращение к проверке1 | |
QUEUE RemQ1; | встать в очередь на первую регулировку | |
SEIZE Rem1; | занять рабочее место | |
DEPART RemQ1; | покинуть очередь | |
ADVANCE 40,2; | обработка | |
RELEASE Rem1; | освобождение первичной регулировки | |
LINK Otst2,FIFO; | отправить в накопитель2 | |
GENERATE ,,,1 | генерация поступающих агрегатов | |
met4 | TEST E BV$Prov2,0; | обращение к проверке2 |
UNLINK Otst2,met3,1; | вывести из накопителя2 | |
ADVANCE 0.001 | ||
TRANSFER ,met4 | ||
met3 | SEIZE Rem2; | занять рабочее место |
ADVANCE 50,2; | вторичная регулировка | |
RELEASE Rem2; | освобождение вторичной регулировки | |
TERMINATE | ||
GENERATE ,,,1 | генерация поступающих агрегатов | |
met2 | TEST E BV$Prov3,0; | обращение к проверке3 |
UNLINK Otst,met5,1; | вывести из накопителя1 | |
ADVANCE 0.001 | ||
TRANSFER ,met2 | ||
met5 | SEIZE Rem3; | занять рабочее место |
ADVANCE 120,2; | полная регулировка | |
RELEASE Rem3; | освобождение полной регулировки | |
TERMINATE | ||
met1 | SPLIT 1, met6 | удваивание количества транзактов |
met6 | LINK Otst,FIFO; | отправить в накопитель1 |
generate 14400 | генерация работы участка для 240 часов работы | |
terminate 1 | Уничтожение выполненных заданий |
Раздел 5. Анализ результатов моделирования
Основные обозначения:
START TIME – время начала моделирования;
END TIME - время окончания моделирования;
BLOCKS - количество блоков, используемых в программе;
FACILITIES – количество одноканальных устройств;
STORAGES – количество многоканальных устройств.
Далее приводится информация о блоках:
LOC – номер блока, назначенный системой;
BLOCK TYPE – название блока;
ENTRY COUNT – количество транзактов, прошедших через блок за время моделирования;
СURRENT COUNT – количество транзактов, задержанных в блоке на момент конца моделирования;
RETRY – количество транзактов, ожидающих специальных условий для прохождения через данный блок;
Отчет о работе устройства:
FACILITY – название устройства;
ENTRIES – количество транзактов, прошедших через устройство;
UTIL . – вероятность загрузки устройства;
AVE . TIME – среднее время обработки одного транзакта устройством;
AVAIL . – состояние готовности устройства на момент конца моделирования (1 –готово к обслуживанию очередной заявки; 0 – не готово);
OWNER – номер последнего транзакта занимающего устройство (если не занималось, то значение 0);
PEND – количество транзактов, ожидающих устройство, и находящихся в режиме прерывания;
INTER – количество транзактов, прерывающих устройство в данный момент;
RETRY – количество транзактов, ожидающих специальных условий, зависящих от состояния объекта типа «устройство»;
DELAY – определяет количество транзактов, ожидающих занятия или освобождения устройства.
Статистика об очередях:
QUEUE – имя очереди;
MAX - максимальная длина очереди;
CONT . – текущая длина очереди;
ENTRY – общее количество входов;
ENTRY (0) - количество «нулевых» входов;
AVE . CONT . – средняя длина очереди;
AVE . TIME – среднее время пребывания транзактов в очереди;
AVE .(-0) – среднее время пребывания в очереди без учета «нулевых» входов;
RETRY – количество транзактов, ожидающих специальных условий.
Информация о списке текущих событий CEC ( Current Events Chain ):
XN – номер транзакта;
PRI – приоритет транзакта (по умолчанию - 0);
M 1 – время пребывания транзакта в системе с момента начал моделирования;
ASSEM - номер семейства транзактов;
CURRENT – номер блока в котором находится транзакт;
NEXT – номер блока в который перейдет транзакт далее;
PARAMETER – номер или имя параметра транзакта;
VALUE – значение параметра.
Информация о списке будущих событий FEC ( Future Events Chain ):
XN – номер транзакта;
PRI – приоритет транзакта;
BDT - таблица модельных событий – абсолютное модельное время выхода транзакта из списка будущих событий и перехода транзакта в список текущих событий;
ASSEM - номер семейства транзактов;
CURRENT - номер блока в котором находится транзакт (0 – если транзакт не вошел в модель);
NEXT - номер блока в который перейдет транзакт далее;
PARAMETER – номер или имя параметра транзакта;
VALUE – значение параметра.
Результаты моделирования Исходный вариант (Первичная регулировка – 40 мин, вторичная – 50 мин, полная-120)
При использовании программы со стандартными значениями получаем следующее:
GPSS World Simulation Report - Kyrs.13.1
Monday, December 27, 2010 22:01:20
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 14400.000 30 3 0
NAME VALUE
EMK 2.000
MET1 27.000
MET2 19.000
MET3 14.000
MET4 10.000
MET5 23.000
MET6 28.000
OTST 10013.000
OTST2 10009.000
PROV1 10001.000
PROV2 10003.000
PROV3 10005.000
REM1 10002.000
REM2 10004.000
REM3 10006.000
REMQ1 10008.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 369 0 0
2 TEST 369 0 0
3 QUEUE 210 0 0
4 SEIZE 210 0 0
5 DEPART 210 0 0
6 ADVANCE 210 1 0
7 RELEASE 209 0 0
8 LINK 209 0 0
9 GENERATE 1 0 0
MET4 10 TEST 3978022 0 0
11 UNLINK 3978022 0 0
12 ADVANCE 3978022 0 0
13 TRANSFER 3978022 1 0
MET3 14 SEIZE 209 0 0
15 ADVANCE 209 1 0
16 RELEASE 208 0 0
17 TERMINATE 208 0 0
18 GENERATE 1 0 0
MET2 19 TEST 118312 0 0
20 UNLINK 118312 0 0
21 ADVANCE 118312 0 0
22 TRANSFER 118312 1 0
MET5 23 SEIZE 120 0 0
24 ADVANCE 120 1 0
25 RELEASE 119 0 0
26 TERMINATE 119 0 0
MET1 27 SPLIT 159 0 0
MET6 28 LINK 318 198 0
29 GENERATE 1 0 0
30 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
REM1 210 0.583 39.995 1 531 0 0 0 0
REM2 209 0.724 49.867 1 529 0 0 1 0
REM3 120 0.992 119.015 1 206 0 0 1 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
REMQ1 1 0 210 210 0.000 0.000 0.000 0
USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME
OTST2 0 0 0.046 209 2 3.186
OTST 198 0 98.781 318 199 4473.123
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
531 0 14409.239 531 6 7
532 0 14409.933 532 0 1
529 0 14419.678 529 15 16
206 0 14494.321 204 24 25
MET6 2.000
533 0 28800.000 533 0 29