ode23 clarity and examples
clc; clearvars; close all; format short g; format compact;
global Qss Q Qjss Qj V Vj Tinss Tin Tjinss Tjin cp cpj rho rhoj UA
% Q in m^3/s, V in m^3, T in oC, cp in J/kg K, rho in kg/m^3
% Physical properties
rho = 1000; rhoj = 1000; cp = 1269; cpj = 1269; UA = 1796; % J/K s
% Geometric parameters
V = 0.2832; Vj = 0.02832;
% Steady state process parameters
Qss = 4.719e-4; Qjss = 7.078e-4; Tinss = 10; Tjinss = 93.33;
% Actual process parameters
Q = 4.719e-4; Qj = 7.078e-4; Tin = 10; Tjin = 93.33;
% Tss = 51.67; Tjss = 65.56; % in oC (steady-state values from book)
% Linear stability analysis
A11 = -(Qss/V)-(UA/(rho*V*cp));
A12 = (UA/(rho*V*cp));
A21 = (UA/(rhoj*Vj*cpj));
A22 = -(Qjss/Vj)-(UA/(rhoj*Vj*cpj));
A = [A11 A12; A21 A22];
[ev, eval] = eig(A);
exitTs = fsolve(@tankheaterss,[10 101]);
Tss = exitTs(1); Tjss = exitTs(2);
tfinal = 2000;
T0 = Tss; Tj0 = Tjss;
% Slow response – perturbation in slow direction
% T0 = Tss + 5*ev(1,1); Tj0 = Tjss + 5*ev(2,1);
% Fast response – perturbation in fast direction
% T0 = Tss + 5*ev(1,2); Tj0 = Tjss + 5*ev(2,2);
perturbedT = [T0 Tj0];
[t,TTj] = ode45(@(t,TTj) tankheater(t,TTj), [0 tfinal], perturbedT);
Tvec = TTj(:,1); Tjvec = TTj(:,2);
heattransferred = UA * (Tjvec(numel(t)) – Tvec(numel(t)));
figure;
plot(t,TTj,’o-‘)
xlabel(‘time, s’);
legend(‘Tank Temperature, oC’, ‘Jacket Temperature, oC’)
% Steady-state function
function f = tankheaterss(TTjss)
global Qss Qjss V Vj Tinss Tin Tjinss Tjin cp cpj rho rhoj UA
T = TTjss(1);
Tj = TTjss(2);
f(1) = (Qss/V)*(Tinss-T) + (UA/(rho*V*cp))*(Tj-T);
f(2) = (Qjss/Vj)*(Tjinss-Tj) – (UA/(rhoj*Vj*cpj))*(Tj-T);
end
% Dynamic function
function f = tankheater(t,TTj)
global Q Qj V Vj Tin Tjin cp cpj rho rhoj UA
T = TTj(1);
Tj = TTj(2);
f = zeros(2,1);
f(1) = (Q/V)*(Tin-T) + (UA/(rho*V*cp))*(Tj-T);
f(2) = (Qj/Vj)*(Tjin-Tj) – (UA/(rhoj*Vj*cpj))*(Tj-T);
endclc; clearvars; close all; format short g; format compact;
global Qss Q Qjss Qj V Vj Tinss Tin Tjinss Tjin cp cpj rho rhoj UA
% Q in m^3/s, V in m^3, T in oC, cp in J/kg K, rho in kg/m^3
% Physical properties
rho = 1000; rhoj = 1000; cp = 1269; cpj = 1269; UA = 1796; % J/K s
% Geometric parameters
V = 0.2832; Vj = 0.02832;
% Steady state process parameters
Qss = 4.719e-4; Qjss = 7.078e-4; Tinss = 10; Tjinss = 93.33;
% Actual process parameters
Q = 4.719e-4; Qj = 7.078e-4; Tin = 10; Tjin = 93.33;
% Tss = 51.67; Tjss = 65.56; % in oC (steady-state values from book)
% Linear stability analysis
A11 = -(Qss/V)-(UA/(rho*V*cp));
A12 = (UA/(rho*V*cp));
A21 = (UA/(rhoj*Vj*cpj));
A22 = -(Qjss/Vj)-(UA/(rhoj*Vj*cpj));
A = [A11 A12; A21 A22];
[ev, eval] = eig(A);
exitTs = fsolve(@tankheaterss,[10 101]);
Tss = exitTs(1); Tjss = exitTs(2);
tfinal = 2000;
T0 = Tss; Tj0 = Tjss;
% Slow response – perturbation in slow direction
% T0 = Tss + 5*ev(1,1); Tj0 = Tjss + 5*ev(2,1);
% Fast response – perturbation in fast direction
% T0 = Tss + 5*ev(1,2); Tj0 = Tjss + 5*ev(2,2);
perturbedT = [T0 Tj0];
[t,TTj] = ode45(@(t,TTj) tankheater(t,TTj), [0 tfinal], perturbedT);
Tvec = TTj(:,1); Tjvec = TTj(:,2);
heattransferred = UA * (Tjvec(numel(t)) – Tvec(numel(t)));
figure;
plot(t,TTj,’o-‘)
xlabel(‘time, s’);
legend(‘Tank Temperature, oC’, ‘Jacket Temperature, oC’)
% Steady-state function
function f = tankheaterss(TTjss)
global Qss Qjss V Vj Tinss Tin Tjinss Tjin cp cpj rho rhoj UA
T = TTjss(1);
Tj = TTjss(2);
f(1) = (Qss/V)*(Tinss-T) + (UA/(rho*V*cp))*(Tj-T);
f(2) = (Qjss/Vj)*(Tjinss-Tj) – (UA/(rhoj*Vj*cpj))*(Tj-T);
end
% Dynamic function
function f = tankheater(t,TTj)
global Q Qj V Vj Tin Tjin cp cpj rho rhoj UA
T = TTj(1);
Tj = TTj(2);
f = zeros(2,1);
f(1) = (Q/V)*(Tin-T) + (UA/(rho*V*cp))*(Tj-T);
f(2) = (Qj/Vj)*(Tjin-Tj) – (UA/(rhoj*Vj*cpj))*(Tj-T);
end clc; clearvars; close all; format short g; format compact;
global Qss Q Qjss Qj V Vj Tinss Tin Tjinss Tjin cp cpj rho rhoj UA
% Q in m^3/s, V in m^3, T in oC, cp in J/kg K, rho in kg/m^3
% Physical properties
rho = 1000; rhoj = 1000; cp = 1269; cpj = 1269; UA = 1796; % J/K s
% Geometric parameters
V = 0.2832; Vj = 0.02832;
% Steady state process parameters
Qss = 4.719e-4; Qjss = 7.078e-4; Tinss = 10; Tjinss = 93.33;
% Actual process parameters
Q = 4.719e-4; Qj = 7.078e-4; Tin = 10; Tjin = 93.33;
% Tss = 51.67; Tjss = 65.56; % in oC (steady-state values from book)
% Linear stability analysis
A11 = -(Qss/V)-(UA/(rho*V*cp));
A12 = (UA/(rho*V*cp));
A21 = (UA/(rhoj*Vj*cpj));
A22 = -(Qjss/Vj)-(UA/(rhoj*Vj*cpj));
A = [A11 A12; A21 A22];
[ev, eval] = eig(A);
exitTs = fsolve(@tankheaterss,[10 101]);
Tss = exitTs(1); Tjss = exitTs(2);
tfinal = 2000;
T0 = Tss; Tj0 = Tjss;
% Slow response – perturbation in slow direction
% T0 = Tss + 5*ev(1,1); Tj0 = Tjss + 5*ev(2,1);
% Fast response – perturbation in fast direction
% T0 = Tss + 5*ev(1,2); Tj0 = Tjss + 5*ev(2,2);
perturbedT = [T0 Tj0];
[t,TTj] = ode45(@(t,TTj) tankheater(t,TTj), [0 tfinal], perturbedT);
Tvec = TTj(:,1); Tjvec = TTj(:,2);
heattransferred = UA * (Tjvec(numel(t)) – Tvec(numel(t)));
figure;
plot(t,TTj,’o-‘)
xlabel(‘time, s’);
legend(‘Tank Temperature, oC’, ‘Jacket Temperature, oC’)
% Steady-state function
function f = tankheaterss(TTjss)
global Qss Qjss V Vj Tinss Tin Tjinss Tjin cp cpj rho rhoj UA
T = TTjss(1);
Tj = TTjss(2);
f(1) = (Qss/V)*(Tinss-T) + (UA/(rho*V*cp))*(Tj-T);
f(2) = (Qjss/Vj)*(Tjinss-Tj) – (UA/(rhoj*Vj*cpj))*(Tj-T);
end
% Dynamic function
function f = tankheater(t,TTj)
global Q Qj V Vj Tin Tjin cp cpj rho rhoj UA
T = TTj(1);
Tj = TTj(2);
f = zeros(2,1);
f(1) = (Q/V)*(Tin-T) + (UA/(rho*V*cp))*(Tj-T);
f(2) = (Qj/Vj)*(Tjin-Tj) – (UA/(rhoj*Vj*cpj))*(Tj-T);
end ode23 MATLAB Answers — New Questions