33 #include "TCilindro4T.h"
34 #include "TCilindro2T.h"
37 #include "TController.h"
46 double FTemperaturaAmbiente;
47 double FPresionAmbiente;
53 std::vector<stLeyQuemadoBD> FLeyQuemadoBD;
60 int FNumeroInyecciones;
75 nmTipoInterpolacion fTipo;
80 double FMixtureProcessCte;
82 nmTipoModelado FTipoModelado;
92 std::vector<stInjecPulse> FInjecPulse;
95 nmCalculoPared FCalculoPared;
99 nmTipoDesfase FTipoDesfase;
100 int FNumeroCiclosSinInerciaTermica;
102 int FNumeroLeyesQuemado;
107 double FPresionInicialRCA;
111 double FDosadoInicial;
112 double FRendimientoCombustion;
113 double FPoderCalorifico;
114 double FDensidadCombustible;
119 double FTempRefrigerante;
123 double FAngTotalCiclo;
125 nmTipoMotor FTipoMotor;
126 nmTipoCombustion FCombustible;
127 nmCalculoPAAE FCalculoDePAAE;
131 double FMasaTotalVehiculo;
132 double FInerciaTotal;
133 double FRelCajaCambios;
134 double FRelTrasmision;
135 double FRendCajaCambios;
137 double FAnguloCarretera;
139 double FCoeficienteInercias;
141 double FParResistente;
142 double FParPerdidasMecanicas;
147 double FTrabajoNetoMotor;
148 double FTrabajoBombeoMotor;
155 double FPotenciaEfectiva;
156 double FRendimientoEfectivo;
157 double FRendimientoIndicado;
158 double FConsumoEspecifico;
159 double FVelocidadVehiculo;
164 bool FPrimeravezAcumulaFuel;
165 bool FPrimeravezAcumulaMasaAtrapada;
168 nmTipoCalculoEspecies FCalculoEspecies;
170 bool FImponerComposicionAE;
171 double *FComposicionInicial;
172 double *FComposicionAtmosfera;
173 nmCalculoGamma FCalculoGamma;
178 int FRPMControllerID;
206 double getMixtureProcessCte() {
207 return FMixtureProcessCte;
221 void PutRegimen(
double valor) {
226 }
catch(exception & N) {
227 std::cout <<
"ERROR: TBloqueMotor::PutRegimen en el EngineBlock. " << std::endl;
228 std::cout <<
"Tipo de error: " << N.what() << std::endl;
235 double getRegimen() {
239 double getMasaFuel() {
244 void setMasaFuel(
double fuel) {
248 double getMasaInicial() {
253 double getPresionAAE() {
258 double getPresionInicial() {
259 return FPresionInicialRCA;
268 void PutTheta(
double valor) {
271 }
catch(exception & N) {
272 std::cout <<
"ERROR: TBloqueMotor::PutTheta en el EngineBlock. " << std::endl;
273 std::cout <<
"Tipo de error: " << N.what() << std::endl;
284 void PutCiclo(
int valor) {
289 }
catch(exception & N) {
290 std::cout <<
"ERROR: TBloqueMotor::PutCiclo en el EngineBlock. " << std::endl;
291 std::cout <<
"Tipo de error: " << N.what() << std::endl;
302 double getAngTotalCiclo() {
303 return FAngTotalCiclo;
307 double GetDesfase(
int i);
309 nmTipoMotor getEngineType() {
314 nmTipoCombustion getCombustible() {
319 double getPoderCalorifico() {
320 return FPoderCalorifico;
324 double getDensidadCombustible() {
325 return FDensidadCombustible;
329 double getRendimientoCombustion() {
330 return FRendimientoCombustion;
334 double getDosadoInicial() {
335 return FDosadoInicial;
350 return FParedCilindro;
354 nmCalculoPared getCalculoPared() {
355 return FCalculoPared;
359 double FAjusteTranCalAdm;
361 double getAjusteTranCalAdm() {
362 return FAjusteTranCalAdm;
364 void PutATCAdm(
double valor);
366 double FAjusteTranCalEsc;
368 double getAjusteTranCalEsc() {
369 return FAjusteTranCalEsc;
372 void PutATCEsc(
double valor);
374 double getParPotMax() {
379 const std::vector<stLeyQuemadoBD> getLeyQuemadoBD() {
380 return FLeyQuemadoBD;
384 double getLQRegMax() {
389 double getLQMfMax() {
394 double getLQMaMax() {
399 double getPresionAmb() {
400 return FPresionAmbiente;
404 double getTemperaturaAmb() {
405 return FTemperaturaAmbiente;
409 double getTempRefrigerante() {
410 return FTempRefrigerante;
414 int getNumCiclosSinInerciaTermica() {
415 return FNumeroCiclosSinInerciaTermica;
419 int getNumTuboRendVol() {
420 return FNumTuboRendVol;
426 TTubo* getTuboRendVol() {
436 double getAFRMedio() {
441 nmCalculoPAAE getCalculoDePAAE() {
442 return FCalculoDePAAE;
446 nmTipoCalculoEspecies getSpeciesModel() {
447 return FCalculoEspecies;
451 int getSpeciesNumber() {
452 return FNumeroEspecies;
456 bool getImponerComposicionAE() {
457 return FImponerComposicionAE;
461 double GetComposicionInicial(
int i);
463 double GetComposicionAtmosfera(
int i);
465 nmCalculoGamma getGammaCalculation() {
466 return FCalculoGamma;
471 return FInjectionSys;
476 return FInjecPulse[i];
480 int getFTipoDatosIny() {
481 return FTipoDatosIny;
485 int getFNumeroInyecciones() {
486 return FNumeroInyecciones;
505 double getFAngIniIny() {
510 double getFAStepIny() {
527 TBloqueMotor(
double AmbientPressure,
double AmbientTemperature, nmTipoCalculoEspecies SpeciesModel,
int numeroespecies,
528 nmCalculoGamma GammaCalculation,
bool ThereIsEGR);
532 void LeeMotor(
const char *FileWAM, fpos_t &filepos, nmTipoModelado& SimulationType,
int CiclosSinInerciaTermica,
533 nmTipoMotor EngineType,
double *AtmosphericComposition);
535 void IniciaAnguloCalculo();
537 void ReadAverageResultsBloqueMotor(
const char *FileWAM, fpos_t &filepos);
539 void HeaderAverageResultsBloqueMotor(std::stringstream& medoutput);
541 void ImprimeResultadosMediosBloqueMotor(std::stringstream& medoutput);
543 void ResultadosMediosBloqueMotor();
545 void AcumulaResultadosMediosBloqueMotor(
double TActual,
int CilindroActual);
547 void PrestacionesMotor();
549 void ModeloDeVehiculo(
double Time);
551 void AsignacionTuboRendVol(
TTubo **Pipe);
553 void IniciaVarCilindro();
559 void NewInjectionData(
double Time);
561 double TasaInyInterp(
double Angle);