def test():
    substitutions = get_parametric_studies_subs()
    substitutions.update({'ReqRng':
                          2000})  #('sweep', np.linspace(500,2000,4)),

    mission = Mission(2, 2)
    m = Model(mission['W_{f_{total}}'], mission, substitutions)
    sol = m.localsolve(verbosity=0)
Example #2
0
            ac.engine.engineP['M_2'][1] == cruise['M'][1],
            ac.engine.engineP['M_{2.5}'][1] == M25,
            ac.engine.engineP['M_{2.5}'][0] == M25,
            ac.engine.engineP['hold_{2}'] == 1 + .5 * (1.398 - 1) * M2**2,
            ac.engine.engineP['hold_{2.5}'] == 1 + .5 * (1.354 - 1) * M25**2,
            ac.engine.engineP['c1'] == 1 + .5 * (.401) * M0**2,

            #steady level flight constraint on D
            cruise['D'] == ac['numeng'] * ac.engine['F'],

            #breguet range eqn
            TCS([
                cruise['z_{bre}'] >=
                (ac.engine['TSFC'] * cruise['thr'] * cruise['D']) /
                cruise['W_{avg}']
            ]),
        ]

        # Model.setup(self, W_ftotal + s*units('N'), constraints + ac + climb + cruise, subs)
        return constraints + ac + cruise + enginecruise + enginestate + statelinking


if __name__ == '__main__':
    substitutions = get_parametric_studies_subs()
    substitutions.update({'ReqRng':
                          2000})  #('sweep', np.linspace(500,2000,4)),

    mission = Mission()
    m = Model(mission['W_{f_{total}}'], mission, substitutions)
    sol = m.localsolve(solver='mosek', verbosity=4)
def test():
    substitutions = get_parametric_studies_subs()

    #dict of initial guesses
    x0 = {
        'W_{engine}': 1e4 * units('N'),
        'P_{t_0}': 1e1 * units('kPa'),
        'T_{t_0}': 1e3 * units('K'),
        'h_{t_0}': 1e6 * units('J/kg'),
        'P_{t_{1.8}}': 1e1 * units('kPa'),
        'T_{t_{1.8}}': 1e3 * units('K'),
        'h_{t_{1.8}}': 1e6 * units('J/kg'),
        'P_{t_2}': 1e1 * units('kPa'),
        'T_{t_2}': 1e3 * units('K'),
        'h_{t_2}': 1e6 * units('J/kg'),
        'P_{t_2.1}': 1e3 * units('K'),
        'T_{t_2.1}': 1e3 * units('K'),
        'h_{t_2.1}': 1e6 * units('J/kg'),
        'P_{t_{2.5}}': 1e3 * units('kPa'),
        'T_{t_{2.5}}': 1e3 * units('K'),
        'h_{t_{2.5}}': 1e6 * units('J/kg'),
        'P_{t_3}': 1e4 * units('kPa'),
        'T_{t_3}': 1e4 * units('K'),
        'h_{t_3}': 1e7 * units('J/kg'),
        'P_{t_7}': 1e2 * units('kPa'),
        'T_{t_7}': 1e3 * units('K'),
        'h_{t_7}': 1e6 * units('J/kg'),
        'P_{t_4}': 1e4 * units('kPa'),
        'h_{t_4}': 1e7 * units('J/kg'),
        'T_{t_4}': 1e4 * units('K'),
        'P_{t_{4.1}}': 1e4 * units('kPa'),
        'T_{t_{4.1}}': 1e4 * units('K'),
        'h_{t_{4.1}}': 1e7 * units('J/kg'),
        'T_{4.1}': 1e4 * units('K'),
        'f': 1e-2,
        'P_{4a}': 1e4 * units('kPa'),
        'h_{t_{4.5}}': 1e6 * units('J/kg'),
        'P_{t_{4.5}}': 1e3 * units('kPa'),
        'T_{t_{4.5}}': 1e4 * units('K'),
        'P_{t_{4.9}}': 1e2 * units('kPa'),
        'T_{t_{4.9}}': 1e3 * units('K'),
        'h_{t_{4.9}}': 1e6 * units('J/kg'),
        '\pi_{HPT}': 1e-1,
        '\pi_{LPT}': 1e-1,
        'P_{t_5}': 1e2 * units('kPa'),
        'T_{t_5}': 1e3 * units('K'),
        'h_{t_5}': 1e6 * units('J/kg'),
        'P_8': 1e2 * units('kPa'),
        'P_{t_8}': 1e2 * units('kPa'),
        'h_{t_8}': 1e6 * units('J/kg'),
        'h_8': 1e6 * units('J/kg'),
        'T_{t_8}': 1e3 * units('K'),
        'T_{8}': 1e3 * units('K'),
        'P_6': 1e2 * units('kPa'),
        'P_{t_6}': 1e2 * units('kPa'),
        'T_{t_6': 1e3 * units('K'),
        'h_{t_6}': 1e6 * units('J/kg'),
        'h_6': 1e6 * units('J/kg'),
        'F_8': 1e2 * units('kN'),
        'F_6': 1e2 * units('kN'),
        'F': 1e2 * units('kN'),
        'F_{sp}': 1e-1,
        'TSFC': 1e-1,
        'I_{sp}': 1e4 * units('s'),
        'u_6': 1e3 * units('m/s'),
        'u_8': 1e3 * units('m/s'),
        'm_{core}': 1e2 * units('kg/s'),
        'm_{fan}': 1e3 * units('kg/s'),
        '\\alpha': 1e1,
        'alphap1': 1e1,
        'm_{total}': 1e3 * units('kg/s'),
        'T_2': 1e3 * units('K'),
        'P_2': 1e2 * units('kPa'),
        'u_2': 1e3 * units('m/s'),
        'h_{2}': 1e6 * units('J/kg'),
        'T_{2.5}': 1e3 * units('K'),
        'P_{2.5}': 1e2 * units('kPa'),
        'u_{2.5}': 1e3 * units('m/s'),
        'h_{2.5}': 1e6 * units('J/kg'),
        'P_{7}': 1e2 * units('kPa'),
        'T_{7}': 1e3 * units('K'),
        'u_7': 1e3 * units('m/s'),
        'P_{5}': 1e2 * units('kPa'),
        'T_{5}': 1e3 * units('K'),
        'u_5': 1e3 * units('m/s'),
        'P_{atm}': 1e2 * units('kPa'),
        'T_{atm}': 1e3 * units('K'),
        'V': 3e3 * units('knot'),
        'a': 1e3 * units('m/s'),
    }

    mission = FleetMission(2, 2, 4)
    m = Model(mission['W_{f_{fleet}}'], mission, substitutions)
    sol = m.localsolve(solver='mosek', verbosity=4)