Contents — find the section you need

CEA 生产系统——NFT、DWC 和滴灌中的水路径

同一份溶液到达根部的路径各不相同

设定水箱的 EC、pH 和温度,并不能确立每一处根系周围条件的均匀一致。一层流动的薄膜、一套浸没式根系统和一个滴灌基质,储水和输水的方式各不相同,这也改变了观测位置和核算边界。

沿着投配授权的思路,本指南比较 NFT、DWC 和基质滴灌。目的是追踪水从水箱到根部、再到回流或排放的路径,而不是给系统排名或推荐设备。所有数值示例均为合成值。

区分三种根系环境

系统 根系环境 主要水路径 需要区分的量
NFT:营养液膜技术 根系位于带有薄层营养液膜的水槽中 水箱 → 分配 → 水槽 → 收集 → 水箱 各水槽流量、回流和局部积水
DWC:深水培 根系浸没在生产池或容器中 在相连容器内部或之间循环;同时须管理增氧 体积、循环分布、根区溶解氧和温度
基质滴灌 一种含有固体、水和空气的介质 水箱 → 滴头 → 基质 → 排水 单株施水量、储水变化和排水量

NFT 结构参见弗吉尼亚州合作推广部的 NFT 指南;DWC 的水池、循环和增氧参见该机构的 DWC 指南。肯塔基大学的水培灌溉指南描述了向单个容器和基质滴灌供水的方式。

Diagram 1 · Use the button to switch views
NFT、DWC 和基质滴灌中根系环境和水路径的概念比较图。

简化的代表性路径示意图,不是管路规格图。排水回收和外部排放是可替代的配置方式,不一定同时发生。

NFT:检查的是分配情况,而不仅是水泵流量

NFT 向承载根系的水槽供水,并收集其下游回流。水泵在运转并不能确立每条水槽都畅通无阻,或获得了合适的份额。局部积水也可能发生。因此,本文建议将水泵状态与各水槽进出口的观测结果结合起来。

VCE 的 NFT 指南描述了支撑排水的结构、收集管路以及须计入扬程和摩擦损失的水泵选型。应在根系发育后以及空水槽状态下分别检查流路。

在一个合成示例中,八条水槽各自以 1 L/min 的流量运行 60 分钟:累计循环水量为 480 L。同一时段内一个独立给定的 3 L 外部补充水量与该循环量并不矛盾。由于同一份水可以反复经过,480 L 并不是外部用水总量。

水泵停机后,水也可能从水槽和管路中倒流回来。不要把运行状态与停止状态之间水箱液位的全部差异都归因于植物吸收或蒸腾。应将仅针对水箱的平衡与包含管路和生产容器在内的边界平衡分开处理。

DWC:存留的水量不能确立供氧情况

与薄膜配置不同,DWC 的根系浸没在溶液中。仅凭大体积液体并不能确保供氧。VCE 的 DWC 指南描述了使用文丘里装置或空气泵和扩散器的循环与增氧配置。

基于这一区别,本文建议在多个位置(包括根系密集区)连同液位一起记录溶解氧和温度。须记录循环和曝气是共用设备还是相互独立。气流量和水流量都可能以 L/min 计量,但它们是不同的平衡项。

对于一个以 10 L/min 循环的 200 L 容器,标称周转时间为

T_{nom}=\frac{V}{Q}=\frac{200}{10}=20\ \mathrm{min}

这并不意味着每一份水都恰好在 20 分钟内经过一次。短路流动和滞留区域会改变实际分布。它既不是清水置换时间,也不是混合等待时间,更不是达到充分供氧所需的时间。

如果循环或曝气停止,存留的水量并不能确立根系条件得到了维持。这个比值无法预测可允许的停机时长。

滴灌:核算基质中存留的水分

滴灌描述的是输送方式,不一定意味着排放。应将回收/再利用与排出系统外的排放区分开来。肯塔基指南讨论了滴灌供水的 Bato/荷兰式桶以及带排水收集的袋装/容器系统。

