OpenWAM
ACT_Sub_DLL.h
1 // ---------------------------------------------------------------------------
2 #define cero 1.e-6
3 #define NR 17
4 #define ANG_CHORRO 60. // Angulo de chorro.
5 //#include <vcl.h>
6 //#include <windows.h>
7 
8 // ---------------------------------------------------------------------------
9 
10 #pragma hdrstop
11 // #include "simstruc.h"
12 #pragma hdrstop
13 #include<stdio.h>
14 #include<math.h>
15 #include<string.h>
16 #include<stdlib.h>
17 #include<malloc.h>
18 //#include<conio.h>
19 
20 // Fichero OCULTO
21 
22 struct sINtype {
23  double KSOOTC1;
24 };
25 
26 struct sOUTtype {
27  double species_EVO[8];
28  double *evol_Soot;
29  double *evol_Soot_CIL;
30  double *evol_Radiacion;
31  double *HRF_PMX;
32  double *evol_LOL;
33 };
34 
35 struct stRadArray {
36  double x;
37  double RFlame;
38  double R;
39  int np;
40  double dr;
41  double Ilambda;
42  double Itot;
43  double Xsoot[NR];
44  double Tau[NR];
45  double PTau[NR];
46  double T[NR];
47 };
48 
50  int inj_number;
51  int num_i;
52  double mtotal;
53  double mfuel;
54  double mfuel_real;
55  double mO2;
56  double mO2_real;
57  double mO;
58  double mCH;
59  double mCO2;
60  double mH2O;
61  double TSD;
62  double Tadib;
63  double dNOx;
64  double mNOx;
65  double mSOOT_B;
66  double mSOOT_A;
67  double mSOOT_C;
68  double X;
69  double FI;
70 };
71 
74 void FUNCTION_FOR_INTERPOLATION(double*interpolated, double*time_interpolated, double*CAD_to_interpolate,
75  double*vector_to_interpolate, int size_interpolated, int size_to_interpolate, double speed);
76 
77 void CALCULUS_OF_VIRTUAL_VELOCITY(double*inj_velocity, double*virtual_velocity, double*dmf, double*time_vector,
78 
79  double rofuel, double dc, double n_holes, double nozzle_d, double D, int size, double PI, double speed, double*EOI_IM,
80  double inj_num, double*SOI_IM, double Piston_D, double DBowl, double CTM, double*CAD, double Kswirl);
81 
82 void CALCULUS_OF_ACCUMULATED_INJ_RATE(double*acu_dmf, double*dmf, double*time_vector, int size);
83 
84 void CALCULUS_OF_REACTION_STOICHIOMETRY(double*O2_mass_fuelunit, double*N2_mass_fuelunit, double*CO2_mass_fuelunit,
85  double*H2O_mass_fuelunit, double HC);
86 
87 void STOICHIOMETRY_CONSTANTS(double HC, double*Kst1, double*Kst2, double*Kst3, double*Kst4, double*Kst5, double*Kst6);
88 
89 void CALCULUS_OF_NUMBER_ELEMENTS(int*num_i_IM, double*time_vector, int size, double speed, double*SOI_IM, double*EOI_IM,
90  int inj_num);
91 
92 void CALCULUS_OF_POI(double**POI_IM, double**mfuel_i_IM, double**mfuel_ij_IM, double*acu_dmf, double*time_vector,
93  int size, double speed, int*num_i_IM, int num_j, double*SOI_IM, double*EOI_IM, int inj_num,
94  stControlElementComposition * *elementcontrol);
95 
96 double VOLUME(double CAD, double VTDC, double PI, double Piston_D, double Crank_L, double Connecting_Rod_L, double E);
97 
98 void CALCULATE_CYCLE(double*roair, double*CAD, double delta_t, double*V_cyl, double VTDC, int counter, double speed,
99  double*p_cyl, double*HRF, double*acu_dmf, double*Mbb, double*acu_Mbb, double AFe, double f, double mfuel, double mEGR,
100  double mairIVC, double*T_cyl, double HP, double*Yair, double*Yfuel, double*Yburned, double*U, double*CV,
101  double*H_cooler, double*H, double TEB, double inj_fuel_temp, double PRECITERACIONES, double*defor, double*Rmixture,
102  double Atmosphere_press, double*Gamma, double PI, double Runiv, double Piston_D, double S, double Crank_L,
103  double Connecting_Rod_L, double E, double Piston_Axis_D, double Piston_Crown_H, double DBowl, double VBowl,
104  double M_Connecting_Rod, double M_P_R_PA, double MW_air, double MW_fuel, double MW_burned, double C_ESteel,
105  double C_Mech_Defor, double CTM, double WC1A, double WC1B, double C2, double C_MBLBY, double Cbb, double TPIS,
106  double TCYL_HEAD, double TCYL, double*Qcylhead, double*Qcyl, double*Qpis);
107 
108 void DEFORMATIONS(double*V_cyl, double*DEFOR, double p_cyl, double CAD, double delta_CAD, double speed, double PI,
109  double Piston_D, double S, double Connecting_Rod_L, double E, double Piston_Axis_D, double Piston_Crown_H,
110  double M_Connecting_Rod, double M_P_R_PA, double C_ESteel, double C_Mech_Defor);
111 
112 void MASIC_RATIO(double*Yair, double*Yfuel, double*Yburned, double*Rmixture, double HRF, double acu_mf, double acu_Mbb,
113  double AFe, double f, double mfuel, double mEGR, double mairIVC, double Runiv, double MW_air, double MW_fuel,
114  double MW_burned);
115 
116 void PROPERTIES(double*u, double*CV, double T_cyl, double T_cyl_pre, double Yair, double Yfuel, double Yburned);
117 
118 void PROPERTIES_FUEL(double*uf, double T_cyl);
119 
120 double HEAT_COOLER(double p_cyl, double pressureIVC, double T_cyl, double temperatureIVC, double average_Volume,
121  double volumeIVC, double delta_CAD, double speed, double VTDC, double*H, double PI, double Piston_D, double S,
122  double DBowl, double VBowl, double CTM, double WC1A, double WC1B, double C2, double TPIS, double TCYL_HEAD, double TCYL,
123  double CAD, double*Qcylhead, double*Qcyl, double*Qpis, int counter);
124 
125 double CALCULATE_C1(double cm, double CTM, double WC1A, double WC1B, double Piston_D, double DBowl, double speed,
126  double CAD, double PI);
127 
128 double BLOW_BY(double p_cyl, double T_cyl, double Rmixture, double delta_CAD, double speed, double Gamma,
129  double Atmosphere_press, double Piston_D, double C_MBLBY, double Cbb);
130 
131 void CALCULATE_AREAS(double*Piston_area, double*Cylinder_head_area, double PI, double Piston_D, double DBowl,
132  double VBowl);
133 
134 void CALCULUS_OF_MEAN_VARIABLES(double*p_cyl, double*T_cyl, double*dp_da_cyl, double*CAD, double*pmax, double*Tmax,
135  double*dp_da_max, double*p_exit, double*T_exit, int size);
136 
137 void CALCULUS_OF_IMP_HP(double*complete_p_cyl, double*complete_CAD, double*p_cyl, double*V_cyl, double*complete_V_cyl,
138  double*complete_deform, double*WI_HP, double*IMP_HP, int complete_size, int complete_prev_size, double delta_t,
139  double speed, int size, double IVC, double EVO, double VTDC, double Cylinder_capacity, double PI, double Piston_D,
140  double S, double Crank_L, double Connecting_Rod_L, double E, double Piston_Axis_D, double Piston_Crown_H,
141  double M_Connecting_Rod, double M_P_R_PA, double C_ESteel, double C_Mech_Defor, double inlet_pres, double exhaust_pres);
142 
143 void FUNCTION_NOX(double*YNOeq_value, double*KdYNO_value, double**YNOeq, double**KdYNO, double temperature, double mO2,
144  double mtotal);
145 
146 void FUNCTION_SOOT_C(double*soot_pre, double element_FI);
147 
148 double min(double a, double b);
149 
150 double YSoot_to_FSN(double YSoot);
151 
152 void ACT(double*engine_parameters, double*engine_model_constants, double*test_variables, double*injection_rate,
153  double*CAD_injection_rate, int size_inlet_inj, int NIN, double*SOI, double*EOI, int CAI, double*CAD_exit,
154  double*HRF_exit, double*ROHR_exit, double*p_cyl_exit, double*dp_da_cyl_exit, double*T_cyl_exit, double*H_cooler_exit,
155  double*mean_var_exit, double*heat_transfer, double*injection_rate_exit, double*accum_injection_rate_exit,
156  sINtype dataIN, sOUTtype * dataOUT);
157 
158 #pragma argsused
stControlElementComposition
Definition: ACT_Sub_DLL.h:49
stRadArray
Definition: ACT_Sub_DLL.h:35
sOUTtype
Definition: ACT_Sub_DLL.h:26
sINtype
Definition: ACT_Sub_DLL.h:22