我目前正在研究建造太阳能食品干燥机的项目,我需要在Matlab上建模产品温度如何随太阳辐射Q的变化而变化。
Q由;
给出Q =960*(sin(2*pi*Time2/24)).^2; %W/m2
其中
Time2 = (1:t:12); %hours
热流方程为
Q(t)A = mcp*(T2-T1) + (mw*lw)
其中:
mw = 0.706; % Mass of water loss from product in hr (Kg/h)
m = 15; % Mass of product to dry (Kg)
lw = 2260000; % Latent heat of vaporisation of water (J/Kg)
A = 1; % Surface Area of collector (m^2)
cp= 3746; % Specific heat capacity of product (J/Kg/C)
T1 = temperature at t
T2 = temperature at t + dt
控制热流使T2为;
T2= (((Q*A*3600) -(mw*lw))/(m*cp)) + T1; % 3600 is there to convert j/s to J/h
无论如何在Matlab上实现这一点对我来说都是一个挑战-我对Matlab还是陌生的
这是我到目前为止所拥有的;
close all
clear;
mw = 0.706; % Mass of water loss from product in hr (Kg/h)
m = 15; % Mass of product to dry (Kg)
lw = 2260000; % Latent heat of vaporisation of water (J/Kg)
A = 1; % Surface Area of Collector (m^2)
cp= 3746; % Specific heat capacity of product (J/Kg/C)
t = 1; % Time step
T = 24; % Initial Temperature (°C)
Time2=(1:t:12); hours
Q=960*(sin(2*pi*Time2/24)).^2; % Solar irradiation in tropical regions at specific time (W/m2)
for j = 1:12
T(j+1)= ((((QQ2(j)*A*j*3600))-(mw*lw))/(m*cp))+ T(1);
end
figure(2)
plot(T)
title('Temperature')
xlabel('time (hours)')
ylabel('Temperature (°C)')
这似乎是错误的,因为质量m每隔一小时应减少mw,并且温度分布应遵循太阳辐射的分布。即同时达到顶峰
我已经花了几天时间来解决这个问题,但是我在Matlab上表现很差,所以我没有取得任何有意义的进步。任何帮助将不胜感激
答案 0 :(得分:0)
所以我不确定这是否是您要寻找的Ran,但是有些地方看起来像错字(?),这些会改变行为。您有QQ2(j)
突然出现在脚本中间...我想那只是Q [j)。您添加到t(1)的循环的每个周期,我想您的意思是t(j)?当然,循环也应该减小m吗?
所以我修改了这个...
for j = 1:12
T(j+1)= ((((Q(j)*A*j*3600))-(mw*lw))/(m*cp))+ T(j);
m=m-mw*t;
end
现在T在12点达到峰值。
话虽如此,我认为使用诸如“ ode45()”之类的微分方程求解器可以更好地解决此类问题,但是在建议如何在Matlab中进行操作之前,我需要先查看该微分方程,但是不应该太棘手!
###大家好,然,好的,您现在已经在注释中添加了dydx,所以这是我如何解决此问题的方法(接受这一方程式本身我并不了解!): clear;
global conv;
conv=60*60;
mw = 0.706/conv; % Mass of water loss from product in hr (Kg/h)
m = 15.0; % Mass of product to dry (Kg)
lw = 2260000.0; % Latent heat of vaporisation of water (J/Kg)
A= 1.0; % Surface Area of Collector (m^2)
cp= 3746.0; % Specific heat capacity of product (J/Kg/C)
T = 24.0; % Initial Temperature (°C)
%%
%% for j = 1:12
%% T(j+1)= ((((Q(j)*A*j*3600))-(mw*lw))/(m*cp))+ T(j);
%% m=m-mw*t;
%% end
tspan = [0, 12*conv];
yo=[T;m];
[t,y] = ode45(@(t,y) ode(t, y,[A,mw,lw,cp]), tspan, yo);
yfinal=y;
figure (1)
plot(t./conv,yfinal(:,1))
title('Temperature')
xlabel('time (hours)')
ylabel('Temperature (°C)')
figure (2)
tqs=linspace(0,12);
Qt=960.0*(sin(2.0.*pi.*tqs./(24.0))).^2;
plot(tqs,Qt);
function dydt=ode(t,y,x)
global conv;
A =x(1);
mw =x(2);
lw =x(3);
cp =x(4);
m=y(2);
Q=960*(sin(2*pi*t/(24*conv)))^2; % Solar irradiation in tropical regions at specific time (W/m2)
dydt=[((Q * A)-(mw*lw))/(m*cp);-mw];
end
给出这样的输出,我认为方程式将需要摆弄,但是希望ODE的结构有帮助吗? 附言:我不相信峰值温度会匹配峰值热量输入,因为通常会有滞后。一天中最热的部分通常是在英国下午3点...但是自从高中以来我就没有研究过传热...
关于R