本文整理汇总了Python中SUAVE.Core.Data.fuselage方法的典型用法代码示例。如果您正苦于以下问题:Python Data.fuselage方法的具体用法?Python Data.fuselage怎么用?Python Data.fuselage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SUAVE.Core.Data
的用法示例。
在下文中一共展示了Data.fuselage方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: empty
# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import fuselage [as 别名]
#.........这里部分代码省略.........
cts - average tail surface chord [meters]
deltawts - average rib spacing to average chord ratio [dimensionless]
Ntsr - number of tail surface ribs (bts^2)/(deltats*Sts) [dimensionless]
t_cts - tail airfoil thickness to chord ratio [dimensionless]
vertical - a data dictionary with the fields:
Sts - tail surface area [meters]
bts - tail surface span [meters]
cts - average tail surface chord [meters]
deltawts - average rib spacing to average chord ratio [dimensionless]
Ntsr - number of tail surface ribs (bts**2)/(deltats*Sts) [dimensionless]
t_cts - tail airfoil thickness to chord ratio [dimensionless]
aircraft - a data dictionary with the fields:
nult - ultimate load factor [dimensionless]
GW - aircraft gross weight [kilogram]
qm - dynamic pressure at maneuvering speed [Pascals]
Ltb - tailboom length [meters]
Outputs:
Wws - weight of wing spar [kilogram]
Wtss - weight of tail surface spar [kilogram]
Wwr - weight of wing ribs [kilogram]
Wtsr - weight of tail surface ribs [kilogram]
Wwer - weight of wing end ribs [kilogram]
WwLE - weight of wing leading edge [kilogram]
WtsLE - weight of tail surface leading edge [kilogram]
WwTE - weight of wing trailing edge [kilogram]
Wwc - weight of wing covering [kilogram]
Wtsc - weight of tail surface covering [kilogram]
Wtb - tailboom weight [kilogram]
Properties Used:
N/A
"""
#Unpack
nult = vehicle.envelope.ultimate_load
gw = vehicle.mass_properties.max_takeoff
qm = vehicle.envelope.maximum_dynamic_pressure
# Wing weight
if not vehicle.wings.has_key('main_wing'):
wt_wing = 0.0
warnings.warn("There is no Wing Weight being added to the Configuration", stacklevel=1)
else:
Sw = vehicle.wings['main_wing'].areas.reference
bw = vehicle.wings['main_wing'].spans.projected
cw = vehicle.wings['main_wing'].chords.mean_aerodynamic
Nwr = vehicle.wings['main_wing'].number_ribs
t_cw = vehicle.wings['main_wing'].thickness_to_chord
Nwer = vehicle.wings['main_wing'].number_end_ribs
wt_wing = wing.wing(Sw,bw,cw,Nwr,t_cw,Nwer,nult,gw)
vehicle.wings['main_wing'].mass_properties.mass = wt_wing
# Horizontal Tail weight
if not vehicle.wings.has_key('horizontal_stabilizer'):
wt_ht = 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
chs = vehicle.wings['horizontal_stabilizer'].chords.mean_aerodynamic
Nhsr = vehicle.wings['horizontal_stabilizer'].number_ribs
t_ch = vehicle.wings['horizontal_stabilizer'].thickness_to_chord
wt_ht = tail.tail(S_h,b_h,chs,Nhsr,t_ch,qm)
vehicle.wings['horizontal_stabilizer'].mass_properties.mass = wt_ht
# Vertical Tail weight
if not vehicle.wings.has_key('vertical_stabilizer'):
wt_vt = 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
cvs = vehicle.wings['vertical_stabilizer'].chords.mean_aerodynamic
Nvsr = vehicle.wings['vertical_stabilizer'].number_ribs
t_cv = vehicle.wings['vertical_stabilizer'].thickness_to_chord
wt_vt = tail.tail(S_v,b_v,cvs,Nvsr,t_cv,qm)
vehicle.wings['vertical_stabilizer'].mass_properties.mass = wt_vt
# Fuselage weight
if not vehicle.fuselages.has_key('fuselage'):
wt_tb = 0.0
warnings.warn("There is no Fuselage Weight being added to the Configuration", stacklevel=1)
else:
Ltb = vehicle.Ltb
wt_tb = fuselage.fuselage(S_h,qm,Ltb)
vehicle.Fuselages['fuselage'].mass_properties.mass = wt_tb
weight = Data()
weight.wing = wt_wing
weight.fuselage = wt_tb
weight.horizontal_tail = wt_ht
weight.vertical_tail = wt_vt
weight.empty = wt_ht + wt_tb + wt_vt + wt_wing
return weight
示例2: empty
# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import fuselage [as 别名]
def empty(config,
speed_of_sound = 340.294,
max_tip_mach = 0.65,
disk_area_factor = 1.15,
max_thrust_to_weight_ratio = 1.1,
motor_efficiency = 0.85 * 0.98):
"""weight = SUAVE.Methods.Weights.Buildups.Electric_Stopped_Rotor.empty(
config,
speed_of_sound = 340.294,
max_tip_mach = 0.65,
disk_area_factor = 1.15,
max_thrust_to_weight_ratio = 1.1,
motor_efficiency = 0.85 * 0.98)
Calculates the empty fuselage mass for an electric stopped rotor including
seats, avionics, servomotors, ballistic recovery system, rotor and hub
assembly, transmission, and landing gear. Additionally incorporates
results of the following common buildup scripts:
fuselage,py
prop.py
wing.py
wiring.py
Originally written as part of an AA 290 project inteded for trade study
of the Electric Stopped Rotor along with the following defined SUAVE config types:
Electric Helicopter
Electric Tiltrotor
Sources:
Project Vahana Conceptual Trade Study
Inputs:
config SUAVE Config Data Structure
speed_of_sound Local Speed of Sound [m/s]
maximumTipMach Allowable Tip Mach Number [Unitless]
disk_area_factor Inverse of Disk Area Efficiency [Unitless]
max_thrust_to_weight_ratio Allowable Thrust to Weight Ratio [Unitless]
motor_efficiency Motor Efficiency [Unitless]
Outputs:
output: Data Dictionary of Component Masses [kg]
"""
output = Data()
#-------------------------------------------------------------------------------
# Unpack Inputs
#-------------------------------------------------------------------------------
rProp = config.propulsors.network.propeller.prop_attributes.tip_radius
mBattery = config.propulsors.network.battery.mass_properties.mass
mPayload = config.propulsors.network.payload.mass_properties.mass
MTOW = config.mass_properties.max_takeoff
nLiftProps = config.propulsors.network.number_of_engines/2
nThrustProps = config.propulsors.network.number_of_engines/2
nLiftBlades = config.propulsors.network.propeller.prop_attributes.number_blades
nThrustBlades = config.propulsors.network.propeller.prop_attributes.number_blades
fLength = config.fuselages.fuselage.lengths.total
fWidth = config.fuselages.fuselage.width
fHeight = config.fuselages.fuselage.heights.maximum
maxSpan = config.wings['main_wing'].spans.projected
sound = speed_of_sound
tipMach = max_tip_mach
k = disk_area_factor
ToverW = max_thrust_to_weight_ratio
etaMotor = motor_efficiency
output.payload = mPayload * Units.kg
output.seats = 30. *Units.kg
output.avionics = 15. *Units.kg
output.motors = config.propulsors.network.number_of_engines * 10. *Units.kg
output.battery = mBattery *Units.kg
output.servos = config.propulsors.network.number_of_engines * 0.65 *Units.kg
output.brs = 16. *Units.kg
output.hubs = config.propulsors.network.number_of_engines * 2. *Units.kg
output.landing_gear = MTOW * 0.02 *Units.kg
#-------------------------------------------------------------------------------
# Calculated Weights
#-------------------------------------------------------------------------------
# Preparatory Calculations
Vtip = sound * tipMach # Prop Tip Velocity
omega = Vtip/0.8 # Prop Ang. Velocity
maxLift = config.mass_properties.max_takeoff * ToverW # Maximum Thrust
Ct = maxLift/(1.225*np.pi*0.8**2*Vtip**2) # Thrust Coefficient
bladeSol = 0.1 # Blade Solidity
AvgCL = 6 * Ct / bladeSol # Average Blade CL
AvgCD = 0.012 # Average Blade CD
maxLiftPower = 1.15*maxLift*(
k*np.sqrt(maxLift/(2*1.225*np.pi*0.8**2)) +
bladeSol*AvgCD/8*Vtip**3/(maxLift/(1.225*np.pi*0.8**2))
#.........这里部分代码省略.........
示例3: main
# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import fuselage [as 别名]
def main():
vehicle = vehicle_setup()
weight = Tube_Wing.empty(vehicle)
# regression values
actual = Data()
actual.payload = 27349.9081525 #includes cargo #17349.9081525 #without cargo
actual.pax = 15036.587065500002
actual.bag = 2313.3210870000003
actual.fuel = 12977.803363592691 #includes cargo #22177.6377131 #without cargo
actual.empty = 38688.08848390731
actual.wing = 6649.709658738429
actual.fuselage = 6642.061164271899
actual.propulsion = 6838.185174956626
actual.landing_gear = 3160.632
actual.systems = 13479.10479056802
actual.wt_furnish = 6431.80372889
actual.horizontal_tail = 1037.7414196819743
actual.vertical_tail = 629.0387683502595
actual.rudder = 251.61550734010382
# error calculations
error = Data()
error.payload = (actual.payload - weight.payload)/actual.payload
error.pax = (actual.pax - weight.pax)/actual.pax
error.bag = (actual.bag - weight.bag)/actual.bag
error.fuel = (actual.fuel - weight.fuel)/actual.fuel
error.empty = (actual.empty - weight.empty)/actual.empty
error.wing = (actual.wing - weight.wing)/actual.wing
error.fuselage = (actual.fuselage - weight.fuselage)/actual.fuselage
error.propulsion = (actual.propulsion - weight.propulsion)/actual.propulsion
error.landing_gear = (actual.landing_gear - weight.landing_gear)/actual.landing_gear
error.systems = (actual.systems - weight.systems)/actual.systems
error.wt_furnish = (actual.wt_furnish - weight.systems_breakdown.furnish)/actual.wt_furnish
error.horizontal_tail = (actual.horizontal_tail - weight.horizontal_tail)/actual.horizontal_tail
error.vertical_tail = (actual.vertical_tail - weight.vertical_tail)/actual.vertical_tail
error.rudder = (actual.rudder - weight.rudder)/actual.rudder
print('Results (kg)')
print(weight)
print('Relative Errors')
print(error)
for k,v in list(error.items()):
assert(np.abs(v)<1E-6)
#General Aviation weights; note that values are taken from Raymer,
#but there is a huge spread among the GA designs, so individual components
#differ a good deal from the actual design
vehicle = vehicle_setup_general_aviation()
GTOW = vehicle.mass_properties.max_takeoff
weight = General_Aviation.empty(vehicle)
weight.fuel = vehicle.fuel.mass_properties.mass
actual = Data()
actual.bag = 0.
actual.empty = 618.485310343
actual.fuel = 144.69596603
actual.wing = 124.673093906
actual.fuselage = 119.522072873
actual.propulsion = 194.477769922 #includes power plant and propeller, does not include fuel system
actual.landing_gear = 44.8033840543+5.27975390045
actual.furnishing = 37.8341395817
actual.electrical = 36.7532226254
actual.control_systems = 14.8331955546
actual.fuel_systems = 15.6859717453
actual.systems = 108.096549345
error = Data()
error.fuel = (actual.fuel - weight.fuel)/actual.fuel
error.empty = (actual.empty - weight.empty)/actual.empty
error.wing = (actual.wing - weight.wing)/actual.wing
error.fuselage = (actual.fuselage - weight.fuselage)/actual.fuselage
error.propulsion = (actual.propulsion - weight.propulsion)/actual.propulsion
error.landing_gear = (actual.landing_gear - (weight.landing_gear_main+weight.landing_gear_nose))/actual.landing_gear
error.furnishing = (actual.furnishing-weight.systems_breakdown.furnish)/actual.furnishing
error.electrical = (actual.electrical-weight.systems_breakdown.electrical)/actual.electrical
error.control_systems = (actual.control_systems-weight.systems_breakdown.control_systems)/actual.control_systems
error.fuel_systems = (actual.fuel_systems-weight.systems_breakdown.fuel_system)/actual.fuel_systems
error.systems = (actual.systems - weight.systems)/actual.systems
print('actual.systems=', actual.systems)
print('General Aviation Results (kg)')
print(weight)
print('Relative Errors')
print(error)
for k,v in list(error.items()):
assert(np.abs(v)<1e-6)
# BWB WEIGHTS
vehicle = bwb_setup()
weight = BWB.empty(vehicle)
# regression values
actual = Data()
#.........这里部分代码省略.........
示例4: main
# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import fuselage [as 别名]
def main():
vehicle = vehicle_setup()
weight = Tube_Wing.empty(vehicle)
# regression values
actual = Data()
actual.payload = 27349.9081525 #includes cargo #17349.9081525 #without cargo
actual.pax = 15036.587065500002
actual.bag = 2313.3210870000003
actual.fuel = 12990.957450008464 #includes cargo #22177.6377131 #without cargo
actual.empty = 38674.934397491539
actual.wing = 6649.7096587384294
actual.fuselage = 6642.0611642718986
actual.propulsion = 6838.1851749566231
actual.landing_gear = 3160.632
actual.systems = 13479.10479056802
actual.wt_furnish = 6431.80372889
actual.horizontal_tail = 1024.5873332662029
actual.vertical_tail = 629.03876835025949
actual.rudder = 251.61550734010382
# error calculations
error = Data()
error.payload = (actual.payload - weight.payload)/actual.payload
error.pax = (actual.pax - weight.pax)/actual.pax
error.bag = (actual.bag - weight.bag)/actual.bag
error.fuel = (actual.fuel - weight.fuel)/actual.fuel
error.empty = (actual.empty - weight.empty)/actual.empty
error.wing = (actual.wing - weight.wing)/actual.wing
error.fuselage = (actual.fuselage - weight.fuselage)/actual.fuselage
error.propulsion = (actual.propulsion - weight.propulsion)/actual.propulsion
error.landing_gear = (actual.landing_gear - weight.landing_gear)/actual.landing_gear
error.systems = (actual.systems - weight.systems)/actual.systems
error.wt_furnish = (actual.wt_furnish - weight.systems_breakdown.furnish)/actual.wt_furnish
error.horizontal_tail = (actual.horizontal_tail - weight.horizontal_tail)/actual.horizontal_tail
error.vertical_tail = (actual.vertical_tail - weight.vertical_tail)/actual.vertical_tail
error.rudder = (actual.rudder - weight.rudder)/actual.rudder
print 'Results (kg)'
print weight
print 'Relative Errors'
print error
for k,v in error.items():
assert(np.abs(v)<1E-6)
#General Aviation weights; note that values are taken from Raymer,
#but there is a huge spread among the GA designs, so individual components
#differ a good deal from the actual design
vehicle = vehicle_setup_general_aviation()
GTOW = vehicle.mass_properties.max_takeoff
weight = General_Aviation.empty(vehicle)
weight.fuel = vehicle.fuel.mass_properties.mass
actual = Data()
actual.bag = 0.
actual.empty = 618.485310343
actual.fuel = 144.69596603
actual.wing = 124.673093906
actual.fuselage = 119.522072873
actual.propulsion = 194.477769922 #includes power plant and propeller, does not include fuel system
actual.landing_gear = 44.8033840543+5.27975390045
actual.furnishing = 37.8341395817
actual.electrical = 36.7532226254
actual.control_systems = 14.8331955546
actual.fuel_systems = 15.6859717453
actual.systems = 108.096549345
error = Data()
error.fuel = (actual.fuel - weight.fuel)/actual.fuel
error.empty = (actual.empty - weight.empty)/actual.empty
error.wing = (actual.wing - weight.wing)/actual.wing
error.fuselage = (actual.fuselage - weight.fuselage)/actual.fuselage
error.propulsion = (actual.propulsion - weight.propulsion)/actual.propulsion
error.landing_gear = (actual.landing_gear - (weight.landing_gear_main+weight.landing_gear_nose))/actual.landing_gear
error.furnishing = (actual.furnishing-weight.systems_breakdown.furnish)/actual.furnishing
error.electrical = (actual.electrical-weight.systems_breakdown.electrical)/actual.electrical
error.control_systems = (actual.control_systems-weight.systems_breakdown.control_systems)/actual.control_systems
error.fuel_systems = (actual.fuel_systems-weight.systems_breakdown.fuel_system)/actual.fuel_systems
error.systems = (actual.systems - weight.systems)/actual.systems
print 'actual.systems=', actual.systems
print 'General Aviation Results (kg)'
print weight
print 'Relative Errors'
print error
for k,v in error.items():
assert(np.abs(v)<1e-6)
return
示例5: main
# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import fuselage [as 别名]
#.........这里部分代码省略.........
#design sizing conditions
altitude = 35000.0*Units.ft
mach_number = 0.78
isa_deviation = 0.
# add to network
turbofan.thrust = thrust
#size the turbofan
turbofan_sizing(turbofan,mach_number,altitude)
# add gas turbine network gt_engine to the vehicle
vehicle.append_component(turbofan)
vehicle.passengers = 170. # Number of passengers
vehicle.mass_properties.cargo = 0. * Units.kilogram # Mass of cargo
vehicle.systems.control = "fully powered" # Specify fully powered, partially powered or anything else is fully aerodynamic
vehicle.systems.accessories = "medium-range" # Specify what type of aircraft you have
vehicle.reference_area = 124.862 * Units.meter**2 # Wing gross area in square meters
wing = SUAVE.Components.Wings.Wing()
wing.tag = 'main_wing'
wing.spans.projected = 50. * Units.meter # Span in meters
wing.taper = 0.2 # Taper ratio
wing.thickness_to_chord = 0.08 # Thickness-to-chord ratio
wing.sweep = .4363323 * Units.rad # sweep angle in degrees
wing.chords.root = 15. * Units.meter # Wing root chord length
wing.chords.mean_aerodynamic = 10. * Units.meters # Length of the mean aerodynamic chord of the wing
wing.origin = [20,0,0] * Units.meters # Location of main wing from origin of the vehicle
wing.aerodynamic_center = [3,0,0] * Units.meters # Location of aerodynamic center from origin of the main wing
vehicle.append_component(wing)
fuselage = SUAVE.Components.Fuselages.Fuselage()
fuselage.tag = 'fuselage'
fuselage.areas.wetted = 688.64 * Units.meter**2 # Fuselage wetted area
fuselage.differential_pressure = 55960.5 * Units.pascal # Maximum differential pressure
fuselage.width = 4. * Units.meter # Width of the fuselage
fuselage.heights.maximum = 4. * Units.meter # Height of the fuselage
fuselage.lengths.total = 58.4 * Units.meter # Length of the fuselage
fuselage.number_coach_seats = 200.
vehicle.append_component(fuselage)
wing = SUAVE.Components.Wings.Wing()
wing.tag = 'horizontal_stabilizer'
wing.areas.reference = 75. * Units.meters**2 # Area of the horizontal tail
wing.spans.projected = 15. * Units.meters # Span of the horizontal tail
wing.sweep = 38. * Units.deg # Sweep of the horizontal tail
wing.chords.mean_aerodynamic = 5. * Units.meters # Length of the mean aerodynamic chord of the horizontal tail
wing.thickness_to_chord = 0.07 # Thickness-to-chord ratio of the horizontal tail
wing.areas.exposed = 199.7792 # Exposed area of the horizontal tail
wing.areas.wetted = 249.724 # Wetted area of the horizontal tail
wing.origin = [45,0,0] # Location of horizontal tail from origin of the vehicle
wing.aerodynamic_center = [3,0,0] # Location of aerodynamic center from origin of the horizontal tail
vehicle.append_component(wing)
wing = SUAVE.Components.Wings.Wing()
wing.tag = 'vertical_stabilizer'
wing.areas.reference = 60. * Units.meters**2 # Area of the vertical tail
wing.spans.projected = 15. * Units.meters # Span of the vertical tail
wing.thickness_to_chord = 0.07 # Thickness-to-chord ratio of the vertical tail
wing.sweep = 40. * Units.deg # Sweep of the vertical tail
wing.t_tail = "false" # Set to "yes" for a T-tail
vehicle.append_component(wing)
weight = Tube_Wing.empty(vehicle)
示例6: main
# 需要导入模块: from SUAVE.Core import Data [as 别名]
# 或者: from SUAVE.Core.Data import fuselage [as 别名]
def main():
vehicle = SUAVE.Vehicle()# Create the vehicle for testing
# Parameters Required
vehicle.envelope.ultimate_load = 3.5 # Ultimate load
vehicle.mass_properties.max_takeoff = 79015.8 * Units.kilograms # Maximum takeoff weight in kilograms
vehicle.mass_properties.max_zero_fuel = 79015.8 * 0.9 * Units.kilograms # Maximum zero fuel weight in kilograms
vehicle.envelope.limit_load = 1.5 # Limit Load
turbofan = SUAVE.Components.Propulsors.TurboFanPASS()
turbofan.tag = 'turbo_fan'
turbofan.number_of_engines = 2. # Number of engines on the aircraft
turbofan.design_thrust = 200. * Units.newton # Define Thrust in Newtons
vehicle.append_component(turbofan)
vehicle.passengers = 170. # Number of passengers
vehicle.mass_properties.cargo = 0. * Units.kilogram # Mass of cargo
vehicle.systems.control = "fully powered" # Specify fully powered, partially powered or anything else is fully aerodynamic
vehicle.systems.accessories = "medium-range" # Specify what type of aircraft you have
vehicle.reference_area = 124.862 * Units.meter**2 # Wing gross area in square meters
wing = SUAVE.Components.Wings.Wing()
wing.tag = 'main_wing'
wing.spans.projected = 50. * Units.meter # Span in meters
wing.taper = 0.2 # Taper ratio
wing.thickness_to_chord = 0.08 # Thickness-to-chord ratio
wing.sweep = .4363323 * Units.rad # sweep angle in degrees
wing.chords.root = 15. * Units.meter # Wing root chord length
wing.chords.mean_aerodynamic = 10. * Units.meters # Length of the mean aerodynamic chord of the wing
wing.origin = [20,0,0] * Units.meters # Location of main wing from origin of the vehicle
wing.aerodynamic_center = [3,0,0] * Units.meters # Location of aerodynamic center from origin of the main wing
vehicle.append_component(wing)
fuselage = SUAVE.Components.Fuselages.Fuselage()
fuselage.tag = 'fuselage'
fuselage.areas.wetted = 688.64 * Units.meter**2 # Fuselage wetted area
fuselage.differential_pressure = 55960.5 * Units.pascal # Maximum differential pressure
fuselage.width = 4. * Units.meter # Width of the fuselage
fuselage.heights.maximum = 4. * Units.meter # Height of the fuselage
fuselage.lengths.total = 58.4 * Units.meter # Length of the fuselage
fuselage.number_coach_seats = 200.
vehicle.append_component(fuselage)
wing = SUAVE.Components.Wings.Wing()
wing.tag = 'horizontal_stabilizer'
wing.areas.reference = 75. * Units.meters**2 # Area of the horizontal tail
wing.spans.projected = 15. * Units.meters # Span of the horizontal tail
wing.sweep = 38. * Units.deg # Sweep of the horizontal tail
wing.chords.mean_aerodynamic = 5. * Units.meters # Length of the mean aerodynamic chord of the horizontal tail
wing.thickness_to_chord = 0.07 # Thickness-to-chord ratio of the horizontal tail
wing.areas.exposed = 199.7792 # Exposed area of the horizontal tail
wing.areas.wetted = 249.724 # Wetted area of the horizontal tail
wing.origin = [45,0,0] # Location of horizontal tail from origin of the vehicle
wing.aerodynamic_center = [3,0,0] # Location of aerodynamic center from origin of the horizontal tail
vehicle.append_component(wing)
wing = SUAVE.Components.Wings.Wing()
wing.tag = 'vertical_stabilizer'
wing.areas.reference = 60. * Units.meters**2 # Area of the vertical tail
wing.spans.projected = 15. * Units.meters # Span of the vertical tail
wing.thickness_to_chord = 0.07 # Thickness-to-chord ratio of the vertical tail
wing.sweep = 40. * Units.deg # Sweep of the vertical tail
wing.t_tail = "false" # Set to "yes" for a T-tail
vehicle.append_component(wing)
weight = Tube_Wing.empty(vehicle)
actual = Data()
actual.payload = 17349.9081525
actual.pax = 15036.5870655
actual.bag = 2313.321087
actual.fuel = -6993.89102491
actual.empty = 68659.7828724
actual.wing = 27694.192985
actual.fuselage = 11504.5186408
actual.propulsion = 88.3696093424
actual.landing_gear = 3160.632
actual.systems = 16655.7076511
actual.wt_furnish = 7466.1304102
actual.horizontal_tail = 2191.30720639
actual.vertical_tail = 5260.75341411
actual.rudder = 2104.30136565
error = Data()
error.payload = (actual.payload - weight.payload)/actual.payload
error.pax = (actual.pax - weight.pax)/actual.pax
error.bag = (actual.bag - weight.bag)/actual.bag
error.fuel = (actual.fuel - weight.fuel)/actual.fuel
error.empty = (actual.empty - weight.empty)/actual.empty
error.wing = (actual.wing - weight.wing)/actual.wing
error.fuselage = (actual.fuselage - weight.fuselage)/actual.fuselage
error.propulsion = (actual.propulsion - weight.propulsion)/actual.propulsion
error.landing_gear = (actual.landing_gear - weight.landing_gear)/actual.landing_gear
error.systems = (actual.systems - weight.systems)/actual.systems
error.wt_furnish = (actual.wt_furnish - weight.wt_furnish)/actual.wt_furnish
error.horizontal_tail = (actual.horizontal_tail - weight.horizontal_tail)/actual.horizontal_tail
error.vertical_tail = (actual.vertical_tail - weight.vertical_tail)/actual.vertical_tail
error.rudder = (actual.rudder - weight.rudder)/actual.rudder
for k,v in error.items():
#.........这里部分代码省略.........