Сущности являются дискретными элементами, представляющими интерес в дискретно-событийной симуляции. По определению эти элементы называются entities в SimEvents® программное обеспечение. Сущности могут проходить через сеть очередей, серверов, ворот и коммутаторов во время симуляции. Сущности могут нести данные, известные в программном обеспечении SimEvents как attributes.
Модели SimEvents обычно содержат по крайней мере один исходный блок, который генерирует сущности. Другие блоки SimEvents в модели обрабатывают сущности, которые генерирует исходный блок.
Примечание
Сущности не совпадают с событиями. События являются мгновенными дискретными инцидентами, которые изменяют переменную состояния, выход и/или вхождение других событий. Смотрите События и Действия События для получения дополнительной информации.
Вы определяете, что обозначает сущность, основываясь на том, что вы моделируете. Таблица приводит примеры представлений сущностей в различных приложениях.
Контекст примера применения | Сущности |
---|---|
Аэропорт с очередью на подъезд к ВПП | Самолеты, ожидающие выхода на взлетно-посадочную полосу |
Сеть связи | Пакеты, системы координат или сообщения для передачи |
Банк лифтов | Люди, путешествующие в лифтах |
Конвейерная лента для сборки деталей | Детали для сборки |
Компьютерная операционная система | Вычислительные задачи или задания |
Одна модель может использовать сущности, чтобы представлять различные виды элементов. Для примера, если вы моделируете фабрику, которая обрабатывает два разных типа деталей, можно:
Используйте два блока Entity Generator для создания двух типов деталей.
Используйте один Entity Generator блок и затем назначьте атрибут, чтобы указать, какой тип детали представляет каждую сущность, и другой атрибут, чтобы представлять свойство.
Примечание
Сущности SimEvents в корне совпадают с Simulink® и Stateflow® сообщений.
Сущности не появляются явным образом в окне модели. Графический блок может представлять компонент, который обрабатывает сущности, но сами сущности не имеют графического представления. Однако можно собирать информацию о сущностях с помощью осциллографов Simulink. Вы не можете соединить соединительную линию сущности. Если вашему приложению требуется, чтобы сущность пришла в несколько блоков, используйте Entity Replicator блок для создания копий сущностей.
Эти блоки способны удерживать сущность:
Entity Generator
Entity Queue
Multicast Receive Queue
Entity Server
Entity Terminator
Discrete Event Chart
MATLAB Discrete Event System
Entity Replicator
Resource Acquirer
Resource Releaser
Эти блоки разрешают прибытие сущности, но должны выводить или уничтожать сущность с тем же значением часов симуляции:
Entity Input Switch
Entity Output Switch
Entity Multicast
Entity Gate
Composite Entity Creator
Composite Entity Splitter
Resource Pool
Тип сущности является идентификационным тегом, связанным с любым блоком, который создает сущности в вашей модели. Для блока Entity Generator вы присваиваете имя типу сущности на вкладке Entity type блока генерации. Из этого блока каждая новая сущность получает этот тег. Например, имя типа сущности, сопоставленного с Entity Generator в вашей модели, может быть Customer
. Каждая сущность, который берёт начало в этом блоке, получает этот тип сущности. Блок Composite Entity Creator также генерирует новые сущности путем объединения двух или более существующих сущностей с образованием новой составной сущности. Вы можете назначить новое имя типа сущности типу сущности (с именем Combined
по умолчанию).
Примечание
Блок Entity Replicator также генерирует новые сущности путем вывода копий входящей сущности. Однако, поскольку входящий объект уже имеет тип сущности, блок не создает новые типы сущностей для копий.
Когда сущность прогрессирует через вашу модель, его тип не меняется. Даже если сущность получает атрибут, тайм-аут или данные таймера, которые придают ей более сложную структуру, тип сущности остается неизменным. Несмотря на то, что блок Composite Entity Creator формирует новые составные сущности с новым типом сущностей, базовые типы сущностей остаются прежними.
По умолчанию каждый новый тип сущности, созданный SimEvents в вашей модели, использует имя Entity
.
Блок Entity Generator может сгенерировать следующие типы сущностей:
Анонимная сущность без имени. Вы можете задать только приоритет сущности и начальное значение данных для анонимных типов сущностей.
Структурированный - Тип структурированной сущности, заданный в этом диалоговом окне блока. Можно называть сущности, задавать приоритеты и задавать атрибуты для сущности в Define attributes разделе блока Entity Generator. Атрибуты являются данными, переносимыми сущностями. Создание структурированной сущности на этой вкладке является удобным способом создать сущность без необходимости создания связанного объекта шины в Simulink.
Объект шины - Тип сущности, который вы задаете используя объекты шины Simulink. Можно называть сущности, задавать приоритеты и задавать атрибуты для сущности. Чтобы задать этот тип сущности, необходимо иметь существующий шинный объект, созданный в Simulink, и использовать это имя объекта шины в качестве имени типа сущности. Этот объект шины:
Должен быть допустимым объектом шины с одним или несколькими элементами шины на одном уровне.
Не может содержать элементы переменного размера. Это ограничение также верно для сущностей, зарегистрированных как объекты шины через блок Composite Entity Creator.
Можно также присоединить данные к сущностям. Такие данные хранятся в одном или нескольких attributes сущности. Вы задаете имена и числовые значения для атрибутов. Для примера, если ваши сущности представляют сообщение, которое вы передаете через сеть связи, можно назначить данные, вызываемые length
это указывает длину каждого конкретного сообщения. Во время симуляции можно считать или изменять значения атрибутов.
Сущности и атрибуты могут быть любого типа данных, которые поддержки Simulink, включая перечисленные типы. Для получения дополнительной информации см. «Типы данных, поддерживаемые Simulink».
Типы данных, поддерживаемые MATLAB® но не поддерживаемый Simulink не может быть передан между моделью Simulink и действиями события. Можно использовать эти типы данных в действиях события как локальные переменные.
Вы можете опционально задать структуру сущности с помощью объекта шины Simulink. Эта возможность полезна при определении сложных структур сущностей, которые необходимо задать один раз, но использовать в нескольких расположениях в модели. В сложение, блоки MATLAB Discrete-Event System и Discrete Event Chart требуют, чтобы вы указывали сущности как объекты шины. Для получения дополнительной информации об объектах шины см. Раздел «Задание свойств шины с Simulink типами данных объектов .Bus».
Блок Entity Generator может использоваться для генерации сущностей. По умолчанию блок создает сущности на основе времени. Можно изменить параметр Time Source, чтобы выбрать источник времени для генерации сущности. Вы можете создать основанные на времени сущности с помощью:
А Period значения параметров. Для получения дополнительной информации смотрите Создание основанных на времени сущностей.
Сигнальный порт. Затем можно подключить исходный блок Simulink, такой как блок Repeating Sequence, к сигнальному порту. Значение времени не может быть отрицательным числом. Для получения дополнительной информации см. раздел «Задание времени межгенерации для сущностей».
Код MATLAB. Для получения дополнительной информации см. раздел «Создание рандомизированных сущностей».
Используйте блок Entity Generation для создания основанных на времени сущностей. Этот Entity Generation позволяет вам задать точку, в которой он создает сущности.
Откройте библиотеку блоков SimEvents. Вы можете использовать браузер Simulink или ввести simevents
в Командном Окне MATLAB.
Создайте новую модель.
Из библиотеки SimEvents перетащите Entity Generator блок в новую модель.
Из библиотеки SimEvents перетащите Entity Queue блок в новую модель.
Подключите Entity Generator блок к входу Entity Queue.
В блоке Entity Queue выберите Number of entities departed, d.
Из библиотеки Simulink Sinks перетащите блок Scope в новую модель. Подключите блок Scope к порту d блока Entity Queue.
Из библиотеки SimEvents перетащите блок Entity Terminator в новую модель. Соедините выход блока Entity Queue с входом блока Entity Terminator.
После симуляции в возможности отображаются сущности, которые выходят из очереди.
Примечание
Вы не можете соединить возможности с линией SimEvents, что обозначено толстой линией двойной стрелы.
Используйте блок Entity Generation для создания основанных на времени сущностей. Эта Entity Generation позволяет вам задать операцию рандомизации (такую как MATLAB rand
функция) для создания сущностей в случайные моменты времени.
Откройте библиотеку блоков SimEvents. Вы можете использовать браузер Simulink или ввести simevents
в Командном Окне MATLAB.
Создайте модель.
Из библиотеки SimEvents перетащите Entity Generator блок в новую модель.
Дважды кликните блок и установите параметр Time source равным MATLAB action
.
В параметре Intergeneration time action введите вызов функции рандомизатора, такой как rand
. Для примера:
dt = rand(1,1);
Из библиотеки SimEvents перетащите Entity Queue блок в новую модель.
Подключите Entity Generator блок к входу Entity Queue
В блоке Entity Queue выберите Number of entities departed, d.
Из библиотеки Simulink Sinks перетащите блок Scope в новую модель. Подключите блок Scope к порту d блока Entity Queue.
Из библиотеки SimEvents перетащите блок Entity Terminator в новую модель. Соедините выход блока Entity Queue с входом блока Entity Terminator.
После симуляции в возможности отображаются сущности, которые выходят из очереди.
Composite Entity Creator | Entity Gate | Entity Generator | Entity Input Switch | Entity Multicast | Entity Output Switch | Entity Queue | Entity Server | Entity Terminator | Resource Acquirer