setBvAux函数

这段 MATLAB 代码定义了一个名为 setBvAux 的函数,用于为基于 Vanthoor (2011) 温室模型的 StateSpaceModel 对象设置辅助状态变量。以下是代码的详细解释:


1. 函数的功能

  • 输入

    • m:一个 StateSpaceModel 对象,表示温室模型。

  • 输出

    • 无显式输出,但会为 m 对象添加大量辅助状态变量。


2. 代码的逻辑

(1) 辅助状态变量的定义

  • 辅助状态变量是模型中的中间变量,用于简化模型的计算和表达。

  • 这些变量包括:

    • 覆盖层的透射率和反射率(如遮阳幕、保温幕、屋顶等)。

    • 热容量(如冠层、覆盖层、土壤层等)。

    • 辐射通量(如 PAR、NIR、FIR 等)。

    • 通风和热交换(如自然通风、对流热交换等)。

    • 作物生理过程(如蒸腾作用、光合作用、呼吸作用等)。

(2) 辅助状态变量的计算

  • 使用 addAux 函数将辅助状态变量添加到 StateSpaceModel 对象中。

  • 每个辅助状态变量的计算基于 Vanthoor 模型中的公式和参数。

(3) 辅助函数的定义

  • 代码中定义了一些辅助函数,用于计算特定的物理量,例如:

    • satVp:计算饱和水汽压。

    • tau12:计算双层覆盖的透射率。

    • rhoUprhoDn:计算双层覆盖的反射率。

    • fir:计算远红外辐射通量。

    • sensible:计算显热通量。

    • cond:计算冷凝水汽通量。

    • airMvairMc:计算伴随空气流动的水汽和 CO2 通量。

    • hec:计算热交换系数。


3. 代码的实现

(1) 覆盖层的透射率和反射率

  • 计算遮阳幕、保温幕、屋顶等覆盖层的透射率和反射率:

    matlab
    复制
    addAux(m, 'tauShScrPar', 1-u.shScr*(1-p.tauShScrPar));
    addAux(m, 'rhoShScrPar', u.shScr*p.rhoShScrPar);

(2) 热容量

  • 计算冠层、覆盖层、土壤层等的热容量:

    matlab
    复制
    addAux(m, 'capCan', p.capLeaf*m.a.lai);
    addAux(m, 'capCovE', 0.1*m.a.capCov);

(3) 辐射通量

  • 计算太阳辐射、灯辐射等的吸收和反射:

    matlab
    复制
    addAux(m, 'rParGhSun', (1-p.etaGlobAir).*m.a.tauCovPar.*p.etaGlobPar.*d.iGlob);
    addAux(m, 'rParGhLamp', p.etaLampPar*m.a.lampIn);

(4) 通风和热交换

  • 计算自然通风、对流热交换等:

    matlab
    复制
    addAux(m, 'fVentRoof2', u.roof*p.aRoof.*m.a.cD/(2.*p.aFlr).*...
        sqrt(abs(p.g*p.hVent*(x.tAir-d.tOut)./(2*(0.5*x.tAir+0.5*d.tOut+273.15))+m.a.cW.*d.wind.^2)));
    addAux(m, 'hCanAir', sensible(m.a.hecCanAir, x.tCan, x.tAir));

(5) 作物生理过程

  • 计算蒸腾作用、光合作用、呼吸作用等:

    matlab
    复制
    addAux(m, 'mvCanAir', (satVp(x.tCan)-x.vpAir).*m.a.vecCanAir);
    addAux(m, 'p', m.a.j.*(m.a.co2Stom-m.a.gamma)./(4*(m.a.co2Stom+2*m.a.gamma)));

4. 代码的物理意义

  • Vanthoor 模型:这是一个用于温室气候和作物产量模拟的模型,考虑了温室设计、气候条件和作物生长等因素。

  • 辅助状态变量:这些变量用于描述温室中的物理和生理过程,例如辐射传输、热交换、通风、蒸腾作用、光合作用等。


5. 示例

假设有一个 StateSpaceModel 对象 m,调用函数:

matlab
复制
setBvAux(m);

输出:

  • m 对象中会添加大量辅助状态变量,用于后续的模型计算和仿真。


6. 总结

setBvAux 函数通过定义和计算辅助状态变量,为基于 Vanthoor 温室模型的 StateSpaceModel 对象提供了完整的物理和生理过程描述。这些辅助变量是模型仿真和分析的基础。

暂无评论

发送评论 编辑评论


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