forked from OpenSimHub/OpenHPL
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Based on HEC-RAS calculations as shown in https://www.hec.usace.army.mil/confluence/rasdocs/ras1dtechref/latest/modeling-gated-spillways-weirs-and-drop-structures/hydraulic-computations-through-gated-spillways/radial-gates
- Loading branch information
Showing
7 changed files
with
171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
within OpenHPL.Examples; | ||
model TainterGate "Usage of the tainter gate" | ||
extends Modelica.Icons.Example; | ||
inner Data data(SteadyState = true, Vdot_0 = 75) annotation ( | ||
Placement(transformation(extent = {{-100, 80}, {-80, 100}}))); | ||
Modelica.Blocks.Sources.Ramp gateOpening( | ||
height=5, | ||
duration=1000, | ||
offset=0.1, | ||
startTime=500) annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); | ||
Waterway.Reservoir upstream( | ||
h_0=5, | ||
constantLevel=true, | ||
L=10, | ||
W=10) annotation (Placement(transformation(extent={{-40,-20},{-20,0}}))); | ||
Waterway.Reservoir downstream( | ||
h_0=4, | ||
constantLevel=false, | ||
useLevel=true, | ||
L=10, | ||
W=10) annotation (Placement(transformation( | ||
extent={{-10,10},{10,-10}}, | ||
rotation=180, | ||
origin={30,-10}))); | ||
Waterway.TainterGate tainterGate(W=16.5, T=5.6) annotation (Placement(transformation(extent={{-10,-20},{10,0}}))); | ||
Modelica.Blocks.Sources.Ramp level( | ||
height=4.89, | ||
duration=1000, | ||
offset=0.1, | ||
startTime=500) annotation (Placement(transformation(extent={{80,-20},{60,0}}))); | ||
equation | ||
connect(upstream.o, tainterGate.i) annotation (Line(points={{-20,-10},{-10,-10}}, color={0,128,255})); | ||
connect(tainterGate.o, downstream.o) annotation (Line(points={{10,-10},{20,-10}}, color={0,128,255})); | ||
connect(gateOpening.y, tainterGate.B) annotation (Line(points={{-19,40},{0,40},{0,2}}, color={0,0,127})); | ||
connect(level.y, downstream.level) annotation (Line(points={{59,-10},{50,-10},{50,-4},{42,-4}}, color={0,0,127})); | ||
annotation ( | ||
experiment(StopTime=2000, Interval=0.4)); | ||
end TainterGate; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,4 +7,5 @@ DetailedGen | |
DetailedGenFrancis | ||
PowerSystemSimple | ||
VolumeFlowSource | ||
TainterGate | ||
WithOpenIPSL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
within OpenHPL.Icons; | ||
partial class TainterGate "Icon of a tainter gate" | ||
annotation (Icon(graphics={ | ||
Rectangle( | ||
extent={{-100,-2},{-46,-72}}, | ||
lineColor={28,108,200}, | ||
fillColor={28,108,200}, | ||
fillPattern=FillPattern.Solid), | ||
Ellipse( | ||
extent={{-60,140},{220,-140}}, | ||
lineColor={135,135,135}, | ||
startAngle=155, | ||
endAngle=196, | ||
fillColor={175,175,175}, | ||
fillPattern=FillPattern.Solid), | ||
Rectangle( | ||
extent={{-100,-72},{100,-80}}, | ||
lineColor={0,0,0}, | ||
fillColor={215,215,215}, | ||
fillPattern=FillPattern.Forward), | ||
Rectangle( | ||
extent={{-46,-60},{100,-72}}, | ||
lineColor={28,108,200}, | ||
fillColor={28,108,200}, | ||
fillPattern=FillPattern.Solid), | ||
Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}), | ||
Text( | ||
lineColor={28,108,200}, | ||
extent={{-90,100},{90,60}}, | ||
textString="%name", | ||
textStyle={TextStyle.Bold}), | ||
Ellipse( | ||
extent={{-2,-4},{2,-8}}, | ||
lineColor={0,0,0}, | ||
fillColor={0,0,0}, | ||
fillPattern=FillPattern.Solid), | ||
Line( | ||
points={{0,-6},{0,100}}, | ||
color={0,0,0}, | ||
pattern=LinePattern.Dash)})); | ||
end TainterGate; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,3 +14,4 @@ Pylon | |
RunOff | ||
Method | ||
Governor | ||
TainterGate |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
within OpenHPL.Waterway; | ||
model TainterGate "Model of a tainter gate (HEC-RAS)" | ||
outer Data data "Using standard class with system parameters"; | ||
extends Icons.TainterGate; | ||
extends OpenHPL.Interfaces.ContactPort; | ||
|
||
parameter SI.Height W "Width of the gated spillway" | ||
annotation (Dialog(group="Geometry")); | ||
parameter SI.Height T "Trunnion height (from spillway crest to trunnion pivot point)" | ||
annotation (Dialog(group="Geometry")); | ||
parameter Real Cd = 0.7 "Discharge coefficient (typically ranges from 0.6 - 0.8)" | ||
annotation (Dialog(group="Coefficients")); | ||
parameter Real TE = 0.16 "Trunnion height exponent, typically about 0.16" | ||
annotation (Dialog(group="Coefficients")); | ||
parameter Real BE = 0.72 "Gate opening exponent, typically about 0.72" | ||
annotation (Dialog(group="Coefficients")); | ||
SI.Length H = h_i "Upstream Energy Head above the spillway crest"; | ||
parameter Real HE = 0.62 "Head exponent, typically about 0.62" | ||
annotation (Dialog(group="Coefficients")); | ||
SI.Height h_i "Inlet water level"; | ||
SI.Height h_o "Outlet water level"; | ||
SI.VolumeFlowRate Vdot "Volume flow rate through the gate"; | ||
Real H_ratio = h_o/h_i "Ratio of outlet to inlet height"; | ||
|
||
Modelica.Blocks.Interfaces.RealInput B "Height of gate opening [m]" annotation (Placement(transformation( | ||
extent={{-20,-20},{20,20}}, | ||
rotation=270, | ||
origin={0,120}))); | ||
protected | ||
SI.VolumeFlowRate Vdot_free "Free base volume flow rate through the gate"; | ||
SI.VolumeFlowRate Vdot_partial "Partially submerged base volume flow rate through the gate"; | ||
SI.VolumeFlowRate Vdot_full "Fully submerged base volume flow rate through the gate"; | ||
Real Cdx "Discharge coefficient tuned for a smooth transition between partially and fully submerged"; | ||
|
||
equation | ||
Vdot_free = sqrt(2*data.g)* W * T^TE * B^BE * h_i^HE "Free flow condition"; | ||
Vdot_partial = sqrt(2*data.g)* W * T^TE * B^BE * (3*(h_i-h_o))^HE "Partially submerged"; | ||
Vdot_full = sqrt(2*data.g*(h_i-h_o))* W * B "Fully submerged"; | ||
Cdx = Cd * Vdot_partial/Vdot_full; | ||
if H_ratio <= 0.67 then | ||
Vdot=Cd * Vdot_free "Free flow condition"; | ||
elseif H_ratio <= 0.8 then | ||
Vdot= Cd * Vdot_partial "Partially submerged"; | ||
else | ||
Vdot= Cdx * Vdot_full "Fully submerged"; | ||
end if; | ||
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="<html> | ||
<h4>Background</h4> | ||
<p> | ||
The Tainter Gate (also known as Radial Gate) is modelled based on a simplified calculation | ||
as used in the <a href=\"https://en.wikipedia.org/wiki/HEC-RAS\">HEC-RAS</a> simulation software. | ||
More specifically the following documentation is taken from the | ||
<a href=\"https://www.hec.usace.army.mil/confluence/rasdocs/ras1dtechref/latest\"> | ||
HEC-RAS Hydraulic Reference Manual</a> on <a href=\"https://www.hec.usace.army.mil/confluence/rasdocs/ras1dtechref/latest/modeling-gated-spillways-weirs-and-drop-structures/hydraulic-computations-through-gated-spillways/radial-gates\">Radial Gates</a>. | ||
</p> | ||
<p> | ||
<figure> | ||
<img src=\"modelica://OpenHPL/Resources/Images/TainterGate.png\"/> | ||
<figcaption>Example Radial Gate with an Ogee Spillway Crest [HEC-RAS].</figcaption> | ||
</figure> | ||
</p> | ||
<h4>Implementation</h4> | ||
<p> | ||
The calculation of the flow through the gate is approximated for three different regions: | ||
</p> | ||
<h5>Free flowing</h5> | ||
<p> | ||
$$Q = C_d W T^{T_E} B^{B_E} H^{H_E} \\sqrt{2g} \\tag{1} $$ | ||
(valid for gate opening higher than the downstream water level) | ||
</p> | ||
<h5>Partially submerged</h5> | ||
<p> | ||
$$Q = C_d W T^{T_E} B^{B_E} (3H)^{H_E} \\sqrt{2g} \\tag{2} $$ | ||
(valid for the region where the ratio of downstream water level to upstream water level (<code>H_ratio = h_o/h_i</code>) is between 0.67 and 0.8) | ||
</p> | ||
<h5>Fully submerged</h5> | ||
<p> | ||
$$Q = C_{dx} A \\sqrt{2gH} \\tag{3}$$ | ||
(otherwise with <code>Cdx</code> being a discharge coefficient tuned for a smooth transition between partially and fully submerged) | ||
</p> | ||
<p> | ||
<strong>Note:</strong> | ||
The use of <code>Cdx</code> is different to the implementaion as done in HEC-RAS. This was done in order to have a smoother transition from the partially to fully submerged region. | ||
</p> | ||
</html>")); | ||
end TainterGate; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ Pipe | |
PenstockKP | ||
SurgeTank | ||
Reservoir | ||
TainterGate | ||
RunOff_zones | ||
RunOff_zones_input | ||
VolumeFlowSource | ||
|