Сущности в модели SimEvents

Сущности являются дискретными элементами, представляющими интерес в дискретно-событийной симуляции. По определению эти элементы называются 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».

Создание сущностей в модели SimEvents

Блок Entity Generator может использоваться для генерации сущностей. По умолчанию блок создает сущности на основе времени. Можно изменить параметр Time Source, чтобы выбрать источник времени для генерации сущности. Вы можете создать основанные на времени сущности с помощью:

Создание основанных на времени сущностей

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

  1. Откройте библиотеку блоков SimEvents. Вы можете использовать браузер Simulink или ввести simevents в Командном Окне MATLAB.

  2. Создайте новую модель.

  3. Из библиотеки SimEvents перетащите Entity Generator блок в новую модель.

  4. Из библиотеки SimEvents перетащите Entity Queue блок в новую модель.

    • Подключите Entity Generator блок к входу Entity Queue.

    • В блоке Entity Queue выберите Number of entities departed, d.

  5. Из библиотеки Simulink Sinks перетащите блок Scope в новую модель. Подключите блок Scope к порту d блока Entity Queue.

  6. Из библиотеки SimEvents перетащите блок Entity Terminator в новую модель. Соедините выход блока Entity Queue с входом блока Entity Terminator.

Model that generates, queues, and terminates entities

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

10 entities depart the queue at the end of the simulation

Примечание

Вы не можете соединить возможности с линией SimEvents, что обозначено толстой линией двойной стрелы.

Создание рандомизированных сущностей

Используйте блок Entity Generation для создания основанных на времени сущностей. Эта Entity Generation позволяет вам задать операцию рандомизации (такую как MATLAB rand функция) для создания сущностей в случайные моменты времени.

  1. Откройте библиотеку блоков SimEvents. Вы можете использовать браузер Simulink или ввести simevents в Командном Окне MATLAB.

  2. Создайте модель.

  3. Из библиотеки SimEvents перетащите Entity Generator блок в новую модель.

    1. Дважды кликните блок и установите параметр Time source равным MATLAB action.

    2. В параметре Intergeneration time action введите вызов функции рандомизатора, такой как rand. Для примера:

      dt = rand(1,1);

      Entity Generator dialog box

  4. Из библиотеки SimEvents перетащите Entity Queue блок в новую модель.

    • Подключите Entity Generator блок к входу Entity Queue

    • В блоке Entity Queue выберите Number of entities departed, d.

  5. Из библиотеки Simulink Sinks перетащите блок Scope в новую модель. Подключите блок Scope к порту d блока Entity Queue.

  6. Из библиотеки SimEvents перетащите блок Entity Terminator в новую модель. Соедините выход блока Entity Queue с входом блока Entity Terminator.

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

Entities depart the queue in random time intervals

См. также

| | | | | | | | |

Похожие темы