runGreenLight函数

这段代码定义了一个名为 runGreenLight 的函数,用于创建并运行一个名为 GreenLight 的温室模型仿真。该模型模拟了现代温室(4公顷)在不同光照类型(如HPS高压钠灯、LED灯或无光照)和不同气候条件下的能耗和作物生长情况。以下是代码的详细解释:


函数功能

runGreenLight 函数的主要功能是:

  1. 创建并运行温室模型
    • 根据输入的光照类型(lampType)、气候数据(weather)和其他参数,创建一个GreenLight模型实例。
    • 运行仿真,模拟温室在不同条件下的能耗和作物生长情况。
  2. 支持多种输入配置
    • 可以自定义光照类型(HPS、LED或无光照)。
    • 可以输入真实的气候数据,或生成人工气候数据。
    • 可以修改模型参数(如温度设定、光照时间等)。
    • 可以选择是否从成熟作物状态开始仿真。
  3. 保存仿真结果
    • 仿真结果可以保存到指定文件中,供后续分析使用。

输入参数

  1. lampType(可选):
    • 光照类型,可以是 'hps'(高压钠灯)、'led'(LED灯)或 'none'(无光照)。
    • 默认值为 'none'
  2. weather(可选):
    • 气候数据,用于驱动模型仿真。
    • 如果未提供或为空,函数会生成一个5天的人工气候数据。
    • 如果是一个标量数字,函数会生成对应天数的人工气候数据。
    • 如果提供气候数据,必须是一个9列或10列的矩阵,格式如下:
      • 第1列:时间戳(datenum格式,5分钟间隔)。
      • 第2列:辐射强度(W/m²,室外全球辐射)。
      • 第3列:温度(℃,室外空气温度)。
      • 第4列:湿度(kg/m³,室外水蒸气浓度)。
      • 第5列:CO₂浓度(kg/m³,室外CO₂浓度)。
      • 第6列:风速(m/s,室外风速)。
      • 第7列:天空温度(℃)。
      • 第8列:外部土壤层温度(℃)。
      • 第9列:每日辐射总量(MJ/m²/day)。
      • 第10列(可选):海拔高度(米,默认为0)。
  3. filename(可选):
    • 保存仿真结果的文件名。如果未提供或为空,结果不会保存。
  4. paramNamesparamVals(可选):
    • 用于修改模型参数的名称和对应值。
    • paramNames 是字符串数组,表示要修改的参数名称。
    • paramVals 是对应的参数值数组。
  5. isMature(可选):
    • 布尔值,表示是否从成熟作物状态开始仿真。
    • 默认值为 false

输出

  1. gl
    • 一个GreenLight模型实例,包含完整的仿真结果。
    • 仿真数据以5分钟为间隔输出。

代码流程

  1. 设置默认值
    • 如果未提供气候数据,生成5天的人工数据。
    • 如果未提供文件名,不保存结果。
    • 如果未提供海拔高度,默认为0。
  2. 准备仿真
    • 将时间戳从 datenum 格式转换为从数据开始时刻的秒数。
    • 创建GreenLight模型实例,并设置默认参数(通过 setParams4haWorldComparison 函数)。
    • 根据输入参数修改模型参数(通过 setParam 函数)。
    • 重置依赖参数(通过 setDepParams 函数)。
  3. 设置成熟作物状态(可选)
    • 如果 isMaturetrue,初始化作物的果实、叶片和茎干生物量。
  4. 运行仿真
    • 使用 ode15s 求解器运行仿真。
    • 将仿真结果的时间分辨率调整为5分钟。
  5. 保存结果(可选)
    • 如果提供了文件名,将仿真结果保存到文件中。

辅助函数

  1. makeArtificialInput
    • 生成人工气候数据。
    • 输入参数为仿真天数,输出为一个9列的气候数据矩阵。
  2. setParams4haWorldComparison
    • 设置现代4公顷温室的默认参数。
  3. setDepParams
    • 重置依赖参数(即那些依赖于其他参数的参数)。

代码应用

  • 该函数用于研究不同光照类型(HPS、LED)和气候条件下温室的能耗和作物生长情况。
  • 通过修改参数(如温度设定、光照时间、保温性能等),可以模拟不同的温室管理策略。
  • 仿真结果可以保存并用于后续分析,例如比较HPS和LED的节能效果。

示例用法

matlab
复制
% 使用HPS灯,加载真实气候数据,保存结果到文件
weather = load('calEnergyPlus.mat'); % 加载气候数据
runGreenLight('hps', weather, 'cal_hps_results.mat');

% 使用LED灯,生成10天人工气候数据,修改温度设定
paramNames = ["tSpNight" "tSpDay"];
paramVals = [18 20];
runGreenLight('led', 10, 'led_warmer_results.mat', paramNames, paramVals);

注意事项

  • 仿真可能需要较长时间运行,尤其是对于长时间的气候数据。
  • 需要确保输入的气候数据格式正确。
  • 修改参数时,注意参数的依赖关系(通过 setDepParams 函数处理)。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