Эти примеры показывают, как можно создать пользовательскую визуализацию на основе MATLAB для сущностей. Пример иллюстрирует визуализацию размещения ресторана с посещением, обедом и уходом сущностей.
Модель содержит следующие основные компоненты:
Пул ресурсов моделирует таблицы в ресторане. Поскольку в ресторане 10 таблиц, ресурсная сумма составляет 10.
Блок Entity Generator (Patron Enter) генерирует сущности, представляющие клиентов. Они заходят в область ожидания, представленную Resource Acquire. Здесь ждут свободной таблицы.
Когда таблица доступна для клиента, он может перейти к блоку Entity Server, который моделирует длительность еды.
Когда клиент закончил есть, он отпускает таблицу обратно в бассейн и выходит из ресторана.
modelname = 'seCustomVisualization';
open_system(modelname);
seRestaurantAnimator визуализирует ресторан следующим образом:
seRestaurantAnimator обеспечивает визуализацию размещения ресторана для модели.
Он генерирует рисунок, содержащую размещение ресторана с входом, зоной ожидания, 10 обеденных таблицы и выходом.
Когда сущности перемещаются во время симуляции, они создают маркер (глиф) для каждой сущности на рисунке и программируют движение для маркера, так что он, по-видимому, переходит от одной точки к другой.
Аниматор присваивает идентификатор таблицы каждому ожидающему клиенту и показывает перемещение клиента к таблице.
Чтобы просмотреть атрибуты сущности клиента, приостановите работу модели и щелкните глиф сущности клиента. Рисунок отображает атрибут TimeToDine.
Чтобы движение казалось непрерывным, оно использует таймер MATLAB, чтобы периодически выполнять функцию, которая постепенно перемещает каждую сущность к месту назначения.
Он использует графику MATLAB, чтобы отобразить статистику на рисунке о количестве сущностей, входящих, ожидающих и уходящих.
При нажатии на сущность в визуализации отображаются содержащиеся в ней атрибуты. Он использует графический коллбэк MATLAB, чтобы запрограммировать ButtonDownFcn на каждом маркере сущности.
animator = seRestaurantAnimator;
Чтобы симулировать модель, введите:
sim(modelname);
close(animator.getFigureHandle); bdclose all; clear modelname animator
Entity Generator | Терминатор сущности | Очередь