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