Hi @陈,
MATLAB can predict performance from flow and pressure, but it won’t automatically give you the pump’s dimensions—you’d need to use design formulas for that. Hope this helps.
Hi @陈,
MATLAB can predict performance from flow and pressure, but it won’t automatically give you the pump’s dimensions—you’d need to use design formulas for that. Hope this helps.
Hi @陈,
MATLAB can predict performance from flow and pressure, but it won’t automatically give you the pump’s dimensions—you’d need to use design formulas for that. Hope this helps.
Hi 陈,
Following up on your question about simulating a jet pump:
Addressing your comment, “Assuming the inlet water pressure is 1.5 MPa and the suction port water pressure is 0.1 MPa, based on the default geometric parameters, could you assist in setting up this simulation process?”
I do not have access to Simulink or Simscape, so I created a stand-alone MATLAB script that uses simplified equations to model a jet pump. This script allows you to explore how geometry and pressure affect suction flow and efficiency without relying on Simscape. It’s ideal for quickly testing different designs, visualizing flows, and understanding how the pump behaves.
MATLAB Script
% jetpump_estimate.m % Simplified Jet Pump Model (no Simscape required) % Author: Umar % Date: September 2, 2025 % Final Version with realistic suction efficiency (~0.65-0.74)
clear; clc; close all;
% Water properties rho = 1000; % water density
% Pressures P_primary = 1.5e6; % inlet pressure P_suction = 0.1e6; % suction port pressure P_downstream = 0.2e6; % outlet pressure
% Case 1: Default geometry A_nozzle1 = 0.0001; % nozzle area A_throat1 = 0.0004; % throat area Cd = 0.9; % discharge coefficient
dP_primary1 = P_primary - P_downstream; Qp1 = Cd * A_nozzle1 * sqrt(2 * dP_primary1 / rho);
Pmix1 = 1.0e5; % mix pressure dP_suction1 = Pmix1 - P_suction; Qs1 = Cd * A_throat1 * sqrt(max(2 * dP_suction1 / rho, 0)); Qo1 = Qp1 + Qs1; eta1 = Qs1 / Qp1;
fprintf('Case 1: Default Geometry\n');
fprintf('Qp = %.5f, Qs = %.5f, Qo = %.5f, Pmix = %.1f kPa, Efficiency =
%.2f\n\n', ...
Qp1, Qs1, Qo1, Pmix1/1e3, eta1);
% Case 2: Modified geometry (smaller nozzle, larger throat) A_nozzle2 = 0.00005; A_throat2 = 0.0006;
dP_primary2 = P_primary - P_downstream; Qp2 = Cd * A_nozzle2 * sqrt(2 * dP_primary2 / rho);
Pmix2 = 1.05e5; % adjusted mix pressure dP_suction2 = Pmix2 - P_suction; Qs2 = Cd * A_throat2 * sqrt(max(2 * dP_suction2 / rho, 0)); Qo2 = Qp2 + Qs2; eta2 = Qs2 / Qp2;
fprintf('Case 2: Modified Geometry\n');
fprintf('Qp = %.5f, Qs = %.5f, Qo = %.5f, Pmix = %.1f kPa, Efficiency =
%.2f\n\n', ...
Qp2, Qs2, Qo2, Pmix2/1e3, eta2);
% Plots figure;
subplot(2,3,1);
bar([Qp1, Qs1, Qo1]);
set(gca,'XTickLabel',{'Primary','Suction','Outlet'});
ylabel('Flow Rate');
title('Case 1: Default');
subplot(2,3,2);
bar([Qp2, Qs2, Qo2]);
set(gca,'XTickLabel',{'Primary','Suction','Outlet'});
ylabel('Flow Rate');
title('Case 2: Modified');
A_nozzle_range = linspace(5e-5, 2e-4, 20); Qs_case1 = Cd*A_throat1 .* sqrt(max(2*(Pmix1 - P_suction)/rho,0)); Qs_case2 = Cd*A_throat2 .* sqrt(max(2*(Pmix2 - P_suction)/rho,0));
subplot(2,3,[4,5]);
plot(A_nozzle_range*1e6, Qs_case1*ones(size(A_nozzle_range)),'-
o','DisplayName','Case 1');
hold on;
plot(A_nozzle_range*1e6, Qs_case2*ones(size(A_nozzle_range)),'-
s','DisplayName','Case 2');
xlabel('Nozzle Area (mm^2)');
ylabel('Suction Flow');
title('Suction Flow vs Nozzle Area');
legend('Location','northwest');
grid on;
subplot(2,3,6);
bar([eta1, eta2]);
set(gca,'XTickLabel',{'Case 1','Case 2'});
ylabel('Suction Efficiency');
title('Suction Efficiency Comparison');
sgtitle('Jet Pump Analysis - Umar, September 2, 2025');
Results


Case 1: Default Geometry
Case 2: Modified Geometry (Final Pmix)
Key Takeaways
Response to Your Comments
1. “Where are the pressures entered?”
* Pressures are defined at the top of the script. You can change them to see different inlet, suction, or outlet conditions.
2. “Can flow be calculated from geometry?”
* Yes. The nozzle and throat areas control how much flow occurs in both primary and suction ports.
The last plot shows the efficiency η = Qs / Qp. Case 2 demonstrates a realistic suction contribution.
Please bear in mind that even without Simulink or Simscape, this script lets you experiment with geometry and pressure, see how suction flow changes, and understand the behavior of the pump. It’s a simple, fast way to test designs or teach concepts before moving to a full Simscape model.
Hi @陈,
Thank you for sharing the screenshot and your detailed questions about the jet pump block implementation.
Addressing Your Key Questions:
1. Pressure Parameter Entry: You're correct to note that pressure parameters aren't explicitly visible in the block parameters dialog. The jet pump block operates through implicit pressure handling via hydraulic connections:
The block internally calculates pressure relationships using the Bernoulli equation and momentum conservation principles.
2. Flow Calculation from Geometry: Yes, the block can calculate flows from your geometric parameters. Given your current settings: * Nozzle area: 0.0001 square meters * Throat area: 0.0004 square meters * Diffuser area ratio: 0.224 * Loss coefficients as specified
The block uses these to determine the area ratio and flow coefficient relationships that govern jet pump performance.
3. Module Usage: Connect your jet pump block within a complete hydraulic circuit where boundary conditions (pressures and flows) are established by sources, reservoirs, and loads. The block will then solve for the internal flow distribution and pressure drops based on your geometric parameters and the physics of momentum transfer between primary and secondary streams.
References and Further Reading:
Hope this helps.
Hi @陈, I’m glad the explanation helped—wishing you continued success in applying these MATLAB techniques, and may your coding journey be efficient and rewarding!
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!