在观测区间结束时,部分施用的水仍留在基质中。对于一个围绕基质划定的边界,设 I 为施用水量,D 为排水量,\Delta S 为储水量变化,U 为进入植物的转移量,E 为蒸发量,L 为其他未测量的流出量。以上各量均以升为单位,且在同一时段内测量:

\Delta S=I-D-U-E-L

因此,仅凭 I-D 并不是植物吸水量。通过称重估算储水变化时,须明确植物质量变化、容器和其他非水贡献是如何处理的。

在一个合成示例中,八个滴头各以 0.05 L/min 的流量共运行十分钟,施用水量为 4 L。在包含该次操作的同一个两小时观测窗口内,排水量为 1 L,基质储水量增加 0.5 L。残余量为 4-1-0.5=2.5 L,代表的是 U+E+L,而不仅仅是植物吸收量。

该观测窗口的排水量与施用量之比为 25%。缩短收集时间会改变该结果,因此须使分子和分母所对应的时间区间保持一致。25% 只是一个算术结果,不是灌溉目标值。

用 Python 分开保存这三个量

保存为 system_water_paths.py,运行 python3 system_water_paths.py。

# Synthetic arithmetic only: not crop or equipment recommendations.
channels, flow_l_min, minutes = 8, 1.0, 60
circulated_l = channels * flow_l_min * minutes
makeup_l = 3.0  # Independently specified external addition.
print(f"NFT: circulated={circulated_l:.1f} L; makeup={makeup_l:.1f} L")

pond_l, recirculation_l_min = 200.0, 10.0
print(f"DWC: nominal turnover={pond_l / recirculation_l_min:.1f} min")

emitters, emitter_l_min, on_minutes = 8, 0.05, 10
irrigation_l = emitters * emitter_l_min * on_minutes
# Drainage and storage change measured over the SAME two-hour window.
drain_l, storage_change_l = 1.0, 0.5
residual_l = irrigation_l - drain_l - storage_change_l
print(f"Drip: applied={irrigation_l:.1f} L; residual={residual_l:.1f} L")
print(f"Drain/applied={100 * drain_l / irrigation_l:.1f}%")

输出结果为:NFT 循环水量 480 L、补充水量 3 L;DWC 标称周转时间 20 分钟;滴灌施用量 4 L、残余量 2.5 L、排水/施用比 25%。这些是相互独立的示例,不是比较生产系统用水效率的实验。

把物理路径重新纳入控制

以下观测方案是根据本文的核算边界推导出的。在共用的 EC 和 pH 设置之外,须加入各系统特有的路径。

系统 在采取进一步行动前应检查的项目 仅凭这些不足以判断
NFT 分配与回流流量、积水和泄漏 水泵开启或水箱 EC
DWC 根区溶解氧/温度分布、循环和增氧 是否有水或标称周转时间
滴灌 滴头差异、基质水分状态、排水量和去向 水泵总流量或水箱液位

如果回流溶液被重复利用,须记录其数量、水质和处理路径。EC 相同并不代表回流溶液等同于源水。详细的卫生和处理设计需要另外开展工作。

本指南为三种系统建立了水路径和测量边界。气雾栽培、多层配水与回流,以及实测控制验证仍是未完成的工作。接下来是多层栽培中随高度和分支增加,扬程、流量分配和排水之间的关系。

CEA 多层供水——扬程、分支流量与倒流

水泵在运转并不能确立每一层都获得相同的流量

将生产系统水路径的思路纵向延伸,会引入扬程、分支阻力和停机倒流等问题。某一层的流量可能不足,而其他分支却让总流量看起来相当可观。

本指南考虑一个开放的低位储水箱,为不同高度的多个常压出口供水,并通过重力收集。一条合成的水泵特性曲线和分支模型说明了这些关系。它们不用于选型设备、确定作物流量需求、压力补偿滴头或雾化喷嘴。

扬程不仅仅是层架高度

