exponenta event banner

Создание пользовательских блоков с использованием блока системы дискретных событий MATLAB

Объекты дискретной системы событий позволяют реализовать пользовательские управляемые событиями системы потока объектов на языке 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

Чтобы реализовать пользовательский блок путем назначения объекта системы с дискретным событием, выполните следующие действия.

  1. Откройте новую модель и добавьте блок системы дискретных событий MATLAB из библиотеки SimEvents.

  2. В диалоговом окне блока в списке «Создать» выберите Basic для создания объекта System на основе шаблона.

    При необходимости измените шаблон и сохраните объект System.

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

  3. Если объект System существует, в диалоговом окне block введите его имя для параметра Имя объекта Discrete-event System. Щелкните стрелку списка, чтобы увидеть доступные объекты системы с дискретным событием в текущей папке.

    Значок блока системы дискретных событий MATLAB и метки портов обновляются до значков и меток соответствующего объекта System. Предположим, что выбран объект System с именем myServer в текущей папке и создать настраиваемый блок сервера сущностей, который обслуживает сущности и выводит каждую сущность через порт вывода. Затем блок обновляется, как показано в модели.

Различные функции объектов системы MATLAB позволяют захватывать свойства и реализовывать пользовательские варианты поведения. Предоставленный шаблон упрощен, но его можно усложнить, изменив действия события, введя действия и изменив параметры. Объектно-ориентированные функции программирования объекта MATLAB System позволяют масштабировать модель и взаимодействовать с графическими функциями программирования SimEvents.

В этих разделах рассматривается полный рабочий процесс создания пользовательских блоков с различными функциональными возможностями.

Другие примеры блоков системы дискретных событий MATLAB и объектов системы дискретных событий см. в разделе Примеры SimEvents в браузере справки.

Для использования предоставленных пользовательских блоков в библиотеке SimEvents дважды щелкните на блоке «Образцы проекта». Категория «Система дискретных событий MATLAB» содержит следующие шаблоны проектирования:

ПримерПриложение

Пользовательский генератор

Реализация более сложного генератора объектов.

Пользовательский сервер

Использовать пользовательский сервер.

Очередь выбора

Выберите конкретный объект для вывода из очереди.

Дополнительные сведения см. в разделе Общие шаблоны проектирования SimEvents.

См. также

|

Связанные темы