Объекты являются дискретными элементами, представляющими интерес при моделировании дискретных событий. По определению эти элементы называются сущностями в программном обеспечении SimEvents ®. Объекты могут проходить через сеть очередей, серверов, шлюзов и коммутаторов во время моделирования. Объекты могут нести данные, известные в программном обеспечении SimEvents как атрибуты.
Модели SimEvents обычно содержат по крайней мере один исходный блок, генерирующий объекты. Другие блоки SimEvents в модели обрабатывают объекты, создаваемые исходным блоком.
Примечание
Сущности не совпадают с событиями. События - это мгновенные дискретные инциденты, которые изменяют переменную состояния, выходные данные и/или возникновение других событий. Дополнительные сведения см. в разделе События и действия с событиями.
Вы определяете, что означает сущность, на основе того, что вы моделируете. В таблице перечислены примеры представлений объектов в различных приложениях.
| Контекст примера применения | Предприятия |
|---|---|
| Аэропорт с очередью на подъезд к ВПП | Самолеты, ожидающие выхода на взлетно-посадочную полосу |
| Сеть связи | Пакеты, кадры или сообщения для передачи |
| Банк лифтов | Люди, путешествующие в лифтах |
| Конвейерная лента для сборки деталей | Детали для сборки |
| Операционная система компьютера | Вычислительные задачи или задания |
Одна модель может использовать объекты для представления различных типов элементов. Например, при моделировании фабрики, обрабатывающей два различных вида деталей, можно:
Используйте два блока генератора объектов для создания двух типов деталей.
Используйте один блок генератора объектов и затем назначьте атрибут, чтобы указать, какой тип детали представляет каждый объект, а другой атрибут - свойство.
Примечание
Объекты SimEvents в основном совпадают с сообщениями Simulink ® и Stateflow ®.
Объекты не отображаются явно в окне модели. Графический блок может представлять компонент, обрабатывающий объекты, но сами объекты не имеют графического представления. Однако можно собирать информацию об объектах с помощью областей Simulink. Невозможно выполнить ветвление линии соединения с объектом. Если приложению требуется, чтобы объект получал несколько блоков, используйте блок репликации объектов для создания копий объектов.
Эти блоки способны удерживать объект:
Генератор объектов
Очередь сущностей
Очередь получения многоадресной рассылки
Сервер сущностей
Терминатор объекта
Дискретная диаграмма событий
Система дискретных событий MATLAB
Репликатор сущностей
Приобретатель ресурсов
Средство освобождения ресурсов
Эти блоки разрешают поступление объекта, но должны выводить или уничтожать объект при том же значении часов моделирования:
Переключатель ввода объекта
Переключатель вывода объекта
Многоадресная передача объекта
Литник сущности
Создатель составного объекта
Разделитель составных объектов
Пул ресурсов
Тип объекта - это идентификационный тег, связанный с любым блоком, который создает объекты в модели. Для блока «Генератор объектов» присвойте имя типу объекта на вкладке «Тип объекта» блока генерации. Из этого блока каждый новый объект получает этот тег. Например, имя типа объекта, связанного с генератором объектов в модели, может быть Customer. Каждый объект, созданный в этом блоке, получает этот тип объекта. Блок создания составного объекта также создает новые объекты путем объединения двух или более существующих объектов для формирования нового составного объекта. Для типа объекта можно назначить новое имя типа объекта (имя Combined по умолчанию).
Примечание
Блок репликации объектов также генерирует новые объекты путем вывода копий входящего объекта. Однако, поскольку входящий объект уже имеет тип объекта, блок не создает новые типы объектов для копий.
По мере продвижения объекта через модель его тип не изменяется. Даже если объект получает атрибут, тайм-аут или данные таймера, которые придают ему более сложную структуру, тип объекта остается прежним. Хотя блок создания составного объекта формирует новые составные объекты с новым типом объекта, базовые типы объектов остаются прежними.
По умолчанию каждый новый тип объекта, создаваемый SimEvents в модели, использует имя Entity.
Блок «Генератор объектов» может генерировать следующие типы объектов:
Anonymous - неструктурированная сущность без имени. Для анонимных типов сущностей можно указать только приоритет сущности и начальное значение данных.
Структурированный (Structured) - тип структурированного объекта, определенный в этом диалоговом окне блока. В разделе «Определение атрибутов» блока «Генератор объектов» можно назвать объекты, указать приоритеты и задать атрибуты для объекта. Атрибуты - это данные, переносимые сущностями. Создание структурированного объекта на этой вкладке является удобным способом создания объекта без необходимости создания связанного объекта шины в Simulink.
Объект шины - тип объекта, определяемый с помощью объектов шины Simulink. Можно назвать объекты, указать приоритеты и указать атрибуты для объекта. Чтобы указать этот тип объекта, необходимо иметь существующий объект шины, созданный в Simulink, и использовать это имя объекта шины в качестве имени типа объекта. Этот объект шины:
Должен быть допустимым объектом шины с одним или несколькими элементами шины на одном уровне.
Не может содержать элементы переменного размера. Это ограничение также справедливо для объектов, зарегистрированных как объекты шины через блок Составная сущность (Composite Entity Creator).
При необходимости можно присоединить данные к объектам. Такие данные хранятся в одном или более атрибутах объекта. Для атрибутов определяются имена и числовые значения. Например, если объекты представляют сообщение, передаваемое по сети связи, можно назначить данные с именем length указывает длину каждого конкретного сообщения. Во время моделирования можно считывать или изменять значения атрибутов.
Объекты и атрибуты могут быть любого типа данных, поддерживаемого Simulink, включая перечисляемые типы. Дополнительные сведения см. в разделе Типы данных, поддерживаемые Simulink.
Типы данных, поддерживаемые MATLAB ®, но не поддерживаемые Simulink, не могут передаваться между моделью Simulink и действиями события. Эти типы данных можно использовать в действиях события в качестве локальных переменных.
При необходимости можно указать структуру объекта с помощью объекта шины Simulink. Эта возможность полезна при определении сложных структур объектов, которые необходимо определить один раз, но использовать в нескольких расположениях в модели. Кроме того, блоки Система дискретных событий MATLAB и Диаграмма дискретных событий требуют указания объектов в качестве объектов шины. Дополнительные сведения об объектах шины см. в разделе Задание свойств шины с помощью Simulink.Bus Object Data Types.
Для создания объектов можно использовать блок генератора объектов. По умолчанию блок создает объекты на основе времени. Можно изменить параметр Источник времени (Time Source), чтобы выбрать источник времени для создания сущности. Можно создавать объекты на основе времени, используя:
Значение параметра Period. Дополнительные сведения см. в разделе Создание объектов на основе времени.
Сигнальный порт. Затем к сигнальному порту можно подключить блок источника Simulink, например блок повторяющейся последовательности. Значение времени не может быть отрицательным числом. Дополнительные сведения см. в разделе Указание времени межгенерации для объектов.
Код MATLAB. Дополнительные сведения см. в разделе Создание рандомизированных объектов.
Используйте блок «Создание объекта» для создания объектов на основе времени. В окне Создание сущности (Entity Generation) можно указать период, в который создаются сущности.
Откройте библиотеку блоков SimEvents. Можно использовать браузер или тип Simulink simevents в окне команд MATLAB.
Создайте новую модель.
Перетащите блок генератора объектов из библиотеки SimEvents в новую модель.
Перетащите блок «Очередь объектов» из библиотеки SimEvents в новую модель.
Подключите блок генератора объектов к входу очереди объектов.
В блоке «Очередь объектов» выберите «Количество удаляемых объектов», d.
Из библиотеки Simulink Sinks перетащите блок области в новую модель. Подключите блок Scope к порту d блока Entity Queue.
Перетащите блок терминатора объекта из библиотеки SimEvents в новую модель. Подключите выход блока Entity Queue к входу блока Entity Terminator.

