Используя пользовательскую визуализацию для сущностей

Обзор

Эти примеры показывают, как можно создать базирующуюся пользовательскую визуализацию MATLAB для сущностей. Пример иллюстрирует визуализацию размещения ресторана с потребительским вводом сущностей, обедом и отъездом.

Структура модели

Модель содержит следующие главные компоненты:

  • Блок Resource Pool моделирует таблицы в ресторане. С тех пор существует 10 таблиц в ресторане, сумма ресурса равняется 10.

  • Блок Entity Generator (Покровитель Входят) генерирует сущности, представляющие клиентов. Они вводят зону ожидания, представленный Ресурсом Получают. Здесь они ожидают свободной таблицы.

  • Когда таблица доступна клиенту, он может переместиться в блок Entity Server, который моделирует длительность еды.

  • Когда клиент сделан, питаясь, он выпускает таблицу назад к пулу и выходит из ресторана.

modelname = 'seExampleCustomVisualization';
open_system(modelname);

Визуализация ресторана

seExampleRestaurantAnimator визуализирует ресторан можно следующим образом:

  • seExampleRestaurantAnimator обеспечивает визуализацию размещения ресторана для модели.

  • Это генерирует фигуру, содержащую размещение ресторана с входом, зоной ожидания, 10 обеденными столами и выходом.

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

  • Аниматор присваивает таблицу ID для каждого ожидающего клиента и показывает клиенту, перемещающемуся в таблицу.

  • Чтобы осмотреть атрибуты потребительской сущности, приостановите модель и нажмите на потребительский глиф сущности. Фигура отображает атрибут TimeToDine.

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

  • Это использует графику MATLAB, чтобы отобразить статистику по фигуре о количестве ввода сущностей, ожидания и отъезда.

  • Нажатие на сущность в визуализации отображает атрибуты, которые это содержит. Это использует коллбэк графики MATLAB, чтобы программировать ButtonDownFcn на каждом маркере сущности.

animator = seExampleRestaurantAnimator;
sim(modelname);
waitfor(animator.getFigureHandle, 'Tag', 'End');

close(animator.getFigureHandle);
bdclose all;
clear modelname animator