OpenWAM
TLumbrera.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 TLumbreraH
30 #define TLumbreraH
31 
32 #include <cstdio>
33 #ifdef __BORLANDC__
34 #include <vcl.h>
35 #endif
36 #include <iostream>
37 #include "Constantes.h"
38 //#include <cmath>
39 
40 #include "TTipoValvula.h"
41 
42 //---------------------------------------------------------------------------
43 //---------------------------------------------------------------------------
44 
45 class TLumbrera: public TTipoValvula {
46  private:
47 
48 //DATOS INICIALES
49  double FAltura;
50  double FAnchura;
51  double FRadioSup;
52  double FRadioInf;
53  double FPosicionPMI;
54  double FDiametroRef;
55  double FCarrera;
56  double FBiela;
57 
58  double FAnguloApertura; // Hector 2T
59  double FAnguloCierre; // Hector 2T
60 
61  int FNumCD;
62  dVector FApertura;
63  dVector FDatosCDEntrada;
64  Hermite_interp *fun_CDin;
65  dVector FDatosCDSalida;
66  Hermite_interp *fun_CDout;
67 
68 //VARIABLES DE CALCULO
69  int FValvula;
70  double FApertActual;
71 
72  void CalculateOpeningANDClose();
73 
74  public:
75 
76  double getAnguloApertura() {
77  return FAnguloApertura;
78  }
79  ; // Hector 2T
80 
81  double getAnguloCierre() {
82  return FAnguloCierre;
83  }
84  ; // Hector 2T
85 
86  TLumbrera(TLumbrera *Origen, int valv);
87 
88  TLumbrera(double Biela, double Carrera);
89 
90  ~TLumbrera();
91 
92  void LeeDatosIniciales(const char *FileWAM, fpos_t &filepos, int norden, bool HayMotor, TBloqueMotor *Engine);
93 
94  void CalculaCD(double Angulo);
95 
96  double CalculaDistPMI(double x);
97 
98  double CalculaApertura(double x);
99 
100  void GetCDin(double Time);
101 
102  void GetCDout(double Time);
103 };
104 
105 //---------------------------------------------------------------------------
106 //---------------------------------------------------------------------------
107 #endif
108 
Constantes.h
TTipoValvula
Definition: TTipoValvula.h:53
Hermite_interp
Definition: Math_wam.h:311
TLumbrera
Definition: TLumbrera.h:45
TBloqueMotor
Definition: TBloqueMotor.h:43
dVector
std::vector< double > dVector
Double vector.
Definition: Math_wam.h:70