Ejemplo n.º 1
0
def aerodynamic_center(wing):
    """return lifting surface aerodynamic center."""
    c_bar = mac(wing['aspect_ratio'], wing['planform'], wing['taper'])  # [ft]
    y = y_mac(wing['aspect_ratio'], wing['planform'], wing['taper'])  # [ft]
    x = x_mac(y, wing['sweep_LE'])  # [ft]
    x_ac = wing['station'] + x + c_bar / 4  # [ft]
    return x_ac
Ejemplo n.º 2
0
def parasite_drag(wing, mach, altitude):
    """return parasitic drag coefficient of the lifting surface."""
    s_wet_s = 2 + 2 * (wing['airfoil_thickness'] / wing['aspect_ratio']
                       ) + 2 * wing['airfoil_thickness']  # []
    c_bar = mac(wing['aspect_ratio'], wing['planform'], wing['taper'])  # [ft]
    c_f = friction_coefficient(mach, altitude, c_bar)  # []
    c_d_0 = 1.25 * c_f * s_wet_s  # []
    return c_d_0
Ejemplo n.º 3
0
def c_l_pitch_rate(aircraft, mach):
    """returns lift curve of elevator wrt pitch rate."""
    wing = aircraft['wing']
    s_w = wing['planform']  # [ft^2]
    c_bar = mac(wing['aspect_ratio'], s_w, wing['taper'])  # [ft]
    cg_bar = aircraft['weight']['cg'][0] / c_bar  # []
    ht = aircraft['horizontal']
    s_ht = ht['planform']  # [ft^2]
    c_l_alpha_ht = c_l_alpha_wing(ht, mach)  # [1/rad]
    x_ac_ht = aerodynamic_center(ht)  # [ft]
    x_ac_ht_bar = x_ac_ht / c_bar  # []
    c_l_q = 2 * c_l_alpha_ht * s_ht / s_w * (x_ac_ht_bar - cg_bar)
    return c_l_q
Ejemplo n.º 4
0
def c_m_alpha_dot(aircraft, mach):
    """returns pitch moment curve of elevator wrt alpha rate."""
    wing = aircraft['wing']
    s_w = wing['planform']  # [ft^2]
    c_bar = mac(wing['aspect_ratio'], s_w, wing['taper'])  # [ft]
    cg_bar = aircraft['weight']['cg'][0] / c_bar  # []
    ht = aircraft['horizontal']
    s_ht = ht['planform']  # [ft^2]
    c_l_alpha_ht = c_l_alpha_wing(ht, mach)  # [1/rad]
    x_ac_ht = aerodynamic_center(ht)  # [ft]
    x_ac_ht_bar = x_ac_ht / c_bar  # []
    downwash = d_epsilon_d_alpha(wing, ht, mach)  # []
    c_m_adt = - 2 * c_l_alpha_ht * s_ht / s_w * downwash * (x_ac_ht_bar - cg_bar) ** 2
    return c_m_adt
Ejemplo n.º 5
0
def c_m_delta_elevator(aircraft, mach):
    """returns pitching moment curve of elevator wrt deflection angle."""
    wing = aircraft['wing']
    s_w = wing['planform']  # [ft^2]
    c_bar = mac(wing['aspect_ratio'], s_w, wing['taper'])  # [ft]
    cg_bar = aircraft['weight']['cg'][0] / c_bar  # []
    ht = aircraft['horizontal']
    s_ht = ht['planform']  # [ft^2]
    c_l_alpha_ht = c_l_alpha_wing(ht, mach)  # [1/rad]
    downwash = d_epsilon_d_alpha(wing, ht, mach)  # []
    x_ac_ht = aerodynamic_center(ht)  # [ft]
    x_ac_ht_bar = x_ac_ht / c_bar  # []
    tau = aircraft['elevator']['chord_ratio']
    c_m_de = - c_l_alpha_ht * s_ht / s_w * (1 - downwash) * (x_ac_ht_bar - cg_bar) * tau  # [1/rad]
    return c_m_de
