OpenWAM
TMapaComp2Tub.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 TMapaComp2TubH
30 #define TMapaComp2TubH
31 
32 #include <cstdio>
33 #include "Constantes.h"
34 #include "Globales.h"
35 #include "TCompressorMap.h"
36 #include <vector>
37 
38 //---------------------------------------------------------------------------
39 //---------------------------------------------------------------------------
40 
42  private:
43 //---------------------------------------------------------------------------
44 // VARIABLES PRIVADAS
45 //---------------------------------------------------------------------------
46 
47  int FNumeroCompresor; //Numero del compresor al que pertenece el mapa.
48  double FPresionRef; //Pressure de referencia
49  double FTempRef; //Temperature de referencia
50  double FRegMin; //Curva de minimo regimen
51  double FRegMax; //Curva de maximo regimen
52  double FRegComp; //Regimen current
53  double FIncReg; //Incremento de regimen entre curvas
54  int FNumCurvasReg; //Numero total de curvas de regimen
55  double FGastoMin; //Massflow minimo
56  double FGastoMax; //Massflow maximo
57  double FIncGasto; //Incremento de massflow entre puntos del mapa
58  int FNumPuntosGasto; //Numero de puntos de massflow de las curvas
59  int FNumCurvasRendMax; //Numero maximo de curvas de rendimiento maximo de todas las curvas
60  int *FNumCurvasRen; //Numero de curvas de rendimiento
61  int *FNumCurvasRenAd; //Numero de curvas de rendimiento adimensionalizado
62  double *FGastoRelComp1; //Massflow de la curva para relacion de compresion = 1
63  double *FGastoBombeo; //Massflow de la curva de regimen cuando corta la de bombeo
64  double *FRelCompBombeo; //Relacion de compresion del punto de bombeo
65  double **FRelComp; //Relacion de compresion para los diferentes gastos
66  double **FRelCompNuevo;
67  double *FGastoCompNuevo;
68  double **FGastoRend; //Massflow para cada puntod de rendimiento
69  double **FRend; //Valores de rendimiento del compresor
70  double *Fnegmas;
71  double *Fnegrc;
72  double *Fsolneg;
73  int FNumPuntosGastoNuevo;
74 
75  stSpline2Tub *FSpl; //Variables auxiliares rutina Spline
76  stOrtoPol2Tub *FOrtp; //Variables auxiliares rutina PolOrtogonal
77 
78  double *FCoefSplBombeo;
79  double *FCoefSplRC;
80  double *FRegimenCurva;
81  double **FCoefbSup;
82  double **FCoefbInf;
83  double **FCoefcSup;
84  double **FCoefcInf;
85  double **FCoefdSup;
86  double **FCoefdInf;
87  int FNumTerms;
88  double *FCoefbX;
89  double *FCoefcX;
90  double *FCoefdX;
91 
92  double FRendCurvaBombeo; // Varialbes para la creacion de las curvas de rendimiento con el massflow adimensionalizado
93  double FRendGastoMaximo;
94  double **FGastoAdim;
95  double **FRendAdim;
96  double **FCoefSplRend;
97 
98  int FNumPuntos;
99  double *FGastoInt;
100  double *FRelCompInt;
101 
102  double FGastoBombeoX;
103  double FGastoRelComp1X;
104  double FRelCompBombeoX;
105  int FCurvInf;
106 
107  bool FCorrect;
108 
109  double FRadioHub;
110  double FRadioRodete;
111  double FRadioTip;
112 
113 // Datos para GT-POWER
114 
115  std::vector<std::vector<double> > FGTSpeed;
116  std::vector<std::vector<double> > FGTMass;
117  std::vector<std::vector<double> > FGTPres;
118  std::vector<std::vector<double> > FGTEff;
119  std::vector<std::vector<double> > FGTCoefCR;
120  std::vector<std::vector<double> > FGTCoefEff;
121 
122 //---------------------------------------------------------------------------
123 // FUNCIONES PRIVADAS
124 //---------------------------------------------------------------------------
125 
126  void Spline(int n, double *x, double *y, double *sol);
127 
128 //void Hermite(int n,double *x,double *y,double *sol);
129 
130 //void Hermite(int n,std::vector<double> x,std::vector<double> y,std::vector<double> *sol);
131 
132  void SplineVector(int n, std::vector<double> x, std::vector<double> y, std::vector<double> sol);
133 
134  void PolOrtogonal(int nterms, int npoint, double *ma, double *rd, double *w, double *b, double *c, double *d);
135 
136  double EvaluaSpline(double punto, int n, double *x, double *y, double *sol);
137 
138  double EvaluaSpline(double punto, int n, std::vector<double> x, std::vector<double> y, std::vector<double> sol);
139 
140 //double EvaluaHermite(double punto,int n,double *x,double *y,double *sol);
141 
142 //double EvaluaHermite(double punto,int n,std::vector<double> x,std::vector<double> y,std::vector<double> sol);
143 
144  double InterpolaLineal(double punto, int n, double *x, double *y);
145 
146  void Cambio_Mapa(double radtip, double radhub, double radrodete);
147 
148  void ImprimeMapa();
149 
150 //---------------------------------------------------------------------------
151 //---------------------------------------------------------------------------
152 
153  public:
154 
155 //---------------------------------------------------------------------------
156 // VARIABLES PUBLICAS
157 //---------------------------------------------------------------------------
158 
159  int getNumPuntos() {
160  return FNumPuntos;
161  }
162  ;
163 
164  double getTempRef() {
165  return FTempRef;
166  }
167  ;
168 
169  double getPresionRef() {
170  return FPresionRef;
171  }
172  ;
173 
174  double GetRelCompInt(int i);
175 
176  double GetGastoInt(int i);
177 
178  double getGastoRelComp1() {
179  return FGastoRelComp1X;
180  }
181  ;
182 
183  double getGastoBombeo() {
184  return FGastoBombeoX;
185  }
186  ;
187 
188  double getRelCompBombeo() {
189  return FRelCompBombeoX;
190  }
191  ;
192 
193  double getMaxCompRatio() {
194  return FRelCompBombeoX;
195  }
196  ;
197 
198  double getRegimenCorregido() {
199  return FRegComp;
200  }
201  ;
202 
203  bool getCorrect() {
204  return FCorrect;
205  }
206  ;
207 
208  double getTempMeasure() {
209  return 300;
210  }
211  ;
212 //---------------------------------------------------------------------------
213 // FUNCIONES PUBLICAS
214 //---------------------------------------------------------------------------
215 
216  TMapaComp2Tub(int i);
217 
218  ~TMapaComp2Tub();
219 
220  void LeeMapa(FILE *fich);
221 
222  void InterpolaMapa(double rtc, double AmbientTemperature);
223 
224  double EvaluaRendimiento(double MasaAire);
225 
226  double EvaluaRendSplines(double MasaAire);
227 
228  double EvaluaRCSplines(double MasaAire);
229 
230  double EvaluaRCHermite(double Massflow);
231 
232  double BuscaRegimen(double RC, double Massflow, double AmbientTemperature);
233 
234  void ReadGTPowerMap(FILE *fich, int correct);
235 
236  void RearrangeGTPowerMap(double rtip, double rhub, double rwheel);
237 
238  void WriteMapForWAM();
239 
240  void CalculateAdiabaticEfficiency(TTC_HTM *HTM, double TinT) {
241  }
242  ;
243 
244  void PutRadioHub(double val) {
245  FRadioHub = val;
246  }
247  ;
248 
249  void PutRadioRodete(double val) {
250  FRadioRodete = val;
251  }
252  ;
253 
254  void PutRadioRadioTip(double val) {
255  FRadioTip = val;
256  }
257  ;
258 
259 };
260 
261 #endif
TMapaComp2Tub
Definition: TMapaComp2Tub.h:41
stOrtoPol2Tub
Definition: Globales.h:949
Constantes.h
TTC_HTM
Definition: TTC_HTM.h:307
stSpline2Tub
Definition: Globales.h:935
TCompressorMap
Definition: TCompressorMap.h:12