Библиотека AnyLogic Enterprise Library 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Библиотека AnyLogic Enterprise Library



Библиотека AnyLogic Enterprise Library позволяет создавать высокоуровневый интерфейс для быстрого создания моделей в стиле блок схем, строить модели в стиле “перетащить и оставить”, моделировать транспортные и другие сети, организовывать взаимодействие с другими элементами языка моделирование AnyLogic. Все блоки библиотеки – активные объекты, “собранные” из стандартных элементов языка (портов, диаграмм состояний, событий), позволяющие создавать гибкие и расширяемые модели.

Библиотека содержит коллекции высокоуровневых объектов, позволяющих моделировать в стиле дисретно-событийных и потоковых диаграмм. Эти объекты сами собраны из событий, диаграмм состояний и Java – и они могут взаимодействовать с низкоуровневыми примитивами.

 

Объекты Enterprise Library

Классы активных объектов библиотеки AnyLogic Enterprise Library являются строительными блоками, с помощью которых ситроятся блок-схемы, моделирующие процессы, которые будут происходить с заявками. Библиотечные классы Entity и ResourceUnit являются базовыми классами для заявок и ресурсов соответственно. Объекты условно делятся по своей функциональности на несколько категорий. Рассмотрим некоторые из них.

1. Поток заявок:

- Source- Создает заявки;

- Sink- Уничтожает поступающие заявки;

- SelectOutput- Направляет входящие заявки в один из двух выходных портов в зависимости от выполнения заданного условия;

- Queue- Хранит заявки в определенном порядке. Моделирует очередь заявок, ожидающих приема объектами, следующими за данным в потоковой диаграмме.

Работа с содержимым заяквки:

- Batch- Преобразует заданное количество поступающих в объект заявок в одну заявку-партию;

-Unbatch- Удаляет заявки из заданного объекта Queue и добавляет их к содержимому поступающей заявки-контейнера;

- Dropoff- Удаляет избранные заявки из поступающей заявки-контейнера и пересылает их далее.

Обработка заявок:

-Delay- Задерживает заявки на заданный период времени.

 

2. Работа с ресурсами:

- ResourcePool- Задает набор ресурсов, которые могут захватываться и освобождаться заявками;

- Seize- Захватывает для заявки заданное количество ресурсов определенного типа;

- Service- Захватывает для заявки заданное количество ресурсов, задерживает заявку, а затем освобождает захваченные ею ресурсы.

 

3. Транспортировка:

Conveyor- Моделирует конвейер. Перемещает заявки по пути заданной длины с заданной скоростью (одинаковой для всех заявок), сохраняя их порядок и оставляя заданные промежутки между ними.

4. Моделирование транспортных сетей:

-Network- Задает топологию сети и управляет сетевыми ресурсами;

 

-NetworkEnter- Регистрирует заявку в сети и помещает ее в заданный узел сети;

- NetworkMoveTo- Перемещает заявку в новое место сети;

- NetworkResourcePool- Задает набор сетевых ресурсов, которые могут захватываться и освобождаться заявками.

 

5. Моделирование зон хранения в сети:

-NetworkStorage- Моделирует два стоящих друг напротив друга стеллажа и проход между ними;

-NetworkStorageZone- Моделирует зону хранения, состоящую из набора стеллажей и проходов между ними (моделируемыми с помощью объектов NetworkStorage), предоставляющий централизованный доступ и управление этими стеллажами;

-NetworkStorageZone- Извлекает заявку из ячейки стеллажа или зоны хранения и перемещает ее в заданный узел сети.

 

Сетевое моделирование

Группа объектов Enterprise Library, имена которых начинаются с Network, используется при моделировании транспортных сетей, строящихся на базе имеющегося плана или фотографии (помещения, местности, поля, автомобильных, грунтовых дорог, железнодорожных путей и т.п.). Обычно они используются при моделировании процессов, проистекающих в каком-то определенном физическом пространстве и включающих в себя движение заявок и ресурсов. Например, это могут быть пути следования машинных агрегатов в поле или движения автомобиля из точки А в точку Б, а также, например, расположение контейнера с продукцией в хранилище.

В таких моделях первым делом задается топология транспортной сети (она задается путем рисования фигур, например, поверх плана здания, используемого в качестве подложки), затем задаются наборы сетевых ресурсов с помощью объектов NetworkResourcePool (отличных от ресурсов ResourcePool: они могут быть статическими, движущимися и переносными), и затем с помощью блок-схемы задается сам моделируемый процесс. Блок-схема может включать в себя вышеуказанные "сетевые" объекты, а может и "обычные", такие, как Delay, Seize, Release и т.д. Заявки и ресурсы автоматически отображаются на анимации движущимися вдоль сегментов сети или пребывающими в узлах сети, и опять же эти анимации можно комбинировать с "обычными" анимациями моделей Enterprise Library.