Ejemplo n.º 6
0
def c_m_alpha(aircraft, mach):
    """returns pitching moment curve slope for aircraft."""
    wing = aircraft['wing']
    s_w = wing['planform']  # [ft^2]
    c_bar = mac(wing['aspect_ratio'], s_w, wing['taper'])  # [ft]
    cg_bar = aircraft['weight']['cg'][0] / c_bar  # []
    x_ac_w = aerodynamic_center(wing)  # [ft]
    x_ac_w_bar = x_ac_w / c_bar  # []
    ht = aircraft['horizontal']
    s_ht = ht['planform']  # [ft^2]
    c_l_alpha_ht = c_l_alpha_wing(ht, mach)  # [1/rad]
    downwash = d_epsilon_d_alpha(wing, ht, mach)  # []
    c_l_alpha_w = c_l_alpha_wing(wing, mach)  # [1/rad]
    x_ac_ht = aerodynamic_center(ht)  # [ft]
    x_ac_ht_bar = x_ac_ht / c_bar  # []
    c_m_alpha_w = c_l_alpha_w * (cg_bar - x_ac_w_bar)  # [1/rad]
    c_m_alpha_ht = c_l_alpha_ht * s_ht / s_w * (1 - downwash) * (x_ac_ht_bar - cg_bar)  # [1/rad]
    c_m_alpha_airplane = c_m_alpha_w - c_m_alpha_ht  # [1/rad]
    return c_m_alpha_airplane
Ejemplo n.º 7
0
def c_m_zero(aircraft, mach, altitude):
    """baseline lift coefficient."""
    wing = aircraft['wing']
    s_w = wing['planform']  # [ft^2]
    c_l_alpha_w = c_l_alpha_wing(wing, mach)  # [1/rad]
    ht = aircraft['horizontal']
    s_ht = ht['planform']  # [ft^2]
    c_l_alpha_ht = c_l_alpha_wing(ht, mach)  # [1/rad]
    vt = aircraft['vertical']
    s_vt = vt['planform']  # [ft^2]

    c_bar = mac(wing['aspect_ratio'], s_w, wing['taper'])  # [ft]
    cg_bar = aircraft['weight']['cg'][0] / c_bar  # []
    z_cg = aircraft['weight']['cg'][2]

    x_ac_w = aerodynamic_center(wing)  # [ft]
    x_ac_w_bar = x_ac_w / c_bar  # []

    x_ac_ht = aerodynamic_center(ht)  # [ft]
    x_ac_ht_bar = x_ac_ht / c_bar  # []

    c_l_0_w = c_l_alpha_w * (deg2rad(wing['incidence'] - wing['alpha_zero_lift']))  # []
    c_m_0_w = c_l_0_w * (cg_bar - x_ac_w_bar)
    epsilon = 2 * c_l_0_w / (pi * wing['aspect_ratio'])  # [rad]
    c_l_0_ht = c_l_alpha_ht * s_ht / s_w * (deg2rad(ht['incidence'] - ht['alpha_zero_lift'] - epsilon))  # []

    z_w = (z_cg - wing['waterline']) / c_bar
    z_ht = (z_cg - ht['waterline']) / c_bar
    z_vt = (z_cg - vt['waterline']) / c_bar
    z_f = (z_cg - aircraft['fuselage']['height'] / 2) / c_bar

    c_m_0_w_d = - parasite_drag(wing, mach, altitude) * z_w
    c_m_0_ht_d = - parasite_drag(ht, mach, altitude) * s_ht / s_w * z_ht
    c_m_0_vt_d = - parasite_drag(vt, mach, altitude) * s_vt / s_w * z_vt
    c_m_0_f_d = - parasite_drag_fuselage(aircraft, mach, altitude) * z_f
    c_m_0_ht = c_l_0_ht * (x_ac_ht_bar - cg_bar)
    c_m_0 = (wing['airfoil_cm0'] + ht['airfoil_cm0'] + c_m_0_w + c_m_0_ht
             + c_m_0_w_d + c_m_0_ht_d + c_m_0_vt_d + c_m_0_f_d)  # []
    return c_m_0