diff --git a/OpenHPL/Resources/Images/TainterGate-backedup.png b/OpenHPL/Resources/Images/TainterGate-backedup.png new file mode 100644 index 0000000..3728460 Binary files /dev/null and b/OpenHPL/Resources/Images/TainterGate-backedup.png differ diff --git a/OpenHPL/Resources/Images/TainterGate-freeflow.png b/OpenHPL/Resources/Images/TainterGate-freeflow.png new file mode 100644 index 0000000..ba2310c Binary files /dev/null and b/OpenHPL/Resources/Images/TainterGate-freeflow.png differ diff --git a/OpenHPL/UsersGuide/References.mo b/OpenHPL/UsersGuide/References.mo index 545d75b..f376ab7 100644 --- a/OpenHPL/UsersGuide/References.mo +++ b/OpenHPL/UsersGuide/References.mo @@ -3,6 +3,11 @@ model References "References" extends Modelica.Icons.References; annotation (Documentation(info="
Gerhard Bollrich: "Technische Hydromechanik 1 (eBook)", + Book, Beuth Verlag GmbH, 2019, + 8th Edition, ISBN 978-3-410-29170-1.
+Jonas Tveit Hinna: "Modelica model of transient pipe flow in hydraulic laboratory systems using the method of characteristics", diff --git a/OpenHPL/Waterway/TainterGate3.mo b/OpenHPL/Waterway/TainterGate3.mo new file mode 100644 index 0000000..408b856 --- /dev/null +++ b/OpenHPL/Waterway/TainterGate3.mo @@ -0,0 +1,126 @@ +within OpenHPL.Waterway; +model TainterGate3 "Model of a tainter gate based on [Bollrich2019]" + 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"; + annotation (Documentation(info=" +
+The calculation of the flow through the gate is approximated for two different regions and is based +on [Bollrich2019]. +Equation numbers oand figure numbers given below are in sync with the numbers of [Bollrich2019]. +
++ + | +
+The free flow can be calulate with: + +$$Q_A = \\mu_A \\cdot A \\cdot \\sqrt{2g\\cdot h _0} \\tag{8.24} $$ +(valid for gate opening higher than the downstream water level) + +With +
+ + | +
+$$Q_A = \\chi \\cdot \\mu_A \\cdot A \\cdot \\sqrt{2g\\cdot h_0} \\tag{8.29} $$ + +With +
+The boundary of the height of the water level \\(h_2\\) behind the gate from which on the calculation switches to the backed-up flow (8.29) can be derived from: + +$$ \\frac{h_2^*}{a} = \\frac{\\psi}{2} \\cdot \\left( \\sqrt{ 1 + \\frac{16}{\\psi\\cdot\\left(1+\\frac{\\psi\\cdot a}{h_0}\\right)}\\cdot\\frac{h_0}{a}} - 1 \\right) \\tag{8.26}$$ + +So when \\(\\frac{h_2}{a} \\geq \\frac{h_2^*}{a}\\) then we have back-up flow. +
+")); +end TainterGate3; diff --git a/OpenHPL/Waterway/package.order b/OpenHPL/Waterway/package.order index 77152e2..a006821 100644 --- a/OpenHPL/Waterway/package.order +++ b/OpenHPL/Waterway/package.order @@ -8,6 +8,7 @@ SurgeTank Reservoir TainterGate TainterGate_old +TainterGate3 RunOff_zones RunOff_zones_input VolumeFlowSource