![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173321/image.png)
Implement switch with stateflow input in simscape hydraulic system
4 次查看(过去 30 天)
显示 更早的评论
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!
0 个评论
采纳的回答
Gillian Rosen
2017-3-15
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173321/image.png)
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.
3 个评论
Gillian Rosen
2017-3-15
Hi Alicia,
The current error is not related to Simscape run-time parameters- it is related to your Stateflow chart. It seems that your chart is part of an algebraic loop, which is a situation that can arise where the value of the input to a block directly controls the value of the output. More information about algebraic loops (and how to resolve them) can be found at the following links:
Also, please note that the image above is not a full model. It was meant to show only the part of the model that would turn the pump on and off, and I apologize if this was confusing. To make this a valid model, please connect a Hydraulic Reference block between the P and T ports of the pump block.
更多回答(2 个)
Steve Miller
2017-3-25
编辑:Steve Miller
2017-3-25
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
See the transport delay block on the controller output. http://www.mathworks.com/help/releases/R2017a/physmod/simscape/examples/hydraulic-actuator-with-digital-position-controller.html
Hydraulic Actuator Configured for HIL Testing
See the Zero-Order Hold blocks representing a discrete delay. http://www.mathworks.com/help/releases/R2017a/physmod/simscape/examples/hydraulic-actuator-configured-for-hil-testing.html
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.
--Steve
0 个评论
Pema Khandu
2019-5-12
Hi
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 ?
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Discrete Events and Mode Charts 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!