当前位置: 首页>>代码示例>>Python>>正文


Python Data.wt_tail_vertical方法代码示例

本文整理汇总了Python中SUAVE.Core.Data.wt_tail_vertical方法的典型用法代码示例。如果您正苦于以下问题:Python Data.wt_tail_vertical方法的具体用法?Python Data.wt_tail_vertical怎么用?Python Data.wt_tail_vertical使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SUAVE.Core.Data的用法示例。


在下文中一共展示了Data.wt_tail_vertical方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: tail_vertical

# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import wt_tail_vertical [as 别名]
def tail_vertical(S_v,Nult,b_v,TOW,t_c_v,sweep_v,S_gross_w,t_tail,rudder_fraction = 0.25):      
    """ Calculate the weight of the vertical fin of an aircraft without the weight of 
    the rudder and then calculate the weight of the rudder 
    
    Assumptions:
        Vertical tail weight is the weight of the vertical fin without the rudder weight.
        Rudder occupies 25% of the S_v and weighs 60% more per unit area.     
        
    Source: 
        N/A 
        
    Inputs:
        S_v - area of the vertical tail (combined fin and rudder)                      [meters**2]
        Nult - ultimate load of the aircraft                                           [dimensionless]
        b_v - span of the vertical                                                     [meters]
        TOW - maximum takeoff weight of the aircraft                                   [kilograms]
        t_c_v - thickness-to-chord ratio of the vertical tail                          [dimensionless]
        sweep_v - sweep angle of the vertical tail                                     [radians]
        S_gross_w - wing gross area                                                    [meters**2]
        t_tail - factor to determine if aircraft has a t-tail                          [dimensionless]
        rudder_fraction - fraction of the vertical tail that is the rudder             [dimensionless]
    
    Outputs:
        output - a dictionary with outputs:
            wt_tail_vertical - weight of the vertical fin portion of the vertical tail [kilograms]
            wt_rudder - weight of the rudder on the aircraft                           [kilograms]
  
    Properties Used:
        N/A
    """      
    # unpack inputs
    span  = b_v / Units.ft # Convert meters to ft
    sweep = sweep_v # Convert deg to radians
    area  = S_v / Units.ft**2 # Convert meters squared to ft squared
    mtow  = TOW / Units.lb # Convert kg to lbs
    Sref  = S_gross_w / Units.ft**2 # Convert from meters squared to ft squared  
    
    # Determine weight of the vertical portion of the tail
    if t_tail == "yes": 
        T_tail_factor = 1.25 # Weight of vertical portion of the T-tail is 25% more than a conventional tail
    else: 
        T_tail_factor = 1.0 
    
    # Calculate weight of wing for traditional aircraft vertical tail without rudder
    tail_vert_English = T_tail_factor * (2.62*area+1.5*10.**(-5.)*Nult*span**3.*(8.+0.44*mtow/Sref)/(t_c_v*(np.cos(sweep)**2.))) 
    
    # packup outputs    
    
    output = Data()
    output.wt_tail_vertical = tail_vert_English * Units.lbs # Convert from lbs to kg
    output.wt_rudder        = output.wt_tail_vertical * rudder_fraction * 1.6

    return output
开发者ID:michK,项目名称:SUAVE,代码行数:55,代码来源:tail_vertical.py

示例2: empty

# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import wt_tail_vertical [as 别名]

