这段 MATLAB 代码用于生成一幅图,展示在混合光照场景下,温室的室内温度、灯具控制以及热量缓冲内容的变化。该图用于论文中的图9,论文标题为《Heating greenhouses by light: A novel concept for intensive greenhouse production》,发表在《Biosystems Engineering》期刊上。
代码的主要功能如下:
1. 数据加载:
-
outputFolder
:指定存储模拟输出数据的文件夹路径。 -
加载五个模拟场景的数据:
-
HL-320_ams_hps_blScr_hHarvest_noBoil_intLamp120_day270_length350.mat
:320 µmol 混合光照且带有遮阳幕的场景(h320scr
)。 -
HL-370_ams_hps_blScr_hHarvest_noBoil_intLamp170_day270_length350.mat
:370 µmol 混合光照且带有遮阳幕的场景(h370scr
)。 -
HL-320-NBO_ams_hps_hHarvest_noBoil_intLamp120_day270_length350.mat
:320 µmol 混合光照且没有遮阳幕的场景(h320
)。 -
HL-370-NBO_ams_hps_hHarvest_noBoil_intLamp170_day270_length350.mat
:370 µmol 混合光照且没有遮阳幕的场景(h370
)。 -
L-450_ams_led_blScr_hHarvest_noBoil_ppfd450_day270_length350.mat
:450 µmol 纯 LED 光照的场景(p450
)。
-
2. 颜色定义:
-
使用
lines()
函数生成一组颜色,并分别赋值给blue
,red
,yellow
,purple
等变量,用于后续绘图。
3. 绘制三幅子图:
-
子图 1:室内空气温度:
-
使用
plotMeans
函数绘制五个场景的室内温度(p450.x.tAir
,h320scr.x.tAir
,h320.x.tAir
,h370scr.x.tAir
,h370.x.tAir
)。 -
绘制设定温度(
h320scr.a.heatSetPoint-1
)。 -
设置 x 轴范围为第 100 天到第 104 天,并将时间戳转换为日期格式(
dd/mm
)。 -
设置 y 轴范围为
[10, 28]
,并添加 y 轴标签“温度(℃)”。 -
添加图例,标识“L 450”、“H/L 320”、“H/L 320 NBO”、“H/L 370”、“H/L 370 NBO”和“设定温度”。
-
-
子图 2:灯具控制:
-
使用
smooth
函数平滑数据后,绘制五个场景的灯具输入(p450.a.qLampIn + p450.a.qIntLampIn
,h320scr.a.qLampIn + h320scr.a.qIntLampIn
,h320.a.qLampIn + h320.a.qIntLampIn
,h370scr.a.qLampIn + h370scr.a.qIntLampIn
,h370.a.qLampIn + h370.a.qIntLampIn
)。 -
设置 x 轴范围为第 100 天到第 104 天,并将时间戳转换为日期格式(
dd/mm
)。 -
添加图例,标识“L 450”、“H/L 320”、“H/L 320 NBO”、“H/L 370”和“H/L 370 NBO”。
-
设置 y 轴范围为
[0, 200]
,并添加 y 轴标签“灯具输入(W/m²)”。
-
-
子图 3:热量缓冲内容:
-
绘制五个场景的热量缓冲内容(
p450.x.eBufCold + p450.x.eBufHot
,h320scr.x.eBufCold + h320scr.x.eBufHot
,h320.x.eBufCold + h320.x.eBufHot
,h370scr.x.eBufCold + h370scr.x.eBufHot
,h370.x.eBufCold + h370.x.eBufHot
)。 -
设置 x 轴范围为第 100 天到第 104 天,并将时间戳转换为日期格式(
dd/mm
)。 -
设置 y 轴范围为
[0, 2.5]
,并添加 y 轴标签“热量缓冲内容(MJ/m²)”。 -
添加图例,标识“L 450”、“H/L 320”、“H/L 320 NBO”、“H/L 370”和“H/L 370 NBO”。
-
代码的输出:
-
该代码生成一幅包含三幅子图的图:
-
室内空气温度:展示五个场景的室内温度变化,以及设定温度。
-
灯具控制:展示五个场景的灯具输入变化。
-
热量缓冲内容:展示五个场景的热量缓冲内容变化。
-
代码的用途:
-
该代码用于分析在混合光照场景下,温室的室内温度、灯具控制以及热量缓冲内容的变化。通过可视化这些数据,研究人员可以评估不同光照和加热策略的效果,并为温室加热系统的设计和优化提供依据。
代码中的关键变量:
-
p450.x.tAir
:450 µmol 纯 LED 光照场景下,室内温度。 -
h320scr.x.tAir
:320 µmol 混合光照且带有遮阳幕的场景下,室内温度。 -
h320.x.tAir
:320 µmol 混合光照且没有遮阳幕的场景下,室内温度。 -
h370scr.x.tAir
:370 µmol 混合光照且带有遮阳幕的场景下,室内温度。 -
h370.x.tAir
:370 µmol 混合光照且没有遮阳幕的场景下,室内温度。 -
h320scr.a.heatSetPoint
:设定温度。 -
p450.a.qLampIn + p450.a.qIntLampIn
:450 µmol 纯 LED 光照场景下,灯具输入。 -
h320scr.a.qLampIn + h320scr.a.qIntLampIn
:320 µmol 混合光照且带有遮阳幕的场景下,灯具输入。 -
h320.a.qLampIn + h320.a.qIntLampIn
:320 µmol 混合光照且没有遮阳幕的场景下,灯具输入。 -
h370scr.a.qLampIn + h370scr.a.qIntLampIn
:370 µmol 混合光照且带有遮阳幕的场景下,灯具输入。 -
h370.a.qLampIn + h370.a.qIntLampIn
:370 µmol 混合光照且没有遮阳幕的场景下,灯具输入。 -
p450.x.eBufCold + p450.x.eBufHot
:450 µmol 纯 LED 光照场景下,热量缓冲内容。 -
h320scr.x.eBufCold + h320scr.x.eBufHot
:320 µmol 混合光照且带有遮阳幕的场景下,热量缓冲内容。 -
h320.x.eBufCold + h320.x.eBufHot
:320 µmol 混合光照且没有遮阳幕的场景下,热量缓冲内容。 -
h370scr.x.eBufCold + h370scr.x.eBufHot
:370 µmol 混合光照且带有遮阳幕的场景下,热量缓冲内容。 -
h370.x.eBufCold + h370.x.eBufHot
:370 µmol 混合光照且没有遮阳幕的场景下,热量缓冲内容。
代码的依赖:
-
plotMeans
函数:该函数用于计算并绘制数据的平均值。代码中未给出该函数的定义,可能是作者自定义的函数。 -
smooth
函数:该函数用于平滑数据。代码中未给出该函数的定义,可能是 MATLAB 的内置函数或作者自定义的函数。
总结:
这段代码主要用于生成一幅包含三幅子图的图,展示在混合光照场景下,温室的室内温度、灯具控制以及热量缓冲内容的变化。通过可视化这些数据,研究人员可以评估不同光照和加热策略的效果,并为温室加热系统的设计和优化提供依据。