/****************************************************************** * FUNCTION: kolsim - evaluates the kooler performance * * FILENAME kolsim * * PROGRAMMER I.Urieli (FORTRAN) * * E. Malroy (C Translation) * * DATE: 12/01/94 (FORTRAN), 08/10/96 (C Translation) * * LAST MODIFICATION: 08/21/96 * * INCLUDE: ,,"adiabatic.h", "define.h" * * GLOBAL VARIABLES: * * omega - phase advance angle (rad) * * ak - area cooler (m^2) * * tk - temperature kooler (K) * * dk - hydraulic diameter of kooler (m) * * freq - frequency of engine (Hz) * * awgk - kooler internal wetted area (m^2) * * printfile - address for output file * * PROTOTYPES: * * void kolsim(double [][], double, double *) * * PRE: omega, ak, tk, dk, freq, awgk, printfile * * POST: *pt_tgk * ******************************************************************/ #include #include #include "define.h" #include "adiabatic.h" void kolsim(double var[][COL], /* matrices of variables */ double twk, /* kooler wall temperature */ double *pt_tgk) /* kooler average gas temperature */ { /**** variables ****/ double gak[37];/* mass flow through kooler (kg/s) */ double re[37]; /* Reynolds number specified crank angle */ double sum_re; /* Summation of Reynolds numbers */ double re_avg; /* Average Reynolds number over cycle */ double re_max; /* maximum Reynolds number over cycle */ double ht; /* heat transfer coefficient (W/(m**2*K))*/ double fr; /* Reynolds friction factor fF*Re */ double mu; /* dynamic viscosity (kg/(m*s)) */ double kgas; /* gas thermal conductivity (W/(m**2*K)) */ double gk; /* mass flux through kooler (kg/(m**2*s) */ double tgk; /* Kooler average gas temp */ int i; /* index for "for" loop */ /**** Reynolds number over the cycle ****/ for(i=0;i<37;i++) { gak[i] = (var[GACK][i] + var[GAKR][i])*omega/2.0; gk = gak[i]/ak; reynum(tk,gk,dk,&mu,&kgas,&re[i]); } /**** average and maximum Reynolds number ****/ sum_re = 0.0; re_max = re[0]; for(i=0;i<36;i++) { sum_re = sum_re + re[i]; if(re[i] > re_max) re_max = re[i]; } re_avg = sum_re/36.0; /**** heat transfer coefficient (W/(m**2*K)) & kooler gas temp. tgk(K) ****/ pipfr(dk,mu,re_avg,&ht,&fr); tgk = twk - var[QK][36]*freq/(ht*awgk); *pt_tgk=tgk; /**** output ****/ printf("\n kooler Simple analysis:"); printf("\n average Reynolds number %.3f", re_avg); printf("\n maximum Reynolds number %.3f", re_max); printf("\n heat transfer coefficient (W/(m**2*K)) %.3f", ht); printf("\n wall temp(K) %.2f, gas temp(K) %.2f\n", twk,tgk); fprintf(printfile,"\n kooler Simple analysis:"); fprintf(printfile,"\n average Reynolds number %.3f", re_avg); fprintf(printfile,"\n maximum Reynolds number %.3f", re_max); fprintf(printfile,"\n heat transfer coefficient (W/(m**2*K)) %.3f", ht); fprintf(printfile,"\n wall temp(K) %.2f, gas temp(K) %.2f\n",twk,tgk); }