这段 MATLAB 代码用于生成一幅图,展示在没有灯具的情况下,温室的室内温度、遮阳幕和冷却系统的工作情况,以及室外温度和太阳辐射的变化。该图用于论文中的图7,论文标题为《Heating greenhouses by light: A novel concept for intensive greenhouse production》,发表在《Biosystems Engineering》期刊上。
代码的主要功能如下:
1. 数据加载:
-
outputFolder
:指定存储模拟输出数据的文件夹路径。 -
加载两个模拟场景的数据:
-
N-HH_ams_noLamp_hHarvest_day350_length350.mat
:没有灯具但带有热回收系统的场景(nlhh
)。 -
N_ams_noLamp_day350_length350.mat
:没有灯具且没有热回收系统的场景(nl
)。
-
2. 颜色定义:
-
使用
lines()
函数生成一组颜色,并分别赋值给blue
,red
,yellow
,purple
,green
等变量,用于后续绘图。
3. 绘制三幅子图:
-
子图 1:室内温度:
-
使用
plotMeans
函数绘制两个场景的室内温度(nl.x.tAir
和nlhh.x.tAir
)。 -
绘制设定温度(
nlhh.a.heatSetPoint-1
)。 -
设置 x 轴范围为第 83 天到第 87 天,并将时间戳转换为日期格式(
dd/mm
)。 -
设置 y 轴范围为
[17, 24]
,并添加 y 轴标签“温度(℃)”。 -
添加图例,标识“室内温度 N”、“室内温度 N HH”和“设定温度”。
-
-
子图 2:遮阳幕和冷却系统:
-
绘制两个场景的遮阳幕闭合百分比(
nl.u.thScr
和nlhh.u.thScr
)。 -
使用
yyaxis right
激活右侧 y 轴,绘制热回收场景下的冷却功率(nlhh.a.hAirMech + nlhh.a.lAirMech
)。 -
设置 y 轴范围为
[0, 150]
(左侧)和[0, 80]
(右侧)。 -
添加 y 轴标签“遮阳幕闭合百分比(%)”和“冷却功率(W/m²)”。
-
添加图例,标识“遮阳幕 N”、“遮阳幕 N HH”和“冷却 N HH”。
-
-
子图 3:室外温度和太阳辐射:
-
绘制室外温度(
nl.d.tOut
)和太阳辐射(nl.d.iGlob
)。 -
添加两条水平虚线,分别表示遮阳幕的温度阈值(5℃)和辐射阈值(50 W/m²)。
-
设置 y 轴范围为
[-2, 12]
(左侧)和[0, 550]
(右侧)。 -
添加 y 轴标签“室外温度(℃)”和“太阳辐射(W/m²)”。
-
添加图例,标识“室外温度”、“遮阳幕温度阈值”、“太阳辐射”和“遮阳幕辐射阈值”。
-
代码的输出:
-
该代码生成一幅包含三幅子图的图:
-
室内温度:展示两个场景的室内温度变化,以及设定温度。
-
遮阳幕和冷却系统:展示两个场景的遮阳幕闭合百分比和冷却功率。
-
室外温度和太阳辐射:展示室外温度和太阳辐射的变化,以及遮阳幕的触发阈值。
-
代码的用途:
-
该代码用于分析在没有灯具的情况下,温室的室内温度、遮阳幕和冷却系统的工作情况,以及室外环境条件(温度和太阳辐射)的变化。通过可视化这些数据,研究人员可以评估温室的热管理策略,并为温室加热系统的设计和优化提供依据。
代码中的关键变量:
-
nl.x.tAir
:没有热回收系统的场景下,室内温度。 -
nlhh.x.tAir
:带有热回收系统的场景下,室内温度。 -
nlhh.a.heatSetPoint
:设定温度。 -
nl.u.thScr
:没有热回收系统的场景下,遮阳幕闭合百分比。 -
nlhh.u.thScr
:带有热回收系统的场景下,遮阳幕闭合百分比。 -
nlhh.a.hAirMech + nlhh.a.lAirMech
:带有热回收系统的场景下,冷却功率。 -
nl.d.tOut
:室外温度。 -
nl.d.iGlob
:太阳辐射。
代码的依赖:
-
plotMeans
函数:该函数用于计算并绘制数据的平均值。代码中未给出该函数的定义,可能是作者自定义的函数。
总结:
这段代码主要用于生成一幅包含三幅子图的图,展示在没有灯具的情况下,温室的室内温度、遮阳幕和冷却系统的工作情况,以及室外温度和太阳辐射的变化。通过可视化这些数据,研究人员可以评估温室的热管理策略,并为温室加热系统的设计和优化提供依据。