Информация по версиям
Что нового в AnyLogic 8.7.3
Улучшения
Пешеходная библиотека и Библиотека производственных систем
- В карте плотности появилась возможность использовать скользящее временное окно, чтобы задавать период времени, в течение которого собираются данные.
- Появилась возможность строить карту плотности на основе среднего значения плотности.
Дорожная библиотека
- В поле действия При проезде машины элемента разметки пространства Стоп-линия теперь можно использовать локальную переменную car.
- Появилась возможность подсчитать количество машин на стоп-линии с помощью API метода queueSize() элемента разметки пространства Стоп-линия.
- Появилась возможность собирать статистику по автомобилям, проезжающим через перекресток с помощью новых API функций элементов разметки пространства Дорога и Перекресток: traffic(), countCars(), resetStats().
- Появилась возможность запросить данные о маршруте автомобиля с помощью функции API getRoute() машины и следующих функций API объекта Маршрут: getRoads(), getIntersections(), getLength().
- Появилась возможность получить среднюю скорость машины с помощью новой функции API машины: getAverageSpeed().
- Появилась возможность получить количество машин на конкретной полосе с помощью новой функции API элемента разметки пространства Дорога: nCarsOnLane().
Библиотека моделирования процессов
- Появилась возможность задавать местоположение для извлеченных из партии агентов в блоке Unbatch.
Библиотека производственных систем
- Агент может пройти через блок ReleaseTransporter, не вызвав ошибку, даже если он не обслуживается транспортером.
Приложение
- Ссылки на сообщество в Linkedin заменены ссылками на Stack Overflow.
Диалоги
- Диалог "Обратиться за помощью" теперь проверяет размер прикрепленных файлов и только потом отправляет их.
- Размер прикрепленных файлов в диалоге "Обратиться за помощью" теперь ограничен 30 Мб: в них входят как сама модель, так и другие файлы.
Исправления
Пешеходная библиотека и Библиотека производственных систем
- Исправлено: Данные карты плотности не сбрасываются возле целевой линии.
- Исправлено: Функция hide() карты плотности не выполняет ничего, если вызвать ее в поле действия При запуске модели.
- Исправлено: Карта плотности затухает слишком быстро.
- Исправлено: Карта плотности для транспортеров рассчитывается для всех уровней одновременно, а не для одного указанного уровня.
Библиотека производственных систем
- Исправлено: При перемещении с помощью лифта транспортеры теряют заданную ориентацию.
- Исправлено: Транспортеры с произвольной навигацией не воспринимают друг друга как препятствие.
- Исправлено: Ошибка "Неправильное время события" может возникать во время движения мостового крана.
- Исправлено: Функция getDistanceTravelled() транспортера возвращает неправильный результат.
- Исправлено: Подающий ленточный конвейер продолжает двигаться несмотря на то, что агент, расположенный на его конце, не может двигаться, потому что исходящий конвейер остановился.
- Исправлено: Агент заблокированный блоком Hold может продолжать движение по конвейеру.
- Исправлено: Материальные объекты застревают на конвейере, если в качестве единиц модельного времени выбраны не секунды.
- Исправлено: Транспортер замедляется, подъезжая к сетевому порту.
Пешеходная библиотека
- Исправлено: Блок PedEnter не перемещает агента в указанные координаты, если агент уже является пешеходом.
- Исправлено: При смене уровня пешеход на мгновение появляется на предыдущем уровне.
Библиотека моделирования процессов
- Исправлено: Вызов функции recalculateResourceChoiceConditions() приводит к ошибке "Данный агент не может находиться в этом блоке Seize", если в диаграмме процессов несколько блоков Seize размещены друг за другом.
Библиотека моделирования потоков
- Исправлено: В модели с большой входящей скоростью и единицами времени кроме секунд количество жидкости рассчитывается неправильно.
ГИС
- Исправлены проблемы с разными API, используемыми для расчета расстояний. Тепероь все расчеты, выполняемые с помощью разных API, возвращают одинаковые результаты.
- Исправлено: В ГИС маршруте расстояние от начальной точки (X) может быть больше, чем длина (Y).
- Исправлено: Вызов метода Agent.moveToInTime() в контексте модели приводит к ошибке NPE.
- Исправлено: Неправильный Z-порядок фигур на ГИС карте.
Исполняющий модуль
- Исправлено: Набор данных, созданный из переменной системной динамики не обновляет данные автоматически.
- Исправлено: Распределение uniform_discr() возвращает неправильное значение, когда используется с большими числами.
Анимация
- Исправлено: Порядок отрисовки объектов по Z-оси.
Импорт DXF
- Исправлено: Перемещение элементов после окончания конвертации DXF.
Экспорт модели
- Исправлено: Проблемы с экспортом моделей, созданных с использованием сложных внешних библиотек и ресурсных зависимостей для всех поддерживаемых платформ, что негативно влияло на экспорт в AnyLogic Cloud и экспорт модели в качестве независимого приложения.
- Исправлено: Папка, содержащая внешние классы, не входит в состав экспортируемой модели.
- Исправлено: Порядок экспортируемых JAR может зависеть от операционной системы и не соответствует порядку, указанному в модели.
Диалоги
- Исправлено: Проблема с кодировкой, влияющая на отображение названий компаний в AnyLogic.
Что нового в AnyLogic 8.7.2
Исправления
Исполняющий модуль
- Исправлено: окно анимации при запуске модели не отображает ничего.
- Исправлено: медленная отработка анимации, добавилась возможность отображать 3D объекты, находящиеся на большом расстоянии, с низким уровнем детализации (см. Инструменты > Настройки > Выполнение модели).
Приложение
- Обновления в локализации на китайский язык.
Справка
- Перевод руководства администратора AnyLogic Cloud на русский.
Что нового в AnyLogic 8.7.1
Исправления
Исполняющий модуль
- Исправлено: Ошибка "Переход невозможно разрешить в переменную", появляющаяся после сохранения модели под новым именем.
- Исправлено: Временной график не отображает время в формате AM/PM, несмотря на выбранный формат оси.
Библиотека производственных систем
- Исправлено: Агенты с одинаковыми приоритетами неправильно обрабатываются мостовым краном.
- Исправлено: Ошибка во время отрисовки кадра анимации, когда транспортер перемещается с помощью лифта.
- Исправлено: Несколько агентов могут попасть в один лоток конвейера с лотками, вызывая таким образом ошибку "Неправильное расстояние между объектами на конвейере".
Библиотека Моделирования Процессов
- Исправлено: Внутреннее сообщение об отмене для блока RestrictedAreaStart в тех случаях, когда агенты не могут одновременно войти в открытую область с ограничением по вместимости.
Приложение
- Исправлено: Часть командного файла невалидна для BAT-файла независимого приложения в том случае, если Java не установлена в папку Program Files.
- Исправлено: AnyLogic падает во время генерации изображения для предварительного просмотра с большим количеством элементов в диалоге "Экспортировать модель в AnyLogic Cloud".
Анимация выполнения модели
- Исправлено: В панели разработчика отображается неправильное время после смены часового пояса с помощью кода.
Другие улучшения
Библиотека производственных систем
- Трансфер, который был некорректно соединен с конвейером, теперь указывается в сообщении об ошибке.
- Если возникает внутренняя ошибка при расчете движения транспортера, имя этого транспортера теперь указывается в сообщении об ошибке.
Пешеходная библиотека
- Движение пешеходов возле целевой линии стало более точным.
- Блок PedEnter: Появилась функция take(), с помощью которой можно принимать в блок пешехода.
- Документация API (javadoc).
Железнодорожная библиотека
- API поезда, который вызывается, когда поезд покидает ж/д узел, теперь учитывает и те вагоны, которые уже покинули ж/д узел.
Все библиотеки
- Документация API (javadoc) для элементов разметки пространства.
Графический редактор
- Соединители с нулевой длиной, оставшиеся в портах блока, удаляются автоматически.
Приложение
- Производительность графа маршрутизации.
Что нового в AnyLogic 8.7
Библиотека производственных систем
Теперь для мостовых кранов можно задавать нужное количество мостов. Этот вид крана, как и другие, по умолчанию работает автоматически: сам задает очередность движения мостов, но вы также можете управлять им вручную, с помощью API; такой способ подойдет продвинутым пользователям.
Появилась возможность настраивать сложные процессы захвата и освобождения крана с помощью блоков SeizeCrane и ReleaseCrane.
Пешеходная библиотека
Теперь вы можете создавать пешеходные зоны с ограничениями по вместимости, пропускной способности и другим условиям. Например, можно смоделировать супермаркет, где из-за мер по борьбе с пандемией могут одновременно находиться не более 100 человек, или эвакуацию людей: ограничить доступ в зону при пожаре или открыть доступ к эвакуационным выходам.
Пешеходам можно задать социальную дистанцию: они будут стараться соблюдать ее, как в реальной жизни. Это еще одно нововведение, которое поможет смоделировать ограничения в период пандемии.
Улучшился алгоритм построения маршрутов для пешеходов.
Библиотека Моделирования Процессов
Теперь в блоке Seize появилась возможность заново рассчитывать приоритет задач для агента, пока этот агент находится в блоке.
Графический редактор
Теперь AnyLogic поддерживает автоматическое создание моделей зданий из CAD-чертежей. Элементы 2D-чертежей из CAD-файлов можно конвертировать в стены моделируемых зданий. Встроенный в AnyLogic конвертер автоматически распознает элементы в чертеже, а пользователю нужно выбрать, какие из них отразить в модели в виде стен. Вы можете загружать чертежи в форматах .dxf (теперь и для версий старше 2010 года) и .dwg.
Анимация
Улучшилась производительность 2D и 3D анимации в ходе выполнения модели.
Эксперименты
Эксперимент обучения ИИ, который позволяет настраивать обучение ИИ-агента с помощью имитационной модели. Поддержка экспорта в платформу обучения ИИ Microsoft Bonsai.
Новые демонстрационные модели



