В дискретно-событийной симуляции событие является наблюдением за мгновенным инцидентом, который может заменить переменную состояния, вывод и/или вхождение других событий. Можно создать действия события, чтобы произойти, когда сущности изменяют состояние, например, когда сущность выходит из блока. Для списка блоков и действий они могут иметь, видеть Действия Устройства хранения данных.
Календарь событий отслеживает предстоящие события для модели во время дискретно-событийной симуляции. Для получения дополнительной информации о календаре событий смотрите Календарь событий.
Ассистент действий события помогает вам создать повторенную последовательность действий события или действий случайного события согласно статистическому распределению. Для получения дополнительной информации об ассистенте действий события смотрите Ассистент Действий События по Событиям.
Действия события Define с вкладкой Event actions блока. Это возможные действия, для которых можно создать события.
Генератор сущности | Очередь сущности | Сервер сущности | Терминатор сущности | Получатель ресурса | Создатель пакета сущности |
---|---|---|---|---|---|
Генерация сущности | Запись сущности в блок очереди | Запись сущности в блок сервера | Запись сущности в блок терминатора строки | Запись сущности в блок получателя | Запись сущности, чтобы обработать блок в пакетном режиме |
Выход сущности из блока | Выход сущности из блока | Сервисное завершение сущности | Нет данных | Выход сущности из блока получателя | Генерация пакета сущности |
Нет данных | Сущность блокируется | Выход сущности из блока | Нет данных | Сущность блокируется | Выход сущности из блока |
Нет данных | Нет данных | Сущность блокируется | Нет данных | Нет данных | Сущность блокируется |
Нет данных | Нет данных | Сущность вытесняется | Нет данных | Нет данных | Нет данных |
В действиях события можно также изменить атрибуты сущности (entityName.attributeName), приоритеты сущности (sys.entity.priority
) и идентификаторы сущности (sys.entity.id
). Однако вы не можете изменить эти атрибуты сущности или ее системные свойства (entitySys
) для выходных действий ни в каком блоке. Попытка изменить эти значения вызывает ошибку при симуляции.
Пример seExampleTankFilling
имеет два заданные действия события в блоках Сервера Генератора и Сущности Сущности. Этот пример воссоздает действие события в блоке Entity Server.
В новой модели, от библиотеки SimEvents®, перетаскивают Сервер Сущности и Функциональные блоки Simulink.
В блоке Entity Server:
Кликните по вкладке Entity actions.
Чтобы создать действие с записью сущности, нажмите Entry.
В разделе Entry action введите:
startFilling(entity.Capacity);
Эта команда вызывает функцию, startFilling
.
Входящая строка к значку блока Entity Server обновляет со значком действия события ({...}
), указывающий, что блок задает действие события.
В Функциональном блоке Simulink:
В Триггерном Порте введите startFilling
в параметр Function name.
Притяните блок Inport и переименуйте его к прописной букве.
Переименуйте вход u к capacity
и соедините его с прописной буквой.
Удалите y вывод.
Притяните блок MATLAB function и блок Outport.
В функции MATLAB введите код:
function y = toggle() %#codegen persistent u if isempty(u) u = -1; end if u == -1 u = 1; else u = -1; end y = u;
Соедините y вывод блока MATLAB function к блоку Outport и переименуйте блок Outport, чтобы сбросить.
Вы теперь задали функцию startFilling
для действия события. Чтобы опционально визуализировать связь между блоком Entity Server и Функциональным блоком Simulink, в Редакторе, выбирают Display> Function Connectors.
Составной создатель сущности | Составной разделитель сущности | Дискретная схема событий | Логический элемент сущности | Генератор сущности | Входной переключатель сущности | Многоадресная передача сущности | Переключатель сущности Вывод | Очередь сущности | Репликатор сущности | Сервер сущности | Терминатор сущности | MATLAB дискретная система событий | Многоадресно передайте принимают очередь | Получатель ресурса | Пул ресурсов | Ресурс Releaser