Why does "Temperature" rises instantly in this solution with ode45? Also, I could not figure out why integration time interval "t_interval" gives no solution i started at "0"?

1 Ansicht (letzte 30 Tage)
%% Clean the Workspace
clc
clear all
%% Variables
global mS Ts_in
Vceo = 102.687; % m3
Ts_in = 104.8; % C, inlet steam temp
mS = 85.3; % kg/sec
T0 = 57.2; % Initial temp
t_interval = [0.01 10]; % Time interval
IC = T0; % Initial Condition
%% Solve the DE
[t,Tsol] = ode45(@(t,T) cfunc(t,T) , t_interval , IC);
%% From Tsat to Psat
for i=1:size(Tsol)
Psol(i) = XSteam('psat_T',Tsol(i));
i = i + 1;
end
%% Plotting
figure;
subplot(1,2,1)
plot(t,Tsol)
xlabel('Time (s)')
ylabel('Temperature (C)')
subplot(1,2,2)
plot(t,Psol)
xlabel('Time (s)')
ylabel('Pressure (bar)')
function dTdt = cfunc(t,T)
global mS Ts_in
A = 3300; % m2, heat transfer area
U = 9.9616; % kW/m2.K, heat transfer coefficient
T_hi = 104.8;
T_ho = T;
T_ci = 52.2;
T_co = 97.8;
LMTD = (abs(T_hi-T_co)-abs(T_ho-T_ci))/(log(abs(T_hi-T_co)/abs(T_ho-T_ci)));
Q = LMTD*U*A;
deltaHcond = (XSteam('hL_T',T) - XSteam('hV_T',T));
cvS = XSteam('CvV_T',T);
cpW = XSteam('CpL_T',T);
mCond = abs(Q/deltaHcond);
dTdt = ((Ts_in*XSteam('CpV_T',Ts_in)*mS-mCond*deltaHcond-mCond*T*cpW) / (cvS*(abs(mS-mCond))) - T)/t ;
end

Akzeptierte Antwort

Oguz Kaan Hancioglu
Oguz Kaan Hancioglu am 15 Feb. 2023
If you change the format to long you can see that t and Tsol values change. The differential equation settles the last value in 0.001 seconds. The ode45 function seems working correctly. However, if you think the output of the ode45 is not correct, you can check your dTdt = cfunc(t,T) function.
t_interval is the time step of the ode45. Since it solves differential equations, the interval should be bigger than 0. In your function, you are dividing your calculation by t_interval. When you entered 0 time interval the output of the Tsol equals NaN. That's why you see an empty plot.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by