exponenta event banner

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

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

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

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

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

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

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

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

Чтобы присоединить атрибуты к объекту, используйте блок «Генератор объектов». Можно присоединить такие атрибуты, как:

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

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

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

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

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

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

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

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

  • Реальная или сложная

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

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

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

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

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

  • Структуры

  • Автобусы

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

  • Структуры

Задать атрибуты

Для построения и управления списком атрибутов, присоединяемых к каждому удаляемому объекту, используйте элементы управления в разделе «Определение атрибутов» блока «Генератор объектов». Каждый атрибут отображается в таблице в виде строки.

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

  • Добавление атрибута вручную.

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

Кнопки в разделе Задать атрибут (Set Attribute) выполняют эти действия.

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

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

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

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

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

Можно также упорядочить атрибуты, щелкнувUp button и.Down button

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

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

Имя атрибута

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

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

Начальное значение атрибута

Значение, присваиваемое атрибуту.

Дважды щелкните значение и введите значение, которое требуется назначить.

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

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

entity.Attribute1 = 5;

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

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

  2. Дважды щелкните блок «Генератор объектов» и на вкладке «Тип объекта» добавьте три атрибута в таблицу атрибутов.

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

  4. В блоке Сервер сущностей перейдите на вкладку Действия с событиями.

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

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

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

Использование атрибутов для маршрутизации объектов

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

  • Блок коммутатора вывода объектов, который маршрутизирует элементы на основе атрибута, хранящего результаты теста контроля качества

  • Блок коммутатора вывода объектов, который направляет элементы качества передачи на упаковочные станции

  • Блок коммутатора вывода объектов, который направляет элементы с неудовлетворительным качеством на станции доработки

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

Приоритеты организаций

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

Приоритеты объектов задаются при создании объектов. В блоке «Генератор объектов» на вкладке «Тип объекта» приоритет объекта определяет значение приоритета создаваемого объекта.

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

entitySys.priority=MATLAB code

Приоритеты объекта играют роль в приоритизации событий в календаре событий, который планирует события для выполнения.

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

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

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

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

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

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

См. также

| |

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

Подробнее