这段 MATLAB 脚本用于生成 Katzin et al. (2020) 论文中的图表和表格。论文研究了在 LED 和 HPS(高压钠灯)补光条件下温室的热需求。以下是代码的详细解释:
1. 脚本的背景
-
论文:Katzin et al. (2020) 在 Biosystems Engineering 上发表了一篇关于温室补光模型的论文,提出了一个开源的温室模型(GreenLight)。
-
目标:通过加载模拟数据,生成论文中的图表和表格,包括温室参数、灯参数、模型评估结果、加热能量对比、气候轨迹和灯的输出能量等。
2. 脚本的功能
-
加载数据:从指定的文件夹中加载 MATLAB 数据文件(
.mat
文件),这些文件包含温室模拟的结果。 -
生成表格:
-
表 1:温室参数列表。
-
表 2:LED 和 HPS 灯的参数对比。
-
表 3:模型评估结果(RMSE、RRMSE、ME 等)。
-
表 4:灯的能量输出(PAR、NIR、FIR、对流、冷却等)。
-
-
生成图表:
-
图 5:实测和模拟的加热能量对比。
-
图 6:气候轨迹(温度、湿度、CO2 浓度等)。
-
图 7:灯的温度变化。
-
3. 代码结构
(1) 设置目录
-
currentFilename
和fullFilePath
:获取当前脚本的文件名和完整路径。 -
currentFileDir
:获取当前脚本所在的目录。 -
simDir
:获取模拟数据的根目录。 -
outputPath
:指定输出文件的路径。
(2) 加载数据
-
加载四个 MATLAB 数据文件:
-
climateModel_hps_manuscriptParams.mat
:HPS 补光条件下的气候模型数据。 -
climateModel_led_manuscriptParams.mat
:LED 补光条件下的气候模型数据。 -
energyUse_hps__manuscriptParams_1-1.mat
:HPS 补光条件下的能量使用数据。 -
energyUse_led__manuscriptParams_1-1.mat
:LED 补光条件下的能量使用数据。
-
(3) 生成表格
-
表 1:提取温室参数并显示。
-
表 2:提取 LED 和 HPS 灯的参数并显示。
-
表 3:计算并显示模型评估结果(RMSE、RRMSE、ME 等)。
-
表 4:计算并显示灯的能量输出(PAR、NIR、FIR、对流、冷却等)。
(4) 生成图表
-
图 5:调用
plotHeating
函数,绘制实测和模拟的加热能量对比。 -
图 6:调用
plotTrajectories
函数,绘制气候轨迹(温度、湿度、CO2 浓度等)。 -
图 7:调用
oneDayLampTemps
函数,绘制灯的温度变化。
4. 关键代码解析
(1) 温室参数(表 1)
-
从
hpsClimate
对象中提取温室参数,并将其组织为表格形式。 -
参数包括:
-
psi
:温室朝向。 -
aCov
:覆盖面积。 -
aFlr
:地板面积。 -
hAir
:空气高度。 -
hGh
:温室高度。 -
aRoof
:屋顶面积。 -
hVent
:通风高度。 -
cLeakage
:泄漏系数。 -
cDgh
:除湿系数。 -
cWgh
:加湿系数。 -
leakTop
:顶部泄漏系数。 -
tauThScrPar
:保温幕的 PAR 透射率。 -
tauBlScrPar
:遮光幕的 PAR 透射率。 -
kThScr
:保温幕的热传导系数。 -
kBlScr
:遮光幕的热传导系数。 -
tauRfPar
:屋顶的 PAR 透射率。 -
tauRfNir
:屋顶的 NIR 透射率。 -
cHecIn
:内部热交换系数。 -
phiExtCo2
:外部 CO2 注入流量。 -
phiPipeE
:外部管道流量。 -
phiPipeI
:内部管道流量。 -
lPipe
:管道长度。 -
phiGroPipeE
:外部生长管道流量。 -
phiGroPipeI
:内部生长管道流量。 -
lGroPipe
:生长管道长度。
-
(2) 灯参数(表 2)
-
从
hpsClimate
和ledClimate
对象中提取 LED 和 HPS 灯的参数,并将其组织为表格形式。 -
参数包括:
-
lampsMax
:最大灯功率。 -
aLamp
:灯的面积。 -
tauLampPar
:灯的 PAR 透射率。 -
rhoLampPar
:灯的 PAR 反射率。 -
tauLampNir
:灯的 NIR 透射率。 -
rhoLampNir
:灯的 NIR 反射率。 -
etaLampPar
:灯的 PAR 效率。 -
etaLampNir
:灯的 NIR 效率。 -
epsLampTop
:灯顶部的发射率。 -
epsLampBottom
:灯底部的发射率。 -
capLamp
:灯的热容量。 -
lampCool
:灯的冷却功率。 -
hecLampAir
:灯与空气的热交换系数。 -
parJtoUmolLamp
:灯的 PAR 转换系数。
-
(3) 模型评估(表 3)
-
计算并显示模型评估结果,包括:
-
RMSE(均方根误差):用于评估模拟值与实测值的偏差。
-
RRMSE(相对均方根误差):RMSE 的标准化形式。
-
ME(平均误差):模拟值与实测值的平均偏差。
-
(4) 灯的能量输出(表 4)
-
计算并显示灯的能量输出,包括:
-
PAR(光合有效辐射):用于植物光合作用的光能。
-
NIR(近红外辐射):用于加热的光能。
-
FIR(远红外辐射):用于加热的光能。
-
对流:灯通过对流传递的热能。
-
冷却:灯的冷却能量。
-
(5) 图表生成
-
图 5:调用
plotHeating
函数,绘制实测和模拟的加热能量对比。 -
图 6:调用
plotTrajectories
函数,绘制气候轨迹(温度、湿度、CO2 浓度等)。 -
图 7:调用
oneDayLampTemps
函数,绘制灯的温度变化。
5. 代码的输入和输出
输入:
-
MATLAB 数据文件:存储在
MATLAB output\Replicated 2023
文件夹中的.mat
文件。 -
StateSpaceModel
对象:每个.mat
文件包含一个StateSpaceModel
对象(bv
),其中存储了温室模拟的结果。
输出:
-
表格:显示在 MATLAB 命令窗口中。
-
图表:通过调用外部函数(如
plotHeating
、plotTrajectories
、oneDayLampTemps
)生成。
6. 总结
这段脚本是一个完整的工具,用于从温室模拟数据中提取信息并生成论文中的图表和表格。它通过加载数据、计算指标、组织表格和调用绘图函数,实现了对模拟结果的全面分析和可视化。