Полная версия

Главная 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. Модифицируйте построенную модель бассейна так, чтобы вода, превышающая объем бассейна, удалялась из модели. Постройте графики процесса моделирования.
 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>