43 #include "ACT_Sub_DLL.h"
44 #include "INJECTION_RATE.cpp"
47 #include "TController.h"
53 nmAdmision = 0, nmEscape = 1
65 double *Fengine_parameters;
66 double *Fengine_model_constants;
67 double *Ftest_variables;
68 double *Finjection_rate;
69 double *FCAD_injection_rate;
75 double *Fdp_da_cyl_exit;
77 double *FH_cooler_exit;
78 double *Fmean_var_exit;
79 double *Fheat_transfer;
80 double *Finjection_rate_exit;
81 double *Faccum_injection_rate_exit;
99 double FPresionMedAdm;
100 double FPresionMedEsc;
103 nmCombustion FCalcComb;
121 int FNumeroUnionesAdm;
122 int FNumeroUnionesEsc;
125 double FMomentoAngular;
126 double FMomentoAngularAdm;
127 double FMomentoAngularEsc;
131 double FAnguloActual;
132 double FAnguloAnterior;
140 double FAnguloRetrasoCombustion;
148 double FPresionCarter;
154 double FTemperatura0;
159 double FMasaAtrapada;
160 double FAcumMasaPorAdm;
161 double FMasaPorAdmision;
162 double FAcumMasaPorEsc;
163 double FMasaPorEscape;
172 double FParInstantaneo;
174 double FTrabajoBombeo;
175 double FTrabajoNetoACUM;
176 double FTrabajoBombeoACUM;
180 double FDensidadReferencia;
181 double FDensidadReferenciaSUM;
186 double *FAngDesplazado;
202 double FFuelInstantPil;
223 double FCalorLiberadoCiclo;
227 bool FPrimeraCombustion;
228 bool FPrimerInstanteCicloCerrado;
244 double FAlphaAdmision;
245 double FMasaCortocircuito;
246 double FGastoCortocircuito;
252 dVector FFraccionMasicaEspecie;
254 dVector FComposicionCicloCerrado;
255 dVector FMasaEspecieCicloCerrado;
257 double FFraccionMasicaEspecieFuel;
260 double GetAireFresco();
273 dVector FFraccionComienzoCicloCerrado;
277 double FRelacionMolarH2O_O2;
278 double FRelacionMolarN2_O2;
279 double FMolesCombQuemado;
283 double FMasaO2Reactivos;
284 double FMasaH2OReactivos;
285 double FMasaN2Reactivos;
286 double FMasaH2OProductos;
287 double FMasaN2Productos;
288 double FMasaCO2Productos;
289 double FDosadoEstequiometrico;
295 double CalculaVolumen(
double AnguloActual);
297 void InicioFinCombustion();
299 double fun_wiebe(
double x,
int ley,
int wiebe);
301 double fql(
double x,
int ley);
303 double CalculaCalorLiberado(
double x);
305 double FuncionGamma(
double T,
double X);
307 void CalculaFuelMEP(
double MasaAire);
309 double CalculaCTorbAdmProm();
315 void CalculaMomentoAngular();
319 void CalculoVariablesValvulas();
321 void CalculaTemperaturasPared();
349 void PutFraccionMasicaEspecie(
int i,
double valor) {
350 FFraccionMasicaEspecie[i] = valor;
354 double GetFraccionMasicaEspecie(
int i) {
355 return FFraccionMasicaEspecie[i];
359 double getParInstantaneo() {
360 return FParInstantaneo;
364 double getTrabajoNeto() {
369 double getTrabajoBombeo() {
370 return FTrabajoBombeo;
374 double getPressure() {
384 double getSpeedsound() {
389 double getMomentoAngular() {
390 return FMomentoAngular;
394 double getMasaValvAdm() {
399 void PutMasaFuel(
double valor) {
405 double getMasaFuel() {
409 double getMasaPorAdmision() {
410 return FMasaPorAdmision;
414 double getMasaAtrapada() {
415 return FMasaAtrapada;
420 return FDistribucion;
424 double getAnguloActual() {
425 return FAnguloActual;
429 double getAnguloAnterior() {
430 return FAnguloAnterior;
434 double getSwirlSUM() {
439 int getNumeroUnionesAdm() {
440 return FNumeroUnionesAdm;
444 int getNumeroUnionesEsc() {
445 return FNumeroUnionesEsc;
449 int getNumeroCilindro() {
450 return FNumeroCilindro;
463 double getTiempoActual() {
468 double getTemperature() {
473 void PutInicioComb(
double valor) {
477 void PutFinComb(
double valor) {
481 void PutFQL(
double valor) {
490 double getVolumen() {
495 double getVolumen0() {
505 void PutHayDLL(
bool valor) {
509 void PutModComb(
bool valor) {
513 void PutCalculadoPaso(
bool valor) {
514 FCalculadoPaso = valor;
519 bool getCalculadoPaso() {
520 return FCalculadoPaso;
525 double GetComposicionSaliente(
int i);
527 double getFraccionAireFresco() {
528 return GetAireFresco();
532 void PutNumeroInyecciones(
int valor) {
536 void PutPresionInyeccion(
double valor);
538 void PutSOP(
int i,
double valor) {
543 void PutMasaFuelPorInyeccion(
int i,
double valor) {
548 void PutMfControllerID(
int ControllerID) {
549 FMfControllerID = ControllerID;
550 FMfControlled =
true;
558 virtual void ActualizaPropiedades(
double TiempoActual) = 0;
560 void ReadAverageResultsCilindro(
const char *FileWAM, fpos_t &filepos);
562 void HeaderAverageResultsCilindro(std::stringstream& medoutput,
stEspecies *DatosEspecies);
564 void ImprimeResultadosMediosCilindro(std::stringstream& medoutput);
566 void AcumulaResultadosMediosCilindro(
double TActual);
568 void CalculaResultadosMediosCilindro();
570 void ReadInstantaneousResultsCilindro(
const char *FileWAM, fpos_t &filepos);
572 void HeaderInstantaneousResultsCilindro(std::stringstream& insoutput,
stEspecies *DatosEspecies);
574 void ImprimeResultadosInstantaneosCilindro(std::stringstream& insoutput);
576 void CalculaResultadosInstantaneosCilindro();
578 void IniciaVariables();
582 void CalculaVariablesResultados();
584 void SalidaGeneralCilindros();
586 void ControlDesfase(
double n0);
588 void DefineCombustion();