示例#1
0
def eas2drag(
    eas,
    weight,
    wing_area,
    Cd0,
    AR,
    e,
    load_factor=1,
    speed_units=default_speed_units,
    weight_units=default_weight_units,
    area_units=default_area_units,
    drag_units=default_weight_units,
    ):

    """
    Returns drag, given EAS, weight, wing area, profile drag coefficient, 
    aspect ratio, span efficiency and load factor.
    
    Cl  = lift coefficient
    Cd0 = profile drag coefficient (the drag coefficient at zero lift)
    AR  = aspect ratio (the square of wing span / wing area, which for a
          rectangular wing is equivalent to wing span / wing chord).
    e   = span efficiency

    This representation of drag does not account for wave drag, so it is not 
    valid at high speed.  It also is only valid in the range of angle of 
    attack where lift changes linearly with angle of attack.  It does not 
    account for the effect of trim drag, so the predicted drag takes no
    account for aircraft centre of gravity.
    
    Example:
    >>> eas2drag(120, 700, 110, 0.0221, 4.8, 0.825, speed_units='mph', \
    weight_units='kg', area_units='ft**2', drag_units='lb')
    136.76711702310882
    """

    Cl = cl.eas2cl(
        eas,
        weight,
        wing_area,
        load_factor,
        speed_units,
        weight_units,
        area_units,
        )
    Cd = cl2cd(Cl, Cd0, AR, e)
    drag = cd2drag(
        Cd,
        eas,
        wing_area,
        speed_units,
        area_units,
        drag_units,
        )

    return drag
示例#2
0
def eas2drag(
    eas,
    weight,
    wing_area,
    Cd0,
    AR,
    e,
    load_factor=1,
    speed_units=default_speed_units,
    weight_units=default_weight_units,
    area_units=default_area_units,
    drag_units=default_weight_units,
):
    """
    Returns drag, given EAS, weight, wing area, profile drag coefficient, 
    aspect ratio, span efficiency and load factor.
    
    Cl  = lift coefficient
    Cd0 = profile drag coefficient (the drag coefficient at zero lift)
    AR  = aspect ratio (the square of wing span / wing area, which for a
          rectangular wing is equivalent to wing span / wing chord).
    e   = span efficiency

    This representation of drag does not account for wave drag, so it is not 
    valid at high speed.  It also is only valid in the range of angle of 
    attack where lift changes linearly with angle of attack.  It does not 
    account for the effect of trim drag, so the predicted drag takes no
    account for aircraft centre of gravity.
    
    Example:
    >>> eas2drag(120, 700, 110, 0.0221, 4.8, 0.825, speed_units='mph', \
    weight_units='kg', area_units='ft**2', drag_units='lb')
    136.76711702310882
    """

    Cl = cl.eas2cl(
        eas,
        weight,
        wing_area,
        load_factor,
        speed_units,
        weight_units,
        area_units,
    )
    Cd = cl2cd(Cl, Cd0, AR, e)
    drag = cd2drag(
        Cd,
        eas,
        wing_area,
        speed_units,
        area_units,
        drag_units,
    )

    return drag
示例#3
0
    def test_02(self):

        Value = cl.eas2cl(
            115,
            700,
            8.5,
            weight_units='kg',
            area_units='m**2',
            speed_units='mph',
            )
        Truth = 0.49889058073
        self.assertTrue(RE(Value, Truth) <= 1e-5)
示例#4
0
    def test_01(self):

        Value = cl.eas2cl(
            50,
            1800,
            110,
            weight_units='lb',
            area_units='ft**2',
            speed_units='kt',
            )
        Truth = 1.9333626157
        self.assertTrue(RE(Value, Truth) <= 1e-5)
示例#5
0
    def test_02(self):

        Value = cl.eas2cl(
            115,
            700,
            8.5,
            weight_units='kg',
            area_units='m**2',
            speed_units='mph',
            )
        Truth = 0.49889058073
        self.failUnless(RE(Value, Truth) <= 1e-5)
示例#6
0
    def test_01(self):

        Value = cl.eas2cl(
            50,
            1800,
            110,
            weight_units='lb',
            area_units='ft**2',
            speed_units='kt',
            )
        Truth = 1.9333626157
        self.failUnless(RE(Value, Truth) <= 1e-5)