63 #include "THTM_Fluids.h"
68 nmCompressor = 0, nmTurbine = 1
72 nmReMassTur = 0, nmReMassCom = 1, nmReMassOil = 2, nmReShaft = 3, nmPrTur = 4, nmPrCom = 5, nmPrOil = 6, nmmuG_T = 7, nmmuA_T = 8, nmmuO_T = 10, nmmuW_T = 11, nmmuG_H1 = 12, nmmuA_H1 = 13, nmmuO_H1 = 15, nmmuW_H1 = 16, nmmuG_H2 = 17, nmmuA_H2 = 18, nmmuO_H2 = 19, nmmuW_H2 = 20, nmmuG_H3 = 21, nmmuA_H3 = 22, nmmuO_H3 = 23, nmmuW_H3 = 24, nmmuG_C = 25, nmmuA_C = 26, nmmuO_C = 27, nmmuW_C = 28, nmReWater = 29, nmPrWater = 30, nmReMassComIn = 31, nmPrComIn = 32, nmReOilH1 = 33, nmReOilH2 = 34, nmReOilH3 = 35, nmPrOilH1 = 36, nmPrOilH2 = 37, nmPrOilH3 = 38
106 double funCORRMass() {
107 return MassFlow * sqrt(IT_K / TREF_K) / (IP / PREF);
111 double funUnCORRMass() {
112 return MassFlowC * (IP / PREF) / sqrt(IT_K / TREF_K);
116 double funCORRRTC(
double RTC) {
117 return RTC / sqrt(IT_K / TREF_K);
121 double funUnCORRRTC() {
122 return RTC_C * sqrt(IT_K / TREF_K);
126 double funTiso(
double sig) {
127 return funT0_in() * pow(PR, sig * (Fluid->g - 1) / Fluid->g);
131 double funP_toTotal(
double P,
double T,
double T0) {
132 return P / pow(T / T0, Fluid->g / (Fluid->g - 1));
136 double funP_toStatic(
double P0,
double T,
double T0) {
137 return P0 * pow(T / T0, Fluid->g / (Fluid->g - 1));
142 return IT_K +
pow2(MassFlow * 287 * IT_K / __units::BarToPa(IP) / SecIn) / 2 / Fluid->Cp;
146 double funtT0_out() {
147 return OT_K +
pow2(MassFlow * 287 * OT_K / __units::BarToPa(OP) / SecOut) / 2 / Fluid->Cp;
152 return IP * pow(T0_K / IT_K, (Fluid->g - 1) / Fluid->g);
156 double funIsoPower(
double sig) {
157 return sig * MassFlow * Fluid->Cp * (TISO_K - IT0_K);
161 double funT_toStatic(
double T0,
double P0,
double M) {
167 OT_K = T0 -
pow2(M * 287 * OT_K / __units::BarToPa(OP) / SecOut) / 2 / Fluid->Cp;
168 error = funP_toStatic(P0, OT_K, T0) - OP;
171 }
while(iter < 100 && fabs(error) < 0.001);
235 double Value(
dVector Re_Pr_mu) {
236 double val = Coef[0];
237 for(
unsigned int i = 1; i < Coef.size(); i++) {
238 val *= pow(Re_Pr_mu[Ind[i - 1]], Coef[i]);
268 stTurbinePower(
double pow,
double ma,
double efftur,
double Ti,
double Cpgas,
double gam) {
278 double operator()(
const double er) {
279 return Power - efft * m * Cp * Tin * (1 - pow(er, -ga));
292 stCompressorPower(
double pow,
double ma,
double effcom,
double Ti,
double Cpgas,
double gam) {
301 double operator()(
const double cr) {
302 return Power - m * Cp * Tin * (pow(cr, ga) - 1) / effc;
315 std::vector<std::string> FNodeLabel;
373 inline double K_T_H1() {
379 inline double K_H1_H2() {
385 inline double K_H2_H3() {
391 inline double K_H3_C() {
397 double Oil_Heat_Flow();
404 void InputData(
double T_AF,
double T_Humidity,
double T_MassFlow,
double T_IT_C,
double T_IP,
double T_PR,
405 double C_Humidity,
double C_MassFlow,
double C_IT_C,
double C_IP,
double C_PR,
double O_MassFlow,
double O_IT_C,
406 double O_IP,
double RTC);
408 void TurbochargerData(
double DShaft,
double HD,
double Doil,
double DWater);
410 void TurbochargerWorkingPoint(
double RTC,
double MechEff,
double O_MassFlow,
double O_IT,
double O_IP,
double W_IT,
413 void CompressorData(
double PREF,
double TREF,
double TMAP_K,
double Din);
415 void CompressorWorkingPoint(
double C_Humidity,
double C_MassFlow,
double C_IT_C,
double C_IP,
double C_PR,
double EFF);
417 void TurbineData(
double PREF,
double TREF,
double TMAP_K,
double Din);
419 void TurbineWorkingPoint(
double T_AF,
double T_Humidity,
double T_MassFlow,
double T_IT_C,
double T_IP,
double T_PR,
424 void BuildCMatrix(
double dt);
426 void BuildKCMatrix(
double dt);
428 void SolveNodeTemperatures(
double TET,
double TSC,
double TEC,
double TOIL,
double MassOil,
double MechLosses,
429 double TW,
double TAMB);
431 void SolveNodeTemperaturesTransient(
double TET,
double TSC,
double TEC,
double TOIL,
double MassOil,
double MechLosses,
432 double TW,
double TAMB,
double time);
434 void SolveHeatFlowMatix();
436 void SolveDeltaTemp();
438 double AdiabaticEff(nmSide Case);
440 double CorrectCompressorMap(
double m,
double cr,
double eff,
double TinC,
double TinT,
double Rtc);
442 double CorrectTurbineMap(
double m,
double er,
double eff,
double TinC,
double TinT,
double Rtc);
445 FMechLosses = MechLosses;
449 void Read_HTM(FILE *fich);
451 void InitializeTemp(
double TIT,
double COT,
double CIT,
double OIT,
double WIT,
double TAMB);
453 double Turb_Heat_Flow();
455 double Comp_Heat_Flow();
457 double Comp_Heat_Flow_In();
459 double NodeTemperature(
int i) {
460 return FNode_Temp_K_Tr[i];
464 void PrintInsTemperatures(stringstream & insoutput);
466 void HeaderInsTemperatures(stringstream & insoutput);
468 void PrintInsHeatFlow(stringstream & insoutput);
470 void HeaderInsHeatFlow(stringstream & insoutput);
472 void SolveDeltaTempTr();