%% 2015_DP_LAGA_ONDREJ
% model - vykonnostni navrh tepelneho vymeniku pro krizovy proud
clc;
clear all;
close all;

%% parametry
ro_h = 0.8;         % hustota horkeho media
C_h = 1030;         % tepelna kapacita horkeho media
v_h = 3;            % rychlost spalin v kourovodu
r = 0.045;          % polomer kourovodu
S_kour = pi*r*r;    % plocha rezu kourovodu
Q_h = v_h*S_kour;   % prutok horkeho media

ro_s = 1.2;         % hustota studeneho media
C_s = 1010;         % tepelna kapacita studeneho media
Q_s_vyr = 56;       % max prutok studeneho media v m3/h dle vyrobce
Q_s = Q_s_vyr/3600; % prepocitany prutok studeneho media na m3/s
k_str = 3.6;        % konstanta pro stredni teplotu chladiva

lambda = 70;        % soucinitel tepelne vodivosti

Th_in = 160;        % zadana vstupni teplota horkeho media
Ts_in = 20;         % zadana vstupni teplota studeneho media

%% tepelny vymenik
a = 0.2;                % zadana sirka vymeniku
b = 0.2;                % zadana hloubka vymeniku
c = 0.4;              % zadana vyska vymeniku
d_tr = 0.03;            % prumer trubek ve vymeniku
r_tr = d_tr/2;          % vnejsi polomer trubek ve vymeniku
t = 0.0015;              % tloustka steny trubky
r_tr_vnitrni = r_tr-t;  % vnitrni polomer trubek ve vymeniku

pocet_liche = 3;
pocet_sude = pocet_liche + 1;
mezera = (a - pocet_sude*d_tr)/(pocet_sude+1); %16mm
roztec_ver = 0.052;%sqrt((mezera/2+2*r_tr)^2-(mezera/2+r_tr)^2);
S_mezer = mezera*(pocet_sude+1)*b;

pocet_rad = (floor((c-0.04-2*r_tr)/(roztec_ver))+1);
pocet_trubek = (ceil(pocet_rad/2))*pocet_liche + (floor(pocet_rad/2))*pocet_sude;
S_tr = 2*pi*r_tr*b*pocet_trubek;
delka = b*pocet_trubek;

S_pomer = S_mezer/S_kour;

%% vypoctene hodnoty
% hydralicky prumer trubek:
Sk1 = pi*r_tr_vnitrni^2 *pocet_trubek;         % plocha pruchoziho kanalu (vsech trubek)
v_s = Q_s/Sk1;                                 % rychlost studeneho media v trubce
Uk1 = 2*pi*r_tr_vnitrni*pocet_trubek;          % obvod vsech trubek
Dh1 = 4*Sk1/Uk1;                               % hydraulicky prumer kanalu pro vzduch
 
% hydraulicky prumer vymenik:
Sk2 = S_mezer;                                 % plocha pruchoziho kanalu - plocha vsech trubek pi*r*r*pocet
v_h = Q_h/Sk2;                                 % rychlost horkeho media ve vymeniku
Uk2 = (mezera*(pocet_sude+1)*2)+(b*2);         % obvod mezer mezi trubkami
Dh2 = 4*Sk2/Uk2;                               % hydraulicky prumer kanalu pro spaliny

% soucinitele prestupu tepla pro kourovod a vymenik
alfa1 = k_str*(v_h^4/Dh2)^(1/5);               % souc. prestupu tepla v kourovodu
alfa2 = k_str*(v_s^4/Dh1)^(1/5);               % souc. prestupu tepla ve vymeniku

% tepelne kapacity medii
c_h = ro_h * C_h * Q_h;
c_s = ro_s * C_s * Q_s;

c_min = min (c_h,c_s);
c_max = max (c_h,c_s);
R = c_min/c_max;

% vystupni hodnoty
k = 1/(((r_tr/r_tr_vnitrni)/alfa1)+((r_tr/lambda)*log(r_tr/r_tr_vnitrni))+1/alfa2); % soucinitel prostupu tepla
NTU = (k*S_tr)/c_min;                               % NTU
e = ((2/(1+coth(((1+coth(NTU/2))^-1)*R)))*1/R);     % urceni efektivnosti vymeniku dle vztahu

q_max = c_min*(Th_in - Ts_in);                      % Max. mozny prenaseny tepelny tok
q_12 = e*q_max;                                     % Skutecny prenaseny tepelny tok

Th_out = -(q_12 - c_h*Th_in)/c_h;                   % Teplota horkeho media vystup Th_out
Ts_out = (q_12 + c_s*Ts_in)/c_s;                    % Teplota studeneho media vystup Ts_out



%% zobrazeni vysledku
disp(['Zadana vyska vymeniku -                               vyska = ',num2str(c),' m'])
disp(['Zadany prumer trubek -                                prumer = ',num2str(d_tr),' m'])
disp(['Mezera mezi trubkami -                                mezera = ',num2str(mezera),' m'])
disp(['Pocet rad -                                           rad = ',num2str(pocet_rad),' '])
disp(['Pocet trubek -                                        trubek = ',num2str(pocet_trubek),' '])
disp(['Celkova delka trubek -                                delka = ',num2str(delka),' m'])
disp(['Teplosmenna plocha vsech trubek -                     S_tr = ',num2str(S_tr),' m^2'])
disp(['Plocha nejmensich mezer mezi trubkami -               S_mezer = ',num2str(S_mezer),' m^2'])
disp(['Plocha originalniho kourovodu d=0.1 -                 S_kour = ',num2str(S_kour),' m^2'])
disp(['Pomer ploch mezer/kourovodu -                         S_pomer = ',num2str(S_pomer),''])
disp([' '])
disp(['Pomer cmin/cmax -                                     pomer = ',num2str(R),' '])
disp(['Soucinitel prostupu tepla -                           k = ',num2str(k),' W/m2.K'])
disp(['NTU -                                                 NTU = ',num2str(NTU),' '])
disp(['Efektivnost vymeniku -                                e = ',num2str(e*100),' %'])
disp(['Max. mozny prenaseny tepelny tok -                    q_max = ',num2str(q_max),' W'])
disp(['Skutecny prenaseny tepelny tok -                      q_12 = ',num2str(q_12),' W'])
disp(['Teplota horkeho media vystup Th_out -                 Th_out = ',num2str(Th_out),' C'])
disp(['Teplota studeneho media vystup Ts_out -               Ts_out = ',num2str(Ts_out),' C'])