При моделировании в области отображаются объекты, которые выходят из очереди.

Примечание
Невозможно соединить область с линией SimEvents, обозначенной толстой линией двойной стрелки.
Используйте блок «Создание объекта» для создания объектов на основе времени. Создание сущности позволяет указать операцию рандомизации (например, MATLAB). rand функция) для создания объектов в случайное время.
Откройте библиотеку блоков SimEvents. Можно использовать браузер или тип Simulink simevents в окне команд MATLAB.
Создание модели.
Перетащите блок генератора объектов из библиотеки SimEvents в новую модель.
Дважды щелкните блок и задайте для параметра «Источник времени» значение MATLAB action.
В параметре действия Время между поколениями введите вызов функции рандомизатора, например rand. Например:
dt = rand(1,1);

Перетащите блок «Очередь объектов» из библиотеки SimEvents в новую модель.
Подключение блока генератора объектов к входу очереди объектов
В блоке «Очередь объектов» выберите «Количество удаляемых объектов», d.
Из библиотеки Simulink Sinks перетащите блок области в новую модель. Подключите блок Scope к порту d блока Entity Queue.
Перетащите блок терминатора объекта из библиотеки SimEvents в новую модель. Подключите выход блока Entity Queue к входу блока Entity Terminator.
При моделировании в области отображаются объекты, которые выходят из очереди.

Создатель составного объекта | Литник сущности | Генератор объектов | Переключатель ввода объекта | Многоадресная передача объекта | Переключатель вывода объекта | Очередь сущностей | Сервер сущностей | Терминатор объекта | Приобретатель ресурсов