Эти примеры показывают, как можно создать базирующуюся пользовательскую визуализацию 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