How to plot pump and system curve based on the hydraulic model in Simscape / Simulink?

40 views (last 30 days)
DB on 22 May 2023
Answered: Yifeng Tang on 8 Aug 2023
I have modeled a centrifugal pump system with frictionous pipes and a control valve. I want to plot the system curve to see where the intersection with the pump curve lies for the centrifugal pump. An example of this is in the paper "Static head control in pumping system using PID controller" by Hadeel Mzahem Mjbel, 2022:
DB on 23 May 2023
This trick seems to give good values, thanks! However, is there a way for me to export the interpolated pump curve from the simscape block to Matlab in order overlap the two plots?
Here are the pump plots. I want to export the head curve, efficiency curve and power curve to workspace and overlap it with the gained system head curve.
Yifeng Tang on 25 May 2023
If you have the curve plotted into a figure, or subfigure, you should be able to click on the figure and use MATLAB script to get a handle of the axes. The Children of the axes should include the curves plotted and its data content. Something like this:
plot([0:0.1:2],sin(pi*[0:0.1:2]));
ax1 = gca;
xData = ax1.Children.XData
yData = ax1.Children.YData

Yifeng Tang on 8 Aug 2023
To summarize the discussion from the comments section:
The pump curves can be generated from the pump blocks in Simscape Fluids. Examples: https://www.mathworks.com/help/hydro/ref/centrifugalpumpil.html, https://www.mathworks.com/help/hydro/ref/centrifugalpumptl.html. See the "Visualizing the Pump Curve" section of each documentation page.
The load curve can be generated by using an ideal source (flow or pressure) to drive fluids through the load and record the flow and pressure values. Head and pressure drop can be converted to each other using H=dp/(rho*g).
To overlap the pump characteristics, get a figure handle of the pump curve figure, and then plot the load onto the same figure. If desired, one can also grab the data from an existing figure using code similar to this:
plot([0:0.1:2],sin(pi*[0:0.1:2]));
ax1 = gca;
xData = ax1.Children.XData
yData = ax1.Children.YData

Communities

More Answers in the  Power Electronics Control

Categories

Find more on Upgrading Hydraulic Models to Use Isothermal Liquid Blocks in Help Center and File Exchange

R2022b

Community Treasure Hunt

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

Start Hunting!