Другие улучшения
Исполняющий модуль
- Улучшена документация по API (javadoc).
- В поле Видимость реплицированной фигуры теперь можно использовать индекс фигуры.
- API: Методы, задающие свойства групп верхнего уровня презентации (например, setX(), setVisible(), …), теперь недоступны — при попытке их использования показывается подробное сообщение об ошибке.
Библиотека Моделирования Процессов
- Добавлены функции API, предназначенные для сборки подробной статистики о простое ресурса.
- ResourcePool: информация о времени простоя теперь видна в окне инспекта.
Железнодорожная библиотека
- Для возвратных функций элемента разметки Точка ж/д пути теперь можно задать тип агента аргумента train.
- Добавлено предупреждение, когда поезд не достигает цели в процессе прохождения блока TrainMoveTo.
Библиотека производственных систем
- Улучшена документация по API (javadoc).
- Мостовой кран: функции API getInitialPosition() и setInitialPosition() переименованы в getInitialOffset() и setInitialOffset() соответственно. Предыдущие методы устарели и не совместимы с кранами, имеющими более одного моста.
-
MoveByCrane: функции API remove() и cancel() теперь высвобождают занятый кран.
-
Стреловой кран: добавлены функции API, позволяющие получить значения X-, Y- и Z-координат точки расположения крюка крана.
Пешеходная библиотека
- Улучшена документация по API (javadoc).
Графический редактор
- Улучшена производительность операций группового редактирования: например, изменения цветов фигур.
- Улучшен внешний вид диаграмм на этапе их редактирования.
- Улучшен внешний вид стрелок на железнодорожных путях со сложной структурой.
Палитра
- С панели Палитра удалена кнопка-крестик. Чтобы скрыть палитру, щелкните по кнопке с плюсом, расположенной в нижней части панели Палитра.
Анимация
- Chromium обновлен до последней версии.
Панель Свойства
- Улучшен внешний вид таблицы Соответствие параметров агента.
Примеры
Исправления
Исполняющий модуль
- Исправлено: ГИС: Не появлялась ошибка, если запрошенный маршрут отсутствовал у поставщика маршрутов.
- Исправлено: ГИС: результаты, возвращаемые функцией getDistanceByRoute() до и после создания кэша, могли различаться.
- Исправлено: функция ModelDatabase.exportToExternalDB() не работала, если была запущена из нестандартного эксперимента.
- Исправлено: При заполнении дискретного пространства могла появиться ошибка.
- Исправлено: База данных: Выполнение функции exportToExternalDB() могло вызвать ошибку "неправильный синтаксис возле '0'".
Библиотека производственных систем
- Исправлено: Неверно рассчитывалась дистанция между объектами, проходящими через ветвление конвейра.
- Исправлено: При использовании поворотного стола могла появиться ошибка "Неверный угол".
- Исправлено: При использовании транспортеров в экспериментах с нескольким числом "прогонов" могла произойти утечка памяти.
-
Исправлено: Некорректный подсчет времени загрузки в блоке MoveByCrane.
Библиотека Моделирования Процессов
- Исправлено: Seize: При использовании правила захвата Захватывать ресурсы один за другим могла появиться ошибка, вызванная наличием альтернативных наборов ресурсов.
- Исправлено: Могла появиться ошибка "ResourceUnitEndOfShiftTask cannot be cast to ResourceUnitEntityServiceSubtask".
- Исправлено: Могла появиться внутренняя ошибка "Cancelling entity with some path but unknown destination".
Пешеходная библиотека
- Исправлено: Пешеходы, переходящие между уровнями, могли на секунду появиться на другом уровне.
- Исправлено: Возможные проблемы при использовании нежелательных источников случайности.
Графический редактор
- Исправлено: Конвертер шейп-файлов в фигуры железнодорожной разметки: Могла появиться ошибка "Offset is negative".
- Исправлено: Возможное появление исключения при удалении дороги, связанной с перекрестком.
- Исправлено: Преобразование шейп-файлов в фигуры железнодорожной разметки могло вызвать несколько ошибок вида "Длина равна нулю".
- Исправлено: При повороте железнодорожной сети некоторые пути могли разъединиться.
- Исправлено: Проблема с позиционированием, которая могла привести к ошибкам запуска при активации железнодорожной стрелки.
Палитра
- Исправлено: Зависание всплывающего окна с палитрами на операционных системах Linux.
Приложение
- Исправлено: Экспорт модели: Ошибка NoClassDefFoundError, возникающая при экспорте модели, содержащей ГИС карту.
- Исправлено: Возможное закрытие приложения AnyLogic на операционных системах Linux при редактировании параметров.
Что нового в AnyLogic 8.6
Приложение
Теперь новые модели при запуске по умолчанию не демонстрируют экран с презентацией простого эксперимента. Это контролируется с помощью опции Пропустить экран эксперимента и запустить модель в свойствах простого эксперимента.
Библиотека производственных систем
Теперь вы можете ограничивать движение и скорость транспортеров в областях, заданных с помощью элементов разметки пространства Прямоугольный узел и Многоугольный узел. Доступ в область может быть ограничен по количеству агентов, по расписанию, пропускной способности и т.д. Также вы можете вручную открывать и закрывать такие области, используя соответствующий API. Приблизившись к закрытой области транспортеры могут остановиться и подождать, когда доступ будет открыт, или объехать ее по другому маршруту.
Мы улучшили алгоритмы поведения и видимости для транспортеров с навигацией по заданному пути.
Станции обработки на конвейерах теперь могут начинать обработку материальных предметов по мере их поступления на станцию, не дожидаясь, пока станция заполнится в соответствии с заданной вместимостью. Чтобы активировать такое поведение, в свойствах станции выберите опцию Обработка начинается, когда агент заходит на станцию.
Железнодорожная библиотека
Стрелка теперь может быть нескольких видов:
-
Универсальная соединяет неограниченное количество ж/д путей и позволяет поездам двигаться прямо и вдоль тупых углов, образуемых соединением любых двух путей
-
Простая английская соединяет четыре ж/д пути и позволяет поездам двигаться прямо, а также вдоль тупого угла, образуемого соединением с участием переключающего пути, который вы можете назначить сами
-
Английская соединяет четыре ж/д пути и позволяет поездам двигаться вдоль любого тупого угла, образуемого соединением двух путей
Теперь при добавлении в железнодорожную сеть нового поезда этот поезд может размещаться на нескольких путях одновременно. Прежнее ограничение, согласно которому поезд должен быть поместиться целиком на один путь, более недействительно.
Появилась возможность блокировать ж/д пути. Если пути, входящие в маршрут поезда, заблокированы, поезд может динамически пересчитать маршрут и объехать эти пути или остановиться перед заблокированным участком. Также можно построить кратчайший маршрут, учитывая заблокированные пути, в блоке Rail Settings. Появились новые функции API ж/д пути: block(), unblock(), isBlocked(), и т.д.
С помощью API ж/д пути вы можете проверить доступность ж/д путей и зарезервировать их для конкретных поездов. Если поезд, для которого путь не был зарезервирован, подъедет к такому пути, оностановится и подождет, пока резервирование не будет снято. Вы можете настраивать доступность путей с помощью новых функций: reserveFor(..), reservations(), cancelReservation(), isAvailableFor(..).
Библиотека моделирования процессов
ResourcePool: Появилась возможность выбирать следующую задачу из списка задач для конкретного ресурса с помощью параметра Настроить выбор задачи.
Downtime: Появилась возможность задавать ресурсы для выполнения задач по поломкам, починке и т.д.
Интернационализация
Крупное обновление переводов на испанский язык.
Новые демонстрационные модели




