Сущности являются дискретными элементами интереса к дискретно-событийной симуляции. По определению эти элементы называются entities в программном обеспечении SimEvents®. Сущности могут пройти через сеть очередей, серверов, логических элементов и переключателей во время симуляции. Сущности могут нести данные, известные в программном обеспечении SimEvents как attributes.
Модели SimEvents обычно содержат по крайней мере один исходный блок, который генерирует сущности. Другой SimEvents блокирует в процессе модели сущности, которые генерирует исходный блок.
Сущности не являются тем же самым как событиями. События являются мгновенными дискретными инцидентами, которые заменяют переменную состояния, выход и/или вхождение других событий. См. События и Действия События для деталей.
Вы определяете то, что сущность показывает, на основе того, что вы моделируете. Таблица приводит представления сущности в качестве примера в различных приложениях.
Контекст примера приложения | Сущности |
---|---|
Аэропорт с очередью для доступа к взлетно-посадочной полосе | Самолеты, ожидающие доступа к взлетно-посадочной полосе |
Коммуникационная сеть | Пакеты, системы координат или сообщения, чтобы передать |
Банк лифтов | Люди, перемещающиеся в лифтах |
Ленточный конвейер для сборки частей | Части, чтобы собраться |
Операционная система компьютера | Вычислительные задачи или задания |
Одна модель может использовать сущности, чтобы представлять различные виды элементов. Например, если вы моделируете фабрику, что процессы два различных видов частей, вы можете:
Используйте два блока Entity Generator, чтобы создать два вида частей.
Используйте один блок Entity Generator и впоследствии присвойте атрибут, чтобы указать, какую часть каждая сущность представляет и другой атрибут, чтобы представлять свойство.
Сущности SimEvents являются существенно тем же самым как сообщениями Stateflow® и Simulink®.
Сущности не появляются явным образом в окне модели. Графический блок может представлять компонент, что сущности процессов, но сами сущности не имеют графического представления. Однако можно собрать информацию о сущностях с помощью Осциллографов 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 (Simulink).
Типы данных , поддержанные MATLAB® , но не поддерживаемые Simulink, не могут быть переданы между моделью Simulink и действиями события. Можно использовать эти типы данных в действиях события как локальные переменные.
Можно опционально задать структуру сущности с помощью объекта шины Simulink. Эта возможность полезна при определении комплексных структур сущности, которые должны задаваться однажды, но использоваться в нескольких местоположениях в модели. Кроме того, MATLAB Discrete-Event System и блоки Discrete Event Chart требуют, чтобы вы задали сущности, когда шина возражает. Для получения дополнительной информации об объектах шины смотрите Specify Bus Properties с Simulink. Соедините шиной Объекты (Simulink).
Блок 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 позволяет вам задать операцию рандомизации (такую как rand
MATLAB функция), чтобы создать сущности наугад времена.
Откройте библиотеку блоков SimEvents. Можно использовать браузер Simulink или ввести simevents
в окне Команды MATLAB.
Создайте модель.
От библиотеки SimEvents перетащите блок Entity Generator к новой модели.
Дважды кликните блок и установите параметр Time source на MATLAB action
.
В параметре Intergeneration time action введите вызов функции randomizer, такой как 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