Untitled

 avatar
unknown
plain_text
a month ago
851 B
5
Indexable
% dT/dt = Q/(m*cp) - (Fin/m)(T-Tin)

% dT/dt + (Fin/m)T = Q/(m*cp) + (Fin/m)Tin

m = 100;
cp = 2.5;
Fin = 8;
Q = 1000;
Tin_initial = 300;
step_size = 30;
step_time = 150;
T0 = 300;

tspan = [0 300];

figure;
plot(t, T, 'b-', 'LineWidth', 1.5);
hold on;
plot([0 step_time], [Tin_initial Tin_initial], 'r--', ...
    [step_time 300], [Tin_initial + step_size Tin_initial+step_size], 'r--', 'LineWidth', 1);
xlabel('Time (s)');
ylabel('Temperature (K)');
title('Tank Temperature');
legend('Tank Temperature', 'Inlet Temperature');
grid on;

[t,T] = ode45(@(t,T) tank_ode(t,T,m,cp,Fin,Q,Tin_initial,step_size,step_time), tspan, T0);

function dTdt = tank_ode(t,T,m,cp,Fin,Q,Tin_initial,step_size,step_time)

    if t < step_time
        Tin = Tin_initial;
    else
        Tin = Tin_initial + step_size;
    end

    dTdt = Q/(m*cp) - (Fin/m)*(T-Tin);
end
Leave a Comment