События и действия события

В дискретно-событийной симуляции событие является наблюдением за мгновенным инцидентом, который может заменить переменную состояния, выход и/или вхождение других событий. Можно создать действия события, чтобы произойти, когда сущности изменяют состояние, например, когда сущность выходит из блока. Для списка блоков и действий они могут иметь, видеть Действия Устройства хранения данных.

Календарь событий отслеживает предстоящие события для модели во время дискретно-событийной симуляции. Для получения дополнительной информации о календаре событий смотрите Календарь событий.

Ассистент действий события помогает вам создать повторенную последовательность действий события или действий случайного события согласно статистическому распределению. Для получения дополнительной информации об ассистенте действий события смотрите Ассистент Действий События по Событиям.

Создайте действия события

Действия события Define с вкладкой Event actions блока. Это возможные действия, для которых можно создать события.

Генератор сущностиОчередь сущностиСервер сущностиТерминатор сущностиПолучатель ресурсаСоздатель пакета сущности

Генерация сущности

Запись сущности в блок очереди

Запись сущности в блок сервера

Запись сущности в блок терминатора строки

Запись сущности в блок получателя

Запись сущности, чтобы обработать блок в пакетном режиме

Выход сущности из блока

Выход сущности из блока

Сервисное завершение сущности

Нет данных

Выход сущности из блока получателя

Генерация пакета сущности

Нет данных

Сущность блокируется

Выход сущности из блока

Нет данных

Сущность блокируется

Выход сущности из блока

Нет данных

Нет данных

Сущность блокируется

Нет данных

Нет данных

Сущность блокируется

Нет данных

Нет данных

Сущность вытесняется

Нет данных

Нет данных

Нет данных

В действиях события можно также изменить атрибуты сущности (entityName.attributeName), приоритеты сущности (sys.entity.priority), и идентификаторы сущности (sys.entity.id). Однако вы не можете изменить эти атрибуты сущности или ее системные свойства (entitySys) для выходных действий в любом блоке. Попытка изменить эти значения вызывает ошибку при симуляции.

seExampleTankFilling пример имеет два заданные действия события в блоках Entity Server и Entity Generator. Этот пример воссоздает действие события в блоке Entity Server.

  1. В новой модели, от библиотеки SimEvents®, перетаскивают блоки Simulink Function и Entity Server.

  2. В блоке Entity Server:

    • Кликните по вкладке Entity actions.

    • Чтобы создать действие с записью сущности, нажмите Entry.

    • В разделе Entry action введите:

      startFilling(entity.Capacity);

      Эта команда вызывает функцию, startFilling.

      Входящая линия к значку блока Entity Server обновляется со значком действия события ({...}) указание, что блок задает действие события.

  3. В блоке Simulink Function:

    1. В Trigger Port введите startFilling в параметре Function name.

    2. Притяните блок Inport и переименуйте его к cap.

    3. Переименуйте вход u к capacity и соедините его с cap.

    4. Удалите y выход.

    5. Притяните блок MATLAB Function и блок Outport.

    6. В MATLAB Function введите код:

      function y = toggle()
      %#codegen
      persistent u
      
      if isempty(u)
          u = -1;
      end
      
      if u == -1
          u = 1;
      else
          u = -1;
      end
      
      y = u;
    7. Соедините y выход блока MATLAB Function с блоком Outport и переименуйте блок Outport к reset.

    Вы теперь задали startFilling функция для действия события. Чтобы опционально визуализировать связь между блоком Entity Server и блоком Simulink Function, в Редакторе, выбирают Display> Function Connectors.

Смотрите также

| | | | | | | | | | | | | | | |

Связанные примеры

Больше о