北达科他州立大学的灌溉水泵指南区分了静扬程、压力扬程、摩擦扬程和流速扬程,并将流量/扬程需求与水泵特性曲线联系起来。在源液自由液面与出口之间,一般的核算关系为

H_p=\Delta z+\frac{\Delta p}{\rho g}+\frac{\Delta v^2}{2g}+h_L

所有项均以米为单位。\Delta z 为高程差,\Delta p 为压力差,h_L 包括管道、管件和阀门的损失。零流量下的最大扬程不同于在所需流量下的可用扬程。最大流量和最大扬程并不是同时可达的运行能力。

VCE 的 NFT 指南描述了扬程/摩擦需求和重力收集方式。在压力释放进入开放水槽的地方,向下的回流并不能简单抵消扬程。这一边界与一个始终充满的封闭回路不同。

联立求解三个分支

取储水箱自由液面为零高程。设 H 为该高程处理想集水管的可用扬程,近似为压力扬程,忽略集水管内的流速扬程差异。各分支出口为常压出口;出口流速效应已纳入简化的二次阻力项中。

使用合成水泵特性曲线 H_p(Q)=6-0.020Q^2 及共用管路损失 0.005Q^2。流量 Q 以 L/min 计,扬程以米计,因此系数单位为 m/(L/min)²。不要将其原样套用到以 m³/s 为单位的公式中。

对于出口高程 z_i [m] 和阻力系数 k_i,

q_i=\sqrt{\frac{\max(H-z_i,0)}{k_i}},\qquad Q=\sum_i q_i,\qquad H=6-0.025Q^2

须同时成立。假设各分支不会发生倒流:扬程不足时 q_i=0。此模型不模拟启动排气或虹吸现象。

合成情形 高程 z_1,z_2,z_3 [m] 阻力 k_1,k_2,k_3 [m/(L/min)²]
A:基线 1, 2, 3 0.5, 0.5, 0.5
B:上层阻力增大 1, 2, 3 0.5, 0.5, 2.0
C:上层出口升高 1, 2, 7 0.5, 0.5, 0.5

当高程不同时,相等的分支阻力并不能带来相等的流量。情形 B 抽象地表示阻力增大,例如某种堵塞;它并不预测实际的堵塞几何形状。

被总流量掩盖的变化

情形 集水管 H [m] 下层 [L/min] 中层 [L/min] 上层 [L/min] 总计 [L/min]
A 4.778 2.749 2.357 1.886 6.992
B 5.011 2.832 2.454 1.003 6.289
C 5.253 2.916 2.551 0.000 5.467

在情形 B 中,上层流量几乎减半,而下层和中层流量却在增加。共用流量的减少会通过水泵特性曲线和共用管路损失两条途径改变集水管扬程。调整一个分支不会让其他分支保持不变。

Diagram 2 · Use the button to switch views
针对三种合成条件——基线 A、上层阻力更高的 B,以及上层出口位于七米高的 C——计算得到的下层、中层和上层流量。

横轴:下层、中层和上层。纵轴:L/min。所有柱状图均为合成模型的输出,不是实测数据。

C 情形保持了总流量,但没有向上层供水。求出一个数值解,不等于让每一层都得到供水。即便流量为正,也仍需与实际作物需求进行比较。

OSU 的水泵系统测试指南区分了系统特性曲线和水泵特性曲线。基于这一区别,本文建议在记录总流量的同时,也记录各分支流量、集水管压力和水箱液位。管路变更和水箱液位下降都可能改变工作点。

用 Python 复现配水和倒流

保存为 multitier_flow.py,运行 python3 multitier_flow.py。只需要标准库。此处的二分法用于求解这些合成方程中单调残差的零点;这不是通用的管路设计软件。

from math import sqrt, isfinite


