Повна версія

Головна arrow Інформатика arrow ІМІТАЦІЙНЕ МОДЕЛЮВАННЯ СИСТЕМ В СЕРЕДОВИЩІ EXTENDSIM

  • Увеличить шрифт
  • Уменьшить шрифт


<<   ЗМІСТ   >>

ОПИС ОБ'ЄКТІВ І ОСНОВНИХ ПРИЙОМІВ РОБОТИ В СЕРЕДОВИЩІ EXTEND SI M

До основних об'єктів середовища відносяться блоки, вхідні і вихідні коннектори, з'єднувачі і діалогові вікна для настройки роботи блоків. Розглянемо на простому прикладі прийоми роботи і послідовність розробки в середовищі ExtendSim моделі найпростішої системи.

Приклад 1. Моделюється процес заповнення басейну протягом 36 місяців. Басейн заповнюється щомісяця двома вхідними потоками: випадковий потік, що описує дощову воду, і постійний потік, обсяг води, в якому поставлено константою і залежить від місяця року. Модель басейну описує зміна водного рівня басейну за спостережуваний період. На початку моделювання в басейні немає води. Зміна рівня води відбувається раз на місяць.

Кінцевий вигляд моделі наведено на рис. 1.

I. Інтерфейс моделі «Басейн»

Мал. I. Інтерфейс моделі «Басейн»

У моделі басейну використовується п'ять блоків. Інформація входить в блок, обробляється і / або змінюється, і потім пересилається до наступного блоку через лінію-з'єднувач (рис. 2).

Частини моделі «Басейн»

Мал. 2. Частини моделі «Басейн»

Блоки. Кожен блок в ExtendSim представляє частину моделируемого процесу або системи. Блоки зберігаються в архівах, званих бібліотеками. В бібліотеці для кожного, хто входить в неї блоку визначені функціонал, значок, діалогове вікно блоку. У блоків є назви, наприклад, « Math » - «Математика» або «Queue» - «Черга», що відображають виконувану блоком функцію. Користувач може також задати власне ім'я блоку. При включенні блоку в модель, сам блок не копіюється. Замість цього, включається і зберігається в моделі довідкова інформація про блок. Будь-які дані, які вводяться в діалоговому вікні блоку, також зберігаються в межах моделі. Є багато переваг у використанні в моделі довідкової інформації про блоках, замість фактичних блоків. Якщо змінюється визначення блоку в бібліотеці, всі моделі, які використовують цей блок, автоматично оновлюються. Крім того, визначення блоку багато «важать», тому зберігання тільки довідкової інформації економить обчислювальні ресурси, пам'ять, зменшує час моделювання.

Коннектори. У більшості блоків в ExtendSim є коннектори введення і виведення (маленькі квадрати, прикладені до блоку, див. Рис. 2). Потоки інформації надходять в блок через вхідні коннектори і виходять з блоку через вихідні коннектори. Блок може мати багато входів і / або виходів.

Діалогові вікна. Налаштування роботи блоку виконується за допомогою діалогового вікна, пов'язаного з кожним блоком. Діалогові вікна використовуються для введення значень і параметрів настройки моделі перед моделюванням і виведення результатів моделювання. Щоб відкрити діалог блоку, двічі клацніть значок блоку або клацніть правою кнопкою миші по значку і виберіть з меню, що випадає пункт Open Dialog. На рис. 3 наведено діалогове вікно, відповідне блоку Holding Tank (Басейн). Вгорі діалогового вікна виводиться глобальний номер блоку, його назва та бібліотека, в якій знаходиться блок.

Діалогове вікно блоку Holding Tank

Мал. 3. Діалогове вікно блоку Holding Tank

