Contents — find the section you need
将固体捕集与氮、磷负荷分开
不要把浑浊的水和溶解的硝酸盐算作同一种负荷
上一篇指南将鱼池、生物滤器和植物观察分开记录。本指南则将鱼类固体与溶解态的氮、磷分开。康奈尔大学将水耕共生描述为一条经过鱼池、固体收集、种植区和回流循环的路径。康奈尔小型农场
固体捕集改变的是以颗粒形式离开系统的部分,以及之后发生矿化的部分。溶解态氮经过硝化和植物吸收。磷可能集中在固体中,不能从氮的方程式推断得出。
用四本独立的台账记录四条路径
| 路径 | 记录内容 | 不要与之混淆 |
|---|---|---|
| 固体捕集 | 质量、含水率、时间和去向 | 溶解态硝酸盐浓度 |
| 溶解态氮 | 氨、亚硝酸盐、硝酸盐和流量 | 饲料中的总氮量 |
| 磷 | 溶解态/颗粒态、捕集量和排放量 | 由氮推算得出的估算值 |
| 植物吸收与排放 | 收获量、排放量和回收量 | 滤前负荷 |
同时测量滤器进水口和出水口。捕集到的固体是被丢弃、单独矿化,还是返还给植物,都会改变下游负荷。
计算一份合成负荷
假设饲料每日投入 10 g 氮和 1.2 g 磷。固体捕集去除 3 g N 和 0.8 g P;植物吸收 4 g 溶解态 N 和 0.2 g P。剩余量为 3 g N 和 0.2 g P。
inputs = {"N": 10.0, "P": 1.2}
solids = {"N": 3.0, "P": 0.8}
plants = {"N": 4.0, "P": 0.2}
residual = {k: inputs[k] - solids[k] - plants[k] for k in inputs}
print(residual)
输出为 {'N': 3.0, 'P': 0.2}。剩余量可能包含硝化作用、鱼池储存、其他排放和测量误差;它既不是植物吸收量,也不是安全负荷上限。
记录被捕集固体的去向
将固体移到另一个容器并不会让养分消失。请记录含水率、储存时间、处理方式,以及物料是被返还、堆肥还是丢弃。如果处理后的液体被返还,须在养分台账和卫生台账中同时登记一个新批次。
不要凭氮的比例来推算需要补充多少磷或微量元素。将饲料、鱼、基质、植物生物量和排放边界分开记录,不要把无法解释的剩余量强行归零。
范围
本指南涵盖固体、氮和磷的核算边界。饲料成分、滤器设计、矿化动力学、物种限值、病原体以及食品放行决策不在本文范围内。接下来将讨论把水质负荷与鱼、植物容量连接起来的设计变量。
将水质负荷与鱼、植物容量连接起来
单一的鱼-植物比例不是系统设计
上一篇指南将固体、氮和磷负荷分开记录。本指南将这些负荷与鱼池、生物滤器和植物容量连接起来。俄克拉荷马州立大学将固体去除、生物过滤和水培单元视为独立组件,并建议在为它们分别定容之后再增加容量。SRAC 水耕共生指南
植物与鱼之间的关系会随物种、生长阶段、投喂率、过滤、流量和收获周期而变化。不要把一个固定比例当作安全限值或性能保证。应在同一个每日时间窗口内比较负荷与容量。
保留五张设计表
| 表 | 最少变量 | 与之比较的容量 |
|---|---|---|
| 鱼池 | 生物量、饲料、投喂时间、温度、溶解氧 | 呼吸、排泄与池体积 |
| 固体 | 进水质量、捕集量、含水率、去向 | 滤器处理能力与清洗间隔 |
| 生物滤器 | 氨负荷、亚硝酸盐、硝酸盐、接触面积、流量 | 峰值负荷与供氧量 |
| 植物 | 种植面积、作物阶段、收获、吸收 | 溶解养分剩余量与光照/水温 |
| 水力与余量 | 循环、交换、停机、储备 | 最小区域流量与恢复时间 |
不要用鱼的生物量替代饲料投入量作为核算依据。随着鱼从幼鱼长到可收获阶段,即使数量不变,饲料和废物的时间序列也会变化。将新种下的植物区域与可收获植物区域作为不同阶段分别记录。
将一份合成的每日负荷分配到容量中
假设每日饲料 100 g,氮负荷 10 g,固体路径中含氮 3 g,植物吸收目标为 4 g。剩余量为 3 g,包括生物滤器处理、鱼池储存、排放和测量误差。不要为了把这个剩余量强行归零而增加植物面积;应将其归入下一批容量列。
load = {"feed_g": 100.0, "N_g": 10.0}
paths = {"solids_N_g": 3.0, "plant_target_N_g": 4.0,
"biofilter_or_other_N_g": 3.0}
assert sum(paths.values()) == load["N_g"]
capacity = {"fish_tank_feed_g": 120.0,
"biofilter_N_g": 3.5,
"plant_target_N_g": 5.0}
headroom = {"feed_g": capacity["fish_tank_feed_g"] - load["feed_g"],
"biofilter_N_g": capacity["biofilter_N_g"] - paths["biofilter_or_other_N_g"],
"plant_N_g": capacity["plant_target_N_g"] - paths["plant_target_N_g"]}
print(headroom)
输出为 {'feed_g': 20.0, 'biofilter_N_g': 0.5, 'plant_N_g': 1.0}。这些只是合成的容量差值,不是物种限值、食品安全结论或病原体控制手段。用最小的余量来判断鱼池、生物滤器、植物单元还是水泵会成为第一个瓶颈。
保留时间窗口和停机边界
日均值可能掩盖投喂后的峰值、夜间溶解氧下降、水泵停机以及清洗期间的滤器旁路。请记录投喂时间、采样时间、流量、溶解氧、氨、亚硝酸盐、硝酸盐和固体状态。停机期间,不要假设植物面积就能让系统保持安全;应将鱼池、生物滤器和植物的恢复步骤分开记录。
范围
本指南涵盖将负荷与容量连接起来所需的变量、时间窗口和余量。物种阈值、硬件滤器设计、饲料成分、流体计算以及食品放行决策不在本文范围内。接下来将讨论根据鱼、微生物和植物观察结果更新设计表的运行更新。
根据观察结果更新负荷与容量表
不要把观察结果压缩成一个健康评分
上一篇指南将饲料、生物量、固体、生物过滤、植物面积和流量分开记录到容量表中。本指南根据鱼、微生物和植物观察结果更新这些表。俄克拉荷马州立大学描述了监测氨、亚硝酸盐、硝酸盐、pH 值、温度和溶解氧的做法,同时分别检查鱼、细菌和植物。硝化与维护
带时间戳的快照可以把多项测量归为一组,但不应把它们的含义混为一谈。鱼池溶解氧偏低、生物滤器亚硝酸盐上升和植物吸收下降,各自有不同的边界和应对方式。
在每份快照中保留五个边界
| 边界 | 代表性观察项 | 更新的表字段 |
|---|---|---|
| 鱼池 | 生物量、饲料、溶解氧、温度、行为 | 投入负荷与鱼池余量 |
| 固体 | 捕集质量、含水率、清洗时间、去向 | 固体路径与滤器余量 |
| 生物滤器 | 氨、亚硝酸盐、硝酸盐、流量 | 转化负荷与滤器余量 |
| 植物 | 面积、作物阶段、收获、叶片状况 | 吸收目标与植物余量 |
| 水力/卫生 | 循环、停机、区域、批次 | 恢复与隔离状态 |
为每一行附上 observed_at(观察时间)、采样位置、单位、方法和数据缺失原因。缺失数据应变为 review(复查)状态,而不是从上一行复制出一个新的测量值。
用合成数据计算余量变化
将早晚观察结果与之前的容量表进行对照。这里我们计算饲料、生物滤器氮和植物吸收的余量。
capacity = {"feed_g": 120.0, "biofilter_N_g": 3.5, "plant_N_g": 5.0}
morning = {"feed_g": 100.0, "biofilter_N_g": 3.0, "plant_N_g": 4.0}
evening = {"feed_g": 108.0, "biofilter_N_g": 3.2, "plant_N_g": 4.4}
headroom = {
slot: {k: capacity[k] - obs[k] for k in capacity}
for slot, obs in [("morning", morning), ("evening", evening)]
}
delta = {k: headroom["evening"][k] - headroom["morning"][k] for k in capacity}
print(headroom)
print(delta)
早上的余量为 {'feed_g': 20.0, 'biofilter_N_g': 0.5, 'plant_N_g': 1.0};傍晚为 {'feed_g': 12.0, 'biofilter_N_g': 0.3, 'plant_N_g': 0.6};变化量为 {'feed_g': -8.0, 'biofilter_N_g': -0.2, 'plant_N_g': -0.4}。变化量为负表示剩余余量减少了。这不是自动调整投喂量或流量的指令。
将更新与停止状态分开
定义诸如 normal(正常)、watch(观察)、hold(暂停)和 isolate(隔离)等状态。watch 要求重复采样或核查传感器。hold 暂停新的投喂、转移或重新引入。isolate 将某个批次或区域隔离。记录谁有权解除该状态,以及需要哪项观察结果。
传感器数据缺失、校准时长和采样位置的变化都是与水质数值本身分开的质量标记。不要用平均值掩盖异常值,也不要用另一个区域的数值替代。
范围
本指南涵盖观察快照、余量更新和状态转换记录。物种阈值、传感器校准、病原体决策、食品放行和硬件自动化不在本文范围内。接下来将讨论根据观察历史进行区域与批次级隔离和恢复记录。
区域隔离与分阶段恢复记录
一个已重启的区域仍可能包含处于暂停状态的批次
沿着观察更新指南的思路,将一起事件与其隔离和恢复记录连接起来。区域(zone)标识设备和水路连接;批次(lot)标识一个鱼群、一批植物产出或收获批次,或一批被收集的水。恢复区域流量并不会解除所有相关批次的状态。
俄克拉荷马州立大学描述了针对鱼、细菌和植物监测氨、亚硝酸盐、硝酸盐、pH 值、温度和溶解氧的做法。参见硝化与维护。下文的记录设计是参考这些监测需求给出的原创示例,并非该大学规定的恢复程序。
在检测之前重建关联关系
将检测时间与调查期间分开记录。回顾自上一次有效观察以来,经共用鱼池、鱼类转移和植物灌溉产生的水流关联。将缺失时段标记为“未解决”,而不是记录为没有发生接触。
| 记录 | 所需信息 | 合成示例 |
|---|---|---|
| 事件 | 编号、检测时间、观察编号、位置 | INC-01、09:00、OBS-17、鱼池 A |
| 调查区间 | 起点、终点的依据,未知时段 | 08:00 的有效观察至 09:10 经确认的隔离 |
| 关联 | 供水、回水、旁路及变更时间 | 水 W-01 于 08:40 转移到共用鱼池 |
| 批次 | 鱼、植物、水及父子关系 | F-A、P-A、W-01 及混合子批次 W-02 |
| 隔离验证 | 请求的操作、观察到的结果、操作人、证据 | 09:05 请求关闭;09:10 核查流路 |
批次谱系有助于追查来源。若要从可疑的 W-01 追查去向,可顺着其子批次和后代向前追踪,再追踪它们随后的接触对象。当前的管路图无法重建阀门关闭之前发生的转移。
隔离期间维持生命支持系统
断开一条共用回路会改变鱼池和生物滤器的水质和氧气状况。将每条区域路径与现场关于维持曝气和循环、备用路径及断电情况的规程关联起来。同时也要记录被断开的植物区域的灌溉和排水去向。
将 isolation_requested(已请求隔离)与 isolation_verified(已验证隔离)分开保存。阀门关闭指令并不能证明已实现物理隔离,包括旁路和回流的情况。在隔离导致某些生物滤器容量或植物面积不可用之后,须重新评估容量表。
恢复需要在给定负荷下的观察结果
将恢复复查与纠正措施、已验证的设备路径、观察质量、在拟定负荷下的响应以及负责复查人的决定关联起来。针对物种、设备和运行条件分别定义观察周期和可接受范围。在零负荷下水质改善,并不能证明系统具备承受此前投喂负荷的能力。
| 区域记录状态 | 需保留的证据 | 独立的决策 |
|---|---|---|
| isolated(已隔离) | 已验证的隔离、生命支持路径、受影响批次 | 确认原因 |
| recovery_review(恢复复查) | 纠正措施、校准与采样核查、带负荷条件的观察 | 重新连接的批准 |
| limited_restart(有限重启) | 批准编号、限定负荷、监测频率、停止标准 | 恢复到正常负荷 |
| normal(正常) | 重启后观察、容量表、复查人决定 | 单个批次的暂停和产品放行 |
例如,区域 A 可能在 10:00 获得有限重启批准,而在 08:40 转移的 W-01 及其混合子批次 W-02 仍处于 hold 状态。如果异常在 11:00 复现,应在同一事件编号下追加记录,撤销有限重启批准,并调查重新连接期间接触过的批次。须保留此前的正常观察记录和暂停历史。
构建一条恢复记录
针对合成事件 INC-01,为区域 A 的有限重启和 W-02 的持续暂停分别创建记录行。须包含 event_id、object_type、object_id、previous_state、new_state、effective_at、recorded_at、evidence_ids、reviewer 和 next_review_at。使用带时区信息的时间戳,以便按实际发生顺序重建迟到的记录。
检查三件事:能否将 W-02 追溯到 W-01;区域重启批准是否与水批次放行分开保存;以及 10:00 之后发生的接触能否在事件复发时被追加。缺失的证据和未解决的调查必须始终清晰可见地保持未完成状态。
范围与下一步
本指南设计了连接事件、关联关系、批次和恢复决策的记录。它不验证设备隔离、物种限值、病原体检测、处理条件或食品放行。水耕共生入门系列到此接续到受控蘑菇栽培中的真菌生物学、基质和生长阶段,这些假设必须与光合作物模型分开建立。

评论
请先登录。
暂无数据。