def solve(heights, resistance):
    # Synthetic steady model: head [m], flow [L/min].
    if not heights or len(heights) != len(resistance):
        raise ValueError("matching nonempty branches required")
    if any(not isfinite(z) or z < 0 for z in heights):
        raise ValueError("finite nonnegative heights required")
    if any(not isfinite(k) or k <= 0 for k in resistance):
        raise ValueError("finite positive resistance required")
    lo, hi = 0.0, 6.0
    for _ in range(80):
        h = (lo + hi) / 2
        flows = [sqrt(max(h-z, 0)/k)
                 for z, k in zip(heights, resistance)]
        if h + 0.025 * sum(flows)**2 > 6:
            hi = h
        else:
            lo = h
    h = (lo + hi) / 2
    flows = [sqrt(max(h-z, 0)/k)
             for z, k in zip(heights, resistance)]
    return h, flows


if __name__ == "__main__":
    cases = {"A": ([1, 2, 3], [0.5, 0.5, 0.5]),
             "B": ([1, 2, 3], [0.5, 0.5, 2.0]),
             "C": ([1, 2, 7], [0.5, 0.5, 0.5])}
    for name, (z, k) in cases.items():
        h, flows = solve(z, k)
        print(name, f"H={h:.3f} m", [round(q, 3) for q in flows],
              f"total={sum(flows):.3f} L/min")
    drainback_l = 12 * 1.5 * 0.08 * 0.005 * 1000 + 2.8
    print(f"drainback={drainback_l:.1f} L; free-space shortfall={drainback_l-8:.1f} L")

输出结果与表格一致。H 是经过共用管路损失后的集水管扬程,而不是水泵扬程本身。在情形 A 中,水泵扬程约为 5.022 m,而集水管扬程约为 4.778 m。

该模型假设稳态条件、固定的水箱液位和恒定阻力。它不包括吸入端条件、气蚀、设备效率、水锤、滞留空气以及根系生长导致的阻力变化。实际设备还须另外对照制造商特性曲线和吸入端条件进行检查。

为停机后的回流水预留空间

供水能力只是一项检查。水箱还必须能够接纳停机后的倒流水。排水速度取决于坡度、断面、排气通道、堵塞和出口淹没情况,而不仅仅是供水泵流量。

在另一个独立的合成示例中,十二条水槽各自装有长 1.5 m、湿润宽度 0.08 m、平均水深 0.005 m 的水。假设全部回流:水槽贡献 7.2 L,管路贡献 2.8 L,共计 10 L。此算术示例忽略了根系占位和详细几何形状。

如果运行中的水箱有 8 L 空闲空间,计算得到的短缺量为 2 L。应与运行液位以上的空间比较,而不是水箱总容量。10 L 的空闲空间并非经过验证的设计余量;实际倒流量、局部溢流和测量不确定性仍需评估。

充足的水箱空间也不能防止上游某个集水器在堵塞时溢出。应将停机倒流和运行中的排水能力作为独立的检查项分别记录。

多层结构增加的观测项

情形 记录内容 需要区分的点
正常运行 总流量/分支流量、压力和液位 供水能力与配水情况
调整某个分支后 每一层的变化 各分支之间的相互影响
停止与重启 倒流量、最高液位和流量恢复 空闲空间与启动供水
根系发育后 积水、排水和流路 初始阻力与运行阻力

投配授权的输入应确立对所需各层的供水以及成功的回流,而不仅仅依据一个水泵开启信号。本指南建立了一个合成模型和观测方案;它不验证管路尺寸或作物表现。接下来是气雾栽培:通往雾化根系的路径,以及喷嘴、压力和喷雾间隔各自扮演的角色。

CEA 气雾栽培——分开处理雾化路径、压力和喷雾间隔

根系潮湿并不能证明喷雾系统在正常工作

多层指南展示了高程和分支阻力如何改变流量。气雾栽培输送的是雾滴,而不是连续的水膜。在尚未检查压力、堵塞、雾滴到达情况和停机后再加压之前,水泵在运转并不能确立根系获得了输送。

本指南为雾化系统定义观测边界,不推荐喷嘴型号或特定作物的喷雾间隔。所用数值均为合成值。

将路径分为四个部分