Глобальні номера блоку - унікальні ідентифікатори, які призначаються послідовно відповідно до порядку додавання користувачем блоку в модель. Внизу кожного діалогового вікна кнопка Help (Допомога). У розділі «Допомога» представлена вся інформація про блок: призначення і використання блоку, конекторів, опис кожного елемента діалогового вікна і т.п. Близько кнопки Help розташоване текстове поле, в яке можна ввести мітку (ім'я) блоку, до 31 символу. У діалоговому вікні також відображаються результати (вихідні характеристики) моделювання, причому можна спостерігати зміну характеристик в процесі моделювання, якщо залишити діалогове вікно відкритим.

З'єднувачі блоків. З'єднувачі - лінії, що зв'язують коннектори введення і виведення інформації. У ExtendSim функції більшості з'єднувачів зумовлені для кожного блоку. Наприклад, блок Math, в залежності від заданих користувачем налаштувань, складає (або віднімає, ділить, примножує, логаріфмірует, ...) значення, подані на вхід. Всього в блоці Math є 38 математичних і логічних операцій.

У блоку також можуть бути змінні вхідні або вихідні з'єднувачі, що дозволяють збільшити число входів (виходів) блоку, що позначаються чорною стрілкою. У блоку Math, наприклад, є змінний вхідний з'єднувач, перетягнувши вниз чорну стрілку, можна збільшити число входів блоку.

Тіни з'єднань. Є два типи з'єднань в ExtendSim : підключення лінії і іменні підключення. Підключення лінії з'єднують вихід одного блоку з входом іншого; іменні підключення використовують текстові мітки як виходи і входи, змушуючи дані «зістрибнути» з виходу до входу, нс використовуючи лінії підключення.

Лінії з'єднання можуть бути намальовані, використовуючи три різних стилі: прямо, правий кут і мультісегмент (рис. 4). Стиль за замовчуванням - правий кут.

Тіни з'єднань блоків

Мал. 4. Тіни з'єднань блоків

Для створення моделі басейну необхідно виконати наступну послідовність дейтвія.

  • - відкрити новий модельний робочий лист;
  • - встановити параметри моделювання;
  • - побудувати модель, використовуючи блоки з бібліотек;
  • - вибрати і задати параметри налаштування блоків.

Відкриття нового модельного робочого листа. Для відкриття нового модельного робочого листа виберіть пункт меню File -> New Model. В результаті буде створений порожній модельний робочий лист під назвою Model-1.

Установка параметрів моделювання. Для завдання параметрів моделювання виберіть пункт меню Run -> Simulation Setup. В результаті відкриється

діалогове вікно (рис. 5), в якому встановлюються параметри моделювання та анімації, а, саме: час моделювання, початкові значення для генераторів випадкових чисел, режим взаємодії між моделюванням і анімацією і т.д. У діалоговому вікні є вкладки Setup , Continuous , Random Numbers , 3D Animation , Comments. Найзагальніші параметри моделювання, які необхідно задати (і часто єдині): End time (час закінчення моделювання) і Global time units (глобальні одиниці часу), розташовані на вкладці Setup. У більшості випадків потрібно, щоб моделювання почалося в нульовий момент часу (за замовчуванням).

Для моделі басейну встановлюються наступні параметри:

  • - час закінчення (End time): 36;
  • - проміжок часу (Start time): 0 (значення за замовчуванням);
  • - кількість прогонів моделі (Runs): I (значення за замовчуванням);
  • - глобальні одиниці часу (Global time units): місяць.

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

Завдання нарамефов моделюванні

Мал. 5. Завдання нарамефов моделюванні

Вибір блоків моделі. Блоки, які використовуються в моделі басейну, зберігаються в бібліотеках Value і Plotter. Для відкриття бібліотеки виберіть пункт меню Library -> Open Library і далі файл необхідної бібліотеки (Value.Іх або Plotter.Іх). Відкриті бібліотеки перераховані в алфавітному порядку внизу в меню Library. Тепер, для отримання доступу до блоків бібліотеки, необхідно відкрити вікна бібліотек Library> -> Value.Іх -> Open Library Window

і Library -> Plotter.lix -> Open Library Window.

Є два методи додавання нового блоку до моделі:

  • - вибір блоку з його бібліотеки в межах меню Library ;
  • - перетягування блоку в модель за допомогою миші з вікна бібліотеки.

У моделі басейну використовуються наступні блоки: Lookup Table. Random Number block, Math block. Holding Tank block. Plotter I / O block. Для їх додавання першим методом необхідно вибрати пункти меню:

  • - Library -> Value.Іх -> Math -> Lookup Table;
  • - Library -> Value. Їх -> Inputs -> Random Number block;
  • - Library -> Value, lix-> Math -> Math block;
  • - Library ' -> Value. Їх -> Holding -> Holding Tank block;
  • - Library -> Plotter.lix -> Plotter I / O block.

В результаті значки блоків з'являться в верхньому кутку в модельному вікні. Для переміщення блоків в межах модельного вікна, виберіть блок і перетягніть його мишкою або за допомогою клавіш переміщення курсора в бажану позицію. Далі зв'яжіть блоки (див. Рис. 1) за допомогою ліній з'єднувачів.

Для збереження моделі виберіть File -> Save Model As і назвіть файл. В імені файлу бажано використовувати тільки букви латинського алфавіту і без пробілів.

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

Налаштування блоку Lookup Table Блок описує постійний потік

води, що надходить в басейн щомісяця, і виводить обсяг води, що відповідає поточному часу моделювання. У вкладці Table діалогового вікна блоку задаються наступні настройки: Lookup the: time; Output is: stepped (значення за замовчуванням); Time units: months (значення за замовчуванням). Також необхідно ввести дані про щомісячне притоці в таблицю (див. Рис. 6). На вкладці Options задаються назви стовпців таблиці.

11астройка time означає, що блок порівняє поточний час моделювання з часом в таблиці і виведе відповідне значення. 11астройка stepped означає, що будуть використані точні значення, які введені в таблицю, а не інтерпольовані.

Дані але місяцях

Мал. 6. Дані але місяцях

Лівий стовпець таблиці тепер визначає місяць, правий стовпець визначає обсяг води в дюймах. Дані таблиці повинні повторяться кожні 12 місяців, для цього в поле Repeat table every введіть значення 12 months.

Налаштування блоку Random Number block У моделі басейну блок

використовується для опису випадкового потоку дощової води. Випадковий потік поставлено рівномірним законом розподілу в діапазоні від 0 до 1: в басейн щомісяця додається равновероятно від 0 до 1 дюймів води. У діалоговому вікні блоку введіть наведене нижче Distribution: Uniform Real (значення по

замовчуванням); Minimum: 0 (значення за замовчуванням); Maximum: 1 (значення за замовчуванням).

Налаштування блоку Math Блок Math складає значення з двох

вхідних джерел (позначено знаком «плюс» на його значку). Використовуються настройки блоку за замовчуванням.

Налаштування блоку Holding Tank Блок представляє рівень води

в басейні. Використовуються наступні настройки блоку: Initial contents: 0 (значення за замовчуванням); Inputs are: integrated (delay).

Налаштування блоку Plotter Блок відображає сумарний обсяг води

в басейні, обсяг дощової води і обсяг постійного потоку протягом часу моделювання. У діалоговому вікні блоку натисніть текстову мітку Value в верхньому лівому кутку графіка і введіть «Дюйми» в текстове иоле. Змініть інші мітки в області вікна графіка наступним чином: Plotter I / O (розташований нагорі графіка) змініть на «Модель Басейну»; Time (розташований під графіком) змініть на «Місяць».

Використання різних типів з'єднань. У моделі басейну для з'єднання блоків можна використовувати або право-кутовий тип підключення (за умовчанням установлюється), або прямий, або мультісегментний. Тип підключення задається в пункті меню Model -> Connection Lines. Недолік перших двох типів підключення - захаращення і важка читабельність моделі (лінії можуть перетинати блоки).

Використання стилю мультісегмента має перевагу, дозволяючи розташувати лінії навколо блоків. Розглянемо використання стилю мультісегмента на прикладі з'єднання блоків Lookup Table і Plotter.

Виберіть пункт меню Model -> Connection Lines і опцію straight line (другий елемент). Клацніть на соединителе виходу блоку Lookup Table і перетягніть курсор до ділянки над Holding Tank , відпустіть миша. Це створить перший

сегмент (рис. 7). Курсор залишається технічним пером і вказує на початок виділення.

Створення першою сегмента

Мал. 7. Створення першою сегмента

Негайно клацніть ще раз і перетягніть курсор на вхідний з'єднувач на Plotter , відпустіть кнопку миші (рис. 8).

Створення мультнеегмента

Мал. 8. Створення мультнеегмента

В результаті створено підключення мультісегмента. Для видалення підключення необхідно двічі клацнути миши на сегменті, поки вся лінія підключення не стане товщі, потім натиснути Delete або Backspace. Щоб видалити тільки один сегмент лінії, необхідно клацнути на сегменті один раз і натиснути клавішу Delete.

Крім перерахованих вище способів з'єднань блоків також використовують іменні сполуки. Іменні з'єднання - текстові мітки, які використовуються, щоб представити вихід (вхід) блоку в різних місцях в моделі. Іменні з'єднання часто використовують, щоб не захаращувати модель.

Розглянемо послідовність створення іменного з'єднання між блоками Lookup Table і Plotter:

  • - виберіть пункт меню Model -> Connection Lines і опцію право-кутовий або прямий тип лінії;
  • - двічі клацніть в модельному вікні, трохи вище і правіше від з'єднувача виходу блоку Lookup Table: в результаті відкриється текстове поле;
  • - надрукуйте «Постійний потік» в текстовому полі та натисніть кнопку миші де-небудь в модельному вікні;

з'єднайте з'єднувач виходу Lookup Table з міткою «Постійний потік», перетягуючи лінію від з'єднувача до тексту і, коли лінія стане жирною, відпустіть миша;

  • - клацніть по мітці «Постійний потік», щоб його виділити, потім виберіть пункт меню Edit -> Duplicate:
  • - перетягніть дубльований текст до блоку Plotter:
  • - накресліть лінію між цим текстом і вхідним соединителем на Plotter. Повторіть послідовність дій для створення іменного підключення між блоком Random Number і Plotter як показано на рис. 1.

Виконання моделюванні. Якщо Ви слідували всім інструкціям, то модель басейну готова і відповідає рис.1. Для запуску процесу моделювання виберіть пункт меню Run -> Run Simulation або клацніть кнопкою * Run Simulation на панелі інструментів. Справа з'явиться графік процесу моделювання, на якому відображено три лінії: червона - загальний обсяг води в басейні; зелена - обсяг дощової води; синя - обсяг води від постійного потоку. В кінці моделювання Plotter автоматично масштабує свою вісь, щоб відобразити всі значення для всіх стовпців даних. Однак, діапазон зміни у даних різний і графік виглядає наступним чином (рис. 9).

Вихідний вил графіка

Мал. 9. Вихідний вил графіка

Побудова графіків на кількох осях. Для вирішення проблеми з різним масштабом графіків, можна додати окрему вісь ( Y2 ) на правій стороні графіка і відображати обсяг дощової води і обсяг постійного потоку на цій осі. Виконайте наступну послідовність дій:

  • - двічі клацніть по блоку Plotter , якщо він не відкритий;
  • - клацніть кнопкою Trace properties Н, крайня ліва на панелі інструментів у вікні графіка, в результаті відкриється діалог з інструментами;
  • - клацніть кнопкою Y1 / Y2 В (друга праворуч) в першому рядку, з ім'ям «Постійний потік», в результаті малюнок на кнопці дзеркально відіб'ється UJ;
  • - клацніть кнопкою YJ / Y2 В в третьому рядку, названої «Дощ», в результаті малюнок на кнопці дзеркально відіб'ється;
  • - закрийте діалогове вікно Tools;
  • - клацніть кнопкою Run Simulation на панелі інструментів.

На графіку тепер відображається обсяг дощової води і обсяг постійного потоку на лівій осі, а загальний обсяг басейну на правій осі (рис. 10).

К). багатовісної графік