#.........这里部分代码省略.........
    else:
        b          = vehicle.wings['main_wing'].spans.projected
        AR_w       = (b**2.)/S_gross_w
        taper_w    = vehicle.wings['main_wing'].taper
        t_c_w      = vehicle.wings['main_wing'].thickness_to_chord
        sweep_w    = vehicle.wings['main_wing'].sweeps.quarter_chord
        mac_w      = vehicle.wings['main_wing'].chords.mean_aerodynamic
        wing_c_r   = vehicle.wings['main_wing'].chords.root
        #now run weight script for the wing
        wt_wing                                         = wing_main(S_gross_w, m_fuel, AR_w, sweep_w, q_c, taper_w, t_c_w,Nult,TOW)
        vehicle.wings['main_wing'].mass_properties.mass = wt_wing        
   
    if 'horizontal_stabilizer' not in vehicle.wings:
        wt_tail_horizontal = 0.0
        S_h = 0.0
        warnings.warn("There is no Horizontal Tail Weight being added to the Configuration", stacklevel=1)

    else:    
        S_h                = vehicle.wings['horizontal_stabilizer'].areas.reference
        b_h                = vehicle.wings['horizontal_stabilizer'].spans.projected
        AR_h               = (b_h**2.)/S_h
        taper_h            = vehicle.wings['horizontal_stabilizer'].spans.projected
        sweep_h            = vehicle.wings['horizontal_stabilizer'].sweeps.quarter_chord
        mac_h              = vehicle.wings['horizontal_stabilizer'].chords.mean_aerodynamic
        t_c_h              = vehicle.wings['horizontal_stabilizer'].thickness_to_chord
        l_w2h              = vehicle.wings['horizontal_stabilizer'].origin[0] + vehicle.wings['horizontal_stabilizer'].aerodynamic_center[0] - vehicle.wings['main_wing'].origin[0] - vehicle.wings['main_wing'].aerodynamic_center[0] #used for fuselage weight
        wt_tail_horizontal = tail_horizontal(S_h, AR_h, sweep_h, q_c, taper_h, t_c_h,Nult,TOW)                
        
        vehicle.wings['horizontal_stabilizer'].mass_properties.mass = wt_tail_horizontal        
    
    #vertical stabilizer
    if 'vertical_stabilizer' not in vehicle.wings:   
        output_3 = Data()
        output_3.wt_tail_vertical = 0.0

        S_v = 0.0
        warnings.warn("There is no Vertical Tail Weight being added to the Configuration", stacklevel=1)    

    else:     
        S_v        = vehicle.wings['vertical_stabilizer'].areas.reference
        b_v        = vehicle.wings['vertical_stabilizer'].spans.projected
        AR_v       = (b_v**2.)/S_v
        taper_v    = vehicle.wings['vertical_stabilizer'].taper
        t_c_v      = vehicle.wings['vertical_stabilizer'].thickness_to_chord
        sweep_v    = vehicle.wings['vertical_stabilizer'].sweeps.quarter_chord
        t_tail     = vehicle.wings['vertical_stabilizer'].t_tail  
        output_3   = tail_vertical(S_v, AR_v, sweep_v, q_c, taper_v, t_c_v, Nult,TOW,t_tail)
        
        vehicle.wings['vertical_stabilizer'].mass_properties.mass = output_3.wt_tail_vertical
    
    if 'fuselages.fuselage' not in vehicle:
        S_fus      = vehicle.fuselages['fuselage'].areas.wetted
        diff_p_fus = vehicle.fuselages['fuselage'].differential_pressure
        w_fus      = vehicle.fuselages['fuselage'].width
        h_fus      = vehicle.fuselages['fuselage'].heights.maximum
        l_fus      = vehicle.fuselages['fuselage'].lengths.structure
        V_fuse     = vehicle.fuselages['fuselage'].mass_properties.volume
        V_int      = vehicle.fuselages['fuselage'].mass_properties.internal_volume 
        num_seats  = vehicle.fuselages['fuselage'].number_coach_seats 
        #calculate fuselage weight
        wt_fuselage = fuselage(S_fus, Nult, TOW, w_fus, h_fus, l_fus, l_w2h, q_c, V_fuse, diff_p_fus)
    else:
        print('got here')
        warnings.warn('There is no Fuselage weight being added to the vehicle', stacklevel=1)

    #landing gear
开发者ID:suavecode,项目名称:SUAVE,代码行数:70,代码来源:empty.py

示例3: empty

# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import wt_tail_vertical [as 别名]