Другие улучшения
Исполняющий модуль
- Удалена опция Упорядочивание
одновременных событий в свойствах Эксперимента. По умолчанию теперь
используется режим LIFO (в обратном
порядке). Все альтернативные режимы, использовавшиеся ранее
конвертированы в вызовы API исполняющего модуля.
- Гистограмма показывает
проценты вместо дробных чисел.
- Улучшена производительность randomFrom(population).
- Улучшена производительность анимации, а также исправлен ряд
ошибок,
при которых анимация агентов при активном перемещении между
пространствами пропадала или переставала обновляться.
- Появилась возможность задавать значение шага бегунка.
- Значение бегунка
(минимальные и максимальные значения, а также диапазон) теперь
проверяется в случае изменений с помощью API.
- Создан механизм предупреждений во время прогона модели с помощью
функции API warning(). Это может быть
полезно для разработчиков библиотек.
- Улучшена производительность анимации (длительное время обработки
фреймов, большие невидимые популяции агентов).
- Анимация больше не зависает после остановки и возобновления
выполнения модели в точках останова при отладке.
- Улучшение производительности анимации вследствие лучшей адаптации
протокола связи между моделью и окном анимации.
- Улучшено время отклика анимации при запуске модели, требующей
длительного времени выполнения.
- Улучшена производительность отрисовки железнодорожных путей в
большом масштабе.
Библиотека производственных систем
- Стреловой кран и мостовой кран
теперь демонстрируют предупреждения, если задано одно и то же исходное
местоположение материального объекта и его место назначения.
- TransporterFleet: Появилось свойство Задержка перед повторным
стартом,
где вы можете указать время, необходимое транспортеру, чтобы начать
движение после полной остановки.
- MoveByTransporter: Появилась
возможность задавать местоположение, в которое транспортер отправится
после того, как агент его освободит.
- Транспортеры
с навигацией по заданному пути
теперь могут использовать аттракторы в узлах, если эти узлы являются их
местами назначения.
- Улучшен текст сообщения об ошибке, если транспортер не смог найти
путь.
- Улучшилась диагностика ошибок в движении транспортеров.
- Улучшилось разрешение
конфликтов в случае столкновения транспортеров с навигацией по
заданному пути в узле-перекрестке.
- Улучшилась диагностика ошибок при расчете движения транспортеров.
- Улучшилась производительность в расчетах для транспортеров в
состоянии покоя и в рабочем состоянии.
- Улучшилась диагностика ошибок для случаев, когда материальный
объект не может войти на конвейер с ячейками.
- Улучшилось разрешение столкновений при смене состояний
транспортеров с навигацией по заданному пути.
- Улучшилась маршрутизация транспортеров с произвольным типом
навигации при движении через гейты между уровнями.
- MoveByTransporter, ReleaseTransporter:
опция Возвращается на базу переименована в Возвращается на текущую базу.
- TransporterFleet:
Появилась возможность задавать минимальное расстояние до препятствий
для транспортеров с навигацией по заданному пути.
- Добавлены отсутствующие тултипы в Панели Свойства для блоков
библиотеки.
- Мостовой кран:
Появились функции
API setColor() и setTrolleyColor().
- MoveByTransporter: Появилась
возможность задавать поведение транспортеров, задачи которых были
отменены.
Библиотека моделирования процессов
- Downtime: Появилась функция isActive(unit).
- Delay:
Помимо уже существовавшей функции extendDelay() появилась функция reduceDelay(agent, dt).
- Появилась возможность выбирать задачу из списка задач для
конкретного ресурса.
- Assembler: В поле действия При начале задержки появился
аргумент delayTime.
Пешеходная библиотека
- PedWait: Появилась
возможность задать поведение, при котором вся группа пешеходов покидает
область ожидания вместе.
- Теперь пешеходы могут использовать аттракторы в области ожидания,
если они находятся в очереди соответствующего блока PedService.
- PedWait: Появилась функция freeAllWaitingPeds(), с помощью которой можно
освободить всех пешеходов от ожидания.
- PedWait: Функции free(ped) и freeAllWaitingPeds()
также освобождают пешеходов, которые ожидают свои группы.
Железнодорожная библиотека
- Новые функции API блока Rail Settings, с помощью которых
можно получить кратчайший маршрут с учетом заблокированных и
зарезервированных путей: getShortestUnblockedPath(), getShortestAvailablePath().
- Точка ж/д пути: Новые
действия На входе поезда и На выходе поезда.
- Появилась возможность приостановить движение поезда с помощью API
функций поезда pauseTrain() и resumeTrain().
- Появилась API функция для расчета расстояния между двумя
поездами: distanceToTrain().
- TrainMoveTo
теперь позволяет поездам начать движение даже в том случае, если
автоматический маршрут не может быть проложен из-за заблокированных или
зарезервированных путей.
- Улучшилась диагностика ошибок для случаев, когда поезд находится
на недоступном пути.
- Ж/д путь получил атрибут Имя,
чтобы облегчить отладку модели, если ж/д сеть была создана с помощью
кода.
- Улучшился процесс выхода поезда из ж/д сети: теперь это
происходит, когда последний вагон покидает последний путь.
- Появилось предупреждение о том, что агент содержит стрелку с
тремя путями, все углы между которыми являются тупыми.
- Теперь поезд удаляется, оказавшись в конце последнего пути, если
в настройки Маршрут и Цель не заданы.
Дорожная библиотека
- Появилось описание библиотеки.
Графический редактор
- Улучшения в удобстве использования.
Встроенная база данных
- Улучшения в диагностике ошибок и валидации.
- Опция Используйте COMPACT для
закрытия БД переименована в Оптимизировать
размер при закрытии модели.
- Улучшена производительность при ведении журнала модели: опция Оптимизировать размер при закрытии модели
теперь включается автоматически, если пользователь включает ведение
журнала.
Анимация
- ГИС: Темная полупрозрачная рамка вокруг ГИС-карты больше не
видна, если отключены тайлы.
Эксперимент оптимизации
- Оптимизатор OptQuest обновлен до последней версии.
Панель Проекты
- Панель Проекты теперь показывает
все узлы, включая те, которые были созданы автоматически.
Установка
- Сборки для Windows теперь можно устанавливать с помощью механизма
патчей
(ускорение установки).
- Поддержка Ubuntu 20 LTS.
Добро пожаловать
- Обновилась ссылка на группу пользователей AnyLogic в сети
LinkedIn.
Примеры
- Демонстрационные модели: Появился раздел "Использование
Python в AnyLogic", основанный на библиотеке Pypeline (библиотека не
входит в состав продукта, она находится в открытом доступе на GitHub).
- Новые модели: Areas
with Limited Access for Transporters, Level
Gate, Bidirectional
Conveyors, Mobile
Rack System, Level
Junction, Blocking
Railway Tracks, Railway
Track Reservation.
- Улучшения в моделях: SeizeTransporter
and ReleaseTransporter, Create
Transporter Network by Code, Group
Behavior in Services, Material
Handling in Hospital, Shopping
Mall, Border
Checkpoint, Hump
Yard, Supply
Chain, Predator
Prey Agent Based, Activity
Based Costing Analysis, Subway
Platform, Train
Unloading, FluidMerge,
FluidSplit.
- Добавлена обновленная модель Adaptive
Supply Chain.
- Модель SeizeTransporter
and ReleaseTransporter теперь использует краны.
- Модель Solar
Panel Production Line обновлена с учетом новых возможностей
(краны, более гибкие режимы обработки на станции).
- Повсеместно удалены ненужные блоки PedSettings и Rail Settings.
- Удалены устаревшие модели (Conveyor with Dynamic Speed).
- Исправлена ошибка с утечкой памяти в модели FluidToAgent
and AgentToFluid.
- Обновлены модели для новой версии "Большой книги моделирования".
- Добавлены описания на китайском языке к моделям Железнодорожной
библиотеки.
Исправления
Исполняющий модуль
- Исправлено: Функция GISRegion.getRandomPointInside()
могла вызвать приостановку работы.
- Исправлено: API для создания карты плотности с помощью кода
(задание атрибута type).
- Исправлено: Неожиданное сообщение об ограничении версии, начиная
с 8.5.1 PLE.
- Исправлено: Потенциальное воздействие на стохастику модели со
стороны агентов, не содержащих в себе стохастику.
Библиотека производственных систем
- Исправлено: Для блока ConveyorEnter
исправлена возможная ошибка поведения действия При отмене входа, если использовался
блок Hold.
- Исправлено: Возможные проблемы анимации (предметы на конвейере
накладываются друг на друга) в режиме реального времени.
- Исправлено: Диагностика столкновений транспортеров в определенных
моделях.
- Исправлено: Блок SeizeTransporter
работал с ошибками, если местом назначения транспортера был узел.
- Исправлено: Локальные ошибки движения транспортеров с
произвольным типом навигации.
- Исправлено: Возможное неожиданное исключение Path
not Found при работе с транспортерами с навигацией по заданному
пути.
- Исправлено: Ошибка при сокращении количества транспортеров,
задаваемого в блоке Transporter
Fleet, во время выполнения модели.
- Исправлено: Блок Transporter
Fleet управляемый расписанием мог вызывать ошибки.
- Исправлено: API транспортеров с произвольным типом
навигации: getRouteData() была
равна null.
- Исправлено: Исключение NullPointerException
при вызове функции ITransporter.recalculateRoute(node).
- Исправлено: Код, заданный в поле действия При выходе переднего торца мог
выполняться дважды для одного и того же материального объекта.
- Исправлено: Освобожденный транспортер с поведением Остается на месте больше не
захватывался агентами.
- Исправлено: Некорректное движение транспортера при использовании
лифта.
- Исправлено: Ошибка "Некорректное направление движения",
возникающая при корректном движении транспортера.
- Исправлено: Поведение функции recalculateRoute()
для транспортеров с произвольным типом навигации.
- Исправлено: Слишком медленное движение транспортеров с
произвольным типом навигации.
- Исправлено: Возможный обгон транспортерами друг друга при
разрешении столкновений на одном пути.
- Исправлено: Местоположение новых транспортеров с навигацией по
заданному пути при увеличении количества транспортеров в автопарке.
- Исправлено: Транспортер игнорировал z-величину уровня после
перемещения через гейт между
уровнями.
- Исправлено: Функция distanceTo(...)
могла возвращать неправильное значение для транспортеров с произвольным
типом навигации.
- Исправлено: Редкая ошибка, которая могла возникать при
перемещении транспортером агента через лифт: сеть агента могла
приобрести значение null.
Библиотека моделирования процессов
- Исправлено: ResourcePool:
Код, заданный в поле При уничтожении
ресурса не срабатывал, если при сокращении количества
требовалось уничтожать ресурсы.
- Исправлено: ResourcePool:
Ресурс уходил на повторный перерыв, если предыдущий перерыв был прерван
задачей с более высоким приоритетом.
- Исправлено: Вид иконки блока Delay:
количество агентов внутри блока временно превышало его вместимость.
- Исправлено: Блок Queue
не освобождал агентов после вызова функции remove(0)
или removeFirst().
- Исправлено: Ошибка в блоках Rack
Store / Rack Pick при
использовании ресурсов с определенными политиками прерывания.
- Исправлено: Блок Assembler
мог оказаться заблокированным после того, как заданное в нем количество
менялось с помощью кода.
Пешеходная библиотека
- Исправлено: Ошибка блока PedWait
при сохранении состояния модели.
- Исправлено: Возможные ошибки в группах пешеходов, ожидающих в
блоках PedWait и PedService.
- Исправлено: Ошибка при прокладывании маршрута пешехода к цени
внутри агентов, создаваемых в ходе выполнения модели.
- Исправлено: PedGoTo:
возможная ошибка движения, если выбрана опция Режим: следовать по заданному пути.
- Исправлено: Пешеходы двигались по самому длинному маршруту,
несмотря на то, что кратчайший маршрут не был перегружен.
- Исправлено: Длительное время формирования групп.
Железнодорожная библиотека
- Исправлено: Сохранение и загрузка состояния модели.
- Исправлено: Ошибка движения, при которой длина вагона была больше
длины пути.
- Исправлено: Train Source:
Ошибка при задании длины вагона с помощью кода в поле Инициализация вагона.
- Исправлено: Возможная утечка памяти в блоке Rail
Settings.
Библиотека моделирования потоков
- Исправлено: Ошибка при запуске модели, загруженной из
сохраненного состояния модели.
- Исправлено: Возможная ошибка валидации значений приоритетов в
блоке FluidMerge.
- Исправлено: Возможные исключения из-за численных ошибок,
например, NoFeasibleSolutionException.
- Исправлено: Партия с объемом меньше допустимого значения не
отбрасывалась.
- Исправлено: Партия с объемом = 1.0e-6 игнорировалась конвейером
для сыпучих материалов.
- Исправлено: Начальная партия могла иметь значение null, что вызывало непредсказуемое поведение
диаграммы процесса.
- Исправлено: Значение "не число" могло быть задано для пропускной
способности, количества, скорости и других параметров.
- Исправлено: ProcessTank:
Ошибка постоянных перерасчетов параметра outputBatch для каждого фрейма
анимации.
Графический редактор
- Исправлено: Коллекция элементов класса NetworkPort
не позволяла выбирать сетевые порты.
- Исправлено: Несколько ошибок отрисовки и редактирования ж/д сетей.
- Исправлено: Проблема отрисовки при клонировании конвейерной
станции.
Встроенная база данных
- Исправлено: Ошибка копирования таблицы базы данных при экспорте
БД модели после прогона.
- Исправлено: Возможная ошибка при создании нового агента из
таблицы БД MS SQL.
Панель Свойства
- Исправлено: Панель Свойства
переставала откликаться после выбора элемента с типом отличным от типа
текущего агента.
- Исправлено: Возможная ошибка при открытии панели Свойства для некоторых блоков
библиотек.
- Исправлено: Ошибка, которая могла возникать при изменении
параметра, связанного с бегунком.
- Исправлено: Поведение выпадающего списка при редактировании
свойств выбранного множества элементов.
- Исправлено: Mac OS: Ручная настройка порядка параметров в секции
свойств Предв. просмотр параметров могла вызвать остановку работы AnyLogic, если один из параметров был
связан с бегунком.
Приложение
- Исправлено: Экспорт из командной строки теперь включает модели из
списка зависимостей.
- Исправлено: Открытие редактора Java-классов для только что
созданного Java-класса при выключенной опции Перестраивать модель автоматически на странице Дополнительные в меню Настройки.
- Исправлено: При перезапуске AnyLogic или повторном открытии
модели
в пустых полях, где задается диапазон бегунка могли появляться значения
по умолчанию.
- Исправлено: При экспорте в облако возникала ошибка, если
ГИС-карта, используемая в модели, находилась в модели-зависимости.
Установка
- Исправлено: Последние обновления Mac OS иногда блокировали
инсталлятор.
Редактор Конфигурация запуска
- Исправлено: Ошибка компиляции в том случае, если тип параметра
входных данных принадлежит сторонней библиотеке.
Что нового в AnyLogic 8.5.1 - 8.5.2
Библиотека производственных систем
Мы создали элемент разметки пространства Мостовой кран.
Вы можете выбрать кран одного из двух типов (козловой или подвесной) с различным количеством
балок (однобалочный или двухбалочный). От этих настроек
будет зависеть внешний вид крана. Как и Стреловой
кран, который появился в версии AnyLogic 8.4, мостовой кран
контролируется блоком MoveByCrane.
Автоматическое разрешение столкновений
для нестандартной маршрутизации транспортеров с навигацией по заданному
пути.
Транспортеры с навигацией по заданному пути стали умнее. Они научились
заново рассчитывать свой маршрут, если вы динамически изменили точку
направления. Также они умеют рассчитывать расстояние между собой и
другими транспортерами (в том числе на перекрестках). Транспортеры
умеют замедляться на поворотах или в моменты, когда они приближаются к
другим транспортерам. Если два транспортера встретятся на пути или на
перекрестке, то они остановятся на некоторое время, чтобы таким образом
смоделировать разрешение столкновения.
Для всех типов транспортеров теперь поддерживается функция getDistanceTravelled(). С ее помощью вы можете
рассчитать расстояние, пройденное транспортером.
Объекты, которые используют для передвижения транспортеры теперь могут
выбрать либо ближайший транспортер, либо транспортер с кратчайшим
маршрутом (с учетом таких препятствий, как стены, оборудование или
конвейеры). Вы можете настроить нужный вам выбор в свойствах блока SeizeTransporter.
Библиотека моделирования процессов
Простой оборудования, в т.ч. вызванный ремонтными работами или
поломками, а также любые перерывы в работе ресурсов теперь можно
моделировать с помощью нового блока Downtime. Вы можете
настраивать время начала таких перерывов (простоев), их длительность и
политику их повторного возникновения.
Новые демонстрационные модели

