Используйте класс SimulationObserver для мониторинга модели SimEvents

Класс SimulationObserver

Чтобы создать наблюдатель, создайте класс, который получают из simevents.SimulationObserver объект. Можно использовать наблюдатели для:

  • Помогают понять влияние очереди, визуализировать сущности, движущиеся через модель во время симуляции,

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

  • Отлаживайте и исследуйте активность сущности.

  • Исследуйте содержимое очереди.

The simevents.SimulationObserver объект предоставляет методы, которые позволяют вам:

  • Создайте объекты наблюдателя или анимации.

  • Идентифицируйте блоки модели для уведомления о событиях во время выполнения.

  • Взаимодействуйте с календарем событий.

  • Выполните действия, когда модель останавливается, продолжается после паузы и заканчивается.

SimEvents® модели вызывают эти функции во время симуляции модели.

Рабочий процесс пользовательской визуализации

  1. Создайте файл приложения.

    1. Задайте класс, который наследует от simevents.SimulationObserver класс.

    2. Создайте объект наблюдателя, который выводится из этого класса.

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

  2. Откройте модель.

  3. Создайте образец вашего класса.

  4. Запустите модель.

Дополнительные сведения о пользовательской визуализации см. в разделе Создание пользовательской визуализации.

Создание приложения

Можно использовать эти методы в реализации производного класса simevents.SimulationObserver.

ДействиеМетод

Задайте поведение, когда начнется моделирование.

simStarted

Задайте поведение при паузах симуляции.

simPaused

Задайте поведение при возобновлении симуляции.

simResumed

Задайте поведение наблюдателя, когда симуляция заканчивается.

simTerminating

Укажите список блоков, которые будут уведомляться о событиях входа и выхода сущности.

getBlocksToNotify

Укажите, требуется ли уведомление для всех событий в календаре событий.

notifyEventCalendarEvents

Задайте поведение после того, как сущность войдет в блок, имеющий хранилище сущностей.

postEntry

Задайте поведение перед выходом сущности из блока с хранилищем сущностей.

preExit

Задайте поведение перед выполнением события.

preExecute

Добавьте блок в список блоков, которые будут уведомлены.

addBlockNotification

Удалите блок из списка уведомляемых блоков.

removeBlockNotification

Получите указатели на календари событий.

getEventCalendars

Получите список блоков, в которых хранятся сущности.

getAllBlockWithStorages

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

getHandleToBlock

Возврат указателей на хранилище указанного блока.

getHandlesToBlockStorages

  1. В MATLAB® Командное окно, выберите New > Class.

  2. В первой линии файла наследуйте от simevents.SimulationObserver класс. Для примера:

    classdef seRestaurantAnimator < simevents.SimulationObserver

    seRestaurantAnimator - имя нового объекта.

  3. В properties введите свойства вашего приложения.

  4. В methods section, реализуйте функции для вашего приложения.

  5. Чтобы создать объект, введите следующую линию в methods раздел файла:

    function this = seRestaurantAnimator
                % Constructor
                modelname = 'seCustomVisualization';
                this@simevents.SimulationObserver(modelname);
                this.mModel = modelname;
            end

Дополнительные сведения см. в разделе Использование пользовательской визуализации для сущностей.

Используйте Наблюдатель, чтобы контролировать модель

  1. Откройте модель, чтобы наблюдать.

  2. В командной строке MATLAB, чтобы включить аниматор для модели:

    >> obj=seRestaurantAnimator;

  3. Симулируйте модель.

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

Примечание

В результате инструментирования для визуализации симуляции моделирование происходитленнее, чем без инструментирования.

Остановите симуляцию и отсоедините модель

  1. Остановите симуляцию.

  2. В командной строке MATLAB очистите аниматор от модели. Для примера:

    clear obj;

См. также

Похожие темы