Мал. К). багатовісної графік

Додаткові можливості. Введення в ієрархію. У моделі Басейну використовується принцип «один блок одна функція». Цей принцип можна застосувати для простих моделей, що включають відносно невелике число блоків. Для великих моделей, що складаються з тисяч блоків, використовується принцип ієрархії. ExtendSim дозволяє створювати ієрархічні блоки ( H-blocks ), які збирають кілька блоків в один блок, дозволяючи користувачеві отримувати доступ до блоків нижчих рівнів. Наприклад, в моделі басейну можна згрупувати блоки, що представляють джерело води разом в один ієрархічний блок. Для цього виконайте наступну послідовність дій:

  • - затисніть Shift і клацніть мишкою на блоках Lookup Table , Random Number і Math, щоб вибрати їх;
  • - виберіть пункт меню Model -> Make Selection Hierarchical і введіть назву для ієрархічного блоку: «Джерело води», натисніть кнопку Маке Н Block.

В результаті три окремі блоки замінені єдиним ієрархічним

блоком: з трьома вихідними з'єднаннями. За замовчуванням, у ієрархічного блоку є тінь, щоб відрізнити його від інших блоків. Зовнішній вигляд блоку можна змінити, вибравши пункт меню Edit -> Options , вкладка Model.

Двічі клацніть на значку ієрархічного блоку, щоб бачити його подмодель або структуру (див. Рис. 11).

