fastga.models.aerodynamics.external.propeller_code.propeller_core module

Computation of propeller aero properties.

class fastga.models.aerodynamics.external.propeller_code.propeller_core.PropellerCoreModule(**kwargs)[source]

Bases: openmdao.core.explicitcomponent.ExplicitComponent

Core component for the computation of the propeller performance.

Compressibility correction are taken from [HJimenezEchavarria+22] for subsonic corrections. Reynolds effects correction are taken from yamauchi:1983.

Store some bound methods so we can detect runtime overrides.

initialize()[source]

Perform any one-time initialization run at instantiation.

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute_extreme_pitch(inputs, v_inf)[source]

For a given flight speed computes the min and max possible value of theta at .75 r/R.

compute_pitch_performance(inputs, theta_75, v_inf, altitude, omega, radius, alpha_list, cl_list, cd_list)[source]

This function calculates the thrust, efficiency and power at a given flight speed, altitude h and propeller angular speed.

Parameters
  • inputs – structure of data relative to the blade geometry available from setup

  • theta_75 – pitch defined at r = 0.75*R radial position [deg].

  • v_inf – flight speeds [m/s].

  • altitude – flight altitude [m].

  • omega – angular velocity of the propeller [RPM].

  • radius – array of radius of discretized blade elements [m].

  • alpha_list – angle of attack list for aerodynamic coefficient of profile at

discretized blade element [deg]. :param cl_list: cl list for aerodynamic coefficient of profile at discretized blade element [-]. :param cd_list: cd list for aerodynamic coefficient of profile at discretized blade element [-].

Returns

thrust [N], eta (efficiency) [-] and power [W].

static bem_theory(speed_vect: numpy.array, radius: float, chord: float, blades_number: float, sweep: float, omega: float, v_inf: float, theta: float, alpha_element: numpy.array, cl_element: numpy.array, cd_element: numpy.array, atm: stdatm.atmosphere.Atmosphere, reference_reynolds: float)[source]

The core of the Propeller code. Given the geometry of a propeller element, its aerodynamic polars, flight conditions and axial/tangential velocities it computes the thrust and the torque produced using force and momentum with BEM theory.

Parameters
  • speed_vect – the vector of axial and tangential induced speed in m/s

  • radius – radius position of the element center [m]

  • chord – chord at the center of element [m]

  • blades_number – number of blades [-]

  • sweep – sweep angle [deg.]

  • omega – angular speed of propeller [rad/sec]

  • v_inf – flight speed [m/s]

  • theta – profile angle relative to aircraft airflow v_inf [deg.]

  • alpha_element – reference angle vector for element polars [deg.]

  • cl_element – cl vector for element [-]

  • cd_element – cd vector for element [-]

  • atm – atmosphere properties

  • reference_reynolds – Reynolds number at which the aerodynamic properties were computed

Returns

The calculated dT/(rho*dr) and dQ/(rho*dr) increments with BEM method.

static disk_theory(speed_vect: numpy.array, radius: float, radius_min: float, radius_max: float, blades_number: float, sweep: float, omega: float, v_inf: float)[source]

The core of the Propeller code. Given the geometry of a propeller element, its aerodynamic polars, flight conditions and axial/tangential velocities it computes the thrust and the torque produced using force and momentum with disk theory.

Parameters
  • speed_vect – the vector of axial and tangential induced speed in m/s

  • radius – radius position of the element center [m]

  • radius_min – Hub radius [m]

  • radius_max – Max radius [m]

  • blades_number – number of blades [-]

  • sweep – sweep angle [deg.]

  • omega – angular speed of propeller [rad/sec]

  • v_inf – flight speed [m/s]

Returns

The calculated dT/(rho*dr) and dQ/(rho*dr) increments with disk theory method.

delta(speed_vect: numpy.array, radius: float, radius_min: float, radius_max: float, chord: float, blades_number: float, sweep: float, omega: float, v_inf: float, theta: float, alpha_element: numpy.array, cl_element: numpy.array, cd_element: numpy.array, atm: stdatm.atmosphere.Atmosphere, reference_reynolds: float)[source]

The core of the Propeller code. Given the geometry of a propeller element, its aerodynamic polars, flight conditions and axial/tangential velocities it computes the thrust and the torque produced using force and momentum with disk theory.

Parameters
  • speed_vect – the vector of axial and tangential induced speed in m/s

  • radius – radius position of the element center [m]

  • radius_min – Hub radius [m]

  • radius_max – Max radius [m]

  • chord – chord at the center of element [m]

  • blades_number – number of blades [-]

  • sweep – sweep angle [deg.]

  • omega – angular speed of propeller [rad/sec]

  • v_inf – flight speed [m/s]

  • theta – profile angle relative to aircraft airflow v_inf [DEG]

  • alpha_element – reference angle vector for element polars [DEG]

  • cl_element – cl vector for element [-]

  • cd_element – cd vector for element [-]

  • atm – atmosphere properties

  • reference_reynolds – Reynolds number at which the aerodynamic properties were computed

Returns

The difference between BEM dual methods for dT/(rho*dr) and dQ/ increments.

static reshape_polar(alpha, c_l, c_d)[source]

Reads the polar under the openmdao format (meaning with additional zeros and reshape so that only relevant angle are considered.

Assumes that the AOA list is ordered.