function f = calc_f(x,Param)
% contains a system of equations that describes the steady-state operation
% of a heat exchanger network
% INPUT
% x vector of guessed values of the root
% Param structure of other parameters in the equations
% (both x and Param are assigned to physical variables in the code)
%
% OUTPUT
% f vector of the equations computed at x. If = 0, x is root
%
% ASSIGNMENT
% *************
% edit the file to set the appropriate variables = to elements of x
% *************
% inlet flow streams
W1 = Param.w1; % flow in kg s-1
Cp1 = 2500; % specific heat in J kg-1 K-1
T1 = Param.T1; % inlet temperature in C
W2 = Param.w2; % flow in kg s-1
Cp2 = 2500; % specific heat in J kg-1 K-1
T2 = Param.T2; % inlet temperature in C
W3 = Param.w3; % flow in kg s-1
Cp3 = 2500; % specific heat in J kg-1 K-1
T3 = Param.T3; % inlet temperature in C
% heat exchangers
A1 = 117; % heat transfer surface in m2
U1 = 250; % heat transfer coef in W m-2 K-1
A2 = 117; % heat transfer surface in m2
U2 = 250; % heat transfer coef in W m-2 K-1
A3 = 117; % heat transfer surface in m2
U3 = 250; % heat transfer coef in W m-2 K-1
% intermediate and exit temperatures
T4 = x(4); % temperature in C
T5 = x(5); % temperature in C
T6 = x(1); % temperature in C
T7 = x(6); % temperature in C
T8 = x(2); % temperature in C
T9 = x(3); % temperature in C
% create output vector f according to size of input matrix
% it should equal the number of equations below!
n = length(x);
f = zeros(n,1); % creates vector f and fills with zeroes
% the network model
% exchanger E101
DTLM1 = ((T1 - T8) - (T4 - T7))/log((T1 - T8) / (T4 - T7));
if isnan(DTLM1) % catch a uniform temperature difference
DTLM1 = T1 - T8;
end
Q1 = U1*A1*DTLM1;
f(1) = -W1*Cp1*T1 + W1*Cp1*T4 + Q1;
f(2) = -W3*Cp3*T7 - Q1 + W3*Cp3*T8;
% exchanger E102
DTLM2 = ((T4 - T9) - (T5 - T2))/log((T4 - T9) / (T5 - T2));
if isnan(DTLM2) % catch a uniform temperature difference
DTLM2 = T4 - T9;
end
Q2 = U2*A2*DTLM2;
f(3) = -W1*Cp1*T4 + W1*Cp1*T5 + Q2;
f(4) = -W2*Cp2*T2 - Q2 + W2*Cp2*T9;
% exchanger E103
DTLM3 = ((T5 - T7) - (T6 - T3))/log((T5 - T7) / (T6 - T3));
if isnan(DTLM3) % catch a uniform temperature difference
DTLM3 = T5 - T7;
end
Q3 = U3*A3*DTLM3;
f(5) = -W1*Cp1*T5 + W1*Cp1*T6 + Q3;
f(6) = -W3*Cp3*T3 - Q3 + W3*Cp3*T7;
% Dr. Barry S. Johnston, Copyright 2004.