OpenWAM
TValvula4T.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 TValvula4TH
30 #define TValvula4TH
31 
32 #include <cstdio>
33 #ifdef __BORLANDC__
34 #include <vcl.h>
35 #endif
36 #include <iostream>
37 
38 #include "TTipoValvula.h"
39 
40 #include "TController.h"
41 
42 //---------------------------------------------------------------------------
43 //---------------------------------------------------------------------------
44 
45 class TValvula4T: public TTipoValvula {
46  private:
47 //CONSTANTES INICIALES
48 
49  dVector FAngle;
50  dVector FLevantamiento;
51  Hermite_interp *fun_FLift;
52  double FIncrAng;
53 
54  double FIncrLev;
55 
56  dVector FLiftCD;
57  dVector FDatosCDEntrada;
58  Hermite_interp *fun_CDin;
59  dVector FDatosCDSalida;
60  Hermite_interp *fun_CDout;
61  dVector FDatosTorbellino;
62  Hermite_interp *fun_Torb;
63 
64  double FCDEntrada;
65  double FCDSalida;
66  double FDiametro;
67  double FDiametroRef;
68  double FAnguloApertura;
69  double FAnguloApertura0;
70  double FAngle0;
71  double FAnguloCierre;
72  double FCoefTorbMedio;
73 // VARIABLES DE CALCULO
74  double FApertura;
75 
76  bool FVVT;
77  bool FVVTLift;
78  bool FVVTTiming;
79  bool FVVTDuration;
80 
81  double FVVTLiftMultiplier;
82  double FVVTTimigGap;
83  double FVVTDurationMultiplier;
84 
85  int FVVTLiftCtrlID;
86  int FVVTTimingCtrlID;
87  int FVVTDurationCtrlID;
88 
89  TController *FVVTLiftCtrl;
90  TController *FVVTTimingCtrl;
91  TController *FVVTDurationCtrl;
92 
93  int FValvula;
94 
95 //double Interpola2(double x,double *y,int n);
96 
97  public:
98 
99  TValvula4T(TValvula4T *Origen, int valv);
100 
101  TValvula4T();
102 
103  ~TValvula4T();
104 
105  double getAnguloApertura() {
106  return FAnguloApertura;
107  }
108  ;
109  double getAnguloCierre() {
110  return FAnguloCierre;
111  }
112  ;
113  double getDiametro() {
114  return FDiametro;
115  }
116  ;
117  double getCTorbMed() {
118  return FCoefTorbMedio;
119  }
120  ;
121 
122  void LeeDatosIniciales(const char *FileWAM, fpos_t &filepos, int norden, bool HayMotor, TBloqueMotor *Engine);
123 
124  void CalculaCD(double Angulo);
125 
126  void VVTControl(double Time);
127 
128  void AsignaLevController(TController **Controller);
129 
130  void GetCDin(double Time);
131 
132  void GetCDout(double Time);
133 
134 };
135 
136 //---------------------------------------------------------------------------
137 //---------------------------------------------------------------------------
138 #endif
TController
Definition: TController.h:37
TTipoValvula
Definition: TTipoValvula.h:53
Hermite_interp
Definition: Math_wam.h:311
TValvula4T
Definition: TValvula4T.h:45
TBloqueMotor
Definition: TBloqueMotor.h:43
dVector
std::vector< double > dVector
Double vector.
Definition: Math_wam.h:70