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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Выходные параметры функции, определяемой в Simulink® или среде Stateflow®.

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

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

  • Действительный или комплексный

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

  • Все встроенные типы данных (doubleединственныйint8uint8int16uint16int32, и 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 задает приоритетное значение сгенерированной сущности.

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

entitySys.priority=MATLAB code

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

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

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

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

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

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

Для получения дополнительной информации о Календаре событий и отладке SimEventsmodels, смотрите Отладку Модели SimEvents.

Смотрите также

| |

Связанные примеры

Больше о