a_w = 0.05;
a_g = 0.08;
a_col = 0.9;
G_max = 630;
G = 1:10;
for time = 1:10
G(time) = (G_max/2)*(sin((pi*time)/12));
end
G_avg = mean(G);
ag_G = a_g*G_avg;
aw_G = a_w*G_avg;
acol_G = a_col*G_avg;
absorp = [ag_G, aw_G, acol_G];
tspan = [1 10];
Temp_g0 = 310;
Temp_w0 = 320;
Temp_col0 = 330;
T0 = [Temp_g0, Temp_w0, Temp_col0];
[t, T] = ode45(@(t,T) fn(t,T,absorp),tspan,T0);
Temp_g = T(:,1); Temp_w = T(:,2); Temp_col = T(:,3);
plot(t,Temp_g,t,Temp_w,t,Temp_col),grid
xlabel('time'),ylabel('Temps')
legend('Tg','Tw','Tcol')
function dTdt = fn(~,T,absorp)
Temp_g = T(1); Temp_w = T(2); Temp_col = T(3);
ag_G = absorp(1);
aw_G = absorp(2);
acol_G = absorp(3);
m_w = 15;
m_g = 5;
m_col = 6;
c_w = 4179.6;
c_g = 800;
c_col = 2000;
Temp_a = 300;
dTemp_gdt = (16.273 * 0.884 * (((Temp_w - Temp_g + ...
(((11.6834 - (3816.44/(Temp_w-46.13)) - (11.6834 - ...
(3816.44/(Temp_g-46.13))))*(Temp_w))/(268900 - 11.6834 - ...
(3816.44/(Temp_w-46.13)))))^(1/3))) * (11.6834 - ...
(3816.44/(Temp_w-46.13)) - (11.6834 - (3816.44/(Temp_g-46.13)))) *...
(11.6834 - (3816.44/(Temp_w-46.13)) - (11.6834 - (3816.44/(Temp_g-46.13)))) +...
0.884 * (((Temp_w - Temp_g + (((11.6834 - (3816.44/(Temp_w-46.13)) - ...
(11.6834 - (3816.44/(Temp_g-46.13))))*(Temp_w))/(268900 - 11.6834 - ...
(3816.44/(Temp_w-46.13)))))^(1/3))) * (11.6834 - (3816.44/(Temp_w-46.13)) - ...
(11.6834 - (3816.44/(Temp_g-46.13)))) * (Temp_w - Temp_g) + 5.67 * (10^(-8)) * ...
0.96 * ((Temp_w^4) - (Temp_g^4)) + ag_G - 6.4 * (Temp_g - Temp_a) - ...
5.67 * (10^(-8)) * 0.93 * ((Temp_g^4) - (Temp_a^4)))/(m_g*c_g);
dTemp_wdt = (-(16.273 * 0.884 * (((Temp_w - Temp_g + (((11.6834 - ...
(3816.44/(Temp_w-46.13)) - (11.6834 - (3816.44/(Temp_g-46.13))))*...
(Temp_w))/(268900 - 11.6834 - (3816.44/(Temp_w-46.13)))))^(1/3))) *...
(11.6834 - (3816.44/(Temp_w-46.13)) - (11.6834 - (3816.44/(Temp_g-46.13)))) *...
(11.6834 - (3816.44/(Temp_w-46.13)) - (11.6834 - (3816.44/(Temp_g-46.13))))) - ...
(0.884 * (((Temp_w - Temp_g + (((11.6834 - (3816.44/(Temp_w-46.13)) - ...
(11.6834 - (3816.44/(Temp_g-46.13))))*(Temp_w))/(268900 - 11.6834 - ...
(3816.44/(Temp_w-46.13)))))^(1/3))) * (11.6834 - (3816.44/(Temp_w-46.13)) - ...
(11.6834 - (3816.44/(Temp_g-46.13)))) * (Temp_w - Temp_g)) - (5.67 * (10^(-8)) * ...
0.96 * ((Temp_w^4) - (Temp_g^4))) + aw_G + (1000 * (Temp_col - Temp_w)))/(m_w*c_w);
dTemp_coldt = (acol_G - (1000 * (Temp_col - Temp_w)) - ...
((0.026 * (Temp_col - Temp_a))/0.01))/(m_col*c_col);
dTdt = [dTemp_gdt; dTemp_wdt; dTemp_coldt];
end