Другие улучшения
Библиотека производственных систем
- Добавлено автоматическое разрешение столкновений для
нестандартной маршрутизации транспортеров с навигацией по заданному
пути.
- Транспортер с навигацией
по заданному пути: появилась функция distanceTo(),
которая возвращает расстояние по пути до заданной точки.
- Интуитивно
понятное сообщение об ошибке в том случае, если транспортер пытается
начать движение к агенту, не имея заданного местоположения.
- Транспортер с навигацией по заданному пути: появилась возможность
задавать скорость на поворотах.
- Появилась возможность пересчитать маршрут для транспортеров с
навигацией по заданному пути с помощью вызова функции recalculateRoute().
- Теперь функция timeInState()
принимает в качестве аргумента состояния транспортеров (DELIVERING, GOING_TO_AGENT,
и т.д.)
- У кранов появилась функция isLoaded().
- Улучшилось расположение транспортеров с произвольной
навигацией во время загрузки и разгрузки агентов (с помощью cargoPosition, если он задан в транспортере).
- MoveByCrane:
Добавлено свойство После освобождения
с возможностью вернуться в исходную позицию.
- Материальные
объекты теперь удаляются со своих мест после обработки на станции, если
станция была указана в качестве места назначения в блоке Convey.
- Для транспортеров с произвольной навигацией добавлена политика
выбора кратчайший маршрут.
- Добавлено ограничение на количество транспортеров с навигацией по
заданному пути, находящихся одновременно в одном сетевом узле.
- Свойства,
задающие скорость крана, стали динамическими. Теперь скорость может
меняться для каждого материального объекта, перемещаемого краном.
- Стреловой кран: Добавлено
местоположение каретки.
- TransporterControl:
Добавлена функция API, которая позволяет отключить область "зрения"
транспортера в конкретных сетевых узлах: disableCollisionAvoidanceInNodes().
- API транспортера: Добавлена функция getDistanceTravelled().
- Реализована функция removeAgent()
для элемента разметки пространства Position On Conveyor.
Библиотека моделирования процессов
- Resource Pool:
Добавлена опция для учитывания только того времени, в течение которого
ресурс был занят, при настройке времени до поломки.
Железнодорожная библиотека
- Train Source:
Добавлена опция Время первого прибытия.
- TrainSource: Появился параметр Начальная
скорость.
- Railway Switch: Появилась
API функция для счетчика переключений стрелки: getToggleCount().
- Railway Track: Появилась API
функция getTrains().
- Улучшился алгоритм маршрутизации.
Пешеходная библиотека
- Карта плотности:
Улучшилась обработка полупрозрачных цветов при использовании
нестандартной цветовой схемы.
- Движение пешеходов: Улучшился автоматический выбор пути в
случаях, когда есть два абсолютно равнозначных пути.
Библиотека моделирования потоков
- Улучшилась диагностика ошибок.
- Появилась новая анимация резервуара
для тех случаев, когда у резервуара неограниченная вместимость.
Исполняющий модуль
- Ряд небольших улучшений в области анимации.
Панель Свойства
- Свойство Статическая переменной и функции теперь скрыто по умолчанию.
Чтобы сделать его видимым, выберите Режим разработчика библиотек в Настройках.
Установка
- AnyLogic PLE теперь можно обновлять, не заполняя форму запроса на
сайте.
Примеры
Исправления
Эксперимент оптимизации
- Fixed
an error which could occur when using optimization with replications
having suggested values set for experiment parameters.
Библиотека производственных систем
- Исправлено: getNetworkNode() мог
возвращать значение null для
транспортера в узле.
- Исправлена возможная ошибка при выполнении модели в LiftController.
- Исправлена возможная ошибка при выполнении дискретного события:
Некорректный временной промежуток.
- Исправлено: Транспортер не мог войти в сетевой узел со
специфической конфигурацией соединенных с узлом путей.
- Исправлена ошибка ConcurrentModificationException,
которая могла возникать в некоторых моделях с использованием ConveyorMergeController.
- Исправлена
редкая ошибка: мостовой кран не мог переместить более одного
материального объекта к аттрактору или узлу на безопасной высоте,
заданной по умолчанию.
- CustomStation: Исправлена
опция размещения агента 'возле конвейера'.
- Исправлено: Иногда материальные объекты не могли перейти на
конвейер с ячейками с ленточного конвейера.
- Исправлена возможная внутренняя ошибка: "Некорректное расстояние
между объектами TransporterPathItem".
- Исправлено: MHLSettings.executeTasks()
функция вызывала ошибку.
- Исправлено: Ограничение скорости на поворотах могло срабатывать
по-разному в зависимости от того, как нарисована сеть.
- Исправлено: Исключение StackOverFlow, вызванное функциями ConveyorPathController_xjal.setMotion() и .updateItem().
- Исправлена проблема анимации, возникающая, когда транспортер
начинает движение из базового местоположения (точечного узла).
- Свойства кранов: Исправлен "Тип материального объекта" в
динамических свойствах.
- Исправлено: Транспортер мог рассчитывать маршрут до точки
назначения со сдвигом на пути в соответствии со своим передним краем.
- Исправлена инициализация ConveyorStation
/ TranferTable,
созданных вручную с помощью кода Java.
- Исправлена ошибка "Агент не смог покинуть порт" при отмене
прохождения объекта по блоку Convey,
соединенному с блоком MoveByCrane.
- Исправлено: getRouteData()
вызывает ошибку при вызове из поля "При входе на путь".
- Исправлено: Транспортеры могли застревать в стенах.
- Исправлены возможные проблемы анимации вращения транспортеров.
Дорожная библиотека
- Исправлена ошибка, возникающая при инициализации дорожной сети,
когда парковка расположена под другой дорогой.
- Исправлена ошибка сохранения состояния модели, которая могла
возникать в моделях с использованием Дорожной библиотеки.
Железнодорожная библиотека
- Исправлено возможное исключение при параллельном запуске
мультипрогонных экспериментов
(дублирующаяся регистрация).
- TrainSource: Исправлен
режим Поезда прибывают согласно:
расписанию прибытий из БД.
- Исправлена ошибка в 3D-анимации поездов на уровнях, где z < 0.
- Исправлена возможная ошибка при сохранении состояния модели.
Пешеходная библиотека
- Исправлено: Для групп не рассчитывалось заново количество
пешеходов на выходе.
- Исправлено: Пешеходы могли проходить по очередям-"змейкам" после
обслуживания.
- Исправлена ошибка в режиме PedSource
Добавлять пешеходов в другую
популяцию: в популяцию добавлялись только лидеры групп, а не все
члены группы.
Библиотека моделирования потоков
- Исправлено: функция MixTank.updateAmounts()
работала некорректно, есл одно из количеств было равно 0.
- Исправлена функция Valve.dispense(),
которая могла приводить к тому, что не выполнялись действия типа Tank: При заполнении.
- Исправлена ошибка "Этот блок должен быть мастером", которая
возникала в некоторых моделях.
Исполняющий модуль
- Исправлено: функция getDistanceByRoute()
могла вызывать ошибку при выполнении, если использовался поставщик
маршрутов на базе локального маршрутного графа.
- Исправлена проверка на чрезмерное количество итераций в
эксперименте варьирования параметров.
- Исправлена отрисовка процентилей и CDF в гистограмме.
Графический редактор
- Исправлен механизм перетаскивания файлов изображений в AnyLogic.
- Исправлен множественный выбор блоков в диаграмме процессов с
помощью щелчка мыши и зажатой кнопки Ctrl
или Shift.
- Исправлена ошибка при отрисовке труб и резервуаров с прозрачными
цветами.
Приложение
- Исправлено: Версия Mac OS могла отображать диалог Открыть файл с неправильной
локализацией.
- Исправлена ошибка компиляции при использовании прозрачных цветов
для анимации крана.
- Исправлено: графики не показывались в результатах поиска.
Генерация кода
- Исправлена ошибка инициализации ГИС-сети.
Что нового в AnyLogic 8.5
Поддержка многоуровневых моделей
В
AnyLogic появились уровни, на которых можно размещать элементы разметки
пространства, фигуры презентации, графики, элементы управления и т.д.
Таким образом упростилось моделирование многоуровневых объектов -
зданий, конвейеров или даже круизных лайнеров – в рамках одного агента.
Процесс
напоминает работу со слоями в графических редакторах. Каждый уровень
можно моделировать отдельно, сохранив при этом многоуровневый вид.
Видимость уровней можно изменять:
это позволит в ходе работы с одним уровнем скрыть или отобразить
содержимое других уровней.
Для передвижения материальных объектов между уровнями используются
специальные элементы разметки пространства:
Библиотека производственных систем
Карта плотности для транспортеров:
Мы добавили карту плотности
для транспортеров с произвольным режимом навигации.
Нестандартная маршрутизация:
Теперь, задавая собственный маршрут для перемещения транспортеров,
можно включать в него конкретные пути.
Пешеходная библиотека
Движение пешеходов в пространстве:
У стеллажей, конвейеров и кранов появилось свойство Является препятствием. При выборе
этой опции объект становится препятствием для пешеходов, поэтому они
вынуждены его обходить.
Новые примеры моделей