В області заголовка вікна виводиться назва ієрархічного блоку. Зауважте, що підключення, передають дані з ієрархічного блоку до зовнішньої моделі, представлені в подмодели як іменні сполуки з червоними межами навколо тексту. Ці підключення відповідають трьом з'єднувачів на значку блоку.

Також в ExtendSim можна побудувати ієрархічний блок «з нуля», вибравши пункт меню Model -> New Hierarchical Block , і використовувати індивідуальний значок блоку.

Навігатор ExtendSim. Навігатор - подібне Internet Explorer вікно, яке може використовуватися для:

  • - пересування по ієрархічній структурі моделі;
  • - звернення до баз даних, що використовуються в моделі;
  • - додавання блоку до модельного робочому листу, як альтернатива використання меню Library.

Виберіть пункт меню Window -> Navigator або клацніть кнопку ^ Open Navigator на панелі інструментів. За замовчуванням, Навігатор відкривається в режимі Model Navigator , зі словом «Model», обраним в крайньому лівому спливаючому меню (рис. 12). Назва активної моделі приведено у верхній частині вікна, відображені значок кожного блоку і інформація про нього: назва, мітка і глобальний номер блоку.

Клацніть знаком «плюс» біля ієрархічного блоку «Джерело води». Ієрархічний блок розкриється (див. Рис. 12), щоб показати блоки всередині нього.

