Implement switch with stateflow input in simscape hydraulic system

26 views (last 30 days)
I am currently trying to implement a stateflow signal depending pump in a hydraulic system. Depending on the output signal of a stateflow operation a pump should either be turned on and pump liquid into a reservoir or turned off.
As far as I can see there is no possiblity of turning pumps on and off in simscpae fluid hydraulics. Is this correct?
Now I tried to connect the pump to or disconnect the pump from the reservoir depending on the output signal of stateflow but the library does not offer corresponding switches.
Is there another possiblity to implement the wanted behaviour or have I overlooked something?
Thank you!

Accepted Answer

Gillian Rosen
Gillian Rosen on 15 Mar 2017
Hi Alicia, 
I understand that you would like to turn a pump on or off in SimHydraulics using the output of a Stateflow chart. 
It is possible to turn a pump off or on in SimHydraulics. To do so, you will need to stop (or start) the motion of the pump's input shaft. For example, if you have a Fixed-Displacement Pump block with its S (shaft) port connected to a Rotational Velocity Source block, controlling the velocity source with a nonzero control signal will turn the pump on, and a control signal equal to zero will turn the pump off. See the image below: 
To use a Stateflow output signal for turning the pump on and off, replace the manual switch portion of the above diagram with your Stateflow chart. 
You can apply this principle with any pump and input- just turn off the input to turn off the pump. 
Alicia Roder
Alicia Roder on 16 Mar 2017
Thank you very much, Gillian. The model was very helpful and the Connections were not the problem. I am afraid, I cannot eliminate the algebraic loop since it is my control loop - the vital part of the model. Perhaps Simscape is not the tool to use for the application and I should investigate Simulink instead.

Sign in to comment.

More Answers (2)

Steve Miller
Steve Miller on 25 Mar 2017
Edited: Steve Miller on 25 Mar 2017
Hi Alicia,
You will likely encounter the same error concerning algebraic loops whether or not the pump model is implemented in Simulink or Simscape. Algebraic loop errors indicate that the model you have created means that the input to a block depends on the output of that same block. This situation in a physical system with a controller is not realistic, for there will be a delay in the feedback system.
Assuming your Stateflow model represents a control algorithm which takes input from sensors and then controls a motor, there will be discrete delays from the sensors as they are read and a time constant associated with the motor dynamics. The easiest way to eliminate this error (and make your model more realistic) is to insert a low pass filter on the signal that controls the pump.
Some examples that show how to avoid this problem:
Hydraulic Actuator with Digital Position Controller
Hydraulic Actuator Configured for HIL Testing
Drill-Ream Actuator
This example includes a Stateflow model and transfer functions to model the dynamics of the valves, which then break the algebraic loop.
I hope these examples help you get your Simscape model running properly.

Pema   Khandu
Pema Khandu on 12 May 2019
I am currently working on how to put on the pump level based on the tank level. i am using a level sensor to record the level. Hpw do i do that ?


Find more on Discrete Events and Mode Charts in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!