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)
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. del problem.substitutions["d_{segment}_OnDemandDeadheadMission/Cruise"] # These variables were set via substitution. They must be freed before model will solve.
#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 ]) solution = problem.solve(verbosity=0) """