Beispiel #1
0
def test():

    for config in configs:

        aircraft = OnDemandAircraft()
        aircraft = aircraft.standard_substitutions(
            config=config, autonomousEnabled=generic_data["autonomousEnabled"])

        sizing_mission = OnDemandSizingMission(aircraft=aircraft)
        sizing_mission = sizing_mission.standard_substitutions(
            piloted=generic_data["isSizingMissionPiloted"],
            reserve=generic_data["reserve"])

        revenue_mission = OnDemandRevenueMission(aircraft=aircraft)
        revenue_mission = revenue_mission.standard_substitutions(
            piloted=generic_data["isRevenueMissionPiloted"])

        deadhead_mission = OnDemandDeadheadMission(aircraft=aircraft)
        deadhead_mission = deadhead_mission.standard_substitutions(
            piloted=generic_data["isDeadheadMissionPiloted"])

        mission_cost = OnDemandMissionCost(aircraft=aircraft,
                                           revenue_mission=revenue_mission,
                                           deadhead_mission=deadhead_mission)
        mission_cost = mission_cost.standard_substitutions(
            isRevenueMissionPiloted=generic_data["isRevenueMissionPiloted"],
            isDeadheadMissionPiloted=generic_data["isDeadheadMissionPiloted"])

        objective_function = mission_cost.cpt
        problem = Model(objective_function, [
            aircraft, sizing_mission, revenue_mission, deadhead_mission,
            mission_cost
        ])
        solution = problem.solve(verbosity=0)
Beispiel #2
0
    # from noise_models import rotational_noise, vortex_noise, noise_weighting

    #String inputs
    # reserve_type="FAA_heli"
    # sizing_mission_type="piloted"

    aircraft = OnDemandAircraft()
    aircraft = aircraft.standard_substitutions(config="Compound heli",
                                               autonomousEnabled=True)

    sizing_mission = OnDemandSizingMission(aircraft=aircraft)
    sizing_mission = sizing_mission.standard_substitutions(
        piloted=True, reserve="20-minute loiter")

    revenue_mission = OnDemandRevenueMission(aircraft=aircraft)
    revenue_mission = revenue_mission.standard_substitutions(piloted=True)

    deadhead_mission = OnDemandDeadheadMission(aircraft=aircraft)
    deadhead_mission = deadhead_mission.standard_substitutions(piloted=False)

    mission_cost = OnDemandMissionCost(aircraft=aircraft,
                                       revenue_mission=revenue_mission,
                                       deadhead_mission=deadhead_mission)
    mission_cost = mission_cost.standard_substitutions(
        isRevenueMissionPiloted=True, isDeadheadMissionPiloted=False)

    objective_function = mission_cost.cpt
    problem = Model(objective_function, [
        aircraft, sizing_mission, revenue_mission, deadhead_mission,
        mission_cost
    ])
Beispiel #3
0
	c                 = configs[config]
	c["SPL_sizing_A"] = np.zeros(np.size(mission_range))

	aircraft = OnDemandAircraft()
	aircraft = aircraft.standard_substitutions(config=config, autonomousEnabled=generic_data["autonomousEnabled"])

	sizing_mission = OnDemandSizingMission(aircraft=aircraft)
	sizing_mission = sizing_mission.standard_substitutions(piloted=generic_data["isSizingMissionPiloted"], reserve=generic_data["reserve"])

	sizing_mission.substitutions.update({
		sizing_mission.cruise_segment.d_segment: ("sweep", mission_range.to(ureg.km).magnitude),  # Careful with units here
	})

	revenue_mission = OnDemandRevenueMission(aircraft=aircraft)
	revenue_mission = revenue_mission.standard_substitutions(piloted=generic_data["isRevenueMissionPiloted"])

	deadhead_mission = OnDemandDeadheadMission(aircraft=aircraft)
	deadhead_mission = deadhead_mission.standard_substitutions(piloted=generic_data["isDeadheadMissionPiloted"])

	mission_cost = OnDemandMissionCost(aircraft=aircraft, revenue_mission=revenue_mission, deadhead_mission=deadhead_mission)
	mission_cost = mission_cost.standard_substitutions(isRevenueMissionPiloted=generic_data["isRevenueMissionPiloted"], isDeadheadMissionPiloted=generic_data["isDeadheadMissionPiloted"])

	# All missions have the same range. Needed or else we can't sweep.
	range_constraints =  [sizing_mission.cruise_segment.d_segment == revenue_mission.cruise_segment.d_segment]
	range_constraints += [sizing_mission.cruise_segment.d_segment == deadhead_mission.cruise_segment.d_segment]

	objective_function = mission_cost.cpt
	problem            = Model(objective_function, [aircraft, sizing_mission, revenue_mission, deadhead_mission, mission_cost, range_constraints])

	del problem.substitutions["d_{segment}_OnDemandRevenueMission/Cruise"]   # These variables were set via substitution. They must be freed before model will solve.
Beispiel #4
0
		c = cases[config][case]

		aircraft = OnDemandAircraft()
		aircraft = aircraft.standard_substitutions(config=config, autonomousEnabled=c["autonomousEnabled"])

		aircraft.substitutions.update({
			aircraft.airframe.cost_per_weight: c["airframe_cost_per_weight"],
			aircraft.battery.e:                c["e"],
			aircraft.battery.cost_per_energy:  c["battery_cost_per_energy"],
		})

		sizing_mission = OnDemandSizingMission(aircraft=aircraft)
		sizing_mission = sizing_mission.standard_substitutions(piloted=c["isSizingMissionPiloted"], reserve=generic_data["reserve"])

		revenue_mission = OnDemandRevenueMission(aircraft=aircraft)
		revenue_mission = revenue_mission.standard_substitutions(piloted=c["isRevenueMissionPiloted"])

		deadhead_mission = OnDemandDeadheadMission(aircraft=aircraft)
		deadhead_mission = deadhead_mission.standard_substitutions(piloted=c["isDeadheadMissionPiloted"])

		mission_cost = OnDemandMissionCost(aircraft=aircraft, revenue_mission=revenue_mission, deadhead_mission=deadhead_mission)
		mission_cost = mission_cost.standard_substitutions(isRevenueMissionPiloted=c["isRevenueMissionPiloted"], isDeadheadMissionPiloted=c["isDeadheadMissionPiloted"])

		mission_cost.substitutions.update({
			mission_cost.deadhead_ratio: c["deadhead_ratio"]
		})

		objective_function = mission_cost.cpt
		problem            = Model(objective_function, [aircraft, sizing_mission, revenue_mission, deadhead_mission, mission_cost])
		solution           = problem.solve(verbosity=0)