Skip to content

Commit

Permalink
Merge 8bbc8f9 into 5443f7f
Browse files Browse the repository at this point in the history
  • Loading branch information
WallyMaier committed Feb 8, 2018
2 parents 5443f7f + 8bbc8f9 commit 42fa5dc
Show file tree
Hide file tree
Showing 56 changed files with 1,696 additions and 516 deletions.
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -29,12 +29,14 @@ Contributing Developers
* Michael Colonno
* Michael Kruger
* Michael Vegh
* Pedro Gonçalves
* Rick Fenrich
* Tarik Orra
* Tim MacDonald
* Tim Momose
* Tom Economon
* Trent Lukaczyk
* Walter Maier

Contributing Institutions
-------------------------
Expand Down
2 changes: 2 additions & 0 deletions regression/automatic_regression.py
Expand Up @@ -3,6 +3,7 @@
# Created: Jun 2014, T. Lukaczyk
# Modified: Jun 2014, SUAVE Team
# Jul 2017, SUAVE Team
# Jan 2018, SUAVE Team

# ----------------------------------------------------------------------
# Imports
Expand Down Expand Up @@ -63,6 +64,7 @@
'scripts/Regional_Jet_Optimization/Optimize2.py',
'scripts/industrial_costs/industrial_costs.py',
'scripts/sizing_loop/sizing_loop.py',
'scripts/ramjet_network/ramjet_network.py',
'scripts/lifting_line/lifting_line.py',
'scripts/sweeps/test_sweeps.py',
]
Expand Down
4 changes: 2 additions & 2 deletions regression/scripts/AVL/test_AVL.py
Expand Up @@ -77,7 +77,7 @@ def main():

# lift coefficient check
lift_coefficient = results.conditions.cruise.aerodynamics.lift_coefficient[0]
lift_coefficient_true = 0.59571034
lift_coefficient_true = 0.59573698
print lift_coefficient
diff_CL = np.abs(lift_coefficient - lift_coefficient_true)
print 'CL difference'
Expand All @@ -86,7 +86,7 @@ def main():

# moment coefficient check
moment_coefficient = results.conditions.cruise.stability.static.CM[0][0]
moment_coefficient_true = -0.62167644
moment_coefficient_true = -0.62170404626245035
print moment_coefficient
diff_CM = np.abs(moment_coefficient - moment_coefficient_true)
print 'CM difference'
Expand Down
2 changes: 1 addition & 1 deletion regression/scripts/B737/results_mission_B737.res

Large diffs are not rendered by default.

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions regression/scripts/Regional_Jet_Optimization/Optimize2.py
Expand Up @@ -31,26 +31,26 @@ def main():
con3 = problem.all_constraints([1.1,0.9])

actual = Data()
actual.obj = 0.6669194640437861
actual.con = 1.12443656
actual.obj2 = 0.6849694056002233
actual.con3 = 1.19398434
actual.obj = 0.665588312259718
actual.con = 1.13148448
actual.obj2 = 0.6837024358431955
actual.con3 = 1.20031623

print 'Fuel Burn =', obj
print 'Fuel Margin =', con


error = Data()
error.obj = (actual.obj - obj)/actual.obj
error.con = (actual.con - con)/actual.con
error.obj = (actual.obj - obj)/actual.obj
error.con = (actual.con - con)/actual.con
error.obj2 = (actual.obj2 - obj2)/actual.obj2
error.con3 = (actual.con3 - con3)/actual.con3

print 'Fuel Burn Error =', error.obj
print 'Fuel Burn Error =',error.obj
print 'Fuel Margin Error =',error.con

for k,v in error.items():
assert(np.abs(v)<0.001)
assert(np.abs(v)<1e-6)

return

Expand Down
6 changes: 3 additions & 3 deletions regression/scripts/SU2_surrogate/BWB-450.py
Expand Up @@ -3,7 +3,7 @@
# Created: Aug 2014, SUAVE Team
# Modified: Jan 2017, T. MacDonald
# Jul 2017, M. Clarke

# Jan 2018, W. Maier

# ----------------------------------------------------------------------
# Imports
Expand Down Expand Up @@ -54,11 +54,11 @@ def main():
results = mission.evaluate()

final_mass = results.segments[-1].conditions.weights.total_mass[-1,0]/Units.lb
final_mass_true = 563356.60640792653 # this is in lb
final_mass_true = 563940.43613379949 # this is in lb

print final_mass

assert np.abs(final_mass - final_mass_true) < 1e-3
assert np.abs(final_mass - final_mass_true)/final_mass_true < 1e-6


return
Expand Down
2 changes: 1 addition & 1 deletion regression/scripts/Vehicles/Embraer_190.py
Expand Up @@ -211,7 +211,7 @@ def vehicle_setup():
gt_engine.areas.wetted = Awet

