Работа с атрибутами сущности и приоритетами сущности

Можно прикрепить данные к сущности с помощью одних или нескольких сущностей attributes. Каждый атрибут имеет имя и числовое значение. Во время симуляции можно считать или изменять значения атрибутов.

Например, предположим, что ваши сущности представляют сообщение, которое вы передаете через сеть связи. Вы можете прикрепить длину каждого конкретного сообщения к самому сообщению с помощью атрибута с именем length.

Можно использовать атрибуты для описания любого измеряемого свойства сущности. Для примера можно использовать значения атрибутов, чтобы задать:

  • Время обслуживания, используемое нисходящим серверным блоком

  • Критерий переключения, используемый нисходящим блоком switch

Можно также задать приоритеты сущностей, которые используются для определения приоритетов событий

Присоединение атрибутов к сущностям

Чтобы прикрепить атрибуты к сущности, используйте блок Entity Generator. Можно присоединить атрибуты, такие как:

  • Постоянные значения

  • Случайные числа

  • Элементы любого из векторов в MATLAB® рабочая область или вектор, который можно ввести в диалоговом окне блока

  • Значения выходного аргумента функции MATLAB

  • Значения сигнала

  • Выходы функции, заданной в Simulink® или Stateflow® окружение.

В этих списках представлены характеристики значений атрибутов для структурированных типов сущностей.

Значения атрибутов должны быть:

  • Реальный или комплексный

  • Массивы любой размерности, где размерности остаются фиксированными на протяжении всей симуляции

  • Все встроенные типы данных (double, single, int8, uint8, int16, uint16, int32, и uint32)

  • Перечисления

Для данного атрибута характеристики значения должны быть последовательными во всей системе дискретных событий в модели. Значения атрибутов не могут быть:

Не разрешено в качестве значений атрибутов

  • Структуры

  • Автобусы

  • Сигналы переменного размера или массивы переменного размера

  • Системы координат

Задание атрибутов

Чтобы создать и управлять списком атрибутов для присоединения к каждому уходящей сущности, используйте элементы управления в Define attributes разделе блока Entity Generator. Каждый атрибут появляется как строка в таблице.

Используя эти элементы управления, можно:

  • Вручную добавить атрибут.

  • Измените ранее созданный атрибут.

Кнопки под Set Attribute выполнить эти действия.

КнопкаДействиеПримечания

Добавьте атрибут в таблицу.

Переименуйте атрибут и задайте его свойства.

Удалите выбранный атрибут из таблицы атрибутов.

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

Можно также организовать атрибуты, нажавUp button и.Down button

В таблице отображаются атрибуты, добавленные вручную. Используйте его, чтобы задать эти свойства атрибута.

СвойствоОпределитьИспользовать

Attribute Name

Имя атрибута. Каждый атрибут должен иметь уникальное имя.

Дважды кликните существующее имя и введите новое имя.

Attribute Initial Value

Значение, которое должно быть присвоено атрибуту.

Дважды кликните значение и введите значение, которое необходимо назначить.

Запись функций для манипулирования атрибутами

Чтобы манипулировать атрибутами с помощью кода MATLAB, используйте вкладку Event actions блока. Для доступа к атрибуту используйте обозначение entityName.attributeName. Для примера:

entity.Attribute1 = 5;

Предположим, что вы хотите изменить атрибут сущности после его обслуживания.

  1. В новой модели, из SimEvents® библиотеку, перетащите Entity Generator, Entity Server и Entity Terminator блоки и соедините их.

  2. Дважды кликните Entity Generator блок и на вкладке Entity type добавьте три атрибута в таблицу атрибутов.

  3. Дважды кликните второй и третий атрибуты в столбце Attribute Name и переименуйте их Attribute2 и Attribute3 соответственно.

  4. В блоке Entity Server щелкните вкладку Event actions.

  5. Нажмите Service complete и введите код MATLAB, чтобы манипулировать атрибутами сущности, которые вы добавили в Entity Generator блок:

    Нажмите OK. Блок Entity Server отображает язык действий события.

  6. Чтобы увидеть действие, в модели наведите указатель мыши на Entity Server блок значка действия события блока.

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

Предположим, что сущности представляют произведенные элементы, которые проходят процесс контроля качества и упаковочный процесс. Элементы, прошедшие тест контроля качества, переходят к одной из трех упаковочных станций, а элементы, не прошедшие тест контроля качества, переходят к одной из двух переделывающих станций. Можно смоделировать процесс принятия решений с помощью следующих переключателей:

  • Блок Entity Output Switch, который маршрутизирует элементы на основе атрибута, который хранит результаты теста контроля качества

  • Блок Entity Output Switch, который маршрутизирует элементы качества передачи к упаковочным станциям

  • Блок Entity Output Switch, который маршрутизирует элементы качества отказа к станциям переделывания

Можно использовать параметр Switching criterion блоков From attribute опция использования атрибута для выбора порта выхода. Для получения примера смотрите Моделирование пересечений трафика как сети очереди.

Приоритеты сущностей

SimEvents использует приоритеты сущностей для определения приоритетов событий. Чем меньше значение приоритета, тем выше приоритет.

Приоритеты сущностей задаются при создании сущностей. В блоке Entity Generator, на вкладке Entity Type, Entity priority задает значение приоритета сгенерированной сущности.

Вы можете позже изменить приоритеты сущности с помощью действия события. Для примера на вкладке Entity Generator блока Event actions можно задать действие события, чтобы изменить приоритет сущности во время симуляции с помощью кода, такого как:

entitySys.priority=MATLAB code

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

В SimEvents календарь событий сортирует события на основе их времени и связанных приоритетов сущности следующим образом:

  1. Событие, которое имеет самое раннее время, выполняется первым.

  2. Если две сущности имеют события, происходящие одновременно, событие с сущностью более высокого приоритета происходит первым.

  3. Если обе сущности имеют одинаковый приоритет, то каждое событие может быть обслужено первым. Чтобы обслуживать сущности в детерминированном порядке, измените один из приоритетов сущностей.

Например, предположим, что прямое событие связано с сущностью, которая выходит из блочных A и входит в блок B. Приоритетом этого события является приоритет передающей сущности. Если существуют две сущности, пытающихся покинуть блок одновременно, сущность с более высоким приоритетом отходит первым.

Дополнительные сведения о календаре событий и отладке моделей SimEvents см. в разделе Отладка моделей SimEvents.

См. также

| |

Похожие примеры

Подробнее о