def test(): Nclimb = 3 # number of climb segments Ncruise = 2 # number of cruise segments Nmission = 1 # number of missions config = 'optimalD8' # String describing configuration: # currently one of: 'D8_eng_wing', 'optimal737', 'optimal777', 'optimalD8', 'D8_no_BLI', 'M072_737' m = Mission(Nclimb, Ncruise, config, Nmission) # Objective m.cost = m['W_{f_{total}}'].sum() # Inputs to the model substitutions = get_optimalD8_subs() substitutions.update({'R_{req}': 3000.*units('nmi'), #6000*units('nmi'), 'n_{pass}': 180.}) #450.,) # Additional options fixedBPR = False pRatOpt = True sol = optimize_aircraft(m, substitutions, fixedBPR, pRatOpt) percent_diff(sol, config, Nclimb) post_compute(sol, Nclimb) sol.savetxt() return sol
def run_M072_737(objective, fixedBPR, pRatOpt, mutategparg): # User definitions Nclimb = 3 Ncruise = 2 Nmission = 1 aircraft = 'M072_737' m = Mission(Nclimb, Ncruise, objective, aircraft, Nmission) substitutions = get_M072_737_subs() if Nmission > 1: substitutions.update({ 'R_{req}': [3000. * units('nmi'), 2500. * units('nmi')], 'n_{pass}': [180., 180.], }) else: substitutions.update({ 'R_{req}': 3000. * units('nmi'), 'n_{pass}': 180., }) if fixedBPR: substitutions.update({ '\\alpha_{max}': 6.97, }) if pRatOpt: del substitutions['\pi_{f_D}'] ## del substitutions['\pi_{lc_D}'] ## del substitutions['\pi_{hc_D}'] m.substitutions.update(substitutions) m = Model(m.cost, BCS(m)) m_relax = relaxed_constants(m, None, ['M_{takeoff}', '\\theta_{db}']) sol = m_relax.localsolve(verbosity=4, iteration_limit=200, reltol=0.01, mutategp=mutategparg) post_process(sol) percent_diff(sol, aircraft, Nclimb) post_compute(sol, Nclimb) return sol
def run_optimal_777(objective, fixedBPR, pRatOpt, mutategparg): # User definitions Nclimb = 3 Ncruise = 2 Nmission = 1 aircraft = 'optimal777' m = Mission(Nclimb, Ncruise, objective, aircraft, Nmission) substitutions = get_optimal_777300ER_subs() substitutions.update({ 'R_{req}': 6000., 'n_{pass}': 450., }) if fixedBPR: substitutions.update({ '\\alpha_{max}': 8.62, }) if pRatOpt: del substitutions['\pi_{f_D}'] ## del substitutions['\pi_{lc_D}'] ## del substitutions['\pi_{hc_D}'] m.substitutions.update(substitutions) m = Model(m.cost, BCS(m)) m_relax = relaxed_constants(m, None, ['M_{takeoff}', '\\theta_{db}']) sol = m_relax.localsolve(verbosity=4, iteration_limit=200, reltol=0.01, mutategp=mutategparg) post_process(sol) percent_diff(sol, 'b777300ER', Nclimb) post_compute(sol, Nclimb) return sol