Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИЖКА_Моделювання систем у GPSS World.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.15 Mб
Скачать
    1. Команда integrate і блок integration для моделювання неперервних систем

GPSS World дозволяє створювати неперервні або дискретно-неперервні моделі. У таких моделях динаміка зміни стану оцінюється похідними за часом. Для розв’язування системи звичайних диференціальних рівнянь будь-якого порядку в GPSS World використовується команда INTEGRATE і блок INTEGRATION. Інтегрування здійснюється модифікованим методом Рунге-Кутта-Фехлберга п'ятого порядку зі змінною довжиною кроку (RKF4(5)).

Команда INTEGRATE встановлює інтегрування диференціальних рівнянь і граничні значення змінної. Формат команди:

Name INTEGRATE А,[В],[С],[D],[Е]

де Name – назва змінної користувача; операнд А – похідна змінної користувача за часом; операнд В – перше граничне значення змінної; операнд С вказує мітку блоку, куди спрямовується згенерований транзакт у випадку перевищення змінною першого граничного значення у будь-якому напрямку; операнд D – друге граничне значення змінної; операнд Е – мітка блоку, куди спрямовується згенерований транзакт у випадку перевищення змінної другого граничного значення у будь-якому напрямку.

Рис. 8.4. Фрагмент повідомлень трасування моделі

Команда INTEGRATE може мати нуль, один або два граничних значення (пороги).

Операнди В і С використовуються разом або зовсім не використо­вуються. Це також стосується і використання операндів D i E.

Досягнення змінних користувача у процесі моделювання першого або другого граничних значень зумовлює створення нового транзакта з пріоритетом „0”, який переходить у блоки, помічені операндами С, Е.

Операнди А, В і D можуть бути іменем, числом, рядком, виразом у дужках або СЧА, а також викликами Plus-процедур.

Таким чином, змінні, що інтегруються безперервно, можуть використовуватися й у дискретній частині процесу моделювання, а також для зміни граничних значень.

Приклад 1.

у_ INTEGRATE (x_^2 # y_+ SQR(x_^2 + y_^2))

х_ EQU 1

у_ EQU 1

Приклад визначає однорідне диференціальне рівняння першого порядку

з початковими умовами x0=1, y0=1.

Вираз в команді INTEGRATE використовується як похідна за часом. Початкові умови змінних задаються командами EQU.

Позначення зі знаком підкреслення використовуються для того, щоб введені позначення випадково не збіглися зі СЧА.

Приклад 2.

х_ INTEGRATE (y_),0.8,Mitkal

у_ INTEGRATE (–x_)

х_ EQU 1

у_ EQU 0

Приклад визначає систему двох звичайних диференціальних рівнянь з розв’язком х = cosy і у = – sinx. Для змінної користувача х_ задається граничне значення. Коли змінна перетинає значення 0,8 у будь-якому напрямку, створюється новий транзакт і скеровується в блок з міткою Mitkal.

Таким чином, для налаштування інтегрування диференціального рівняння необхідно:

  • командою INTEGRATЕ оголосити змінну Y_ , а вираз для похідної записати у дужках

Y_ INTEGRATE (f())

  • змінній Y_ та усім змінним, які входять у вираз , присвоїти початкові значення за допомогою оператора EQU або операторів присвоювання PLUS-процедур.

Приклад 3.

Якщо у неперервних моделях використовуються диференціальні рівняння вищих порядків, то їх необхідно записати у вигляді системи диференціальних рівнянь першого порядку. Нехай маємо

Введенням нових змінних це диференціальне рівняння третього порядку можна записати у вигляді системи трьох диференціальних рівнянь першого порядку:

Відповідно у GPSS World маємо

Y_ INTEGRATE U

U_ INTEGRATE V

V_ INTEGRATE ((5/30)#U_– (6/30)#Y_)

Y_ EQU 5.0

U_ EQU 1.0

V_ EQU 1.0

Початкові значення для U_, V_, Y_ задаються оператором EQU відповідно до початкових умов моделювання систем.

Блок INTEGRATION призначений для того, щоб розпочати або завершити процес інтегрування змінної користувача. Формат блоку:

INTEGRATION А,[В]

де операнд А – назва змінної користувача, заданої командою INTEGRATE; операнд В вказує на стан процесу інтегрування і приймає значення ON або OFF. За замовчуванням – ON.

Приклади:

INTEGRATION Shvudkist

INTEGRATION Shvudkist,OFF

У першому прикладі процес інтегрування за часом змінної користувача Shvudkist активізується з входженням транзакта в блок INTEGRATION. У другому прикладі вхід активного транзакта в блок INTEGRATION зупиняє процес інтегрування змінної користувача Shvudkist. Процес інтегрування буде продовжений тоді, коли буде включений стан ON.

Моделювання протікає в неперервній і дискретній фазах, що чергуються. Під час дискретної фази модельний час не змінюється. Між такими моментами процес моделювання протікає в неперервній фазі. Протягом цієї фази через невеликі збільшення значення модельного часу відбувається інтегрування.

Процес моделювання переходить з неперервної фази у дискретну тоді, коли при досягненні змінною граничного значення генерується транзакт. Таким чином, неперервна й дискретна фази взаємозалежні. У дискретній фазі змінним користувача, навіть якщо вони інтегруються, можуть бути задані нові значення. Це можна зробити за допомогою команди EQU або Plus-операторів присвоєння.

Допустиме значення похибки інтегрування встановлюється на сторінці Simulation (Моделювання) задаванням необхідного значення в полі Integration Tolerance (Допустиме відхилення інтегрування). За замовчуванням це значення дорівнює –10-6.