From ea0851e0376e71099e9b63f11d3c01c46c3db142 Mon Sep 17 00:00:00 2001 From: "ellen.seabrooke" <seabrooke@ifb.uni-stuttgart.de> Date: Thu, 27 Mar 2025 16:10:36 +0100 Subject: [PATCH] APU kerosene requirement fix --- .../src/aircraftSystems/conventionalATA49.cpp | 12 ++++++++---- .../src/aircraftSystems/conventionalATA49.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/systems_design/src/aircraftSystems/conventionalATA49.cpp b/systems_design/src/aircraftSystems/conventionalATA49.cpp index 23572e6c..ec9f5e27 100644 --- a/systems_design/src/aircraftSystems/conventionalATA49.cpp +++ b/systems_design/src/aircraftSystems/conventionalATA49.cpp @@ -84,9 +84,11 @@ void conventionalATA49::getPower() { for (size_t n(0); n < outputs.size(); n++) { if (outputs.at(n).type == "Bleed") { bleedAirOutput = true; + myRuntimeInfo->debug << "Bleed air output detected." << std::endl; } if (outputs.at(n).type == "ShaftPower") { shaftPowerOutput = true; + myRuntimeInfo->debug << "Shaft power output detected." << std::endl; } } /* If source provides Bleed Air: */ @@ -122,8 +124,9 @@ void conventionalATA49::getPower() { /* Calculate required input (Kerosene)*/ /*Fuel consumption for design load*/ double effective_design_power = shaftPower.designPower + bleedAir.designPower * 1005. * 200.; - double design_fuel_consumption = getKerosene(effective_design_power / 1000.); - myRuntimeInfo->out << "APU fuel consumption with design loads: " << design_fuel_consumption << " kg/s" << std::endl; + double design_fuel_consumption = getKerosene(convertUnit(WATT, KILO, WATT, effective_design_power)); + myRuntimeInfo->debug << "APU fuel consumption with design loads (" << effective_design_power << " W): " << design_fuel_consumption << " kg/h" << std::endl; + inputs.at(0).designPower = design_fuel_consumption; /* Fuel consumption for mission loads */ for (size_t n(0); n < data_->mission.Steps.size(); n++) { double shaftPower_tmp = 0.; @@ -136,7 +139,8 @@ void conventionalATA49::getPower() { shaftPower_tmp = shaftPower.missionPower.at(n).baseLoad; } double effectivePower = shaftPower_tmp + bleedPower_tmp; - inputs.at(0).missionPower.at(n).baseLoad = getKerosene(effectivePower / 1000.); + myRuntimeInfo->debug << "Mission effective power: " << effectivePower; + inputs.at(0).missionPower.at(n).baseLoad = getKerosene(convertUnit(WATT, KILO, WATT, effectivePower)) / 3600;//in kg/s } } @@ -146,7 +150,7 @@ double conventionalATA49::getKerosene(double Power) { /* If no power is required, the SFC is 0 */ } else { /* specific fuel consumption in [kg/h] */ - SFC = -0.31 * log(abs(Power / 1000.)) + 2.24; // DA Steinke S.49 basierend auf LTH Daten + SFC = -0.31 * log(abs(Power)) + 2.24; // DA Steinke S.49 basierend auf LTH Daten } return SFC; } diff --git a/systems_design/src/aircraftSystems/conventionalATA49.h b/systems_design/src/aircraftSystems/conventionalATA49.h index f8c4bc67..e674064b 100644 --- a/systems_design/src/aircraftSystems/conventionalATA49.h +++ b/systems_design/src/aircraftSystems/conventionalATA49.h @@ -69,7 +69,7 @@ class conventionalATA49: public aircraftSystem { void getPower(); /** \brief Calculates specific fuel consumption of the APU based on required power - * \param Power [W] total power APU has to provide + * \param Power [kW] total power APU has to provide * \return SFC (double) [kg/kWh] specific fuel consumption */ double getKerosene(double Power); -- GitLab