不通风情况下的日光温室温度动态机理模型,输入参数温室结构、位置、墙体厚度和导热系数、温室内外温湿度、光照强度、土壤温湿度、植物蒸腾、蒸发散热、大气透明度、风速、风向等参数,利用能量平衡方程、生长模型等微分方程,输出温度随时间变化曲线图,MATLAB程序案例
时间: 2023-08-12 10:04:08 浏览: 227
这是一个非常复杂的问题,需要进行大量的数学建模和计算。以下是一个简单的MATLAB程序示例,用于演示如何使用能量平衡方程和生长模型来建立模型,并绘制温度随时间变化的曲线。
```
% 温室参数
L = 10; % 温室长度(m)
W = 5; % 温室宽度(m)
H = 2.5; % 温室高度(m)
A = 2*(L*H + W*H); % 温室表面积
V = L*W*H; % 温室体积
k = 0.5; % 温室墙体导热系数(W/mK)
Tout = 10; % 外部温度(℃)
RHout = 60; % 外部相对湿度(%)
I = 800; % 光照强度(W/m2)
Tsoil = 15; % 土壤温度(℃)
RHsoil = 70; % 土壤相对湿度(%)
ET = 0.1; % 植物蒸腾率(mmol/m2s)
E = 0.5; % 蒸发散热率(mmol/m2s)
alpha = 0.8; % 大气透明度
v = 1; % 风速(m/s)
theta = 30; % 风向(度)
% 时间参数
t_start = 0; % 起始时间(s)
t_end = 86400; % 结束时间(s)
dt = 60; % 时间步长(s)
t = t_start:dt:t_end; % 时间序列
% 初始温度和湿度
Tin = 20; % 初始温度(℃)
RHin = 50; % 初始相对湿度(%)
% 能量平衡方程
Cp = 1005; % 气体比热容(J/kgK)
rho = 1.2; % 空气密度(kg/m3)
sigma = 5.67e-8; % 斯特藩-玻尔兹曼常数(W/m2K4)
% 生长模型
k1 = 0.3; % 生长速率常数1
k2 = 0.02; % 生长速率常数2
k3 = 0.01; % 生长速率常数3
Tmin = 10; % 最低温度(℃)
Tmax = 30; % 最高温度(℃)
% 初始化温度和湿度向量
T = ones(size(t))*Tin;
RH = ones(size(t))*RHin;
% 循环计算温度和湿度
for i = 2:length(t)
% 外部温度和湿度
Tout_i = Tout;
RHout_i = RHout;
% 光照强度
Q = I*A*(1-alpha);
% 气体密度
rho_i = rho*(T(i-1)+273.15)/(Tin+273.15);
% 能量平衡方程
Qh = rho_i*Cp*V*(T(i-1)-Tout_i)/dt;
Qs = sigma*A*(T(i-1)^4-Tout_i^4)/dt;
Qe = rho_i*ET*18*V*(611*exp(17.27*T(i-1)/(T(i-1)+237.3))-RH(i-1)/100*611*exp(17.27*Tin/(Tin+237.3)))/dt;
Qp = rho_i*E*2.45*V*(RH(i-1)/100-RHout_i/100)/dt;
Qg = k*A*(T(i-1)-Tsoil)/dt;
Qw = rho_i*Cp*V*(T(i-1)-T(i-2))/dt;
Qf = Q*cosd(theta)/dt;
Qr = rho_i*Cp*V*(T(i-1)-Tin)/dt;
Qin_i = Qh+Qs+Qe+Qp+Qg+Qw+Qf+Qr;
% 生长模型
Tave = (T(i-1)+Tin)/2;
if Tave < Tmin
kT = 0;
elseif Tave > Tmax
kT = 1;
else
kT = (Tave-Tmin)/(Tmax-Tmin);
end
R = k1*(1-exp(-k2*I))*exp(-k3*Tave)*kT;
% 更新温度和湿度
Tin_i = Tin + Qin_i/(rho_i*Cp*V);
RHin_i = RHin + R*(RHin/100)*(RHsoil-RHin)/dt;
% 记录温度和湿度
T(i) = Tin_i;
RH(i) = RHin_i;
% 更新初始温度和湿度
Tin = Tin_i;
RHin = RHin_i;
end
% 绘制温度随时间变化的曲线
plot(t/3600,T)
xlabel('时间(小时)')
ylabel('温度(℃)')
title('温室温度动态模型')
```
请注意,这个示例程序只是一个非常简单的模型,实际的模型可能需要更多的参数和更复杂的计算。
阅读全文