Виберіть блок Lookup Table в Навігаторі. Відповідний блок вибереться в молитовному вікні. Двічі клацніть блок Lookup Table в Навігаторі, в результаті відкриється діалогове вікно блоку.

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

Навігація по моделі

Мал. 12. Навігація по моделі

Дублювання. ExtendSim дозволяє додавати елементи діалогового вікна і / або графіка в звіт, використовуючи методику під назвою Дублювання. В результаті створюються точні копії оригінальних елементів. При зміні дубльованого елемента оригінал також змінюється.

Розглянемо дублювання графіка блоку Plotter до Звіту:

виберіть пункт меню Window -> Notebook або виберіть кнопку ^ Open Notebook на панелі інструментів, в результаті відкриється порожнє вікно звіту Notebook ;

- двічі клацніть на блоці Plotter в моделі басейну;

використовуючи інструмент Clone layer на панелі інструментів, клацніть графік Plotter і перетягніть його у вікно Notebook ;

- виконайте моделювання.

В результаті графік в звіті Notebook той же самий, що і на Plotter.

На цьому завершимо короткий огляд можливостей і прийомів створення найпростіших моделей в ExtendSim.

КОНТРОЛЬНІ ПИТАННЯ І ЗАВДАННЯ

  • 1. Опишіть послідовність розробки моделі системи в ExtendSim.
  • 2. Дайте загальну характеристику середовища ExtendSim, як засоби розробки імітаційної моделі системи. Порівняйте ExtendSim з іншими відомими Вам засобами розробки, в чому її переваги і недоліки?
  • 3. Яке функціональне призначення блоків, вхідних і вихідних конекторів, з'єднувачів в ExtendSim ? Як налаштувати блоків, задати параметри моделювання?
  • 4. Які основні типи з'єднань реалізовані в середовищі? У чому переваги і недоліки кожного типу з'єднань?
  • 5. Для чого використовуються ієрархічні блоки в середовищі? Як створити ієрархічний блок? Наведіть приклади завдань.
  • 6. Модифікуйте побудовану модель басейну так, щоб вода, що перевищує обсяг басейну, віддалялася з моделі. Побудуйте графіки процесу моделювання.
 
<<   ЗМІСТ   >>