Está en la página 1de 3

% Declaration

K = 0;
N = 40000;
T = zeros(N, 1);
Ca = zeros(N, 1);
Cb = zeros(N, 1);
ER = zeros(N, 1);
ERINT = zeros(N, 1);
U = zeros(N, 1);
Fc = zeros(N, 1);
Td = zeros(N, 1);
Time = zeros(N, 1);

% Constants
Y1 = 41.8;
Y2 = 83.6;
dt = 0.1;
A1 = 4.3145;
A2 = -0.10994;
A10 = 1.1;
A20 = 172.2;
B1 = 1.49625;
B2 = 0.05151;
X = 2513.8321;
Z = 5027.6642;
Kc = 0.1;
TAUI = 360.0;

% Initialization
T(1) = 25.00;
Ca(1) = 1.00;
Cb(1) = 0.00;
Time(1) = 0.00;
ER(1) = 100.00;
ERINT(1) = 0.0;
U(1) = 1.00;

% Main loop
for K = 1:N
Time(K+1) = Time(K) + dt;
Td(K+1) = 54 + 71 * exp(-0.0025 * Time(K+1));

T0 = T(K);
Ca0 = Ca(K);
Cb0 = Cb(K);

k1 = (Y1 * A10 * exp(-X / (273.00 + T0)) * Ca0 * Ca0) + (Y2 * A20 * exp(-Z / (273.00 + T0))
* Cb0) + (A1 + A2 * T0) + ((B1 + B2 * T0) * U(K));
k11 = (-1) * (A10 * exp(-X / (273.00 + T0)) * Ca0 * Ca0);
k12 = (A10 * exp(-X / (273.00 + T0)) * Ca0 * Ca0) - (A20 * exp(-Z / (273.00 + T0)) * Cb0);

T1 = T(K) + (k1 * dt / 2);


Ca1 = Ca(K) + (k11 * dt / 2);
Cb1 = Cb(K) + (k12 * dt / 2);

k2 = (Y1 * A10 * exp(-X / (273.00 + T1)) * Ca1 * Ca1) + (Y2 * A20 * exp(-Z / (273.00 + T1))
* Cb1) + (A1 + A2 * T1) + ((B1 + B2 * T1) * U(K));
k21 = (-1) * (A10 * exp(-X / (273.00 + T1)) * Ca1 * Ca1);
k22 = (A10 * exp(-X / (273.00 + T1)) * Ca1 * Ca1) - (A20 * exp(-Z / (273.00 + T1)) * Cb1);

T2 = T(K) + (k2 * dt / 2);


Ca2 = Ca(K) + (k21 * dt / 2);
Cb2 = Cb(K) + (k22 * dt / 2);

k3 = (Y1 * A10 * exp(-X / (273.00 + T2)) * Ca2 * Ca2) + (Y2 * A20 * exp(-Z / (273.00 + T2))
* Cb2) + (A1 + A2 * T2) + ((B1 + B2 * T2) * U(K));
k31 = (-1) * (A10 * exp(-X / (273.00 + T2)) * Ca2 * Ca2);
k32 = (A10 * exp(-X / (273.00 + T2)) * Ca2 * Ca2) - (A20 * exp(-Z / (273.00 + T2)) * Cb2);

T3 = T(K) + (k3 * dt);


Ca3 = Ca(K) + (k31 * dt);
Cb3 = Cb(K) + (k32 * dt);

k4 = (Y1 * A10 * exp(-X / (273.00 + T3)) * Ca3 * Ca3) + (Y2 * A20 * exp(-Z / (273.00 + T3))
* Cb3) + (A1 + A2 * T3) + ((B1 + B2 * T3) * U(K));
k41 = (-1) * (A10 * exp(-X / (273.00 + T3)) * Ca3 * Ca3);
k42 = (A10 * exp(-X / (273.00 + T3)) * Ca3 * Ca3) - (A20 * exp(-Z / (273.00 + T3)) * Cb3);

T(K+1) = T(K) + dt * (k1/6.0 + k2/3.0 + k3/3.0 + k4/6.0);


Ca(K+1) = Ca(K) + dt * (k11/6.0 + k21/3.0 + k31/3.0 + k41/6.0);
Cb(K+1) = Cb(K) + dt * (k12/6.0 + k22/3.0 + k32/3.0 + k42/6.0);

ERINT(K+1) = ERINT(K) + dt * ER(K);


ER(K+1) = Td(K+1) - T(K+1);
U(K+1) = U(1) + Kc * (ER(K+1) + ERINT(K+1) / TAUI);

if U(K+1) >= 1.00


U(K+1) = 1.00;
end

if U(K+1) <= 0
U(K+1) = 0.00;
end

Ts(K+1) = 80 * U(K+1) + 70;


Uc(K+1) = 4.42 - 3.03 * U(K+1);
Fc(K+1) = ((10.8 * Uc(K+1)) / (4550.00 * (10.8 - Uc(K+1))))^1.25;

fprintf('%f %f %f %f %f\n', Time(K+1), Td(K+1), T(K+1), Ts(K+1), Fc(K+1));


fprintf(1, '%f %f %f %f %f\n', Time(K+1), Td(K+1), T(K+1), Ts(K+1), Fc(K+1));
end

% Cierre del archivo

% Graficar resultados
figure
subplot(2, 2, 1)
plot(Time, T)
xlabel('Tiempo')
ylabel('Temperatura')

subplot(2, 2, 2)
plot(Time, Ca)
xlabel('Tiempo')
ylabel('Concentración de A')

subplot(2, 2, 3)
plot(Time, Cb)
xlabel('Tiempo')
ylabel('Concentración de B')

subplot(2, 2, 4)
plot(Time, Fc)
xlabel('Tiempo')
ylabel('Flujo de refrigerante')

También podría gustarte