部分 记录内容 它不能确立的内容
水箱与吸入端 液位、温度、滤网压差 喷嘴出口压力
水泵与管路 流量、出口压力、功率和脉动 各喷嘴处的雾滴分布
喷嘴排 进口压力、各喷嘴收集量和堵塞情况 根表面的湿润程度
根舱与排水 根系位置、回收液体和泄漏 下一次喷雾前的水分状态
Diagram 3 · Use the button to switch views
概念性的气雾路径,将水箱、水泵、喷嘴排、根舱和回收各环节分开表示。

箭头表示代表性的液体路径。气流、蒸发和残留在根系上的液体属于另外的观测项。

不要用水泵出口压力替代喷嘴压力

出口压力会因分支、过滤器、高程、管件和喷嘴而变化。如果假设各喷嘴出水量相等,须将喷嘴排的进口压力和末端压力与各喷嘴的收集量一并记录。

使用合成关系式 q_i=k_i\sqrt{\max(p_i-p_{min},0)},其中 p 单位为 kPa,q 单位为 mL/min,k_i 为一个合成系数。这不是制造商的特性曲线,只是用来说明低于可用压力时输出会减少。

不同的 k_i 值在相同压力下会产生不同的流量。更换喷嘴后须重新校准,同时保持实际排管配置不变。并联的多排管路中,一个喷嘴堵塞可能改变其他排管的压力和流量。

一个间隔时间不仅仅是一个计时器

设定“开 10 秒、关 50 秒”,并不能说明存水量、雾滴到达情况、温度、湿度或排水回流的情况。须分别记录以下时间戳:

  1. 指令发出时间与水泵实际启动时间。
  2. 喷嘴排压力达到工作值的时间。
  3. 首次喷雾到达根舱的时间。
  4. 指令停止时间与确认零流量的时间。
  5. 允许下一次喷雾的观测时间。

不要把一条停止消息当作已确认的零流量。正如投配授权一文所述,应保持故障状态而不是堆叠重试,并在查明原因后再明确地恢复运行。

计算一个合成喷嘴排

给三个喷嘴设定 120 kPa 进口压力、40 kPa 最低工作压力,以及系数 [2.0, 1.8, 1.2]。相同的指令时长并不意味着相同的喷嘴出水量。

from math import sqrt

pressure_kpa = 120.0
minimum_kpa = 40.0
coefficients = [2.0, 1.8, 1.2]
flows = [k * sqrt(max(pressure_kpa - minimum_kpa, 0))
         for k in coefficients]
print([round(q, 1) for q in flows])
print(round(sum(flows), 1))
print(f"10 s spray volume = {sum(flows) / 6:.1f} mL")

输出为 [17.9, 16.1, 10.7],合计 44.7 mL/min,10 秒内为 7.5 mL。这里的重点是保留系数、压力和各喷嘴差异,而不是推荐这些数值。

把许可条件和故障条件分开保存

情形 检查项 为何不应立即再次喷雾
末端压力偏低 滤芯压差、液位和泄漏 延长运行时间可能使另一分支过量供水
单个喷嘴流量偏低 堵塞情况及更换前后的收集量 这可能不是整个根舱都存在的不足
停止后仍在滴水 阀门关闭情况、残留液体和止回阀 指令时长不再等同于实际输送量
根舱观测缺失 传感器时间戳、摄像头和回收情况 陈旧数据不能作为缩短间隔的理由

不要把喷雾量、雾滴分布、根表面存留量和回收液体当作同一个变量。一处观测到潮湿,并不能确立每个喷嘴都正常。

范围

本指南涵盖液体路径、压力观测和间隔时间戳。喷嘴选型、雾滴粒径测量、卫生处理、断电备用以及实测根部水分响应仍是未完成的工作。下一步是这些系统中回收溶液的卫生处理和再利用边界。

What to read next

回顾根区水分、氧气和养分。CEA 传感与图像估算——传感器布置与投影叶面积回顾添加和移除的核算。CEA 养分投配——水箱核算、水泵校准与状态控制Continue the seriesCEA 回收溶液——分开卫生、处理和再利用边界