Untitled
% 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
Leave a Comment