#.........这里部分代码省略.........
    diff_p_fus = vehicle.fuselages['fuselage'].differential_pressure
    w_fus = vehicle.fuselages['fuselage'].width
    h_fus = vehicle.fuselages['fuselage'].heights.maximum
    l_fus = vehicle.fuselages['fuselage'].lengths.total

    if not vehicle.wings.has_key('horizontal_stabilizer'):
        wt_tail_horizontal = 0.0
        S_h = 0.0
        warnings.warn("There is no Horizontal Tail Weight being added to the Configuration", stacklevel=1)

    else:
        S_h = vehicle.wings['horizontal_stabilizer'].areas.reference
        b_h = vehicle.wings['horizontal_stabilizer'].spans.projected
        A_h = vehicle.wings['horizontal_stabilizer'].aspect_ratio
        sweep_h = vehicle.wings['horizontal_stabilizer'].sweep
        mac_h = vehicle.wings['horizontal_stabilizer'].chords.mean_aerodynamic
        c_r_h = vehicle.wings['horizontal_stabilizer'].chords.root
        t_c_h = vehicle.wings['horizontal_stabilizer'].thickness_to_chord
        # print 'c_r_h =',c_r_h
        taper_h = vehicle.wings['horizontal_stabilizer'].taper
        h_tail_exposed = vehicle.wings['horizontal_stabilizer'].areas.exposed / vehicle.wings[
            'horizontal_stabilizer'].areas.wetted
        l_w2h = vehicle.wings['horizontal_stabilizer'].origin[0] + \
                vehicle.wings['horizontal_stabilizer'].aerodynamic_center[0] - vehicle.wings['main_wing'].origin[0] - \
                vehicle.wings['main_wing'].aerodynamic_center[
                    0]  # Need to check this is the length of the horizontal tail moment arm
        # wt_tail_horizontal = tail_horizontal(b_h, sweep_h, Nult, S_h, TOW, mac_w, mac_h, l_w2h, t_c_h, h_tail_exposed)
        Sel = 0.15 * S_h
        wt_tail_horizontal = hor_tail(c_r_h, taper_h, l_w2h, Sel, S_h, A_h, b_h, sweep_h, TOW, Nult)
        vehicle.wings['horizontal_stabilizer'].mass_properties.mass = wt_tail_horizontal

    if not vehicle.wings.has_key('vertical_stabilizer'):
        output_3 = Data()
        output_3.wt_tail_vertical = 0.0
        output_3.wt_rudder = 0.0
        S_v = 0.0
        warnings.warn("There is no Vertical Tail Weight being added to the Configuration", stacklevel=1)

    else:
        S_v = vehicle.wings['vertical_stabilizer'].areas.reference
        b_v = vehicle.wings['vertical_stabilizer'].spans.projected
        A_v = vehicle.wings['vertical_stabilizer'].aspect_ratio
        t_c_v = vehicle.wings['vertical_stabilizer'].thickness_to_chord
        sweep_v = vehicle.wings['vertical_stabilizer'].sweep
        taper_v = vehicle.wings['vertical_stabilizer'].taper
        c_r_v = vehicle.wings['vertical_stabilizer'].chords.root
        mac_v = vehicle.wings['vertical_stabilizer'].chords.mean_aerodynamic
        t_tail = vehicle.wings['vertical_stabilizer'].t_tail
        output_3 = tail_vertical(S_v, Nult, b_v, TOW, t_c_v, sweep_v, S_gross_w, t_tail)
        wt_tail_vertical = vert_tail(S_v, b_v, c_r_v, taper_v, t_c_v, A_v, sweep_v, l_w2h, TOW)
        vehicle.wings['vertical_stabilizer'].mass_properties.mass = wt_tail_vertical
        # print 'b_v =',b_v
        # print 'c_r_v =',c_r_v
        # print 'c_t_v =',c_r_v*taper_v
        # vehicle.wings['vertical_stabilizer'].mass_properties.mass = output_3.wt_tail_vertical + output_3.wt_rudder

    # Calculating Empty Weight of Aircraft
    wt_landing_gear, gear, h_gear = landing_gear(TOW, d_eng, h_fus, V_descent)
    # print 'h_gear =', h_gear
    l_nose = vehicle.fuselages['fuselage'].lengths.nose
    l_center = vehicle.fuselages['fuselage'].lengths.cabin
    l_tail = vehicle.fuselages['fuselage'].lengths.tail
    S_cstot = 0.22 * mac_w * 0.6 * b * 1.5 + 0.3 * mac_v * 0.9 * b_v + 0.2 * mac_h * 0.9 * b_h  # 1.5 factor is because of assumed spoilers on wings
    Iy_SI = 1230140.7646609414  # kgm^2
    Vmax = 240  # m/s
    wt_fuselage = tube(S_fus, diff_p_fus, w_fus, h_fus, l_nose, l_center, l_tail, l_fus, Nlim, wt_zf, wt_wing,
开发者ID:lukekulik,项目名称:saga-one,代码行数:70,代码来源:empty_saga.py

示例4: empty

# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import wt_tail_vertical [as 别名]

#.........这里部分代码省略.........

    if not vehicle.propulsors.has_key('turbo_fan'):
        wt_engine_jet = 0.0
        wt_propulsion = 0.0
        warnings.warn("There is no Turbo Fan Engine Weight being added to the Configuration", stacklevel=1)    
    else:    
        num_eng            = vehicle.propulsors['turbo_fan'].number_of_engines
                # thrust_sls should be sea level static thrust. Using design thrust results in wrong propulsor 
                # weight estimation. Engine sizing should return this value.
                # for now, using thrust_sls = design_thrust / 0.20, just for optimization evaluations
        thrust_sls         = vehicle.propulsors['turbo_fan'].sealevel_static_thrust #design_thrust / 0.20 # to account for difference in thrust as SL and design thrust
        wt_engine_jet      = Propulsion.engine_jet(thrust_sls)
        wt_propulsion      = Propulsion.integrated_propulsion(wt_engine_jet,num_eng)

    S_gross_w  = vehicle.reference_area
    #S_gross_w  = vehicle.wings['main_wing'].Areas.reference
    if not vehicle.wings.has_key('main_wing'):
        wt_wing = 0.0
        wing_c_r = 0.0
        warnings.warn("There is no Wing Weight being added to the Configuration", stacklevel=1)
    else:
        b          = vehicle.wings['main_wing'].spans.projected
        lambda_w   = vehicle.wings['main_wing'].taper
        t_c_w      = vehicle.wings['main_wing'].thickness_to_chord
        sweep_w    = vehicle.wings['main_wing'].sweep
        mac_w      = vehicle.wings['main_wing'].chords.mean_aerodynamic
        wing_c_r   = vehicle.wings['main_wing'].chords.root
        wt_wing    = wing_main(S_gross_w,b,lambda_w,t_c_w,sweep_w,Nult,TOW,wt_zf)
        vehicle.wings['main_wing'].mass_properties.mass = wt_wing        

    S_fus      = vehicle.fuselages['fuselage'].areas.wetted
    diff_p_fus = vehicle.fuselages['fuselage'].differential_pressure
    w_fus      = vehicle.fuselages['fuselage'].width
    h_fus      = vehicle.fuselages['fuselage'].heights.maximum
    l_fus      = vehicle.fuselages['fuselage'].lengths.total

    if not vehicle.wings.has_key('horizontal_stabilizer'):
        wt_tail_horizontal = 0.0
        S_h = 0.0
        warnings.warn("There is no Horizontal Tail Weight being added to the Configuration", stacklevel=1)
    else:    
        S_h            = vehicle.wings['horizontal_stabilizer'].areas.reference
        b_h            = vehicle.wings['horizontal_stabilizer'].spans.projected
        sweep_h        = vehicle.wings['horizontal_stabilizer'].sweep
        mac_h          = vehicle.wings['horizontal_stabilizer'].chords.mean_aerodynamic
        t_c_h          = vehicle.wings['horizontal_stabilizer'].thickness_to_chord
        h_tail_exposed = vehicle.wings['horizontal_stabilizer'].areas.exposed / vehicle.wings['horizontal_stabilizer'].areas.wetted
        l_w2h      = vehicle.wings['horizontal_stabilizer'].origin[0] + vehicle.wings['horizontal_stabilizer'].aerodynamic_center[0] - vehicle.wings['main_wing'].origin[0] - vehicle.wings['main_wing'].aerodynamic_center[0] #Need to check this is the length of the horizontal tail moment arm
        wt_tail_horizontal = tail_horizontal(b_h,sweep_h,Nult,S_h,TOW,mac_w,mac_h,l_w2h,t_c_h, h_tail_exposed)                
        vehicle.wings['horizontal_stabilizer'].mass_properties.mass = wt_tail_horizontal        

    if not vehicle.wings.has_key('vertical_stabilizer'):   
        output_3 = Data()
        output_3.wt_tail_vertical = 0.0
        output_3.wt_rudder = 0.0
        S_v = 0.0
        warnings.warn("There is no Vertical Tail Weight being added to the Configuration", stacklevel=1)    
    else:     
        S_v        = vehicle.wings['vertical_stabilizer'].areas.reference
        b_v        = vehicle.wings['vertical_stabilizer'].spans.projected
        t_c_v      = vehicle.wings['vertical_stabilizer'].thickness_to_chord
        sweep_v    = vehicle.wings['vertical_stabilizer'].sweep
        t_tail     = vehicle.wings['vertical_stabilizer'].t_tail  
        output_3   = tail_vertical(S_v,Nult,b_v,TOW,t_c_v,sweep_v,S_gross_w,t_tail)
        vehicle.wings['vertical_stabilizer'].mass_properties.mass = output_3.wt_tail_vertical + output_3.wt_rudder


    # process
    # Calculating Empty Weight of Aircraft
    wt_landing_gear    = landing_gear(TOW)
    wt_fuselage        = tube(S_fus, diff_p_fus,w_fus,h_fus,l_fus,Nlim,wt_zf,wt_wing,wt_propulsion, wing_c_r)
    output_2           = systems(num_seats, ctrl_type, S_h, S_v, S_gross_w, ac_type)

    # Calculate the equipment empty weight of the aircraft
    wt_empty           = (wt_wing + wt_fuselage + wt_landing_gear + wt_propulsion + output_2.wt_systems + \
                          wt_tail_horizontal + output_3.wt_tail_vertical + output_3.wt_rudder) 
    vehicle.fuselages['fuselage'].mass_properties.mass = wt_fuselage

    # packup outputs
    output             = payload(TOW, wt_empty, num_pax,wt_cargo)
    output.wing              = wt_wing
    output.fuselage          = wt_fuselage
    output.propulsion        = wt_propulsion
    output.landing_gear      = wt_landing_gear
    output.horizontal_tail   = wt_tail_horizontal
    output.vertical_tail     = output_3.wt_tail_vertical
    output.rudder            = output_3.wt_rudder
    output.systems                   = output_2.wt_systems       
    output.systems_breakdown = Data()
    output.systems_breakdown.control_systems   = output_2.wt_flt_ctrl    
    output.systems_breakdown.apu               = output_2.wt_apu         
    output.systems_breakdown.hydralics         = output_2.wt_hyd_pnu     
    output.systems_breakdown.intruments        = output_2.wt_instruments 
    output.systems_breakdown.avionics          = output_2.wt_avionics    
    output.systems_breakdown.optionals         = output_2.wt_opitems     
    output.systems_breakdown.electrical        = output_2.wt_elec        
    output.systems_breakdown.air_conditioner   = output_2.wt_ac          
    output.systems_breakdown.furnish           = output_2.wt_furnish    

    return output
开发者ID:Aircraft-Design-UniNa,项目名称:SUAVE,代码行数:104,代码来源:empty.py


注:本文中的SUAVE.Core.Data.wt_tail_vertical方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。