Skip to content

Commit

Permalink
Old Tainter Gate implementation based on Troch
Browse files Browse the repository at this point in the history
  • Loading branch information
dietmarw committed Jun 28, 2024
1 parent c90bea0 commit e2d2a77
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
37 changes: 37 additions & 0 deletions OpenHPL/Waterway/TainterGate_old.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
within OpenHPL.Waterway;
model TainterGate_old "Model of a tainter gate (no friction considered)"
outer Data data "Using standard class with system parameters";
extends Icons.TainterGate;
extends OpenHPL.Interfaces.ContactPort;

// parameter SI.Height b_max "Maxium opening of the gate";
// parameter SI.Height b_min = 0 "Minimum opening of the gate";
parameter SI.Length r "Radius of the gate arm";
parameter SI.Height a "Height of the hinge above gate bottom";
parameter SI.Height b "Width of the gate";
parameter Real Cc_[3] = {1,2,3} "Polinomial factors of contraction coefficient Cc {linear,quadratic,cube}";
SI.Height h_i "Inlet water level";
SI.Height h_o "Outlet water level";
Real alpha = h_o/(Cc*u);
Real beta = h_i/h_o;
Real gamma = (h_o/(Cc*u))^2 - (h_o/h_i)^2 "Loss factor";
Real psi = (1/beta)^2 - 1 + (gamma^2*(beta-1))/(psi_x1 + psi_x2) "Head-loss parameter";
Real psi_ = (1/beta)^2 - 1 + (gamma^2*(beta-1))/(psi_x1 - psi_x2) "Neg Head-loss parameter";
Real psi_x1 = gamma*beta-2*(alpha-1);
Real psi_x2 = sqrt((2*(alpha-1)-gamma*beta)^2 - gamma^2*(beta^2-1));

SI.Angle theta = C.pi/2 - asin((a-u)/r) "Flow angle of the gate";
Real Cc = Cc_[3]*theta^3 + Cc_[2]*theta^2 + Cc_[1]*theta + 1.002282138151680 "Contraction coefficient";
SI.VolumeFlowRate Vdot,Vdot_gamma "Volume flow rate through the gate";

Modelica.Blocks.Interfaces.RealInput u "Opening of the gate [m]" annotation (Placement(transformation(
extent={{-20,-20},{20,20}},
rotation=270,
origin={0,120})));
equation
Vdot = b*h_o * sqrt((2*data.g*max(0,(h_i - h_o)))/(psi + 1 - (h_o/h_i)^2)) "Calculated flow";
Vdot_gamma = b*h_o * sqrt((2*data.g*max(0,(h_i - h_o)))/(gamma + 1 - (h_o/h_i)^2)) "Calculated flow";
mdot = Vdot * data.rho "Mass flow rate through the gate";
i.p = h_i * data.g * data.rho + data.p_a "Inlet water pressure";
o.p = h_o * data.g * data.rho + data.p_a "Outlet water pressure";
end TainterGate_old;
1 change: 1 addition & 0 deletions OpenHPL/Waterway/package.order
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ PenstockKP
SurgeTank
Reservoir
TainterGate
TainterGate_old
RunOff_zones
RunOff_zones_input
VolumeFlowSource
Expand Down

0 comments on commit e2d2a77

Please sign in to comment.