Другие улучшения
Эксперимент оптимизации
- Оптимизатор OptQuest был обновлен. Теперь с помощью функции getOptimization() можно получить объект
оптимизации OptQuest.
Библиотека производственных систем
- Добавлен параметр 'Z' в ConveyorNetwork.
- Улучшена производительность и стабильность движения конвейеров и
транспортеров.
- Добавлены функции для Transporter Control: recalculateAccessNode(Node) и recalculateAccessPath(Path), проверяющие
доступность элементов сети. По результатам проверки элемент может быть
доступен или заблокирован.
- Улучшены описания ошибок о недопустимых значениях параметров.
- Добавлен счетчик устраненных столкновений - TransporterControl.getCollisions(). Счетчик
работает, если выбрана опция Устранять
коллизии.
- Transporter Fleet: добавлена
возможность задавать количество транспортеров расписанием.
- Улучшена анимация: плавное перемещение объекта на изгибах
конвейера.
- Транспортеры
с произвольным режимом навигации: Добавлен параметр, задающий
максимальную скорость движения вблизи препятствия.
- Добавлена возможность выбирать нестандартный ресурс для станции обработки.
- Улучшена диагностика ошибок внутри Move By Transporter при удалении
перемещаемого агента.
- Ветвление конвейера:
теперь правильно задается зазор между материальными объектами на
конвейере после того, как они переданы конвейеру с самым высоким
приоритетом.
Библиотека моделирования процессов
- Блоки Pickup и Dropoff теперь можно
использовать в диаграммах подготовки ресурса и завершения задачи.
- В блоке Source для режима прибытия
согласно Времени между прибытиями
появился параметр Первое прибытие
происходит.
- В блоках Service, Assembler, Rack Pick, Rack Store добавлена возможность
выбора ближайшего / наиболее предпочтительного ресурса для заданного
агента.
- В блоках Seize и Service добавлена возможность
выбирать для агента ближайшего ресурса по пути (ГИС).
- Поддержка многоуровневости: в блоках задающих местоположение
(типа Source) добавлен новый параметр Уровень.
Исполняющий модуль
- Добавлена возможность отключать
уведомления во время выполнения модели.
- Улучшена производительность функции distanceByRoute()
для ГИС моделей.
- 3D Объект: Новые опции
позволяют задать режим использования встроенных в 3D объект источников
света.
- Улучшена производительность при скрытом окне браузера (окно может
быть уменьшено, заблокировано, и т.д.).
- Изменено
API для инициализации элементов разметки пространства. В моделях,
созданных программно, необходимо обновить код. Элементы разметки
пространства теперь должны находиться на уровне,
который и отвечает за инициализацию объектов.
- Добавлена функция, позволяющая вычислить atan2 в ~20 раз
быстрее: atan2fast(y, x).
Погрешность в среднем составляет 3e-5 радиан.
- Добавлена функция, позволяющая получить доступ к нестандартному
эксперименту (если есть) из агента: getEngine().getExperimentCustom().
- Для всех типов диаграмм были добавлены функции setColor(i) и getColor(i),
позволяющие динамически изменять цвет элементов данных.
- Добавлена функция reset(),
которая сбрасывает статистику карты
плотности.
Встроенная база данных
- Порты для работы со встроенной базой данных теперь выбираются
динамически из набора свободных портов.
- Улучшен конвертер из API старой QueryDSL.
Графический редактор
- Автобусную остановку
теперь можно размещать на любой стороне дороги
с односторонним движением.
- Улучшена привязка лифта к
сетке диаграммы при перетаскивании и изменении его размера.
Панель свойства
- Путь:
Ограничение скорости и количества транспортеров теперь можно задать
значением параметра в поле кода справа от соответствующего свойства.
Приложение
- Максимальный размер емкости памяти Java (-Xmx) для AnyLogic IDE
увеличен до to 4 Гб.
- Экспорт в Cloud: При загрузке новой версии модели в Cloud
проверяется наличие этой модели в Cloud по ее имени.
- Экспорт в Cloud: Теперь в ознакомительной и PLE версиях AnyLogic
по умолчанию предлагается категория Test
models.
- Исправлена ошибка разрешения .jar зависимостей за пределами папки
модели.
- Реализован динамический выбор порта для входящий сообщений из
запущенных моделей и интерфейса командной строки.
- Теперь AnyLogic использует 4 Гб оперативной памяти.
Примеры
Исправления
Библиотека производственных систем
- Исправлены ошибка движения транспортера, которая могла возникать,
если в узлах задавалось ограничение скорости.
- TransporterControl.findPath
выдавало RuntimeException если в качестве аргумента использовалось LocationXYZ.
- Ветвление конвейера:
Исправлено и улучшено движение материального объекта, объединение,
приоритеты и логика блокирования.
- Исправлена ошибка: В некоторых случаях транспортер мог двигаться
в неправильном направлении.
- Исправлена ошибка: Мог выполняться код в поле При входе переднего торца для
агента, который не мог поступить в станцию
обработки.
- Исправлена ошибка: Станция
обработки не начинала обработку, несмотря на достаточное количество
материальных объектов.
- Move By Transporter: Исправлена
ошибка, которая могла возникать при задании последнего пункта
назначения для агента, если не выбран параметр Освобождать транспортер.
- Исправлена возможная ошибка при произвольном
движении транспортеров по узким коридорам.
- Исправлена
возможная ошибка: Произвольно движущиеся транспортеры могли
игнорировать стеллажи и конвейеры, помеченные как препятствие.
- Исправлена возможная ошибка ("Incorrect event time") в логике
пути транспортера.
- Исправлен выбор пути транспортера при выборе агента, который
находится в многоугольном узле.
- Исправлена ошибка при сохранении состояния модели
для произвольно движущихся транспортеров.
Библиотека моделирования процессов
- Исправлена ошибка: При вызове Seize.recalculateResourceChoiceConditions()
возможно дублирование алгоритма, заданного в поле действия При захвате.
- Assembler: Исправлена ошибка:
Задание местоположения собранных агентов в поле действия При подходе к выходу. Добавлен
параметр Вместимость буфера на выходе.
Пешеходная библиотека
- Исправлена
ошибка: Если пункт назначения часто менялся, пешеходы, собранные в
группы, могли застревать в зацикленной диаграмме процесса.
Исполняющий модуль
- Исправлена ошибка: Оптимизационный
эксперимент не возобновлялся после паузы.
- Диаграмма состояний: Возвращалось текущее состояние внутри
действия конечного состояния.
- Интерфейс запуска модели: Исправлено накопление кадров, вызванное
уменьшением или блокировкой окна анимации.
- Исправлено движение агентов, попадающих в сеть: некоторые агенты
могли двигаться вдоль прямого пути.
- Исправлен элемент Выпадающий
список: Если значение по умолчанию не задано, задается первое
значение из списка.
- Исправлено: Расписание,
инициализированное из встроенной базы данных, могло вызывать ошибку
некорректного интервала.
- Исправлено: У некоторых 3D объектов были бледные цвета (к
примеру, у вагонов из палитры).
- Исправлено описание функции exportToExternalDB()
в getEngine().getModelDatabase().
Встроенная база данных
- Исправлена ошибка компиляции при использовании опции Удовл. ли столбцы условиям в
конструкторе запросов.
Графический редактор
Панель свойства
- Исправлена ошибка, возникающая у переключателя, привязанного
к переменной: если ввести имя нового элемента, выводилась ошибка
"Invalid number".
- Исправлены визуальные ошибки диалогового окна, позволяющего
задать цвет, которые возникали после сохранения модели.
- Секция Предпросмотра параметров:
Устранено подвисание при изменении порядка в Mac OS.
- Исправлена ошибка в отображении свойств коллекции, связанной с
таблицей БД.
- Исправлены
свойства встроенной БД: Тот же файл добавлялся в список источника
вводных данных после нескольких операций импорта (разных таблиц).
- Исправлена ошибка: В некоторых случаях элемент Текстовый файл неверно
отображал имя файла.
Приложение
- Исправлена ошибка: Создание нестандартного блока, содержащего
блок Batch.
- Исправлено размещение коннекторов при создании блока из
выделенных блоков.
- Исправлена ошибка, возникающая при экспорте модели с кешем
построенных маршрутов.
Примеры
Что нового в AnyLogic 8.4
Библиотека производственных систем
Движение транспортеров:
Теперь транспортеры могут двигаться свободно,
без привязки к разметке пространства, и учитывают препятствия на пути,
в том числе стены, конвейеры и другие транспортеры. Произвольный тип
навигации можно выбрать в блоке TransporterFleet.
Если транспортер двигается по заданному
пути, его перемещение можно настроить в блоке TransporterControl.
Динамический перерасчет маршрута теперь доступен по вызову функции recalculateRoute(). С ее помощью можно
изменить маршрут материального объекта или мобильного робота (AGV).
Многоуровневые сети конвейеров и
мобильные роботы (AGV):
В AnyLogic появилась возможность создавать многоуровневые сети
конвейеров и транспортеров с помощью новых элементов. Элемент разметки
пространства Сетевой порт
позволяет логически соединять две конвейерных сети или две секции
конвейера в единую конвейерную сеть. А чтобы соединить фрагменты сети,
находящиеся на разных уровнях, используется новый элемент разметки
пространства Лифт.
Навигацию между портами и лифтами можно настроить или оставить
автоматической. Вместе эти объекты упрощают моделирование сложных
многоуровневых конвейерных систем.
В AnyLogic появился новый элемент разметки пространства Кран. Он может перемещать объекты с
помощью блока MoveByCrane, в том числе между
несвязанными конвейерными сетями.
Соединение конвейеров:
Раньше для соединения конвейеров под углом нужно было использовать
элементы Поворотный стол или Трансфер. Теперь при таком
соединении вместо этих объектов автоматически создаётся элемент Ветвление конвейера.
Интерфейс и работа с моделью
Улучшенная работа анимации:
Мы улучшили работу 3D и 2D-анимации: увеличили кадровую частоту (FPS) и
скорость отклика.
Автоматическое форматирование
кода: Теперь автоматическое форматирование
кода можно применить к одному или нескольким элементам, или же ко
всей модели.
Экспорт моделей: AnyLogic
теперь поддерживает экспорт
моделей
в виде отдельных Java-приложений не только из графического интерфейса,
но и из командной
строки.
Если вы экспортируете модель как Java-приложение, вместе с ней можно
скачать версии встроенного браузера для разных ОС. Это удобно, если вы
не знаете, на компьютере с какой ОС вы будете запускать
модель-приложение.
Отслеживание событий: В
панели разработчика появилась панель События.
Когда модель запущена, на вкладке можно следить за очередью событий. С
этой вкладки можно перейти к самому событию или агенту, который к нему
относится.
Управление ресурсами модели
Кроме файла модели и её базы данных, с ней могут быть связаны
дополнительные ресурсы,
например, изображения, файлы ГИС и CAD, текстовые и табличные
документы. В новой версии программы ими можно управлять из группы Ресурсы в дереве
модели. AnyLogic знает, какие файлы из группы используются при запуске
модели, и в случае экспорта выгружает вместе с моделью только их.
Библиотека моделирования процессов: склады и производство
Теперь в блоке RackSystem
можно выбрать опцию подсветки для отображения объектов на стеллажах
склада. Её интенсивность соответствует количеству объектов в ячейках.
Такой способ индикации более информативен в случае многоуровневых
стеллажей и помогает большим моделям складов работать быстрее.
У блока Pickup появился режим работы Точное количество.
В этом режиме блок не пустит объект-контейнер дальше по диаграмме
процесса, пока в нём не окажется заданное количество объектов. Эта
функция может использоваться, например, при формировании партий
продуктов на производстве.
AnyLogic Private Cloud Lite
Мы выпустили AnyLogic
Private Cloud Lite
– бюджетную и легко устанавливаемую версию AnyLogic Cloud. Она
устанавливается на один компьютер в локальной сети и
предоставляет пользователям локальной сети доступ к загруженным в
частное облако моделям. Описание отличий версий AnyLogic Cloud см. здесь.
Теперь в AnyLogic Cloud можно использовать Excel-файлы из модели для задания её входных
параметров.
Новые примеры моделей





