Skip to content
Snippets Groups Projects
Commit ea0851e0 authored by ellen.seabrooke's avatar ellen.seabrooke
Browse files

APU kerosene requirement fix

parent 925343d9
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment