I am trying to plot the temperature over time

7 次查看(过去 30 天)
clear;clc;
time_step = 1;
volume = 0.5;
density = 1;
heat_capacity = 4184;
T_init = 20;
T_working = 0;
T_desired = 10;
t_final = 300;
convection_coefficient = 10;
surface_area = 2*pi*((0.0635/2)^2+0.2032*0.0635/2);
%%
bottle_capacity = volume*density*heat_capacity;
T_bottle = T_init;
bottle_heat = bottle_capacity*(T_bottle-T_working);
for t = 0:time_step:t_final
heat_loss = convection_coefficient*time_step*(T_bottle-T_working);
bottle_heat = bottle_heat-heat_loss;
T_bottle = bottle_heat/bottle_capacity+T_working
if T_bottle < T_desired
t
break
end
end
  3 个评论
Ashley Turner
Ashley Turner 2019-4-25
so start the for loop after i delcare time? I'm really not the best at coding. where do I place the plot command?
Image Analyst
Image Analyst 2019-4-25
There is a plot command below in Jan's answer. Did you overlook it?

请先登录,再进行评论。

回答(1 个)

Jan
Jan 2019-4-25
tVector = 0:time_step:t_final
for it = 1:numel(tVector)
heat_loss = convection_coefficient*time_step*(T_bottle-T_working);
bottle_heat = bottle_heat-heat_loss;
T_bottle = bottle_heat/bottle_capacity+T_working
Temperature(it) = T_bottle;
if T_bottle < T_desired
t
break
end
end
n = numel(Temperature);
plot(tVector(1:n), Temperarure)

Community Treasure Hunt

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

Start Hunting!

Translated by