Объекты дискретной системы событий позволяют реализовать пользовательские управляемые событиями системы потока объектов на языке MATLAB ®. Блок системы дискретных событий MATLAB позволяет использовать объекты системы дискретных событий для создания пользовательского блока в модели SimEvents ®. Такие дискретные системные объекты можно создавать с помощью набора методов MATLAB.
Можно создать пользовательское дискретное событие System object™ с нуля, которое:
Содержит несколько элементов хранения объектов, причем каждый элемент хранения содержит несколько объектов SimEvents и настраивает его для сортировки объектов в определенном порядке.
Содержит объект или элемент хранения, который может планировать и выполнять несколько типов событий. Эти события могут моделировать такие действия, как создание объекта, потребление, поиск, передача и временная задержка.
Может принимать объекты/сигналы в качестве входных/выходных данных, создавать объекты и сигналы в качестве выходных данных и поддерживать как встроенные типы данных, так и структурированные типы данных/типы данных шины.
Используйте панели инструментов MATLAB для вычисления и масштабирования сложных систем.
Блок системы дискретных событий MATLAB аналогичен блоку системы MATLAB со следующими отличиями:
Результирующий объект дискретного события System является экземпляром matlab.DiscreteEventSystem класс, а не matlab.System класс.
matlab.DiscreteEventSystem имеет собственный набор методов объекта System, специфичных для систем дискретных событий.
matlab.DiscreteEventSystem также наследует подмножество методов системы MATLAB. Полный список этого подмножества см. в разделе Создание системного объекта дискретного события.
Объект - это дискретный объект, обрабатываемый системой. Сущность имеет тип, а тип сущности определяет класс сущностей, которые имеют общий набор спецификаций данных и методов времени выполнения. Примеры спецификаций данных включают измерения, тип данных и сложность.

Учитывайте эти рекомендации при определении настраиваемых типов сущностей с помощью getEntityTypesImpl способ:
Можно указать несколько типов объектов. Каждый тип должен иметь уникальное имя.
Элемент хранения объектов, входной порт и выходной порт должны указывать тип объекта, с которым они работают.
Укажите или разрешите общие спецификации данных для типа сущности. Например, входной порт и выходной порт с одним типом объекта должны иметь один и тот же тип данных.
При пересылке объекта спецификации исходных и целевых данных должны быть одинаковыми в следующих случаях:
От входного порта к элементу хранения
Между элементами хранения
От элемента хранения к порту вывода
Каждый тип сущности может совместно использовать общий набор методов действий с событиями. При присвоении имен этим методам, чтобы отличить тип сущности, используйте следующее соглашение:
entitytypeAction
Например, если существует два типа объектов, car и truck, используйте такие имена методов, как:
carEntry truckEntry

Во время моделирования объект всегда занимает единицу пространства хранения. Такие пространства хранения обеспечиваются элементами хранения объектов. Объект System с дискретным событием может содержать несколько элементов хранения объектов. Используйте getEntityStorageImpl способ определения элементов хранения. Пространство хранения - это контейнер со следующими свойствами:
Тип объекта - тип объекта, обрабатываемого этим хранилищем.
Емкость - максимальное количество объектов, которые может содержать хранилище.
Тип склада - критерии сортировки объектов хранилища (FIFO, LIFO, и priority).
Имя ключа - имя атрибута, используемое в качестве имени ключа для сортировки. Это свойство применимо только в том случае, если типом склада является priority.
Направление сортировки - очереди приоритетов по возрастанию или убыванию. Это свойство применимо только в том случае, если типом склада является priority.
Можно получить доступ к любому объекту в произвольном расположении хранилища и указать события.

Порты позволяют объекту системы с дискретным событием обмениваться объектами и данными с другими блоками или компонентами модели. Можно указать переменное количество портов ввода и вывода с помощью getNumInputsImpl и getNumOutputsImpl методы. Можно также указать, какие порты являются портами объектов, и типы объектов для этих портов. Используйте getEntityPortsImpl для указания этих свойств порта.
Можно запланировать выполнение событий для объекта системы с дискретным событием. События связаны с пользовательскими действиями. Действие события определяет пользовательское поведение путем изменения значений состояния или сущности и выполнения следующего набора событий.
Методы и функции можно использовать для:
Планирование событий
Определение действий события в ответ на события
Инициализация событий
Отменить события

Объект MATLAB discrete-event System может иметь следующие типы событий:
События хранилища - эти события можно запланировать для элемента хранилища. Актер является элементом хранения.
Внутри элемента хранения можно создать новый объект.
Можно выполнить итерацию каждого объекта элемента хранения.
События сущности - можно запланировать эти события для сущности. Актер - это сущность.
Можно задержать объект.
Объект можно перенаправить из текущего хранилища в другое хранилище или порт вывода.
Существующий объект элемента хранения можно уничтожить.
Дополнительные сведения об использовании событий и действий с событиями см. в разделе Настройка поведения системы дискретных событий с использованием событий и действий с событиями.
Чтобы реализовать пользовательский блок путем назначения объекта системы с дискретным событием, выполните следующие действия.
Откройте новую модель и добавьте блок системы дискретных событий MATLAB из библиотеки SimEvents.
![]()
В диалоговом окне блока в списке «Создать» выберите Basic для создания объекта System на основе шаблона.

При необходимости измените шаблон и сохраните объект System.
Можно также изменить шаблон и определить объекты системы дискретных событий из редактора MATLAB с помощью опций вставки кода. Выбрав команду Вставить свойство (Insert Property) или Вставить метод (Insert Method), редактор MATLAB добавляет предопределенные свойства, методы, состояния, входные или выходные данные к объекту System. Эти инструменты используются для более быстрого создания и изменения системных объектов, а также для повышения точности за счет уменьшения количества ошибок ввода.
Если объект System существует, в диалоговом окне block введите его имя для параметра Имя объекта Discrete-event System. Щелкните стрелку списка, чтобы увидеть доступные объекты системы с дискретным событием в текущей папке.
Значок блока системы дискретных событий MATLAB и метки портов обновляются до значков и меток соответствующего объекта System. Предположим, что выбран объект System с именем myServer в текущей папке и создать настраиваемый блок сервера сущностей, который обслуживает сущности и выводит каждую сущность через порт вывода. Затем блок обновляется, как показано в модели.

Различные функции объектов системы MATLAB позволяют захватывать свойства и реализовывать пользовательские варианты поведения. Предоставленный шаблон упрощен, но его можно усложнить, изменив действия события, введя действия и изменив параметры. Объектно-ориентированные функции программирования объекта MATLAB System позволяют масштабировать модель и взаимодействовать с графическими функциями программирования SimEvents.
В этих разделах рассматривается полный рабочий процесс создания пользовательских блоков с различными функциональными возможностями.
Другие примеры блоков системы дискретных событий MATLAB и объектов системы дискретных событий см. в разделе Примеры SimEvents в браузере справки.
Для использования предоставленных пользовательских блоков в библиотеке SimEvents дважды щелкните на блоке «Образцы проекта». Категория «Система дискретных событий MATLAB» содержит следующие шаблоны проектирования:
| Пример | Приложение |
|---|---|
Пользовательский генератор | Реализация более сложного генератора объектов. |
| Пользовательский сервер | Использовать пользовательский сервер. |
Очередь выбора | Выберите конкретный объект для вывода из очереди. |
Дополнительные сведения см. в разделе Общие шаблоны проектирования SimEvents.
matlab.DiscreteEventSystem | matlab.System