Сеть состоит из узлов и связей между ними (сегментов), которые автоматически генерируются на базе созданной анимации. Чтобы задать сеть, необходимо нарисовать набор прямоугольников (по одному на каждый узел), а также линий и ломаных (по одной на каждую связь сети), конечные точки которых лежат внутри соединяемых прямоугольников. Затем нужно добавить все эти фигуры в группу фигур и задать эту группу фигур в качестве параметра объекта Network. Объект Network автоматически создаст на базе этих фигур сеть с соответствующей топологией. Узлы сети будут названы по имени соответствующих анимационных фигур, именно на эти имена и будут ссылаться объекты блок-схемы. Движение всегда осуществляется по кратчайшему маршруту, существующему между начальной и конечной точкой. Скорость движения движущихся ресурсов и заявок задается пользователем изначально или рассчитывается в процессе моделирования. При необходимости скорость можно изменять динамически, например, можно задать различные скорости работы трактора в поле и в транспортном режиме. Предполагается, что сегменты сети имеют неограниченную вместимость, поэтому движущиеся в сети заявки не мешают друг другу.

В одной модели может быть задано сразу несколько сетей, при этом заявки могут перемещаться из одной сети в другую, но ресурсы могут работать только в пределах одной сети, которую они покинуть не могут. Каждая сеть должна быть задана отдельным объектом Network.

У каждого объекта Enterprise Library есть специальные "точки расширения" - места, где можно задать какие-то действия или выражения. Такими точками расширения являются динамические параметры (помеченные в описаниях объектов как [динамические]), вычисляемые во время выполнения модели при прохождении заявок через процессную диаграмму. Например, в объекте Delay, моделирующем распечатку путевых листов в объекте Регистрация, Вы можете присвоить водителю выход (гейт), написав entity.gate = main.gateof(entity.flightno) в параметре Действие при выходе. Здесь gate (гейт) и flightno (номер маршрута) - поля класса Voditel, моделирующего водителей, а gateof - функция, заданная в корневом объекте модели Main. При этом имеется доступ к любой части модели из любой другой части модели, и более того, поскольку модель пишется в Java коде, можно взаимодействовать с любым внешним программным обеспечением и/или использовать любой из огромного количества Java пакетов.

Сетевые ресурсы

Сетевые ресурсы могут быть трех типов: статические, движущиеся и переносные. Статические ресурсы располагаются в заданном месте (одном или нескольких узлах сети) и не могут ни двигаться сами, ни быть перенесены другими ресурсами. Примерами статических ресурсов могут быть здание цеха, поле, склад, тара, транспорт, весы и т.д. Движущиеся ресурсы могут самостоятельно передвигаться, примерами таких ресурсов могут быть персонал, грузовики, машинно-тракторные агрегаты, и т.д.

Переносные ресурсы могут переноситься по сети с помощью заявок и/или движущихся ресурсов. Примером переносного ресурса является передвижной сварочный аппарат или тележка. У движущихся и переносных ресурсов есть базовые местоположения. При освобождении движущиеся и переносные ресурсы могут соответственно возвращаться или переноситься в свое базовое местоположение. Сетевые ресурсы задаются с помощью объектов NetworkResourcePool. Ресурсы одного типа (заданные одним объектом NetworkResourcePool) могут иметь различные свойства, но заявка не может выбирать какой-то определенный ресурс из их общего числа: она ссылается на набор ресурсов одного типа просто по имени соответствующего объекта NetworkResourcePool.

Заявка может производить с сетевыми ресурсами следующие операции: захватывать заданное количество ресурсов (моделируется объектом NetworkSeize), освобождать их (NetworkRelease), отсылать захваченные ресурсы в заданный узел сети (NetworkSendTo), присоединять ресурсы к заявке, чтобы они перемещались вместе с ней (NetworkAttach), отсоединять ранее присоединенные ресурсы (NetworkDetach). В том случае, если какая-то из этих операций производится сразу с несколькими ресурсами, задается список имен объектов NetworkResourcePool.

