Title: | Turbine Blade Strike Analysis |
---|---|
Description: | R implementation of spreadsheet model provided by the USFWS for performing leading-edge blade strike analysis of hydropower turbines on fish. |
Authors: | Travis Hinkelman |
Maintainer: | Travis Hinkelman <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.0 |
Built: | 2025-02-06 03:25:05 UTC |
Source: | https://github.com/EnvironmentalScienceAssociates/tbsa |
Non-dimensional discharge coefficient term incorporated into strike equations
discharge_coef(Q, D, rpm)
discharge_coef(Q, D, rpm)
Q |
Turbine discharge (cfs) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
Non-dimensional energy coefficient term incorporated into strike equations
energy_coef(H, D, rpm)
energy_coef(H, D, rpm)
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
Angle (rad) to tangential of absolute flow upstream of runner
francis_alpha(Q, H, D, D1, D2, rpm, eta, opt, xi, B)
francis_alpha(Q, H, D, D1, D2, rpm, eta, opt, xi, B)
Q |
Turbine discharge (cfs) |
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
D1 |
Diameter (ft) at the intake of the runner |
D2 |
Diameter (ft) at the outlet of the runner |
rpm |
Runner revolutions per minute |
eta |
Turbine efficiency |
opt |
Ratio of turbine discharge at best efficiency to hydraulic capacity |
xi |
Ratio between Q with no exit swirl and Qopt |
B |
Runner height (ft) at inlet |
Relative flow angle (rad) at turbine discharge; used in strike equations
francis_beta(Q, D, D1, D2, rpm, opt, xi)
francis_beta(Q, D, D1, D2, rpm, opt, xi)
Q |
Turbine discharge (cfs) |
D |
Nominal diameter (ft) of runner |
D1 |
Diameter (ft) at the intake of the runner |
D2 |
Diameter (ft) at the outlet of the runner |
rpm |
Runner revolutions per minute |
opt |
Ratio of turbine discharge at best efficiency to hydraulic capacity |
xi |
Ratio between Q with no exit swirl and Qopt |
Calculates leading-edge blade strike probability from a Francis turbine
francis_strike(Q, H, D, D1, D2, rpm, eta, opt, xi, B, N, L, lambda = 0.2)
francis_strike(Q, H, D, D1, D2, rpm, eta, opt, xi, B, N, L, lambda = 0.2)
Q |
Turbine discharge (cfs) |
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
D1 |
Diameter (ft) at the intake of the runner |
D2 |
Diameter (ft) at the outlet of the runner |
rpm |
Runner revolutions per minute |
eta |
Turbine efficiency |
opt |
Ratio of turbine discharge at best efficiency to hydraulic capacity |
xi |
Ratio between Q with no exit swirl and Qopt |
B |
Runner height (ft) at inlet |
N |
Number of blades |
L |
Fish length (ft) |
lambda |
Actual mortality correlation; influenced by many factors including unit type and fish species |
Angle (rad) to tangential of absolute flow upstream of runner
kaplan_alpha(Q, H, D, rpm, eta, radius_ratio)
kaplan_alpha(Q, H, D, rpm, eta, radius_ratio)
Q |
Turbine discharge (cfs) |
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
eta |
Turbine efficiency |
radius_ratio |
r/R where R = 0.5 * D; passage near hub (0.5), mid-blade (0.75), blade tip (1) |
Calculates leading-edge blade strike probability from Kaplan turbine
kaplan_strike(Q, H, D, rpm, eta, N, L, lambda = 0.2, radius_ratio = 0.75)
kaplan_strike(Q, H, D, rpm, eta, N, L, lambda = 0.2, radius_ratio = 0.75)
Q |
Turbine discharge (cfs) |
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
eta |
Turbine efficiency |
N |
Number of blades |
L |
Fish length (ft) |
lambda |
Actual mortality correlation; influenced by many factors including unit type and fish species |
radius_ratio |
r/R where R = 0.5 * D; passage near hub (0.5), mid-blade (0.75), blade tip (1) |
Angle (rad) to tangential of absolute flow upstream of runner
propeller_alpha(Q, H, D, rpm, eta, opt, radius_ratio)
propeller_alpha(Q, H, D, rpm, eta, opt, radius_ratio)
Q |
Turbine discharge (cfs) |
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
eta |
Turbine efficiency |
opt |
Ratio of turbine discharge at best efficiency to hydraulic capacity |
radius_ratio |
r/R where R = 0.5 * D; passage near hub (0.5), mid-blade (0.75), blade tip (1) |
Relative flow angle (rad) at turbine discharge; used in strike equations
propeller_beta(Q, D, rpm, opt, radius_ratio)
propeller_beta(Q, D, rpm, opt, radius_ratio)
Q |
Turbine discharge (cfs) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
opt |
Ratio of turbine discharge at best efficiency to hydraulic capacity |
radius_ratio |
r/R where R = 0.5 * D; passage near hub (0.5), mid-blade (0.75), blade tip (1) |
Calculates leading-edge blade strike probability from a propeller turbine
propeller_strike( Q, H, D, rpm, eta, opt, N, L, lambda = 0.2, radius_ratio = 0.75 )
propeller_strike( Q, H, D, rpm, eta, opt, N, L, lambda = 0.2, radius_ratio = 0.75 )
Q |
Turbine discharge (cfs) |
H |
Net head on the turbine (ft) |
D |
Nominal diameter (ft) of runner |
rpm |
Runner revolutions per minute |
eta |
Turbine efficiency |
opt |
Ratio of turbine discharge at best efficiency to hydraulic capacity |
N |
Number of blades |
L |
Fish length (ft) |
lambda |
Actual mortality correlation; influenced by many factors including unit type and fish species |
radius_ratio |
r/R where R = 0.5 * D; passage near hub (0.5), mid-blade (0.75), blade tip (1) |
Randomly select route for a fish through a project from a multinomial distribution based on routing probabilities.
rand_route(fish_num, route_names, route_probs)
rand_route(fish_num, route_names, route_probs)
fish_num |
Number of fish in the simulation |
route_names |
Vector of route names through a project |
route_probs |
Vector of probabilities that fish enters each route; should sum to one. |
Rotational speed
rotational_speed(rpm)
rotational_speed(rpm)
rpm |
Runner revolutions per minute |
Example route data used as input to the tbsa function. Includes all four route types and corresponds to the "Francis, Kaplan and propeller w spill, gates and bypass" example in the spreadsheet model.
route_data_ex
route_data_ex
A data frame with 9 rows and 16 variables:
Unique name of a route through a project
Probability that a fish enters each route; should sum to one.
Route type should be one of Francis, Kaplan, propeller, or bypass.
Nominal diameter (ft) of runner
Number of blades
Runner height (ft) at inlet
Turbine discharge (cfs)
Ratio of turbine discharge at best efficiency to hydraulic capacity
Net head on the turbine (ft)
Runner revolutions per minute
Ratio between Q with no exit swirl and Qopt
Actual mortality correlation; influenced by many factors including unit type and fish species
Diameter (ft) at the intake of the runner
Diameter (ft) at the outlet of the runner
Turbine efficiency
Estimated mortality for routes without turbines, e.g., gates, spillways, fishways, etc.
Runs stochastic simulation of turbine blade strike analysis based on input parameters in route_data
tbsa(fish_num, length_mean, length_sd, route_data)
tbsa(fish_num, length_mean, length_sd, route_data)
fish_num |
Number of fish in the simulation |
length_mean |
Mean fish length (ft) |
length_sd |
Standard deviation of fish length (ft) |
route_data |
Data frame with input parameters for each route (see route_data_ex for example) |
tbsa(10, 1.5, 0.25, route_data_ex)
tbsa(10, 1.5, 0.25, route_data_ex)