modelOpenChannel
Extends from OpenHPL.Icons.OpenChannel (Open channel icon), OpenHPL.Interfaces.TwoContacts (Model of two connectors).
Information
Open Channel Model
Model for open channels (rivers, canals) suitable for run-of-river hydropower plants. The channel connects an upstream and downstream component via standard Contact connectors (pressure and mass flow rate).
Geometry
The channel is defined by its length L, width W, and
the difference in bed elevations between inlet and outlet H.
The bed slope is computed as H/L.
Governing Equations
The model is based on the momentum balance for incompressible flow:
$$ L\,\frac{\mathrm{d}\dot{m}}{\mathrm{d}t} = (p_\mathrm{i} - p_\mathrm{o})\,A + \rho\,g\,\Delta H\,A - F_\mathrm{f} $$
where A = W · h is the cross-sectional flow area and Ff is the friction force.
Friction
Friction is computed using Manning's equation adapted for a rectangular cross-section:
$$ F_\mathrm{f} = \rho\,g\,n^2\,v\,|v|\,L\,\frac{(W + 2h)^{4/3}}{(W\,h)^{4/3}} $$
where n is Manning's roughness coefficient.
Modes of Operation
- Lumped mode (default): The channel is treated as a single control volume. The flow rate responds to the pressure difference between inlet and outlet connectors, gravity, and friction.
- Sectional mode (
useSections = true): The channel is divided intoNsections. Each section maintains its own water depth via a continuity equation for the free surface. Inter-section flows are computed using Manning's equation with the local water surface slope. This captures water level variations along the channel.
Connectors
Inlet and outlet connectors carry pressure and mass flow rate.
Connect upstream to the inlet i and downstream to the outlet o.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Geometry | |||
| SI.Length | L | 5000 | Channel length |
| SI.Length | W | 10 | Channel width |
| SI.Length | H | 10 | Bed elevation difference between inlet and outlet (positive = downhill inlet to outlet) |
| Friction | |||
| Real | m_manning | 33 | Manning M (Strickler) coefficient M=1/n (typically 60-110 for steel, 30-60 for rock tunnels) |
| Boolean | use_n | true | If true, use Mannings coefficient n (=1/M) instead of Manning's M (Strickler) |
| Real | n_manning | 0.03 | Manning's n coefficient (typically 0.009-0.017 for steel/concrete, 0.017-0.030 for rock tunnels) |
| Discretization | |||
| Boolean | useSections | false | If true, discretize the channel into N sections with varying water levels |
| Integer | N | 10 | Number of sections (only used when useSections = true) |
| Initialization | |||
| Boolean | SteadyState | data.SteadyState | If true, starts in steady state |
| SI.VolumeFlowRate | Vdot_0 | data.Vdot_0 | Initial volume flow rate |
| SI.Height | h_0 | 2 | Initial water depth |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Contact_i | i (from TwoContacts) | Inlet contact (positive design flow direction is from i to o) | |
| Contact_o | o (from TwoContacts) | Outlet contact (positive design flow direction is from i to o) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Data | data | Using standard data set | |
| SI.MassFlowRate | mdot | Mass flow rate through the channel | |
| SI.VolumeFlowRate | Vdot | Volume flow rate | |
| SI.Velocity | v | Average water velocity | |
| SI.Height | h_avg | Average water depth in the channel | |
| SI.Position | h_avg_abs | h_avg + o.elevation.z | Absolute average water level |
| SI.Pressure | p_i | Inlet pressure | |
| SI.Pressure | p_o | Outlet pressure | |
| SI.Force | F_f | Friction force | |
| SI.Height[if useSections then N else 0] | h_sec | Water depth in each section | |
| SI.Position[size(h_sec, 1)] | h_sec_abs | h_sec .+ o.elevation.z | Absolute water level in each section |
| SI.Velocity[if useSections then N else 0] | v_sec | Velocity in each section |