This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Modeling Hybrid Systems - Tank Filling


This example shows a hybrid system with both continuous time and discrete event sections. The discrete event part models tanks, represented by entities, which are being queued and need to be filled up. Each tank has a "Capacity" attribute. The continuous time part models the process of filling up a tank, modeled by an Integrator. When a tank is filled to capacity, this event can be detected by a Hit Crossing block, which will generate a message corresponding to this event. The generated message will trigger the server to release the tank.

Structure of the Model

The model includes the following components:

  • Tank Generator: Generates tanks periodically with each tank having an arbitrarily assigned Capacity attribute.

  • Waiting Queue: Queues tanks waiting to be filled

  • Fill This Tank: Serves tanks and calls into the Simulink Function startFilling to pass the tank's capacity attribute to the time-based section of the model.

  • Tank Filling: Models the process of filling each tank up to capacity

  • Sensor: Detects when the amount filled in the tank has reached capacity and when this happens, sends a message to the discrete-event section of the model. Sensor serves as a bridge between the time-based section and even-based section.

  • Processor: Receives message generated from the Sensor and decides which tank to be released from the Server. It then calls the Simulink Function named release to generate a release message for a specific tank.

  • Selection Gate: Receives a release message, and in response, opens the gate to let the specific tank through.

  • Configure Demo: Sets the number of gas pumps in the gas station and turns on/off of the animation. To show the animation, please use a gas pump number between 1 and 20.

Domain Crossings Between Time Domain and Event Domain

SimEvents automatically handles any exchange of data across the time and event domains by automatically inserting gateways where needed. These positions are annotated in the model using E. In this model, a gateway has been inserted at the input port of the Entity Queue block that is connected to the Hit Crossing block since it receives a message from the time domain section of the model.


The Scope block labeled "Fill Process" and "Trucks leaving after fill" shows the results of the simulation.

If Show Animation check box is selected in Configure Demo, an animation window appears for visualizing the demo. A screenshot of the animation with four gas pumps is shown below:

Was this topic helpful?