5 #include "TEffCorrector.h"
9 TEffCorrector::TEffCorrector() {
13 FMatriz_KS.resize(FNumberNodes);
14 for(
int i = 0; i < FNumberNodes; i++) {
15 FMatriz_KS[i].resize(FNumberNodes, 0.0);
20 FMatrix_dT.resize(FNumberNodes);
21 for(
int i = 0; i < FNumberNodes; i++) {
22 FMatrix_dT[i].resize(FNumberNodes, 0.0);
24 FMatrix_HF.resize(FNumberNodes);
25 for(
int i = 0; i < FNumberNodes; i++) {
26 FMatrix_HF[i].resize(FNumberNodes, 0.0);
28 FNode_Temp_K.resize(FNumberNodes);
35 TEffCorrector::~TEffCorrector() {
38 void TEffCorrector::InputData(
double T_AF,
double T_Humidity,
double T_MassFlow,
double T_IT_C,
double T_IP,
39 double T_PR,
double C_Humidity,
double C_MassFlow,
double C_IT_C,
double C_IP,
double C_PR,
double O_MassFlow,
40 double O_IT_C,
double O_IP,
double RTC) {
43 FT.Humidity = T_Humidity;
44 FT.MassFlow = T_MassFlow;
46 FT.IT_K = __units::degCToK(FT.IT_C);
51 FC.Humidity = C_Humidity;
52 FC.MassFlow = C_MassFlow;
54 FC.IT_K = __units::degCToK(FC.IT_C);
59 FO_MassFlow = O_MassFlow;
61 FO_IT_K = __units::degCToK(FO_IT_C);
67 FT.MassFlowC = FT.funCORRMass();
68 FT.RTC_C = FC.funCORRRTC(RTC);
69 FT.TISO_K = FC.funTiso(1.4, 1.);
71 FC.MassFlowC = FT.funCORRMass();
72 FC.RTC_C = FC.funCORRRTC(RTC);
73 FC.TISO_K = FC.funTiso(1.32, -1.);
77 void TEffCorrector::BuidMatrix() {
79 double Re_mass_tur = 0., Re_mass_com = 0., Re_shaft = 0., Re_mass_oil = 0.;
80 double k_air_T = 0., k_air_C = 0., k_oil = 0.;
82 double mu_oil_h1 = 0., mu_oil_h2 = 0., mu_oil_h3 = 0.;
84 FMatriz_KS[0][0] = 1.0;
85 FMatriz_KS[1][1] = 1.0;
86 FMatriz_KS[2][2] = 1.0;
88 FMatriz_KS[3][0] = hAk_GAS_T(Re_mass_tur, Re_shaft) * k_air_T;
90 FMatriz_KS[4][2] = hAk_H1_OIL(Re_mass_oil, Re_shaft, Pr_oil, mu_oil_h1) * k_oil;
91 FMatriz_KS[4][3] = K_T_H1();
93 FMatriz_KS[5][2] = hAk_H2_OIL(Re_mass_oil, Re_shaft, Pr_oil, mu_oil_h2) * k_oil;
94 FMatriz_KS[5][4] = K_H1_H2();
96 FMatriz_KS[6][1] = hAk_H3_AIR(Re_mass_com) * k_air_C;
97 FMatriz_KS[6][2] = hAk_H3_OIL(Re_mass_oil, Re_shaft, Pr_oil, mu_oil_h3) * k_oil;
98 FMatriz_KS[6][5] = K_H2_H3();
100 FMatriz_KS[7][1] = hAk_C_AIR(Re_mass_com) * k_air_C;
101 FMatriz_KS[7][6] = K_H3_C();
103 FMatriz_KS[3][4] = FMatriz_KS[4][3];
104 FMatriz_KS[4][5] = FMatriz_KS[5][4];
105 FMatriz_KS[5][6] = FMatriz_KS[6][5];
106 FMatriz_KS[6][7] = FMatriz_KS[7][6];
108 for(
int i = 3; i < FNumberNodes; i++) {
109 FMatriz_KS[i][i] = 0;
110 for(
int j = 0; j < FNumberNodes; j++) {
112 FMatriz_KS[i][i] -= FMatriz_KS[i][j];
119 void TEffCorrector::SolveNodeTemperatures(
double TET,
double TSC,
double TOIL) {
121 LUdcmp TempSolver(FMatriz_KS);
124 InputTemp.resize(FNumberNodes, 0.0);
130 TempSolver.solve(InputTemp, FNode_Temp_K);
133 void TEffCorrector::SolveDeltaTemp() {
135 for(
int i = 0; i < FNumberNodes; i++) {
136 for(
int j = 0; j < FNumberNodes; j++) {
137 FMatrix_dT[i][j] = FNode_Temp_K[j] - FNode_Temp_K[i];
143 void TEffCorrector::SolveHeatFlowMatix() {
145 for(
int i = 0; i < FNumberNodes; i++) {
146 for(
int j = 0; j < FNumberNodes; j++) {
147 FMatrix_HF[i][j] = FMatriz_KS[i][j] * FMatrix_dT[i][j];
152 double TEffCorrector::Turb_Heat_Flow() {
156 for(
int i = 0; i < FNumberNodes; i++) {
157 heat += FMatrix_HF[i][TurbineNode];
162 double TEffCorrector::Comp_Heat_Flow() {
166 for(
int i = 0; i < FNumberNodes; i++) {
167 heat += FMatrix_HF[i][CompressorNode];
172 double TEffCorrector::Oil_Heat_Flow() {
176 for(
int i = 0; i < FNumberNodes; i++) {
177 heat += FMatrix_HF[i][OilNode];
182 #pragma package(smart_init)