diff --git a/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp b/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp index 627c3eb70914d467fb166e5e3d226131ddfb39de..005b9bb8b4d8cf4cd2710216823a20f64acf82e7 100644 --- a/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp +++ b/mission_analysis/src/standard_mission/standard_mission/standard_mission.cpp @@ -190,8 +190,10 @@ StandardMission::StandardMission(const std::shared_ptr<RuntimeIO>& rtIO) : step_height_cruise(0.), cruise_profile_start(0), cruise_profile_end(0), - top_of_climb_range("top_of_climb_range", "Flown range from takeoff to top of climb (= start of initial cruise altitude (ICA))", 0, "m", 0, 500000), - top_of_descent_range("top_of_descent_range", "Flown range from takeoff to top of descent", 0, "m", 0, 5000000), + top_of_climb_range("top_of_climb_range", "Flown range from takeoff to top of climb (= start of initial cruise altitude (ICA))", 0, "m", 0, + EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/range").read(rtIO->acxml).value()), + top_of_descent_range("top_of_descent_range", "Flown range from takeoff to top of descent", 0, "m", 0, + EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/range").read(rtIO->acxml).value()), descent_range(0.), descent_range_next_FL(0.), top_of_descent_altitude(0.), @@ -471,13 +473,16 @@ void StandardMission::update() { /* Non-global endnode initialization */ EndnodeReadOnly<double> energy_carrier_tmp(EndnodeReadOnly<double>("consumed_energy")); + EndnodeReadOnly<double> range_tmp( // Get endnode boundaries from TLARs + EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/range").read(rtIO->acxml)); Endnode<double> relative_cruise_step_end("relative_end_of_cruise_step", "End of cruise step relative to total cruise length", 0 , "1", 0, 1); Endnode<double> altitude("altitude", "Altitude of cruise step", 0 , "m", 0, 15000); Endnode<double> block_time("block_time", "Block time for the whole mission: Time from break release to end of taxiing after landing", this->mission_profile.back().end_time + this->mission_file->taxi_time_origin + this->mission_file->taxi_time_destination, "s", 0, 45000); Endnode<double> takeoff_engine_derate("takeoff_engine_derate", "Engine power demand", this->mission_file->mission_data.at(0).derate, "1", 0, 1); Endnode<double> flight_time("flight_time", "Flight time for the whole mission", this->mission_profile.back().end_time, "s", 0, 44500); - Endnode<double> total_range("range", "Traveled range from break release to end of taxi at destination", this->mission_profile.back().end_range, "m", 0, 5000000); + Endnode<double> total_range("range", "Traveled range from break release to end of taxi at destination", + this->mission_profile.back().end_range, range_tmp.unit(), range_tmp.lower_boundary(), range_tmp.upper_boundary()); Endnode<int> energy_carrier_id("energy_carrier_ID", "See energy carrier specification node", 0, "1", 0, 5); // TODO(GErrit): Auf Multifuel anpassen hier und drunter Endnode<double> consumed_energy("consumed_energy", "Energy amount", 0, "J", 0, 1.e13); @@ -904,8 +909,11 @@ void StandardMission::breguet_update() {/* Create path to mission and build nod /* Non-global endnode initialization */ EndnodeReadOnly<double> energy_carrier_tmp(EndnodeReadOnly<double>("consumed_energy")); + EndnodeReadOnly<double> range_tmp( // Get endnode boundaries from TLARs + EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/range").read(rtIO->acxml)); Endnode<double> total_range("range", "Traveled range from break release to end of taxi at destination", // take required range for 1st assumption - EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/range").read(rtIO->acxml).value(), "m", 0, 5000000); + EndnodeReadOnly<double>("requirements_and_specifications/requirements/top_level_aircraft_requirements/design_mission/range").read(rtIO->acxml).value(), + range_tmp.unit(), range_tmp.lower_boundary(), range_tmp.upper_boundary()); Endnode<int> energy_carrier_id("energy_carrier_ID", "See energy carrier specification node", 0, "1", 0, 5); // TODO(GErrit): Auf Multifuel anpassen hier und drunter Endnode<double> consumed_energy("consumed_energy", "Energy amount", 0, "J", 0, 1.e13);