Другие улучшения
- Добавлены индикаторы доступа к сети и процесса выполнения
индивидуальных прогонов в экспериментах со множественными прогонами.
- Объект масштабирования (линейка) виден в ходе выполнения модели.
- Быстрая смена индекса реплицированного агента видна при нажатии
клавиш Вверх и Вниз, если фокус при этом находится
в поле индекса (в Панели разработчика).
Таким образом можно ускорить итерацию по популяции агентов.
- В элементы управления Запустить
до... и Приостановить в...
добавлена опция времени суток.
- С помощью сочетания Ctrl колесо
мыши в 3D окне
можно изменить масштаб двумерной презентации.
- Улучшено визуальное отображение области графиков: теперь сплошная
рамка присутствует только вдоль осей.
- Улучшена диагностика ошибок для ряда случаев.
- Возможность подключить и отключить кнопки Запустить/Пауза, а также группу кнопок для
управления скоростью выполнения модели в ходе выполнения модели с
помощью вызова функций setRunControlEnabled()
и setSpeedControlEnabled(),
принадлежащих ExperimentHost.
- Добавлена функция onError(error, root)
в API эксперимента - может быть переопределена, как и функция onError(error), но обеспечивает доступ к
исходному агенту верхнего уровня модели (полезна для работы с экспериментами с
множественными прогонами).
- Для всех элементов разметки пространства добавлена функция remove(),
которая позволяет с легкостью удалить элемент из презентации. Это не
значит, что элемент удаляется из логики модели, так как логические сети
и маршруты могли быть созданы до вызова этой функции и не исчезают.
- Добавлен объект ShapeArrowLine -
линия с опциональными стрелками-указателями. Если вам нужна
стрелка-указатель, используйте этот объект. API объекта ShapeLine, задающий стрелки, признан
устаревшим и будет удален в следующих версиях.
- Добавлена функция indexOf(array,
textExpression), с помощью которой можно найти первый подходящий
элемент, например, indexOf( people, p ->
p.getName().equals("John") ).
- Функции TextFile.traceln() и TextFile.println()
теперь поддерживают распечатку информации о двумерных массивах.
- Добавлен
режим повышенной производительности для моделей с уравнениями системной
динамики и большим количеством дискретных событий. См. новую функцию getEngine().setEventAwareSolver().
- В общедоступный API добавлен класс Pair.
- Добавлен временный API для смены цвета линий и заливки отдельных
фигур в файле фигуры во время выполнения модели - см. функции ShapeGISMap.Layer setFillColor()
и setLineColor(). ВНИМАНИЕ: этот API
нестабилен и, возможно, будет изменен в будущем.
- Изменился API SQL Java (на базе QueryDSL): функция exists() сменилась функцией hasResults(). Например: selectFrom(
orders ).hasResults().
- Изменилась
генерация кода. Все нестандартные пользовательские библиотеки должны
быть построены заново, чтобы работать с новой версией AnyLogic.
- Манипуляторы для изменения
размера
фигуры презентации оптимизированы для работы с маленькими фигурами.
- Увеличился диапазон масштабирования с помощью сочетания Ctlr колесо мыши: 5% - 4000%.
- Масштаб 3D объекта можно
изменить с помощью манипулятора.
- Нестандартные границы поиска теперь отображаются на ГИС карте.
- Теперь
AnyLogic автоматически задает Z-уровень для новых элементов разметки,
как только они присоединяются к существующему конвейеру с заданным
Z-уровнем.
- В контекстное меню в графическом редакторе добавилась команда для
конвертации элемента Диаграмма
действий в функцию.
- Скачивание
и установка по щелчку пакета браузеров для всех операционных систем:
полезно при экспорте модели как независимого приложения для запуска на
различных операционных системах.
- В меню Настройки появилась
возможность выбрать браузер для запуска модели из AnyLogic.
- Появилась возможность переключиться в основное рабочее
пространство AnyLogic, не закрывая окно Обратиться за помощью. Теперь
диалоговое окно для обращения в поддержку перестало быть модальным и
его можно уменьшить.
- Элемент разметки Путь теперь
всегда входит в состав сети.
AnyLogic автоматически создает сети для всех отдельных (не соединенных
с другими) элементов разметки Путь. Старые модели будут конвертированы
при открытии.
- Процесс выполнения операции экспорта модели как
отдельного приложения при копировании крупных файлов теперь
отображается более точно.
- Появилась опция закрытия базы
данных c использованием COMPACT.
- В меню Настройки появилась возможность
настроить максимальный объем памяти для работы базы данных AnyLogic.
- Некоторые
сторонние библиотеки (например, библиотеки базы данных) обновились до
последних версий database. В моделях, которые напрямую используют
QueryDSL API могут наблюдаться ошибки компиляции. Понадобится анализ
кода и небольшие корректировки.
- Все типы сетей, которые
содержат по одному элементу, автоматически будут отображаться
раскрытыми в панели Проекты.
- Новый мастер настройки эксперимента: нестандартный эксперимент
теперь может использовать настройки модельного времени из других
экспериментов.
- На начальной странице
появились ссылки на API документацию AnyLogic Cloud.
- При выборе типа для параметров и переменных появилась новая
опция: класс Color.
- Появилась
возможность видеть ресурсы (MS Excel / MS Access / внешний сервер),
которые используются для автоматического импорта / экспорта данных.
- Появилась возможность одновременно изменять настройки множества
выбранных блоков библиотеки одного типа.
Библиотека моделирования процессов
- У блока Pickup появилась опция Точное количество (если нет - ждать):
агент-контейнер будет ждать, пока не наберется нужное количество
агентов, поступающих через входящий порт 'inPickup' (например, при
моделировании промышленных систем это могут быть объекты для упаковки,
поступающие из блока Convey).
- RackSystem теперь по умолчанию
использует следующий режим для отображения хранящихся в нем агентов: Не отображать, использовать подсветку
(быстрый способ).
Это значительно улучшает производительность анимации при моделировании
больших складов. Проверьте анимацию вашей модели. При желании вы можете
вернуться к режиму В позиции по
умолчанию.
- Функция Delay.getDelayTime()
теперь возвращает значение, изначально выбранное для агента, оно не
увеличивается, когда блок или агент в состоянии приостановки.
- Seize / Service
/...: Появилось предупреждение, если агент проходит блок без
задержки в случае, когда не заданы наборы ресурсов.
- В блоках типа Source
появилась функция без аргументов inject(),
эквивалент вызова функции inject(1).
Библиотека промышленных систем
- У элементов разметки пространства появилось свойство Является препятствием. Используется
для моделирования движения транспортеров с произвольным типом навигации.
- У блока MoveByTransporter и других
подобных блоков появилось действие При
подходе к выходу.
- Station: Параметр Задержка переименован во Время обработки.
- PositionOnConveyor: Для
конвейеров с ячейками добавлены действия При входе в лоток и При выходе из лотка.
Библиотека моделирования потоков
- В анимации ProcessTank и MixTank
появилась градиентная смена цвета на этапе обработки. На анимации MixTank теперь отображаются
компоненты.
- API: функции MixTank, имеющие отношение к
партиям, а также функции ProcessTank, имеющие отношение к
цвету партии, теперь возвращают другие значения.
- FluidToAgent: функция flush() вынуждает блок создать нового агента
из текущего количества материала в блоке вне зависимости от настроек
блока.
- MixTank: функция updateAmounts()
обновляет количество компонентов, если смесь задается с помощью
количества компонентов. Если смесь задается с помощью общего количества
и процентных соотношений каждого компонента, функция обновляет общее
количество смеси. На момент вызова функции резервуар должен быть пустым.
- ProcessTank: функция updateCapacity() вынуждает блок заново
рассчитать динамический параметр вместимости.
- FluidSelectInput: функция toggle() теперь возвращает 1, если вход 1
выбран, или 2, если выбран вход 2.
- Обработка
численных ошибок происходит путем приведения рассчитанных значений к
приемлемым с помощью сравнения со внутренней постоянной Utils.TOLERANCE.
- Добавлен API, чтобы получить транспортер, который в данный момент
перемещает агента: getTransporter().
Устаревшее
- Прекращена поддержка 32-разрядной версии AnyLogic для
операционных систем Windows.
Исправления
- Отрисовка значка для изначально пустой популяции в некоторых
случаях.
- Отрисовка Графика с наборами данных, которые
добавляются динамически: раньше область под линией заливалась сплошным
цветом.
- Свойство 3D Окна: Тип навигации.
- Наклонная
область в 3D-анимации отображалась как горизонтальная.
- Агенты исключенного типа агента с нестандартным значком вызывали
ошибку во время отрисовки кадров анимации.
- В некоторых случаях некорректно выполнялось вращение презентации
агента.
- Отрисовка элемента Дуга с углом >= 2*PI во время
выполнения модели.
- Обработка
шейп-файлов ГИС во время выполнения модели: фигуры с исключенными
внутренними областями и фигуры с множественными областями теперь
отображаются корректно.
- Выпадающий комбинированный
список во время выполнения модели теперь остается в пределам видимой
области (разворачивается вверх или вниз).
- Анимация
агентов в ГИС-пространстве теперь полностью подчиняется правилам
масштабирования (скрыть, показать постоянный размер или использовать
настоящий масштаб).
- Двумерные проекции фигур, вращающихся вокруг оси X или оси Y
теперь соответствуют углу вращения.
- Стрелки-указатели на связях между агентами теперь отображаются в
соответствии с настройками.
- Рисование 3D объектов внутри
реплицированной группы.
- Возможные проблемы с контрастом цвета у фигур 3D-анимации.
- Добавилась рандомизация местоположения для динамически
создаваемых агентов в непрерывном пространстве, если выбрана опция Случайное расположение.
- Ошибка, возникающая при создании сети, в которой есть стеллажи с путями и узлами,
расположенными в проходах стеллажей.
- Запись журналов в базу
данных для агентов с множественными диаграммами состояний.
- Вызов функции presentation.remove(markupElement)
удаляет элемент разметки пространства из презентации. См. также функцию
remove() для элементов разметки
пространства.
- Проблема
отображения элементов разметки ГИС-пространства, динамически
добавляемых на карту с использованием API для поиска по ГИС.
- Вызов функции Agent.jumpTo(node) с
узлом из другого пространства теперь автоматически перемещает агента в
это пространство.
- Загрузка из файла состояния модели с агентами, которые
генерируются в блоке Source по расписанию прибытия из
таблицы в базе данных.
- Исправлены функции TextFile.print()
и TextFile.println(). При передаче
массива данных в качестве аргумента, функции теперь выводят на печать
содержимое массива.
- 3D объект: функция setColor(materialName, color) не работала,
если не были заданы нестандартные цвета.
- Исправлены проблемы с отрисовкой элементов Парковка,
Автобусная
остановка и Конвейер на экранах HiDPI.
- Проблемы с размещением поворотного
стола на узком конвейере.
- Проблемы с окрашиванием некоторых элементов при смене цвета в
панели Свойства.
- Ошибка, возникавшая при добавлении еще одного типа агента в
параметр Тип агента.
- Временная папка с исходными файлами модели не удалялась после экспорта модели в AnyLogic Cloud.
- Если в файле MS Excel есть формулы, при импорте вместо
результатов в таблице остаются пустые ячейки.
- Команда Создать документацию
возвращает отчет с пустыми значениями в заголовках столбцов и вместо
нумерации страниц.
- Под-измерения не копируются вместе с основным измерением.
- Ошибка при добавлении 3D объекта
с пробелами в имени файла.
- Настройки прокси AnyLogic не передавались выполняемой модели.
- Ошибка при переключении языка на бразильский португальский.
- Действия "скопировать-вставить" для таблиц с координатами
(например, точками пути).
- Ошибка при установлении связи бегунка с параметром блока
диаграммы процесса.
- Расписание: неправильное
преобразование из дней в недели в опции Неделя.
- Ошибка в секции свойств Местоположение
и размер при выборе нескольких геометрических элементов ( Прямоугольник, Овал)
с разными вращениями.
- Максимальный объем памяти для Эксперимента / Конфигурации
запуска иногда не
сохранялся.
- Некоторые
свойства элементов разметки пространства Библиотеки производственных
систем не поддерживали редактирование нескольких выбранных элементов
одновременно.
Библиотека моделирования процессов
- Скорость нестандартного агента, которая задавалась в секции
свойств Тип агента, не могла
применяться к агентам, создаваемым в блоках диаграммы процесса.
Библиотека промышленных систем
- Появилась возможность использовать переменную self в кодовых полях элементов разметки пространства
Библиотеки производственных систем.
- Создание нового типа агента в свойствах блока TransporterFleet: к списку
доступных опций в параметре Использовать
в диаграмме процесса как: добавился Transporter.
- Библиотека моделирования процессов требует создавать модель
только из блоков Библиотеки промышленных систем.
- Конвейер, который остановился
из-за заблокированной позиции на другом конвейере, не начинает работу
после разблокировки.
- Материальные объекты покидают текущий конвейер на скорости
следующего конвейера.
Библиотека моделирования потоков
- ProcessTank: Ошибка, которая
возникала, когда партии добавляются одновременно с изменением скорости
на выходе.
- FluidMerge мог создавать партию
с нулевой длиной на выходе.
Что нового в AnyLogic 8
Экспорт моделей в облако AnyLogic Cloud
AnyLogic Cloud (https://cloud.anylogic.com/)
предоставляет новый способ доступа к моделям и их совместному
использованию в сети.
Сценарий
экспорта моделей крайне прост: единственное, что нужно сделать -
это
задать входные и выходные данные модели в AnyLogic в редакторе Конфигурации запуска.
После этого модель готова к загрузке в облачное хранилище.
Для
запуска модели, загруженной в AnyLogic Cloud, требуется только наличие
браузера. Вы сможете запускать модель, просматривать интерактивную
анимацию с любого устройства - планшета, телефона, ноутбука. Сложные
эксперименты, состоящие из нескольких итераций, будут выполняться
параллельно, что позволит выполнять эксперименты в несколько десятков
раз быстрее.
Работайте с публичными моделями, предоставленными сообществом
AnyLogic, или создайте портфолио с собственными моделями, загрузив
их
из AnyLogic.

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

Новые примеры моделей




Другие улучшения
- Новый элемент "Выходное значение",
отслеживающий числовое значение скалярного типа данных для передачи его
в модель, загружаемую в AnyLogic Cloud..
- Улучшена поддержка экранов высокого разрешения (HiDPI, Retina и
т.д.).
- Размер рамки видимой области
модели теперь не задается в свойствах эксперимента. Вы можете изменить
размер рамки, перетаскивая мышью ее границы на графической диаграмме.
- Элемент "Выпадающий список"
теперь доступен во всех редакциях AnyLogic.
- ГИС карта теперь использует исключительно проекцию Меркатора.
- Удалены старые библиотеки (остававшиеся c версии 6).
- Улучшены подсказки автоматической
подстановки кода (показывает подходящие имена элементов,
найденные в том числе и по поиску подстроки в середине имени элемента).
- В настройках
AnyLogic добавлена возможность задать каталог, который будет
предлагаться по умолчанию в качестве места хранения файлов новых
моделей.
- Состояния диаграмм состояний теперь генерируются как перечисления
Java, а не как числа типа short.
У некоторых моделей могут быть проблемы с конвертацией. К примеру, если
ваша функция содержит аргумент - состояние типа short, измените тип на MyAgent.MyStatechart_State,
где MyStatechart - имя вашей диаграммы
состояний.
- Убрана
опция "Разрешить программное управление" для анимационных фигур,
элементов управления и диаграмм. Все эти элементы теперь задаются в
виде экземпляров Java объектов и доступны из кода по имени.
- Удалены функции getPresentation().getPanel(), getOffsetX(), getOffsetY(),
getZoom() и getFrame().
- При запуске нестандартных
экспериментов функция getPresentation()
будет возвращать пустой объект.
- Диаграммы с временной осью: добавлен набор наиболее
распространенных форматов дат.
- Новый параметр свойств эксперимента "Разрешить изменение
масштаба и перетаскивание" (ранее это были два независимых параметра).
- Расписание:
удален ненужный параметр "Список начальных и конечных времен
/ Список
начальных времен", который дублировал параметр "Интервалы /
Моменты
времени".
- Агенты, расположенные в том же месте, что и анимация,
обладают начальным вращением, соответствующим вращению анимации.
- У популяции агентов появилась функция stream(),
которая позволяет выполнять операции в соответствии с Java 8
Stream API.
- Добавлены варианты функций Agent.applyNetwork()
и randomAgentInside(),
которые могут использовать нестандартный генератор случайных чисел и
позволяют создавать агентные сети одинаковой структуры в экспериментах
со случайным начальным числом или репликациями.
- Улучшена производительность элементов Набор данных и Данные
гистограммы.
- Теперь можно задать масштаб анимации во время выполнения модели
от 1% (в текстовом поле Текущий
масштаб панели инструментов).
- Библиотека моделирования процессов: блок Queue: переименована функция sortEntities() в sortAgents().
- Панель свойства: исправлены ошибки копирования и вставки рядов в
определенных таблицах.
- Графический редактор: отсоединение блока библиотеки от диаграммы
процесса, зажав SHIFT и перетаскивая его.
- Графический редактор: соединение блока библиотеки с диаграммой
процесса при копировании, зажав CTRL и перетаскивая его.
- Возможность
создания текстового файла, изображения, 3D объекта и файла Excel
путем
перетаскивания файла из внешней папки на графическую диаграмму агента.
- Графический редактор: двойной щелчок по элементу Текст открывает
редактируемое поле.
Что нового в AnyLogic 7.3
Новая Библиотека дорожного движения
Главное улучшение – новая Библиотека дорожного
движения.
Библиотека дорожного движения позволяет моделировать и визуализировать
движение автомобильных потоков,а также поддерживает детализированное
моделирование движения транспорта на физическом уровне.
Библиотека позволяет пользователям моделировать:
- Движение
автомобилей на дорогах с учётом ПДД.
- Светофоры, пешеходные переходы и приоритеты проезда на
перекрестках.
- Парковки.
- Движение и остановки общественного транспорта.
С помощью Библиотеки дорожного движения можно легко моделировать улицы,
дороги, перекрестки, развязки, подъезды к общественным зданиям,
технологические проезды на производстве и любые другие системы, где
есть автомобили и дороги. Также появилась
возможность анализировать
загруженность дорожной сети.

Улучшения в Библиотеке моделирования потоков
Добавлены новые блоки в библиотеку:
Кроме
того, мы значительно улучшили исполнительное ядро библиотеки, чтобы
скорость выполнения оставалась высокой даже для обширных и динамически
перенастраиваемых сетей. Блоки библиотеки моделирования потоков теперь
могут собирать статистические данные по хранящимся объемам вещества,
скоростям потока и выгружать их во встроенную базу. Улучшения также
включают нестандартную реакцию на изменение скорости, дополнительные
функции и улучшенную анимация.
Простой импорт данных из внешней БД
Теперь пользователи могут загружать
в модель данные для расписаний, табличных функций и эмпирического
распределения из базы данных.
Новые примеры
Что нового в AnyLogic 7.2
Встроенная база данных
В моделях AnyLogic
теперь есть встроенная база данных, из которой можно считывать входные
данные и куда можно записывать результаты экспериментов. База может
экспортироваться вместе с моделью и, как и модель, использоваться на
любых устройствах. База данных позволяет:
- Считывать значения параметров и задавать конфигурацию
экспериментов.
- Параметризовать популяции агентов.
- Задавать частоту прибытия заявок в процессных моделях.
- Импортировать данные из других БД или таблиц Excel и хранить их в
доступной форме.
- Записывать логи диаграмм процессов, переходов в диаграммах
состояний, пересылки сообщений, а также биографии агентов.
- Отслеживать использование ресурсов, время обработки заявок и
движения.
- Сохранять и экспортировать статистику, наборы данных и любые виды
логов.

Библиотека моделирования потоков
Новая Библиотека моделирования
потоков
создана для имитации перемещения и хранения жидкостей, сыпучих веществ
или больших объемов дискретных объектов, которые не нужно моделировать
по отдельности.

Эскалаторы и очереди-змейки для пешеходных моделей
Мы обновили Пешеходную библиотеку AnyLogic, добавив в нее элементы
для моделирования эскалаторов и очередей-змеек.

Железнодорожные маршруты для моделей с ГИС-картами
В
дополнение к маршрутам для автомобилей, велосипедов и пешеходов,
AnyLogic теперь поддерживает прокладку железнодорожных маршрутов по
ГИС-картам.

Возможность конвертировать шейп-файлы в элементы разметки AnyLogic
Векторную
графику из шейп-файлов можно автоматически конвертировать в элементы
разметки AnyLogic. Например, можно конвертировать ж/д-пути и
использовать их с Железнодорожной библиотекой AL.
Подсказки для элементов библиотек и параметров
Теперь при наведении курсора на элемент библиотеки или параметр вы
увидите всплывающие подсказки.

Новые модели-примеры
Среди новых моделей – распределительный центр (Distribution Center),
автозаправочная станция (Gas Station).
Что нового в AnyLogic 7.1
Полное обновление ГИС Карты
Функционал фигуры ГИС
Карта был существенно улучшен: теперь она поддерживает
тайловые карты (например, OpenStreetMap),
и вы можете использовать в модели все данные, которые поставляются с
тайловыми картами: названия городов, регионов, дорожные сети, типы
объектов (больницы, школы, автобусные остановки и т.д.). Вы можете
расположить агентов в конкретных местах на карте и заставить их
перемещаться по реальным дорогам. ГИС карта может запрашивать маршруты
с одного из поддерживаемых серверов (YOURS или BRouter)
или использовать граф маршрутов, созданный из файла .osm
с помощью встроенного мастера. Загружаемые тайлы и маршруты сохраняются
в кэш, позволяя вам работать без доступа к сети Интернет.
Вы можете создавать нужные вам объекты на карте с помощью
встроенного поиска и специальных элементов разметки карты (
ГИС Точка ,
ГИС Маршрут и
ГИС Регион ). С помощью
панели Результаты
ГИС поиска Вы можете также создать объект
ГИС Мультирегион .
Как только вы добавляете фигуру ГИС Карта на
диаграмму типа агента, пространство этого типа агента определяется как
ГИС пространство.
Читайте больше о новом функционале ГИС карты в секции справки ГИС Модели.

Процессное моделирование в ГИС
пространстве
Пространство
ГИС традиционно использовалось в агентном моделировании. Теперь вы
можете использовать агентов, которые живут в ГИС среде, в диаграммах
процесса.
Больше информации здесь: ГИС
агенты в диаграмме процесса.
Новые функции для ГИС пространства
См. также
Справочник классов AnyLogic: GIS package
Авто-распознавание типа агента в
диаграмме процесса
Теперь
вы имеете доступ к параметрам вашего типа агента в каждом блоке
диаграммы процесса, и вам не нужно вручную указывать этот тип в
свойствах блоков кроме тех блоков, которые создают агентов в этой
диаграмме процесса, например, такие как Source, Enter,
Assembler, Split, Batch.
Например, укажите свой тип агента в параметре Новый агент
блока Source, чтобы он генерировал агентов именно
этого типа, и вы сможете использовать локальную переменную agent,
чтобы получить доступ к параметрам своего типа агента во всех следующих
блоках этой диаграммы процесса. Вы можете проверить, распознается ли
нужный тип агента в секции свойств Специфические
блоков диаграммы процесса.
Новый дизайн значков блоков библиотек
Новые типы для Параметра
Элемент Параметр
теперь может быть задан таким типом как Время, Интенсивность,
Скорость, Длина, Ускорение и Площадь
с соответствующими типу единицами измерения. Сначала вы выбираете тип
параметра, а затем сможете выбрать требуемые единицы измерения.

Удобные средства выбора единиц измерения
Теперь
вы можете легко и быстро выбрать нужные единицы измерения для
параметров и процессов. Например, вы можете задать скорость движения
агента в милях или километрах в час, выбрать единицы измерения времени
для таймаутов событий, переходов, параметров блока Source,
и т.п. В таком случае, элементы вашей
модели не зависят от единиц модельного времени: они всегда сохраняют
заданные значения в своих процессах.
Простой выбор параметра для элемента управления
Перейдите в панель Свойства элемента управления,
выберите параметр Связать с
и затем выберите нужный элемент из выпадающего списка рядом: параметр,
переменную или параметр блока диаграммы. Больше не нужно вручную
вводить имя параметра в этом свойстве:
Кнопка "Показать в графическом
редакторе"
Выбрав
какой-либо элемент в свойствах другого объекта, вы всегда сможете найти
его на диаграмме, щелкнув эту кнопку рядом со свойством:

Подсветка выбранных объектов
Элементы,
на которые ссылается тот или иной объект (блок библиотеки, например,
ссылается на элемент разметки), подсвечиваются в графическом редакторе.
Если вы выделяете объект, который ссылается на другие объекты, вы
увидите, что они тоже выделены, но фиолетовым цветом:

Гиперссылки в коде
Сделайте Ctrl щелчок по имени элемента в коде, и он будет показан в
центре графического редактора и подсвечен фиолетовым цветом.

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

Переход на Java 8
New Java 8 has better collection-related API
Новые примеры моделей
В примерах моделей Corporate Education, Product
Delivery и Oil Supply Chain использован новый функционал
ГИС Карты.
Airport with Two Terminals
- Модель аэропорта с двумя терминалами, которая включает в себя
расписание рейсов, регистрацию, личный досмотр, трансфер между
терминалами, посадку на самолет, высадку и выдачу багажа. Модель имеет
модульную и иерархическую структуру, в ней использованы Пешеходная,
Железнодорожная библиотеки, а также Библиотека моделирования процессов,
модель представлена в 2D и 3D анимации. Процессы поведения пассажира,
поезда между терминалами и самолетов взаимосвязаны.
Corporate Education - Модель
корпоративного обучения в компании, владеющей несколькими филиалами
(это может быть, например, банк или страховая компания). Компания
характеризуется большой текучестью кадров. Модель позволяет получить
знания о том, как проходит процесс обучения (узнать долю полностью
обученных сотрудников, и т.д.), а также связанные с обучением
транспортные издержки как функцию от количества и расположения
собственных тренеров компании. Все параметры модели (расположение
филиалов, количество сотрудников, индивидуальные планы обучения,
тренеры и их компетенции) считываются из файла Excel.
Product Delivery - Модель
цепочки поставок товара в Европе. Эта цепочка поставок состоит из трех
производителей и пятнадцати дистрибуторов, которые заказывают различное
количество товара в среднем каждые пару дней. Каждый производитель
имеет в распоряжении свой парк грузовых автомобилей. Когда
производитель получает заказ от дистрибутора, он проверяет количество
готового товара на складе. Если заказанное количество товара имеется в
наличии, производитель отправляет грузовик с этим товаром к
дистрибутору. Иначе заказ не выполняется, и дистрибутор ждет, пока
требуемое количество товара не будет произведено. Это многоподходная
модель. Дистрибуторы, грузовики и производственные центры являются
агентами, каждый из которых имеет свое поведение: диаграмма системной
динамики задает производство, а диаграмма процессов - отправку и
обработку заказа. Агенты живут в пространстве ГИС. Имена географических
мест, в которых расположены центры производства, считываются из файла
Excel. Встроенный поиск по ГИС карте находит места и помещает в них
агентов. Грузовики движутся по существующей сети дорог, а маршруты
создаются, когда автомобили начинают движение к месту назначения.
Oil Supply Chain - Модель
цепочки поставок нефти. Сырая нефть доставляется танкерами в
припортовые хранилища. Затем, по нефтепроводу - к нефтеперерабатывающим
заводам. Очищенный продукт перекачивается по сети нефтепроводов к
хранилищам терминалов, откуда, с помощью наземного транспорта,
доставляется ритейлерам. Это агентная модель: хранилища, НПЗ,
ритейлеры, нефтепровод, грузовики и танкеры являются агентами. У модели
есть 2D анимация на ГИС карте.
Другие изменения и улучшения
- Локальные переменные в параметрах блоков Библиотеки Моделирования
Процессов entity переименованы в agent
- У блоков библиотеки Source, Assembler,
Split, Batch, Enter
появился новый параметр speed, задающий
скорость агента
- Блок настроек PML Settings
перемещен в палитре из секции Дополнительные блоки в
основную секцию блоков библиотеки.
- Добавлена новая опция Выделить диаграмму процесса в
контекстном меню любого блока диаграммы
- При удалении крайнего блока диаграммы процесса оставшийся крайний
соединитель также будет удален (см. диалог Настройки AnyLogic )
- Добавлена опция Открыть папку модели в
контекстном меню модели
- Перетащите папку (или несколько папок) на панели Проекты
или Палитра, чтобы открыть все модели, которые эта
папка содержит
- Поддержка экспорта зависимостей, необходимых для построения
модели, вместе с экспортируемой моделью
- Новый фильтр в панели Ошибки, по которому
отображаются ошибки только модели, с которой вы в данный момент
работаете
- Кнопка Запустить теперь по умолчанию запускает
эксперимент последней открытой или созданной модели (см. диалог
Настройки AnyLogic )
- Случайность: опция Фиксированное начальное число теперь будет
использоваться в экспериментах по умолчанию
- Добавлена опция Создать коллекцию в контекстном
меню нескольких выделенных объектов одного типа
- Добавлена опция Создать диаграмму в
контекстном меню таких объектов как Набор данных, Данные
гистограммы, Данные двумерной гистограммы,
массивы системной динамики...
- Элементы Основной палитры перенесены в палитру Агент
- Диалоговое окно выбора файла изображения открывается
автоматически при добавлении элемента Изображение на
диаграмму агента
- Объект Стеллаж
теперь поддерживает отрисовку вертикальных стоек в 3D анимации. Также
вы можете задавать, как часто нужно рисовать стойки
- Объект Аттрактор
поддерживает режим рисования
- В палитру 3D Объекты добавлено 20 новых фигур
- У объектов Путь, Ж/д путь
добавлена новая функция для определения длины length()
- Блок библиотеки RackSystem
использует новые функции: nRows(), nLevels(row),
nPositions(row), nDeepPositions(row)
- Вы можете конвертировать заданные интервалы времени из единиц
модельного времени в указанные единицы и обратно с помощью функций toModelTime()
, toTimeUnits()
Что нового в AnyLogic 7
Пользовательский интерфейс
Агентное моделирование
Разметка пространства
Библиотека Моделирования Процессов
Разное
Панель
Свойства
Вы
можете свернуть или развернуть секцию свойств, щелкните по заголовку
секции. Многие параметры свойств имеют определенный значок:
 |
Динамический параметр
|
|
 |
Статический параметр
|
|
 |
Значок
треугольника означает, что вы можете переключаться щелчком мыши по
значку между редактором значения и полем ввода. Пример:
|

|
 |
В таком параметре вы вводите код
|
|
Панель
Ошибки
По умолчанию, панель Ошибки
и панель Консоль
скрыты и открываются автоматически, только когда имеются проблемы с
построением модели. Вы можете найти настройки отображения этих панелей
в меню Инструменты > Настройки
> Основные.
В можете открыть эти панели в любое время, выбрав их отображение в
меню Вид. Либо щелкните иконку
нужной панели в секции спрятанных элементов статусной строки:
Спрятать группу элементов в
графическом редакторе
При
редактировании модели в графическом редакторе может случиться так, что
у вас будет слишком много элементов, расположенных на одной диаграмме
типа агента:
- Фигуры презентации и 3D анимации
- Разметка пространства
- Диаграммы процесса
- Диаграммы системной динамики
- Диаграммы состояний
- …
Теперь
AnyLogic позволяет временно скрывать какие-либо типы элементов модели,
когда они не нужны, чтобы вам было проще редактировать разметку здания
или фигуры и т.д. Значки, позволяющие управлять этой функцией,
находятся в строке состояния:

 |
Спрятать элементы разметки пространства
|
 |
Спрятать фигуры
|
 |
Спрятать связи системной динамики
|
 |
Спрятать 2D фигуры
|
 |
Спрятать 3D фигуры
|
Пример:
Выбор
элемента щелчком в графическом редакторе
Чтобы указать какой-либо объект (например, путь, узел или область) в
свойствах блока библиотеки (например, queue или delay), вам нужно только щелкнуть по
объекту в графическом редакторе.

Добавление
фигур в группу
Имеется два режима для выбора группы, в которую нужно добавить
фигуры:
- Выберите группу из выпадающего списка:

- Щелкните значок группы в графическом редакторе

Улучшенная
диаграмма состояний
Переходы, не присоединенные ни к какому состоянию, выделяются
красным цветом:
Блоки
соединяются автоматически
Когда
вы добавляете блоки диаграммы процесса, ближайшие порты соединяются
автоматически, что заметно ускоряет процесс разработки модели.

Настройки рисования соединителей вы можете найти на странице Инструменты > Настройки > Основные:
Агент
= Заявка = Ресурс
Все активные объекты теперь - агенты, и они ведут себя как агенты.
- В заявке могут быть заданы внутренние процессы, которые будут
происходить параллельно общему
- Агенты могут мгновенно входить и выходить из диаграммы процесса
- Ресурсы могут стать пешеходами
- Люди, транспорт и оборудование могут взаимодействовать в одном
пространстве
- Одна объединенная система координат для всех
Агенты.
Новые методы коммуникации
Добавлены новые полезные функции:
- sendToAll(Object msg) –
отправляет сообщение всем агентам, живущим в той же среде
- sendToRandom(Object msg)
- sendToAllConnected(Object msg)
- sendToRandomConnected(Object msg)
Функции только для дискретного пространства:
- sendToAllNeighbors(Object msg)
- sendToRandomNeighbor(Object msg)
Все прежние функции еще доступны:
- send(Object msg, Agent dest)
- send(Object msg, MessageDeliveryType
mode) – получали задаются параметром mode
Пример:
people.get(0).sendToRandom(“Hi!”);
Функции
отправки сообщений случайно выбранному агенту теперь не позволяют
выбрать отправителя сообщения в качестве получателя. Больше информации:
Взаимодействие агентов.
Стандартные сети агентов
Каждый агент имеет неудаляемый элемент
Connections
– стандартный тип сетей
агентов с двунаправленными связями.
В свойствах этого элемента вы можете задать реакцию на получение
сообщения:

Связи и, соответственно, сети могут быть визуализированы.
Задание нестандартных сетей
контактов/связей агентов
Вы можете задавать собственные связи
с любым именем и внешним видом.
Связь может задаваться как:
- Одиночная связь - связь
с одним агентом
- Коллекция связей -
связь со множеством агентов
А также, связь может быть:
- Однонаправленной -
"ребенок-родители"
- Двунаправленной -
"друг-друг"

Ссылка на агента верхнего уровня
Агент
может иметь видимую неудаляемую ссылку на агента верхнего уровня (того,
в котором этот агент "живет"), например, на тип агента main, city, company.
Это
именно ссылка, а не связь – она нужна нам не для того, чтобы посылать
сообщения, а для того, чтобы иметь доступ с параметрам и функциям
агента верхнего уровня. Теперь вы можете ссылаться на агента верхнего
уровня просто по имени ссылки (main, distributor, …)
Наследование отображается визуально
Элементы верхнего уровня отображаются полупрозрачными и не могут
быть отредактированы здесь:

Агенты.
Новые методы для движения
Вы можете задать движение агента с помощью одной из функций:
- moveTo() – агент перемещается в
указанное местоположение (со своей скоростью)
- moveToInTime() – агент
перемещается в указанное местоположение. Вы указываете время
передвижения как параметр функции
- jumpTo() – агент мгновенно
перемещается ("прыгает") в указанное местоположение (за ноль единиц
модельного времени)
- moveToNearestAgent(agents) –
удобная новая функция, которая начинает движение агента к ближайшему
агенту из заданной популяции
Другие функции:
- getX(), getY(), getZ()
- getVelocity(), setVelocity()
- getTargetX(), getTargetY(), getTargetZ()
- distanceTo()
- stop()
Разметка пространства
Элементы Разметки пространства:
-
Пути
- могут содержать как прямые, так и дуговые сегменты, помогающие
рисовать естественные маршруты. Любой путь может также задавать место
заявок для блоков диаграммы процесса (Delay, Queue, etc.)
- Узлы - задают место в сети, где
могут находиться агенты, и могут указывать место заявок в блоках
диаграммы процесса (Delay, Combine, Batch, etc.)
-
Аттракторы
- задают точную цель / места ожиданий внутри узлов
-
Стеллажи - используются для рисования и задания
складов и зон хранения
Конвертация
фигур сети в новые элементы разметки пространства
Щелкните фигуры правой кнопкой мыши в графическом редакторе и
выберите опцию Преобразовать > В
элементы сети из контекстного меню.

Функции
движения. Новые опции
Функции moveTo() и moveToInTime() позволяют задавать различные
цели перемещения:
- X, Y координаты: moveTo(double x, double y)
- X, Y, Z координаты: moveTo(double x, double y, double z)
- Точка: moveTo (Point location)
- Аттрактор: moveTo (Attractor attractor)
- Узел сети: moveTo (Node node)
- Узел сети и местоположение
внутри узла – точка (x,y,z): moveTo
(Node node, Point location)
Приоритеты
и правила вытеснения задач
Вы можете выбрать, что будет происходить, если поступает какая-либо
новая задача для ресурсов, уже занятых другой задачей:
- Вытеснения нет -
продолжает выполнять текущую задачу
- Ожидать оригинал ресурса
- прерывает задачу и
ожидает, когда тот ресурс сможет ее закончить
- Прекратить обслуживание
- задача прерывается и
более не возобновляется
- Захватывать любой ресурс
- прерывает задачу и
пытается захватить любой ресурс указанного типа
- Продолжать без ресурса - задача завершается без участия
ресурса
Блоки, поддерживающие вытеснение: Seize, Service, Assembler.
Внутренние
процессы заявок могут задаваться графически
Моделирование складов и зон
хранения
Специальный элемент разметки пространства - Стеллаж.
Пример вертикальных уровней в 3D анимации:

Блоки диаграммы процесса, задающие логику складов и зон хранения:
Новые единицы времени: месяцы и годы
Это может быть особенно важно для разработчиков моделей системной
динамики.
Мы используем следующие значения:
- Месяц содержит 30 дней
- Год содержит 365 дней
Сохранение графических элементов в
виде изображения
- Выделите элементы в графическом редакторе.
- Перейдите в меню Правка >
и выберите Копировать как изображение
- Вставьте скопированное изображение в любой редактор изображений,
чтобы сохранить или редактировать изображение.
Различные исправления и улучшения
- Добавлена функция deleteSelf().
- Улучшены операции создания сетей и связей агентов.
- Добавлена функция setParameter(),
которая позволяет задавать параметр по его имени (например, при
инициализации модели из заданного источника данных с помощью java кода).
- Параметр. В коде Действия при изменении старое
значение параметра доступно как oldValue.