Mean-line¶
The first step in turbomachinery design is a one-dimensional analysis along the ‘mean-line’. We consider an axisymmetric streamsurface at an intermediate mean radius, for the inlet and exit of each blade row, as a simplified model of the real three-dimensional flow. Given an inlet condition and machine duty, mean-line design fixes the annulus radii and flow angles.
turbigen abstracts mean-line design in the following
way. Each type of machine (e.g. ‘axial turbine’, ‘radial compressor’) has
forward and inverse functions, stored in a module under turbigen/meanline/
.
The forward() function takes as arguments: an inlet state object from
turbigen.fluid
; and some duty, geometric, or aerodynamic choices
(e.g. mass flow rate, radius ratio, flow coefficient). The forward() function
returns a turbigen.meanline.MeanLine
object that encapsulates all
required information about the mean-line design: flow properties, velocities,
annulus areas and hub and shroud radii.
As described in the Configuration page, the entries in the mean_line section of a turbigen YAML file are fed directly into the chosen forward() function as keyword arguments. For example, if the configuration file contains:
mean_line:
type: axial_turbine
Alpha1: 0.
phi: 0.8
psi: 1.6
Lam: 0.5
# ... more keys
Then within the code, a turbigen.meanline.MeanLine
object will be created using something like:
import turbigen.meanline.axial_turbine
ml = turbigen.meanline.axial_turbine.forward(
So1, # Inlet state calculated elsewhere, positional arg
Alpha1=0., # Keys from `mean_line` config unpacked as kwargs
phi=0.8,
psi=1.6,
Lam=0.5,
# ... more args
)
The inverse() function takes a turbigen.meanline.MeanLine
object as
its only argument, and calculates from the flow field a dictionary of the
same parameters that are input to forward(). Given a suitably averaged CFD
solution, inverse() is a post-processing step that allows comparison of the
three-dimensional simulated flow field to the one-dimensional design intent.
Also, feeding the output of forward() straight into inverse() performs a
check that the mean-line design is consistent with the requested input
parameters.
The mean-line parts of turbigen are flexible and extensible. Any
parameterisation can be used for mean-line design, once a forward() function
is written to take the chosen design variabes as arguments and perform the
calculations. Any turbomachine type can be programmed and represented as a
turbigen.meanline.MeanLine
object.
The following turbomachine architectures are currently implemented
Cascade
Axial turbine
Radial compressor
Cascade¶
- forward(So1, span1, span2, Alpha1, Alpha2, Ma2, Yh=0.0, htr=0.99, RR=1.0, Beta=(0.0, 0.0))[source]¶
Design the mean-line for a single-row stationary cascade.
The minimal set of design choices are: spans, yaw angles, and exit Mach number. Optionally, loss can be acounted for using an energy loss coefficient. For annular cascades, a hub-to-tip ratio, radius change and pitch angles become additional free variables.
- Parameters:
So1 (State) – Object specifing the working fluid and its state at inlet.
span1 (float) – Inlet and outlet spans, \(H\).
span2 (float) – Inlet and outlet spans, \(H\).
Alpha1 (float) –
Alpha2 (float) – Inlet and outlet yaw angles, \(\alpha/^\circ\).
Ma2 (float) – Exit Mach number, \(\Ma_2\).
Yh (float) – Estimate of the row energy loss coefficient, \(Y_h\). Uses compressor definition for diffusing passages, and turbine definition for contracting passages.
htr (float) – Inlet hub-to-tip radius ratio, \(\htr\), defaults to just less than unity to approximate a linear cascade.
RR (float) – Outlet to inlet radius ration, \(r_2/r_1\).
Beta ((2,) array) – Inlet and outlet pitch angles, \(\beta/^\circ\). Only makes sense to be non-zero if radius ratio is not unity.
- Returns:
ml – An object specifying the flow along the mean line.
- Return type:
Axial turbine¶
Mean-line design for an axial turbine stage, assuming perfect gas.
- forward(So1, htr, Omega, Alpha1, phi, psi, Lam, Ma2, eta, loss_split=0.5, VmR12=1.0, VmR23=1.0)[source]¶
Design the mean-line for an axial turbine stage.
- Parameters:
So1 (State) – Object specifing the working fluid and its state at inlet.
htr (float) – Hub-to-tip radius ratio, \(\htr\).
Omega (float) – Shaft angular velocity, \(\Omega\) [rad/s].
phi (float) – Flow coefficient, \(\phi\).
psi (float) – Stage loading coefficient, \(\psi\).
Lam (float) – Degree of reaction, \(\Lambda\).
Al1 (float) – Inlet yaw angle, \(\alpha_1\).
Ma2 (float) – Vane exit Mach number, \(\Ma_2\).
ga (float) – Ratio of specific heats, \(\gamma\).
eta (float) – Guess of polytropic efficiency, \(\eta\).
loss_split (float) – Guess of entropy rise split between stator and rotor.
VmR12 (float) – Meridional velocity ratio
VmR23 (float) – Meridional velocity ratio
- Returns:
ml – An object specifying the flow along the mean line.
- Return type:
- inverse(ml)[source]¶
Given mean-line flow, extract design parameters for a turbine stage.
- Parameters:
ml (MeanLine) – A mean-line object specifying the flow in an axial turbine.
- Returns:
out – Dictionary of aerodynamic design parameters with fields: So1, htr, Omega, Alpha1, phi, psi, Lam, Ma2, eta, loss_split, VmR12, VmR23. The fields have the same meanings as in
forward()
.- Return type:
dict
Radial compressor¶
Mean-line design of a radial impeller with vaneless diffuser
- forward(So1, PR_tt, eta_tt, mdot, phi1, Alpha1, Ma1_rel, htr1, Alpha2_rel, loss_split, DH_rotor, DH_diff)[source]¶
Design the mean-line for a vaneless radial compressor.
- Parameters:
So1 (State) – Object specifing the working fluid and its state at inlet.
PR_tt (float) – Stagnation pressure ratio
eta_tt (float) – Estimate of total-to-total isentropic efficiency.
mdot (float) – Mass flow rate.
Alpha1 (float) – Impeller inlet yaw angle.
Ma1_rel (float) – Impeller inlet relative Mach number.
htr1 (float) – Impeller inlet hub-to-tip ratio.
Alpha2_rel (float) – Impeller exit yaw angle.
loss_split (float) – Guess of entropy rise split between impeller and diffuser.
DHimp (float) – Impeller de Haller number.
DHdiff (float) – Diffuser de Haller number.
- Returns:
ml – An object specifying the flow along the mean line.
- Return type:
- inverse(ml)[source]¶
Reverse a radial compressor mean-line to design variables.
- Parameters:
ml (MeanLine) – A mean-line object specifying flow in a radial compressor.
- Returns:
out – Dictionary of aerodynamic design parameters with fields: So1, PR_tt, eta_tt, mdot, phi1, Alpha1, Ma1_rel, htr1, Alpha2_rel, loss_split, DHimp, DHdiff The fields have the same meanings as in
forward()
.- Return type:
dict