exponenta event banner

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

Обзор

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

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

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

  • Блок Resource Pool моделирует столы в ресторане. Так как в ресторане 10 столиков, сумма ресурса составляет 10.

  • Блок генератора объектов (Patron Enter) генерирует объекты, представляющие клиентов. Они входят в зону ожидания, представляемую функцией «Получение ресурсов». Здесь ждут свободного стола.

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

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

modelname = 'seCustomVisualization';
open_system(modelname);

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

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

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

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

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

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

  • Чтобы проверить атрибуты объекта клиента, приостановите модель и щелкните значок объекта клиента. На рисунке показан атрибут TimeToDine.

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

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

  • При щелчке объекта в визуализации отображаются содержащиеся в нем атрибуты. Он использует обратный вызов графики MATLAB для программирования ButureDureFcn на каждом маркере объекта.

animator = seRestaurantAnimator;

Для моделирования модели введите:

  sim(modelname);

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

См. также

| |

Связанные темы