Корпуса моделей seExampleTankFilling
в качестве примера, стоящие в очереди, чтобы быть заполненным. В примере, модели компонента SimEvents® основанное на событии поведение, в то время как модели компонента Simulink® основанная на времени динамика.
Без блока Selection Gate и Функциональных блоков Simulink, поток корпусов в Дискретной Обработке события следует за их генерацией, постановкой в очередь, обслуживанием и завершением. Для получения дополнительной информации о создании компонента SimEvents модели, смотрите, Создают Дискретную Модель событий. Чтобы узнать больше о записи действий события для той же модели, смотрите, Управляют Сущностями Используя Действия События.
Насос - модель Корпуса является компонентом Simulink, который представляет управляемый временем процесс заполнения корпуса. Когда корпус полон, он генерирует сообщение SimEvents через блок Hit Crossing, и сообщение следует за подобным потоком генерации, постановки в очередь, обслуживания и завершения. Значок обозначает переход между основанным на времени и основанным на событии поведением.
Прибытие корпуса в блоке Entity Server инициировало процесс заполнения в модели Pump-Tank. То, когда корпус полон, блок Hit Crossing маркировал Tank Full, генерирует сообщение. Прибытие этого сообщения в Процессоре в Интерфейсном компоненте инициировало Функциональный блок Simulink, чтобы выпустить Логический элемент Выбора для отъезда полного резервуара.
Затем, SimEvents и компоненты Simulink модели представлены подробно.
Часть SimEvents моделирует поток корпусов.
Блок Entity Generator генерирует корпуса.
Очереди блока Entity Queue каждый корпус в режиме метода "первым пришел - первым вышел" (FIFO).
Блок Entity Server вызывает функцию Simulink startFilling
, чтобы заполнить каждый бак. Несколько корпусов могут быть поданы одновременно.
Блок Entity Server в Интерфейсных процессах сообщение SimEvents, сгенерированное блоком Hit Crossing и, вызывает функцию Simulink, чтобы включить подсистему Логического элемента Выбора для определенного корпуса. Блок также вызывает функцию Simulink, чтобы повторно инициализировать блок Integrator для следующей заливки.
Часть Simulink моделирует управляемый временем процесс заполнения баков.
Этот компонент содержит логику, чтобы заполнить баки.
Каждый корпус имеет атрибут Capacity
. Непрерывная часть времени моделирует процесс заполнения корпуса, смоделированного блоком Integrator. Когда корпус заполнен к своей способности, подсистема Логического элемента Выбора выпускает корпус, и корпус отбывает.
Этот компонент также содержит функцию Simulink startFilling
.
Блок Hit Crossing обнаруживает завершение процесса заполнения корпуса и отправляет сообщение SimEvents относительно этого события. Это сообщение обрабатывается в Интерфейсе, который инициировал релиз корпуса Логическим элементом Выбора и реинициализацией блока Integrator для следующей заливки.
Запустите модель seExampleTankFilling
. В первом осциллографе наблюдайте процесс заливки для каждого насоса.
Во втором осциллографе наблюдайте количество грузовиков, уезжая будучи заполненными. Отображения графика, что существуют грузовики 15
, оставляя средство после их бензобаков, были заполнены.
В модели seExampleTankFilling
основанные на времени движущие силы заливки корпуса сосуществуют с основанной на событии динамикой системы потока корпуса. Когда вы запускаете симуляцию, решатель и календарь событий, оба играют роль. На главные временные шаги решателя симуляция решает обыкновенные дифференциальные уравнения, которые представляют динамику системы заливки корпуса. Решение основанной на событии динамики влечет за собой планирование и обработку событий, таких как сервисное завершение и генерация сущности, на календаре событий SimEvents. Поскольку модель использует решатель переменного шага, когда события имеют место в дискретной системе событий, решатель имеет главный временной шаг.
Чтобы узнать больше о решателях, смотрите Решатели для Дискретных Систем событий. Чтобы узнать больше о создании основанных на событии и основанных на времени моделей, смотрите Работу с SimEvents и Simulink.
Генератор сущности | Очередь сущности | Сервер сущности