#set the working fluid for the network
working_fluid = SUAVE.Attributes.Gases.Air
working_fluid = SUAVE.Attributes.Gases.Air()

#add working fluid to the network
gt_engine.working_fluid = working_fluid
Expand Down
2 changes: 1 addition & 1 deletion regression/scripts/concorde/results_mission_concorde.res

Large diffs are not rendered by default.

145 changes: 63 additions & 82 deletions regression/scripts/gasturbine_network/gasturbine_network.py
Expand Up @@ -50,9 +50,7 @@ def energy_network():
# ------------------------------------------------------------------

# --- Conditions
ones_1col = np.ones([1,1])


ones_1col = np.ones([1,1])

# setup conditions
conditions = SUAVE.Analyses.Mission.Segments.Conditions.Aerodynamics()
Expand All @@ -64,46 +62,40 @@ def energy_network():
conditions.weights = Data()
conditions.energies = Data()
'''
# self.conditions = conditions


# self.conditions = conditions

# freestream conditions
conditions.freestream.mach_number = ones_1col*0.8
conditions.freestream.pressure = ones_1col*20000.
conditions.freestream.temperature = ones_1col*215.
conditions.freestream.density = ones_1col*0.8

conditions.freestream.dynamic_viscosity = ones_1col* 0.000001475
conditions.freestream.altitude = ones_1col* 10.
conditions.freestream.gravity = ones_1col*9.81
conditions.freestream.gamma = ones_1col*1.4
conditions.freestream.Cp = 1.4*287.87/(1.4-1)
conditions.freestream.R = 287.87
conditions.M = conditions.freestream.mach_number
conditions.T = conditions.freestream.temperature
conditions.p = conditions.freestream.pressure
conditions.freestream.speed_of_sound = ones_1col* np.sqrt(conditions.freestream.Cp/(conditions.freestream.Cp-conditions.freestream.R)*conditions.freestream.R*conditions.freestream.temperature) #300.
conditions.freestream.velocity = conditions.M * conditions.freestream.speed_of_sound
conditions.velocity = conditions.M * conditions.freestream.speed_of_sound
conditions.q = 0.5*conditions.freestream.density*conditions.velocity**2
conditions.g0 = conditions.freestream.gravity
conditions.freestream.mach_number = ones_1col*0.8
conditions.freestream.pressure = ones_1col*20000.
conditions.freestream.temperature = ones_1col*215.
conditions.freestream.density = ones_1col*0.8

conditions.freestream.dynamic_viscosity = ones_1col* 0.000001475
conditions.freestream.altitude = ones_1col* 10.
conditions.freestream.gravity = ones_1col*9.81
conditions.freestream.isentropic_expansion_factor = ones_1col*1.4
conditions.freestream.Cp = 1.4*287.87/(1.4-1)
conditions.freestream.R = 287.87
conditions.M = conditions.freestream.mach_number
conditions.T = conditions.freestream.temperature
conditions.p = conditions.freestream.pressure
conditions.freestream.speed_of_sound = ones_1col* np.sqrt(conditions.freestream.Cp/(conditions.freestream.Cp-conditions.freestream.R)*conditions.freestream.R*conditions.freestream.temperature) #300.
conditions.freestream.velocity = conditions.M * conditions.freestream.speed_of_sound
conditions.velocity = conditions.M * conditions.freestream.speed_of_sound
conditions.q = 0.5*conditions.freestream.density*conditions.velocity**2
conditions.g0 = conditions.freestream.gravity

# propulsion conditions
conditions.propulsion.throttle = ones_1col*1.0



conditions.propulsion.throttle = ones_1col*1.0

# ------------------------------------------------------------------
# Design/sizing conditions
# ------------------------------------------------------------------


# --- Conditions
# Conditions
ones_1col = np.ones([1,1])



# setup conditions

# Setup conditions
conditions_sizing = SUAVE.Analyses.Mission.Segments.Conditions.Aerodynamics()
'''
conditions_sizing.frames = Data()
Expand All @@ -113,43 +105,38 @@ def energy_network():
conditions_sizing.weights = Data()
conditions_sizing.energies = Data()
'''
# self.conditions = conditions

# self.conditions = conditions

# freestream conditions
conditions_sizing.freestream.mach_number = ones_1col*0.8
conditions_sizing.freestream.pressure = ones_1col*26499.73156529
conditions_sizing.freestream.temperature = ones_1col*223.25186491
conditions_sizing.freestream.density = ones_1col*0.41350854

conditions_sizing.freestream.dynamic_viscosity = ones_1col* 1.45766126e-05 #*1.789*10**(-5)
conditions_sizing.freestream.altitude = ones_1col* 10000. #* 0.5

conditions_sizing.freestream.gravity = ones_1col*9.81
conditions_sizing.freestream.gamma = ones_1col*1.4
conditions_sizing.freestream.Cp = 1.4*287.87/(1.4-1)
conditions_sizing.freestream.R = 287.87
conditions_sizing.freestream.speed_of_sound = 299.53150968
conditions_sizing.freestream.velocity = conditions_sizing.freestream.mach_number * conditions_sizing.freestream.speed_of_sound
conditions_sizing.freestream.mach_number = ones_1col*0.8
conditions_sizing.freestream.pressure = ones_1col*26499.73156529
conditions_sizing.freestream.temperature = ones_1col*223.25186491
conditions_sizing.freestream.density = ones_1col*0.41350854
conditions_sizing.freestream.dynamic_viscosity = ones_1col* 1.45766126e-05
conditions_sizing.freestream.altitude = ones_1col* 10000.
conditions_sizing.freestream.gravity = ones_1col*9.81
conditions_sizing.freestream.isentropic_expansion_factor = ones_1col*1.4
conditions_sizing.freestream.Cp = 1.4*287.87/(1.4-1)
conditions_sizing.freestream.R = 287.87
conditions_sizing.freestream.speed_of_sound = 299.53150968
conditions_sizing.freestream.velocity = conditions_sizing.freestream.mach_number * conditions_sizing.freestream.speed_of_sound

# propulsion conditions
conditions_sizing.propulsion.throttle = ones_1col*1.0
conditions_sizing.propulsion.throttle = ones_1col*1.0

state_sizing = Data()
state_sizing.numerics = Data()
state_sizing.conditions = conditions_sizing
state_off_design=Data()
state_off_design.numerics=Data()
state_off_design.conditions=conditions
state_sizing = Data()
state_sizing.numerics = Data()
state_sizing.conditions = conditions_sizing
state_off_design = Data()
state_off_design.numerics = Data()
state_off_design.conditions = conditions


# ------------------------------------------------------------------
# Turbofan Network
# ------------------------------------------------------------------



#instantiate the gas turbine network
# Instantiate the gas turbine network
turbofan = SUAVE.Components.Energy.Networks.Turbofan()
turbofan.tag = 'turbofan'

Expand Down Expand Up @@ -324,15 +311,12 @@ def energy_network():
thrust.tag ='thrust'

# setup
thrust.total_design =42383.01818423
thrust.total_design = 42383.01818423

# add to network
turbofan.thrust = thrust

#bypass ratio closer to fan

numerics = Data()


numerics = Data()
eta=1.0

#size the turbofan
Expand All @@ -342,32 +326,29 @@ def energy_network():
print "Sealevel static thrust ",turbofan.sealevel_static_thrust


results_design = turbofan(state_sizing)
results_off_design=turbofan(state_off_design)
F = results_design.thrust_force_vector
mdot = results_design.vehicle_mass_rate
F_off_design=results_off_design.thrust_force_vector
mdot_off_design = results_off_design.vehicle_mass_rate
results_design = turbofan(state_sizing)
results_off_design = turbofan(state_off_design)
F = results_design.thrust_force_vector
mdot = results_design.vehicle_mass_rate
F_off_design = results_off_design.thrust_force_vector
mdot_off_design = results_off_design.vehicle_mass_rate


#Test the model

#Specify the expected values
expected = Data()

expected.thrust = 42383.01818423
expected.mdot = 0.7657905
expected = Data()
expected.thrust = 42383.01818402065
expected.mdot = 0.76425264

#error data function
error = Data()

error = Data()
error.thrust_error = (F[0][0] - expected.thrust)/expected.thrust
error.mdot_error = (mdot[0][0]-expected.mdot)/expected.mdot
error.mdot_error = (mdot[0][0]-expected.mdot)/expected.mdot
print error

for k,v in error.items():
assert(np.abs(v)<1e-4)

assert(np.abs(v)<1e-6)

return

Expand Down
2 changes: 1 addition & 1 deletion regression/scripts/noise_optimization/Noise_Test.py
Expand Up @@ -46,7 +46,7 @@ def main():
noise_cumulative_margin = objectives[0]

actual = Data()
actual.noise_cumulative_margin = 18.3438059842
actual.noise_cumulative_margin = 21.0508182347



Expand Down
2 changes: 1 addition & 1 deletion regression/scripts/noise_optimization/approach.res

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion regression/scripts/noise_optimization/flyover.res

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion regression/scripts/noise_optimization/sideline.res

Large diffs are not rendered by default.

0 comments on commit 42fa5dc

Please sign in to comment.