4.4. Узагальнена блок-схема алгоритму імітації ом, поданого агрегатами
Розглянемо приклад алгоритму взаємодії моделі системи, поданої агрегатами, з КПМ. Структуру блок-схеми алгоритму наведено на рис.4.3.
Структуру блок-схеми поділено на дві частини – формалізовану модель виробничої системи та КПМ, яка організує та обслуговує процес імітації. Модель системи складається з агрегатів . Канали, які поєднують агрегати показано потоковими стрілками, щоб відрізняти їх від зв’язків блоків алгоритму КПМ, які показано звичайними стрілками. Суцільною потовщеною лінією умовно показано канал обміну інформацією КПМ з агрегатами системи. Призначення каналу – синхронізація роботи окремих операторів керування з основним ядром КПМ. За командами КПМ оператори здійснюють операції активізації та пасивізації окремих агрегатів системи відповідно до подій, які у ній відбуваються.
Принцип роботи алгоритму полягає у
наступному. Підпрограма (ПП) блоку 1
формує початкові стани агрегатів
, у яких будуть виконуватися операції
обробки сигналів у системі.
Рис. 4.3. Узагальнений
алгоритм імітації об’єкта, формалізованого
за агрегатним способом
Агрегати приводяться у стани активізації
або пасивізації відповідно до умов,
які задає дослідник на момент початку
процедури моделювання, або які склалися
у системі на момент закінчення попередньої
процедури моделювання. Додатково у
функції блока 1 входть процедура
генерування множини вхідних сигналів
(вхідних компонент), надходження яких
до системи імітується за весь період
моделювання
.
Уся ця множина сигналів певних типів
створює чергу
на вихідному полюсі агрегату
.
Ця імітаційна операція адекватна
процесу створенню так званого “заділу”
(заготовлення сировинних запасів) на
вході реальної системи (припустимо, на
складі сировини) для її роботи на протязі
визначеного періоду моделювання
.
Блок 2 формує випадковим чином значення
для сигналів
-го
типу, множину яких було сформовано
блоком 1. Часові інтервали
у блоці 2 формуються генератором
випадкових чисел для сигналів
-го
типу за відповідною функцією розподілу
даної часової змінної. Після генерації
періодів
для всіх сигналів, які було смодельовано
блоком 1, у блоці 3 формуються часові
ряди вхідних сигналів
-го
типу, що адекватно їх впорядкуванню у
відповідні черги
.
З цих черг кожний сигнал буде надходити
до системи для подальшої обробки за
встановленими розробником правилами,
які називаються дисципліною черги.
Найпростіше з таких правил: “перший у
черзі сигал надходить на обробку
першим”. Можливі і інші правила
встановлення дисципліни черги. Відповідає
за дотриманням правил дисципліни черги,
яка формується на вході кожного агрегату
системи, та надходження сигналів з
такої черги на обробку на агрегаті
ПП блоку 4 алгоритму. Ця ПП працює сумісно
з блоком 5. Блоки 4 та 5 у поєднанні
виконують переіврку виконання умов
створення особливих станів для кожного
агрегату системи. У блоці
у хронологічному порядку формуються
списки черговості активізації та
пасивізації всіх агрегатів системи.
Якщо для агрегату
існують умови його активізації, тобто
існує можливість для прийому чергового
вхідного сигналу
-го
типу, то він заноситься у список За цим
списком послідовно керування агрегатом
передається на його оператор
.
Цей оператор, який також знаходиться
у блоці 4, за допомогою своєї команди
керування
активізує агрегат, який може прийняти
черговий сигнал для обробки. Якщо для
активізації агрегату
не створено відповідних умов, то на
нього від оператора
надходить команда пасивізації, а сам
він заноситься у список пасивізованих
агрегатів (гілка “ні” блоку 5). Після
проведення процедури активізації
агрегату
,
він видаляється у блоці 4 зі списку
агрегатів, які підлягають активізації.
Виконання команди активізації
сприймається також блоком 5, який за
своєю гілкою “так” передає керування
блоку 6. Цей блок виконує функції
нарощування осі модельного часу
на кожне нове значення
періоду обробки чергового сигналу на
-му
агрегаті за фактом його активізації.
Період
формується у відповідному агрегаті за
рахунок роботи блоку
,
який відповідає за генерацію заданим
чином випадкових значень
,
і є неодмінною складовою кожного
агрегату.
Зупинимося більш докладно на принципі формування списків агрегатів, які знаходяться у особливих станах, а також процедурі обробки таких списків КПМ.
Роботу алгоритму при виконанні вказаних операцій організовано за умови виконання наступних припущень:
всі агрегати системи мають одну спільну часову координату, на якій як події
зазначаються усі зміни їх особливих
станів. Таку координату
ми називали віссю модельного часу;ПП організації хронології зміни станів агрегатів по осі (блок 6) реалізує цю функцію за алгоритмом обчислення моменту
появи наступного події
за правилом
.
Тут
- період обробки сигналу
–го
типу на
-му
агрегаті, а
- подія, яка пов’язана із фактом
завершення цієї обробки.
Вибір мінімального значення
визначає номер того агрегату, який
першим у даний момент повинен бути
активізований. Номер цього агрегату
стає початковим записом у списку
агрегатів (блок 3), які підлягають
активізації за часом
.
Одночасно з цим у блоці 6 відбувається
перерахунок модельного часу
.
Потім КПМ у блоці 3 формує хронологічний
список моментів активізації агрегатів.
Після закінчення формування такого
списку УПМ приступає до послідовного
обслуговування алгоритмів активізації
агрегаттів. Активізовані агрегати
переходять у нові стани
і формують відповідні вихідні сигнали.
Агрегат, активізацію якого закінчено,
переходить у список пасивізованих
агрегатів за аналогічною хронологічною
послідовністю. У списку пасивізованих
він очікує наступного моменту своє
активізації, повязаної з подією
надходження наступного сигналу на його
вхід через деякий проміжок часу
.
Вказані процедури виконуються циклічно
за сформованими таким чином списками.
Після виконання усіх вказаних вище операцій (перевірка умов активізації – активізація – нарощування ), пов’язаних з імітацією обробки сигналу у агрегаті , керування передається на блок 7. У цьому блоці вміщено матриці комутації входів і виходів агрегатів системи. Завдання блоку 7 – спрямувати оброблені сигнали за маршрутами їх подальшого обслуговування у системі. Блок 8 алгоритму перевіряє умову закінчення списків активізованих або пасивізованих агрегатів у блоці 4. Спочатку перевіряється список активізованих агрегатів. Якщо він порожній, то виконується перехід на список пасивізованих агрегатів. Знову послідовно перевіряються умови їх активізації. Агрегати, для яких умови активізації з’явилися, обслуговуються КПМ за вказаними правилами. Тим самим списки активізованих та пасивізованих агрегатів у блоці 4 скорочуються і за деякий час моделювання мають вичерпатися. Якщо цей факт виникає до закінчення періоду моделювання , то КПМ може змоделювати надходження нових сигналів у систему (гілка “так” блоку 9). Якщо блок 9 зафіксує виконання умови закінчення процедури моделювання за параметром (гілка “ні”), то КПМ переходить до обчислення значень статистик моделювання, а потім закінчує процедуру моделювання.
Отже, узагальнюючи розглянутий приклад, можна виділити п'ять типових процедур, які використовуються в процесі роботи алгоритму імітаційного моделювання системи, яку формалізовано за агрегатним способом:
Початкова установка станів агрегатів.
Визначення моменту часу, у який відбудеться наступна подія в системі і номера агрегату, у якому відбудеться ця подія.
Визначення нового стану агрегату; формування множини вихідних сигналів у результаті активізації агрегату; фіксація нових станів всіх агрегатів системи.
Перевірка множини вихідних сигналів агрегатів і їх передача на наступні агрегати за скомутованими каналами.
Визначення нового стану агрегату, якого він набув в результаті надходження вхідного сигналу і формування його вихідного сигналу.