Управление сетевыми ресурсами осуществляется централизованно. Сеть хранит очередь запросов ресурсов (исходящих от объектов NetworkSeize) и обрабатывает ее от начала к концу. Если запрос может быть удовлетворен (т.e. все запрашиваемые ресурсы доступны одновременно), то эти ресурсы выделяются для запрашивающей их заявки, иначе доступные ресурсы резервируются этим запросом, а сам запрос помещается в очередь. Это означает, что запрос из середины очереди может быть обслужен только если он не конфликтует ни с одним запросом, находящимся в очереди до него. Находящиеся в сети заявки могут использовать и обычные (несетевые) ресурсы с помощью объектов Seize, Release и Service. Такие ресурсы могут совместно использоваться в нескольких сетях и "переноситься" из одной сети в другую.

В общем, любая заявка или ресурс в сети может либо двигаться вдоль сегмента сети, либо находиться в узле. При движении такой элемент отображается в его текущем местоположении на сегменте.

Запуск и просмотр модели

 

Модель запуcкается той же программой, которая используется при ее создании. AnyLogic позволяет запускать модель, следить за ходом моделирования и управлять им, а также производить отладку модели. Скорость работы модели будет зависеть от выбранного режима выполнения модели и от количества открытых окон среды просмотра модели. Чем меньше окон будет открыто, тем быстрее будет выполняться модель.

Изменение скорости выполнения модели. Модель AnyLogic может выполняться либо в режиме виртуального, либо в режиме реального времени.

В режиме реального времени задается связь модельного времени с физическим, то есть задается количество единиц модельного времени, выполняемых в одну секунду. Это часто требуется, когда Вы хотите, чтобы Ваша анимация отображалась с той же скоростью, что и в реальной жизни.

В режиме виртуального времени модель выполняется без привязки к физическому времени — она просто выполняется настолько быстро, насколько это возможно. Этот режим лучше всего подходит в том случае, когда требуется моделировать работу системы в течение достаточно длительного периода времени.

Диаграммы. С помощью диаграмм AnyLogic можно изучать динамику моделируемого процесса и его историю- различные зависимости, графики и временные диаграммы.. Переменные и наборы данных могут быть добавлены на диаграмму простым перетаскиванием мышью или с помощью диалогового окна Содержимое диаграммы.

Анимация модели

Анимация представляет собой рисунок, составленный из различных простейших фигур: кружков, прямоугольников, линий и т.д., а также индикаторов и элементов управления. У каждой фигуры есть набор свойств, определяющих ее внешний вид: местоположение, размер, цвет и т.д. Следует иметь ввиду, что анимация в AnyLogic - это не движущаяся кртинка, действующая независимо от моделируемого процесса. Основной принцип технологии анимации AnyLogic заключается в том, что анимации связаны с компонентами модели — активными объектами — и повторяют иерархическую структуру объектов в модели. Каждый активный объект может иметь анимацию. Любые изменения в процессе исследования модели могут быть отображены в анимации.

Индикаторы (столбиковые и временные диаграммы) позволяют динамически отображать изменения значений переменных модели. Они появляются на экране автоматически по щелчку мыши.

Анимация создается модульным способом, отдельно для каждого объекта. AnyLogic самостоятельно производит сборку общей анимации из анимаций различных объектов модели. Имеется встроенный редактор анимации. Анимация рисуется в окне редактора анимации с помощью панели инструментов Анимация. При создании анимации используются следующие принципы:

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

Повторное использование. Каждая анимация связана со своим активным объектом. Она может быть внедрена в анимацию объекта, находящегося на более высоком уровне иерархии. Если Вы поместите объект в библиотеку, то вместе с объектом в библиотеку будет помещена и анимация этого объекта.

Интерактивность. Двумерные анимации могут быть сделаны интерактивными с помощью стандартных элементов управления — кнопок, флажков, переключателей и т.д.

С помощью свойств анимационной диаграммы Масштаб, X-смещение и Y-смещение Вы можете связать данные модели с координатами сразу всех анимационных фигур.

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

Библиотека Enterprise Library тесно интегрирована с анимационными средствами AnyLogic и позволяет создавать анимации процессов любой степени сложности, в том числе иерархические и с несколькими различными графическими представлениями процесса.

Для большинства объектов Enterprise Library анимация задается следующим образом: рисуется фигура, например, ломаная, и указывается в параметре Фигура анимации, нпратимер, объекта Delay и назначаете этому объекту, что необходимо отображать заявки, задерживающиеся в этом объекте, движущимися по этой фигуре анимации. Затем рисуется другая фигура (или группа фигур), и она делается Фигурой анимации заявки, например, в объекте Source. Тогда пока заявки будут находиться в объекте Delay, анимации этих заявок будут отображаться в соответствующих точках этой ломаной.

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



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 1135; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.236.199 (0.022 с.)