Можно присоединить данные к сущности с помощью одного или нескольких сущность attributes. Каждый атрибут имеет имя и числовое значение. Можно считать или изменить значения атрибутов во время симуляции.
Например, предположите, что ваши сущности представляют сообщение, что вы передаете через коммуникационную сеть. Можно присоединить длину каждого конкретного сообщения к самому сообщению с помощью атрибута под названием length
.
Можно использовать атрибуты, чтобы описать любое измеримое свойство сущности. Например, вы могли использовать значения атрибута, чтобы задать:
Время обслуживания, которое будет использоваться нисходящим блоком сервера
Переключение критерия, который будет использоваться нисходящим блоком switch
Можно также установить приоритеты сущности, который используется, чтобы приоритизировать события
Чтобы присоединить атрибуты к сущности, используйте блок Entity Generator. Можно присоединить атрибуты, такие как:
Постоянные значения
Случайные числа
Элементы или вектора в рабочей области MATLAB® или вектора, который можно ввести в диалоговом окне блока
Значения выходного аргумента функции MATLAB
Значения сигнала
Выходные параметры функции, определяемой в Simulink® или среде Stateflow®.
Эти списки обобщают характеристики значений атрибута для структурированных типов сущности.
Значения атрибута должны быть:
Действительный или комплексный
Массивы любой размерности, где размерности остаются фиксированными в течение симуляции
Все встроенные типы данных (double
единственный
int8
uint8
int16
uint16
int32
, и uint32
)
Перечисления
Для данного атрибута характеристики значения должны быть сопоставимыми в дискретной системе событий в модели. Значения атрибута не могут быть:
Не разрешенный как значения атрибута
Структуры
Шины
Сигналы переменного размера или массивы переменного размера
Системы координат
Чтобы создать и управлять списком атрибутов, чтобы присоединить к каждой сущности отъезда, используйте средства управления под разделом Define attributes блока Entity Generator. Каждый атрибут появляется как строка в таблице.
Используя эти средства управления, вы можете:
Вручную добавьте атрибут.
Измените атрибут, который вы ранее создали.
Кнопки под Set Attribute выполняют эти действия.
Кнопка | Действие | Примечания |
---|---|---|
Добавьте атрибут в таблицу. | Переименуйте атрибут и задайте его свойства. | |
Удалите выбранный атрибут из таблицы атрибутов. | Когда вы удаляете атрибут этот путь, никакое подтверждение не появляется, и вы не можете отменить операцию. |
Можно также организовать атрибуты путем нажатия и.
Таблица показывает атрибуты, которые вы добавили вручную. Используйте его, чтобы установить эти свойства атрибута.
Свойство | Задать | Использование |
---|---|---|
Attribute Name | Имя атрибута. Каждый атрибут должен иметь уникальное имя. | Дважды кликните существующее имя, и затем введите новое имя. |
Attribute Initial Value | Значение, чтобы присвоить атрибуту. | Дважды кликните значение, и затем введите значение, которое вы хотите присвоить. |
Чтобы управлять атрибутами с помощью кода MATLAB, используйте вкладку Event actions блока. Чтобы получить доступ к атрибуту, используйте обозначение entityName.attributeName
. Например:
entity.Attribute1 = 5;
Предположим, что вы хотите изменить атрибут сущности после того, как он был подан.
В новой модели, от библиотеки SimEvents®, перетаскивают Entity Generator, Entity Server и блоки Entity Terminator и соединяют их.
Дважды кликните блок Entity Generator и, во вкладке Entity type, добавьте три атрибута в таблицу атрибутов.
Дважды кликните на вторых и третьих атрибутах в столбце Attribute Name и переименуйте их Attribute2 и Attribute3, соответственно.
В блоке Entity Server кликните по вкладке Event actions.
Нажмите Service complete и войдите, код MATLAB, чтобы управлять сущностью приписывает вас добавленный в блоке Entity Generator:
Нажмите OK. Блок Entity Server отображает язык действия события.
Чтобы видеть действие, в модели, наводят на блок значка действия события блока 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, событиях видов Календаря событий на основе их времен и сопоставленных приоритетов сущности можно следующим образом:
Событие, которое имеет самое раннее время, выполняется сначала.
Если две сущности имеют события, происходящие одновременно, событие с сущностью более высокого приоритета имеет место сначала.
Если обе сущности имеют тот же приоритет, любое событие может быть подано сначала. Чтобы обслужить сущности в детерминированном порядке, измените один из приоритетов сущности.
Например, примите, что прямое событие сопоставлено с сущностью, которая выходит из блока A и вводит блок B. Приоритет этого события является приоритетом передаваемой сущности. Если существует две сущности, пытающиеся отбыть из блока одновременно, сущность с более высоким приоритетом отбывает сначала.
Для получения дополнительной информации о Календаре событий и отладке моделей SimEvents, смотрите Отладку Модели SimEvents.
Discrete Event Chart | Entity Generator | MATLAB Discrete Event System