Пример #1
0
def induced_velocity(diskload_lb_ft2, dens_alt_ft, atm=None):
    """
    Computes the induced velocity at the rotor plane.

    :param diskload_lb_ft2: diskloading, lb/ft2
    :param dens_alt_ft: density altitude [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: induced velocity at the rotor plane, in ft/s
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf

    iv = (diskload_lb_ft2 / (2* rho_slugcf)) ** 0.5
    return iv
Пример #2
0
def dimensionalize_prop_cp(cp_prop, rpm, radius_ft, dens_alt_ft, atm=None):
    """
    Converts propeller cp into power ft-lb/s

    :param prop_cp: power coefficient
    :param rpm: revolutions per minute
    :param radius_ft: radius [ft]
    :param dens_alt_ft: density altitude [ft]
    :param atm: atmosphere object (optional, 1976 used if None)
    :return: power [ft-lb/s]
    """
    if atm is None:
        atm = uat.stdatm1976(0.0)

    n = rpm * uu.rpm2n
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    diameter_ft = radius_ft*2.0
    power_ftlbs = cp_prop*(rho_slugcf*n**3.0*diameter_ft**5.0)
    return power_ftlbs
Пример #3
0
def dimensionalize_cp(cp, rpm, radius_ft, dens_alt_ft, atm=None):
    """
    Converts cp into power ft-lb/s

    :param cp: power coefficient
    :param rpm: revolutions per minute
    :param radius_ft: radius [ft]
    :param dens_alt_ft: density altitude [ft\
    :param atm: atmosphere object (optional, 1976 used if None)
    :return: power [ft-lb/s]
    """
    if atm is None:
        atm = uat.stdatm1976()

    rho_slugcf = atm.rho(dens_alt_ft*uu.ft2m)*uu.kgcm2slugcf
    area_ft2 = np.pi * radius_ft**2.0
    omega = rpm * uu.rpm2rad_s
    power_ftlbs = cp*rho_slugcf*area_ft2*(omega*radius_ft)**3.0
    return power_ftlbs
Пример #4
0
def prop_ct(thrust_lb, dens_alt_ft, rpm, radius_ft, atm=None):
    """
    Computes propeller thrust coefficient

    :param thrust_lb: thrust [lb]
    :param dens_alt_ft: density altitude [ft]
    :param rpm: revolutions per minute of the rotor [rpm]
    :param radius_ft: radius [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: thrust coefficient
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    n = rpm*uu.rpm2n
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    diameter_ft = radius_ft*2.0
    ct_prop = thrust_lb/(rho_slugcf*n**2.0*diameter_ft**4.0)
    return ct_prop
Пример #5
0
def prop_cp(power_ftlb_s, dens_alt_ft, rpm, radius_ft, atm=None):
    """
    Computes propeller power coefficient

    :param power_ftlb_s: power [ft-lb/s]
    :param dens_alt_ft: density altitude [ft]
    :param rpm: revolutions per minute of the rotor [rpm]
    :param radius_ft: radius [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: power coefficient
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    n = rpm * uu.rpm2n
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    diameter_ft = radius_ft*2.0
    cp_prop = power_ftlb_s/(rho_slugcf*n**3.0*diameter_ft**5.0)
    return cp_prop
Пример #6
0
def cq(torque_ft_lb, dens_alt_ft, rpm, radius_ft, atm=None):
    """
    Computes torque coefficient

    :param torque_ft_lb: torque [ft-lb]
    :param dens_alt_ft: density altitude [ft]
    :param rpm: revolutions per minute of the rotor [rpm]
    :param radius_ft: radius [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: torque coefficient
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    omega_rads = rpm * uu.rpm2rad_s
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    area_ft2 = np.pi*(radius_ft**2.0)
    cq = torque_ft_lb/(rho_slugcf * area_ft2 * radius_ft * (omega_rads * radius_ft)**2)

    return cq
Пример #7
0
def prop_torque(prop_cq, dens_alt_ft, rpm, radius_ft, atm=None):
    """
    Computes torque from a torque coefficient

    :param prop_cq: propeller torque coefficient
    :param dens_alt_ft: density altitude [ft]
    :param rpm: revolutions per minute of the rotor [rpm]
    :param radius_ft: radius [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: torque [ft-lb]
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    n = rpm * uu.rpm2n
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    diameter_ft = radius_ft*2.0
    torque_ft_lb = prop_cq*rho_slugcf*n**2.0*diameter_ft**5.0

    return torque_ft_lb
Пример #8
0
def thrust(ct, dens_alt_ft, rpm, radius_ft, atm=None):
    """
    Computes thrust from a thrust coefficient

    :param ct: thrust coefficient
    :param dens_alt_ft: density altitude [ft]
    :param rpm: revolutions per minute of the rotor [rpm]
    :param radius_ft: radius [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: thrust [lb]
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    omega_rads = rpm * uu.rpm2rad_s
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    area_ft2 = np.pi*(radius_ft**2.0)
    thrust_lb = ct * rho_slugcf*area_ft2*(omega_rads*radius_ft)**2.0

    return thrust_lb
Пример #9
0
def hover_power_calc(thrust_lb, fom, density_alt_ft, radius_ft, atm=None):
    """
    Compute hover power in watts

    :param thrust_lb: required thrust
    :param fom: figure of merit
    :param density_alt_ft: density altitude in feet
    :param radius_ft: rotor radius in feet
    :param atm: atmosphere object, if None use the 1976 standard atmosphere
    :return: power [watts]
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    area_m2 = np.pi*(radius_ft*uu.ft2m)**2.0
    rho_kgcm = atm.rho(density_alt_ft*uu.ft2m)
    thrust_N = thrust_lb * uu.lb2n

    power_watts = thrust_N/(fom*np.sqrt(2.0*rho_kgcm/(thrust_N/area_m2)))
    return power_watts
Пример #10
0
def cp(power_ftlb_s, dens_alt_ft, rpm, radius_ft, atm=None):
    """
    Computes power coefficient

    :param power_ftlb_s: power [ft-lb/s]
    :param dens_alt_ft: density altitude [ft]
    :param rpm: revolutions per minute of the rotor [rpm]
    :param radius_ft: radius [ft]
    :param atm: atmosphere object, if None the 1976 standard atmosphere will be used
    :return: power coefficient
    """

    if atm is None:
        atm = uat.stdatm1976(0.0)

    omega_rads = rpm * uu.rpm2rad_s
    rho_slugcf = atm.rho(dens_alt_ft * uu.ft2m) * uu.kgcm2slugcf
    area_ft2 = np.pi*(radius_ft**2.0)
    cp = power_ftlb_s/(rho_slugcf*area_ft2*(omega_rads*radius_ft)**3.0)

    return cp