Before I ask my question, let me explain what I'm trying to do. I want to design a simple system in Simulink with the features shown below. When I say simple is that I don't need complex and large block systems. I just want to represent a basic behavior.


  1. A way to turn the system on or off. It could be just a variable (1 or 0) to indicate whether is off or not.

  2. After turning on the system, turn a valve on during 15 seconds and then turn it off.

  3. After the 15 seconds, give the setpoint level to a water tank system. Turn water pump on.

  4. When the level setpoint is reached, turn a burner on until the pressure setpoint is reached.

  5. Always checking important variables such as pressure and level to make some kind of decision like turn a valve on or off.

I was trying to build a Matlab function in Simulink that decides what to do. For example:

enter image description here

I'm making the big mistake of thinking that I'm programming a microcontroller because I can't run loops inside this function and can't play with output variable values. I tried to use switch-case statements, while loops, etc, but it doesn't work like expected. For example, suppose I have the following matlab function in Simulink:

enter image description here

function y = fcn(u)


The line


Is never executed.

Basically I need some advice on how to do this. I'm a beginner in Matlab/Simulink. How can I effectively simulate a loop which continuously checks for inputs variables and updates output variables?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.