Python API Documentation

Vehicles

The main class in helipypter is the Helicopter.

class helipypter.vehicles.Helicopter(name: str = 'Tim the Enchanter', rotors: tuple = ('MR', 'TR'), MR_dia: float = 10, MR_b: int = 2, MR_ce: float = 10.4, MR_Omega: float = 43.2, MR_cd0: float = 0.008, TR_dia: float = 2, TR_b: int = 2, TR_ce: float = 6, TR_Omega: float = 20, TR_cd0: float = 0.015, GW_empty: float = 1000, GW_fuel: float = 0, GW_payload: float = 0, download: float = 0.03, HIGE_factor: float = 1.2, fe: float = 5, l_tail: float = 15, S_vt: float = 15, cl_vt: float = 0.1, AR_vt: float = 3, eta_MRxsmn: float = 0.985, eta_TRxsmn: float = 0.9712, eta_xsmn_co: float = 0.986, pwr_acc: float = 10, eta_inst: float = 0.95, xsmn_lim: float = 674, pwr_lim: float = 813, bsfc_0: float = 1.839, bsfc_1: float = -0.08754, bsfc_2: float = 0.00252, bsfc_3: float = -3.77e-05, bsfc_4: float = 2.822e-07, bsfc_5: float = -8.331e-10)
This class represents a helicopter with typical design features. These features are:
  • Single Main Rotor,
  • Single Tail Rotor,
  • No shared lift or forward thrusters

The basic Helicopter class has attributes and properties (according to Python definitions). Defaults are set for all values, so be careful with results before checking that all your input values (and units) are correct!

This class uses a constant equivalent chord for all blades, and an efficiency factor must be used to estimate real performance based on this. No root cut-out is available.

HIGE(atm, Thrust=None, delta_1: float = -0.0216, delta_2: float = 0.4, k_i: float = 1.1, Vroc: float = 0) → list

This method calculates the Hover In Ground Effect performance.

This is simply the HOGE, but with a factored thrust.

HOGE(atm, Thrust=None, delta_1: float = -0.0216, delta_2: float = 0.4, k_i: float = 1.1, Vroc: float = 0) → list

This method calculates Hover Out of Ground Effect performance.

Variables:
  • atm (class) – An Environment class object, which provides altitude and temperature.
  • delta_1 (float) – The second term in the 3-part drag equation (default to -0.0216 based on literature)
  • delta_2 (float) – The third term in the 3-part drag equation (default to 0.4 based on literature)
  • k_i (float) – The “efficiency factor” which includes losses for non-uniform inflow, and non-ideal twist.
  • Vroc (float) – The vertical rate of climb, in ft/min.
Returns:

a, delta_0, Ct, Cq_i, Cq_v, Cq_0, Cq_1, Cq_2, Q, P_MR, P_TR, SHP_ins, SHP_unins

Return type:

list(float, float, float, float, float, float, float, float, float, float, float, float, float)

A:

3D lift coefficient [cl/rad]

Delta_0:

corrected, compressible drag coefficient (1st term in 3-term drag equation)

Ct:

coefficient of thrust

Cq_i:

coefficient of torque, induced velocity contribution

Cq_v:

coefficient of torque, vroc contribution

Cq_0:

coefficient of torque, 1st term drag

Cq_1:

coefficient of torque, 2nd term drag

Cq_2:

coefficient of torque, 3rd term drag

Q:

Main Rotor Torque

P_MR:

Main Rotor required Power

P_TR:

Tail Rotor required Power

SHP_ins:

Total shaft horsepower of the installed engine

SHP_unins:

Total shaft horsepower of an uninstalled engine (spec)

bsfc(pwr) → float

This method uses the normalized bsfc curve (engine specific).

Variables:pwr (float) – Percent power (eg 47%)
Returns:Brake specific fuel consumption (lbs/(hp*hr))
Return type:float
burn(fuel)

This method burns an amount of fuel, reducing the fuel weight by the amount burned.

forward_flight(atm, Airspeed) → dict

This function evaluates performance in forward flight. Airspeed (in kts) input can be a single value, or a list of the desired speed sweep.

Performance metrics such as drag, MR power, TR power, Engine power, fuel consumption, and range are evaluated.

TODO, currently df is returned: A dictionary is returned with keys for each characteristic and a list of outputs as values.

get_units(attribute_name) → str

Returns the units from the metadata definition of the attribute.

idle(pwr: float = 20)

This method evaluates the fuel consumption for ground idle operations. Fuel consumption is returned in units of lb/hr. (This is the default bsfc curve)

A ground idle power setting of 20% is assumed by default.

refuel()

This method refuels to the fuel capacity. Capacity is defined upon vehicle creation.

reload()

This method reloads the payload to capacity. Capacity is defined upon vehicle creation.

unload(weight)

This method, similar to burn, removes weight from the aircraft by unloading a weight of payload.

Although the “Environment” class isn’t a vehicle, it’s temporarily stored in the vehicles module.

class helipypter.vehicles.Environment(alt: float = 0)

This class contains all the atmospheric data used in performance calculations. All atmospheric properties are attributes of this class.

Depends on sk-aero.coesa module. Note that only input is the altitude, in feet. All units returned are automatically converted from metric to Imperial.

Functions

helipypter.funcs.speed_power_polar(data)

This function generates a standard speed-power polar plot. Input data must have columns following the standard naming convention of the helicopter class.

ie. A dataframe output from the Helicopter.forward_flight method can be directly supplied.

helipypter.funcs.specific_range(data)

This function generates a standard specific range plot. Input data must have columns following the standard naming convention of the helicopter class.

ie. A dataframe output from the Helicopter.forward_flight method can be directly supplied.

helipypter.funcs.roc(data)

This function generates a standard rate of climb plot. Input data must have columns following the standard naming convention of the helicopter class.

ie. A dataframe output from the Helicopter.forward_flight method can be directly supplied.

helipypter.funcs.missionSim(heli, mission) → dict

This function runs a helicopter through a mission. For each point, the fuel consumption is evaluated, and the flight distance is evaluated.

Parameters:
  • heli (Helicopter) – Helicopter to be analyzed.
  • mission (tuple(nametuple)) – Mission profile to be analyzed.
Returns:

Mission data table

Return type:

dict