OpenWAM
TMapaComp.h
1 /* --------------------------------------------------------------------------------*\
2 ==========================|
3  \\ /\ /\ // O pen | OpenWAM: The Open Source 1D Gas-Dynamic Code
4  \\ | X | // W ave |
5  \\ \/_\/ // A ction | CMT-Motores Termicos / Universidad Politecnica Valencia
6  \\/ \// M odel |
7  ----------------------------------------------------------------------------------
8  License
9 
10  This file is part of OpenWAM.
11 
12  OpenWAM is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  OpenWAM is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with OpenWAM. If not, see <http://www.gnu.org/licenses/>.
24 
25 
26  \*-------------------------------------------------------------------------------- */
27 
28 // ---------------------------------------------------------------------------
29 #ifndef TMapaCompH
30 #define TMapaCompH
31 
32 #include <cstdio>
33 #include "Constantes.h"
34 #include "Globales.h"
35 #include "TCompressorMap.h"
36 
37 // ---------------------------------------------------------------------------
38 // ---------------------------------------------------------------------------
39 
40 class TMapaComp: public TCompressorMap {
41  private:
42  // ---------------------------------------------------------------------------
43  // VARIABLES PRIVADAS
44  // ---------------------------------------------------------------------------
45 
46  int FNumeroCompresor; // Numero del compresor al que pertenece el mapa.
47  double FPresionRef; // Pressure de referencia
48  double FTempRef; // Temperature de referencia
49  double FRegMin; // Curva de minimo regimen
50  double FRegMax; // Curva de maximo regimen
51  double FRegComp; // Regimen current
52  double FIncReg; // Incremento de regimen entre curvas
53  int FNumCurvasReg; // Numero total de curvas de regimen
54  double FGastoMin; // Massflow minimo
55  double FGastoMax; // Massflow maximo
56  double FIncGasto; // Incremento de massflow entre puntos del mapa
57  int FNumPuntosGasto; // Numero de puntos de massflow de las curvas
58  int FNumCurvasRendMax; // Numero maximo de curvas de rendimiento maximo de todas las curvas
59  int *FNumCurvasRen; // Numero de curvas de rendimiento
60  int *FNumCurvasRenAd; // Numero de curvas de rendimiento adimensionalizado
61  double *FGastoRelComp1; // Massflow de la curva para relacion de compresion = 1
62  double *FGastoBombeo; // Massflow de la curva de regimen cuando corta la de bombeo
63  double *FRelCompBombeo; // Relacion de compresion del punto de bombeo
64  double **FRelComp; // Relacion de compresion para los diferentes gastos
65  double **FGastoRend; // Massflow para cada punto de rendimiento
66  double **FRend; // Valores de rendimiento del compresor
67 
68  stSpline *FSpl; // Variables auxiliares rutina Spline
69  stOrtoPol *FOrtp; // Variables auxiliares rutina PolOrtogonal
70 
71  double *FCoefSplBombeo;
72  double *FCoefSplRC;
73  double *FRegimenCurva;
74  double **FCoefbSup;
75  double **FCoefbInf;
76  double **FCoefcSup;
77  double **FCoefcInf;
78  double **FCoefdSup;
79  double **FCoefdInf;
80  int FNumTerms;
81  double *FCoefbX;
82  double *FCoefcX;
83  double *FCoefdX;
84 
85  double FRendCurvaBombeo; // Varialbes para la creacion de las curvas de rendimiento con el massflow adimensionalizado
86  double FRendGastoMaximo;
87  double **FGastoAdim;
88  double **FRendAdim;
89  double **FCoefSplRend;
90 
91  int FNumPuntos;
92  double *FGastoInt;
93  double *FRelCompInt;
94 
95  double FGastoBombeoX;
96  double FGastoRelComp1X;
97  double FRelCompBombeoX;
98  double FCurrentPresMAX;
99  int FCurvInf;
100 
101  // ---------------------------------------------------------------------------
102  // FUNCIONES PRIVADAS
103  // ---------------------------------------------------------------------------
104 
105  void Spline(int n, double *x, double *y, double *sol);
106 
107  void PolOrtogonal(int nterms, int npoint, double *ma, double *rd, double *w, double *b, double *c, double *d);
108 
109  double EvaluaSpline(double punto, int n, double *x, double *y, double *sol);
110 
111  void ImprimeMapa();
112 
113  // ---------------------------------------------------------------------------
114  // ---------------------------------------------------------------------------
115 
116  public:
117 
118  // ---------------------------------------------------------------------------
119  // VARIABLES PRIVADAS
120  // ---------------------------------------------------------------------------
121 
122  int getNumPuntos() {
123  return FNumPuntos;
124  }
125  ;
126 
127  double getTempRef() {
128  return FTempRef;
129  }
130  ;
131 
132  double getPresionRef() {
133  return FPresionRef;
134  }
135  ;
136 
137  double GetRelCompInt(int i);
138 
139  double GetGastoInt(int i);
140 
141  double getGastoRelComp1() {
142  return FGastoRelComp1X;
143  }
144  ;
145 
146  double getGastoBombeo() {
147  return FGastoBombeoX;
148  }
149  ;
150 
151  double getRelCompBombeo() {
152  return FRelCompBombeoX;
153  }
154  ;
155 
156  double getRegimenCorregido() {
157  return FRegComp;
158  }
159  ;
160 
161  double getMaxCompRatio() {
162  return FCurrentPresMAX;
163  }
164  ;
165 
166  double getTempMeasure() {
167  return 300;
168  }
169  ;
170 
171  // ---------------------------------------------------------------------------
172  // FUNCIONES PUBLICAS
173  // ---------------------------------------------------------------------------
174 
175  TMapaComp(int i);
176 
177  ~TMapaComp();
178 
179  void LeeMapa(FILE *fich);
180 
181  void InterpolaMapa(double rtc, double AmbientTemperature);
182 
183  double EvaluaRendimiento(double MasaAire);
184 
185  double EvaluaRendSplines(double MasaAire);
186 
187  double EvaluaRCSplines(double MasaAire);
188 
189  double EvaluaRCHermite(double Massflow);
190 
191  double BuscaRegimen(double RC, double Massflow, double AmbientTemperature);
192 
193  void CalculateAdiabaticEfficiency(TTC_HTM *HTM, double TinT) {
194  }
195  ;
196 
197 };
198 
199 #endif
TMapaComp
Definition: TMapaComp.h:40
stSpline
Definition: Globales.h:911
Constantes.h
TTC_HTM
Definition: TTC_HTM.h:307
stOrtoPol
Definition: Globales.h:925
TCompressorMap
Definition: TCompressorMap.h:12