Untitled
unknown
plain_text
10 months ago
977 B
4
Indexable
% dTdt=Q/(m*cp)-(Fin/m)*(T-Tin)
% dTdt + (Fin/m)*T = Q/(m*cp) + (Fin/m)*Tin
m=100;
cp=2.5;
Fin=8;
Q=1000; %[kJ/s]
Tin_initial=300;
step_size=30;
step_time=150; %[s]
T0=300;
tspan=[0 300]; %decido io questo intervallo, deve andare sicuramente sopra 150 secondi perchè altrimenti non prendo in considerazione il salto che avviene a 150s
[t, T]=ode45(@(t,T) tank_ode(t, T, m, cp, Fin, Q, Tin_initial, step_size, step_time), tspan, T0);
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;
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
Editor is loading...
Leave a Comment