Можно присоединить данные к объекту с помощью одного или нескольких атрибутов объекта. Каждый атрибут имеет имя и числовое значение. Во время моделирования можно считывать или изменять значения атрибутов.
Например, предположим, что объекты представляют сообщение, передаваемое по сети связи. Можно присоединить длину каждого сообщения к самому сообщению с помощью атрибута с именем length.
Атрибуты можно использовать для описания любого измеримого свойства сущности. Например, можно использовать значения атрибутов для указания:
Время обслуживания, используемое блоком нисходящего сервера
Критерий переключения, используемый блоком переключения в нисходящем направлении
Можно также задать приоритеты объектов, которые используются для определения приоритетов событий.
Чтобы присоединить атрибуты к объекту, используйте блок «Генератор объектов». Можно присоединить такие атрибуты, как:
Постоянные значения
Случайные числа
Элементы вектора в рабочей области MATLAB ® или вектора, который можно ввести в диалоговом окне блока
Значения выходного аргумента функции MATLAB
Значения сигнала
Выходные данные функции, определенной в среде Simulink ® или Stateflow ®.
Эти списки суммируют характеристики значений атрибутов для типов структурированных сущностей.
Значения атрибутов должны быть:
Реальная или сложная
Массивы любого размера, в которых размеры остаются фиксированными на протяжении всего моделирования
Все встроенные типы данных (double, single, int8, uint8, int16, uint16, int32, и uint32)
Перечисления
Для данного атрибута характеристики значения должны быть непротиворечивыми во всей системе дискретных событий в модели. Значения атрибутов не могут быть:
Не разрешено в качестве значений атрибутов
Структуры
Автобусы
Сигналы переменного размера или массивы переменного размера
Структуры
Для построения и управления списком атрибутов, присоединяемых к каждому удаляемому объекту, используйте элементы управления в разделе «Определение атрибутов» блока «Генератор объектов». Каждый атрибут отображается в таблице в виде строки.
Используя эти элементы управления, можно:
Добавление атрибута вручную.
Измените ранее созданный атрибут.
Кнопки в разделе Задать атрибут (Set Attribute) выполняют эти действия.
| Кнопка | Действие | Примечания |
|---|---|---|
Добавьте атрибут в таблицу. | Переименуйте атрибут и укажите его свойства. | |
Удаление выбранного атрибута из таблицы атрибутов. | При удалении атрибута таким образом подтверждение не появляется, и отменить операцию невозможно. |
Можно также упорядочить атрибуты, щелкнув
и.![]()
В таблице отображаются атрибуты, добавленные вручную. Используйте его, чтобы задать эти свойства атрибута.
| Собственность | Определить | Использовать |
|---|---|---|
Имя атрибута | Имя атрибута. Каждый атрибут должен иметь уникальное имя. | Дважды щелкните существующее имя и введите новое имя. |
Начальное значение атрибута | Значение, присваиваемое атрибуту. | Дважды щелкните значение и введите значение, которое требуется назначить. |
Чтобы манипулировать атрибутами с помощью кода MATLAB, используйте вкладку Действия с событиями блока. Для доступа к атрибуту используйте нотацию entityName.attributeName. Например:
entity.Attribute1 = 5;
Предположим, что необходимо изменить атрибут сущности после ее обслуживания.
В новой модели перетащите из библиотеки SimEvents ® блоки генератора сущностей, сервера сущностей и терминатора сущностей и соедините их.

Дважды щелкните блок «Генератор объектов» и на вкладке «Тип объекта» добавьте три атрибута в таблицу атрибутов.
Дважды щелкните второй и третий атрибуты в столбце Наименование атрибута (Attribute Name) и переименуйте их соответственно в Attribute2 и Attribute3.

В блоке Сервер сущностей перейдите на вкладку Действия с событиями.
Щелкните Сервис завершен (Service complete) и введите код MATLAB для управления атрибутами объекта, добавленными в блоке Генератор объектов (Entity Generator):

Нажмите кнопку ОК. В блоке Сервер сущностей отображается язык действий с событиями.
Чтобы увидеть действие, в модели наведите указатель мыши на блок значка действия события блока сервера сущностей.

Предположим, что объекты представляют произведенные товары, которые проходят процесс контроля качества и процесс упаковки. Позиции, прошедшие проверку контроля качества, переходят на одну из трех упаковочных станций, а позиции, не прошедшие проверку контроля качества, переходят на одну из двух станций переработки. Процесс принятия решений можно моделировать с помощью следующих переключателей:
Блок коммутатора вывода объектов, который маршрутизирует элементы на основе атрибута, хранящего результаты теста контроля качества
Блок коммутатора вывода объектов, который направляет элементы качества передачи на упаковочные станции
Блок коммутатора вывода объектов, который направляет элементы с неудовлетворительным качеством на станции доработки
Можно использовать параметр критерия переключения блоков From attribute использование атрибута для выбора выходного порта. Пример см. в разделе Моделирование пересечений трафика как сети очередей.
SimEvents использует приоритеты объектов для определения приоритетов событий. Чем меньше значение приоритета, тем выше приоритет.
Приоритеты объектов задаются при создании объектов. В блоке «Генератор объектов» на вкладке «Тип объекта» приоритет объекта определяет значение приоритета создаваемого объекта.
Позднее можно изменить приоритеты сущностей с помощью действия события. Например, на вкладке Действия события блока генератора объектов можно определить действие события для изменения приоритета объекта во время моделирования с помощью кода, например:
entitySys.priority=MATLAB code
Приоритеты объекта играют роль в приоритизации событий в календаре событий, который планирует события для выполнения.
В SimEvents календарь событий сортирует события на основе их времени и связанных приоритетов объектов следующим образом:
Событие, которое имеет самое раннее время, выполняется первым.
Если два объекта имеют события, происходящие одновременно, сначала происходит событие с объектом с более высоким приоритетом.
Если оба объекта имеют одинаковый приоритет, каждое событие может быть обслужено первым. Чтобы обслуживать объекты в детерминированном порядке, измените один из приоритетов объекта.
Например, предположим, что событие прямой передачи связано с объектом, который выходит из блока А и входит в блок В. Приоритет этого события является приоритетом объекта, который пересылается. Если существует два объекта, пытающиеся выйти из блока одновременно, объект с более высоким приоритетом отходит первым.
Дополнительные сведения о календаре событий и отладке моделей SimEvents см. в разделе Отладка моделей SimEvents.
Дискретная диаграмма событий | Генератор объектов | Система дискретных событий MATLAB