目次 — 知りたいところから読む
CEAの栽培方式 — NFT・DWC・点滴の水の流れを読む
同じ養液でも、根へ届く経路は違う
タンクのEC・pH・水温を整えても、その値が根の周囲へ一様に届くとは限らない。養液が薄い膜で流れるのか、根がまとまった液量に浸るのか、培地へ点滴されるのかによって、観測すべき場所と水の帳簿が変わる。
投入制御の記事に続き、今回はNFT、DWC、培地への点滴を比べる。優劣の順位や設備の推奨仕様ではなく、タンクから根、そして戻り・排出までの経路を描けるようにする基礎である。数値例はすべて合成条件とする。
まず三つの根圏を見分ける
| 方式 | 根の周囲 | 水の主な経路 | 最初に分けて見る量 |
|---|---|---|---|
| NFT:Nutrient Film Technique | 栽培チャンネル内を流れる薄い養液膜と根 | タンク → 分配 → チャンネル → 回収 → タンク | 各列の流量、戻り、局所的な滞留 |
| DWC:Deep Water Culture | 根が栽培槽の養液に浸る | 栽培槽内または接続槽との循環。酸素供給も管理 | 液量、循環分布、根付近のDO・水温 |
| 培地点滴 | 固相・水・空気を含む培地 | タンク → エミッター → 培地 → 排液 | 株ごとの供給、培地の貯留変化、排液量 |
NFTの定義と循環構成はVirginia Cooperative ExtensionのNFT解説、DWCの栽培槽・循環・酸素供給は同DWC解説に基づく。点滴で個別の容器や培地へ給液する構成はUniversity of Kentuckyの水耕灌水資料でも説明されている。
代表的な経路を簡略化した概念図。配管設計図ではない。点滴の排液回収と系外排出は選択する構成を示し、常に両方へ流すという意味ではない。
NFTでは、ポンプの総流量より各列への分配を見る
NFTでは根のあるチャンネルへ養液を送り、下流で集めて戻す。ポンプが動いていても、特定の列が詰まる、分配が偏る、チャンネルがたわんで液がたまるといった局所状態までは分からない。したがって本記事では、ポンプの稼働信号に各列の流入と出口の状態を組み合わせる観測を提案する。
VCEのNFT資料は、排水できる支持構造、戻りの回収系、揚程と摩擦損失を考慮したポンプを説明している。根が育った後の流路も確認し、空のチャンネルで測った条件だけを運転の根拠にしない。
合成例として8列へ各1 L/minを60分送ると、積算した循環量は480 Lとなる。同じ時間の外部補給が3 Lだったとしても矛盾しない。同じ水が繰り返し通るので、480 Lを外部から使った水量と呼ぶことはできない。
また、ポンプを止めた後にチャンネルや配管からタンクへ戻る水がある。運転中と停止後の水位差を、すべて蒸散・吸収と解釈しない。タンクだけを境界にする帳簿と、配管・栽培槽を含めた帳簿を分ける。
DWCでは、水が残ることと酸素が届くことを分ける
DWCは根が養液に浸る構成であり、NFTのような薄い流れとは液の持ち方が異なる。液中の根が必要とする酸素は、液量が多いだけでは確保できない。VCEのDWC資料は、栽培槽の循環と、ベンチュリや空気ポンプ・散気装置による酸素供給の構成を説明している。
ここから本記事では、タンクの水位だけでなく、根の密集部など複数の位置でDOと水温を調べる記録を提案する。循環と曝気が同じ機器に依存するか、別系統かも記録する。空気の流量[L/min]と水の流量[L/min]は単位が同じでも、同じ収支項ではない。
例えば200 Lの槽を10 L/minで再循環する場合、名目上の一巡時間は、
となる。ただし全ての水が20分で一度ずつ通ったという意味ではない。短絡流や滞留があれば分布は異なる。これは新しい水への交換時間でも、前記事の混合待ち時間でも、酸素が十分になるまでの時間でもない。
循環や曝気が止まったとき、水が槽内に残っていても根圏の条件が維持されるとは限らない。停止から何分耐えられるかは、この比だけでは計算できない。
点滴では、供給量から培地に残る水を差し引く
点滴は供給方法であり、必ずしも排液を捨てる方式ではない。排液を回収して再利用する構成と、系外へ出す構成を区別する。Kentuckyの資料は、Bato/Dutch bucketや袋・容器栽培に点滴を使い、排液を集める構成を扱っている。
根の周囲に培地がある場合、入った水の一部はその時間区間の終わりにも培地へ残る。対象の培地群を境界とし、同じ観測区間の給液を I、排液を D、培地に保持された水量の変化を \Delta S、植物への移動を U、蒸発を E、その他の未計測流出を L とすると、単位をLにそろえて、
と整理できる。したがって I-D だけでは植物が吸った水量にならない。重量から貯留変化を推定する場合も、容器や植物体など水以外の変化をどう扱うかを決める必要がある。
合成例として、8個のエミッターが各0.05 L/minで合計10分作動すると、給液は4 Lとなる。その運転を含む同じ2時間区間で、排液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 | 分配先と戻りの通水、局所的な滞留・漏れ | ポンプON、タンクECのみ |
| DWC | 根圏DO・水温の分布、循環・酸素供給の状態 | 槽に水がある、名目一巡時間のみ |
| 点滴 | 末端吐出のばらつき、培地の水分状態、排液の量と行き先 | 合計ポンプ流量、タンク水位のみ |
戻りの液を再利用する場合は、戻りの量と水質、処理の経路も記録する。ECが同じという理由だけで、戻り液を原水と同一扱いしない。具体的な衛生管理・処理設計は別の検討が必要になる。
本記事で整理したのは、三方式の水の経路と測定境界までである。空中の根へ噴霧するエアロポニックス、多段配置の分配・戻り、実測での制御検証はまだ扱っていない。次は多段栽培で高さや分岐が増えたときの、揚程・流量分配・排水の関係へ進む。
CEAの多段送液 — 揚程・流量分配・停止時の戻りを読む
ポンプが動いていても、上段まで同じ量が届くとは限らない
栽培方式と水の経路を多段へ広げると、上段への高さ、枝管ごとの抵抗、停止時に戻る水を同時に考える必要がある。総流量が十分に見えても、ある段への供給不足を別の段の流量が隠していることがある。
本記事は、低い開放タンクから複数の高さにある大気開放の給液口へ送り、重力で回収する構成を対象とする。実機選定ではなく、合成ポンプ曲線と枝管モデルで考え方を確かめる。作物別の必要流量、圧力補償エミッター、噴霧ノズルの選定は扱わない。
揚程はラックの高さだけではない
NDSUの灌漑ポンプ資料は、全揚程を静水頭、圧力水頭、摩擦、速度水頭に分け、流量と揚程をポンプ曲線で確認する考え方を説明している。水源の自由水面と出口の間では、一般に次の形で整理できる。
各項はmで表す。\Delta z は高さの差、\Delta p は圧力差、h_L は配管・継手・弁などの損失である。流れのないときの最大揚程と、必要流量で得られる揚程は同じではない。最大流量と最大揚程を同時に使える性能値として扱わない。
VCEのNFT資料も、高さと摩擦損失を考慮した送液と、重力で戻せる回収構造を説明している。開放チャンネルで圧力が解放される構成では、「下へ戻るから上げる高さは差し引ける」とはしない。連続した満水の閉ループとは境界が違う。
三段の分岐を同時に解く
ここでは自由水面を高さゼロとし、その高さにある理想的な分岐点で利用できる水頭を H とする。分岐点の圧力水頭を近似的に扱い、マニホールド内の速度水頭差は無視する。枝管の出口は大気開放で、出口速度の項は簡略化した二乗抵抗へ含める。
合成ポンプ曲線を H_p(Q)=6-0.020Q^2、共通配管の損失を 0.005Q^2 と置く。Q はL/min、揚程はmであり、係数の単位はm/(L/min)²である。係数をSI流量[m³/s]の式へそのまま移さない。
枝管 i の出口高さを z_i [m]、抵抗係数を k_i とすると、
を同時に満たす点を探す。枝管は逆流しない仮定で、出口まで水頭が足りなければ 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では上段流量がほぼ半分になる一方、下段・中段は増える。共通系の流量が減り、ポンプ曲線と共通配管損失に応じて分岐点の水頭が変わるためである。「枝管を一つ絞っても他の枝管は変わらない」という仮定は、この例では成り立たない。
横軸は下段・中段・上段、縦軸はL/min。Aは基準、Bは上段抵抗増加、Cは上段高さ増加。各棒は合成モデルの計算値であり、実測ではない。
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になる。
この例は定常・固定水位・一定抵抗を仮定し、吸込条件、キャビテーション、機器効率、水撃、管内の空気、根の成長による時間変化を含まない。実機ではメーカー曲線の適用範囲と吸込条件を別途確認する。
停止すると戻ってくる水の置き場
送液できることに加え、停止時にタンクへ戻る量を受け止められるかを確認する。排水は送液ポンプの流量だけで決まらず、勾配、断面、空気の通り道、詰まり、出口の水没状態なども関わる。
別の合成例として、12本のチャンネルが各長さ1.5 m、濡れた幅0.08 m、平均液深0.005 mで、その水が全て戻ると仮定する。チャンネルの合計は7.2 L、配管からさらに2.8 L戻れば、戻り量は10 Lとなる。根や形状の体積はこの算術例では無視する。
運転中のタンクの空き容量が8 Lなら、計算上2 L不足する。総容量ではなく運転水位から上の空き容量を比べる。10 L以上空いていれば実設備で十分と断定するものではなく、実際の戻り、局所的なあふれ、測定誤差を確認する必要がある。
タンクの空き容量が十分でも、上流の回収管が詰まれば段であふれうる。停止後の戻り量の確認と、運転中の排水能力の確認は別の試験として記録する。
多段化で追加する観測
| 確認場面 | 記録するもの | それで切り分けること |
|---|---|---|
| 通常運転 | 総流量、各段流量、圧力、水位 | 送液能力と分配の偏り |
| 分岐の変更後 | 全段の流量変化 | 一つの調整が他段へ与える影響 |
| 停止・再始動 | 戻り量、最大水位、通水回復 | 空き容量と始動時の供給 |
| 根が育った後 | 局所滞留、排水、流路の状態 | 初期と運転後の抵抗差 |
最終的に投入制御へ接続するのは、単なるポンプON信号ではなく、必要な段へ水が届き、戻りも成立しているという観測である。今回整理したのは多段送液の合成モデルと確認項目まで。実機の配管径や栽培性能は未検証である。次はエアロポニックスで、根へ噴霧する経路とノズル・圧力・噴霧間隔の扱いを整理する。
CEAのエアロポニックス — 噴霧経路・圧力・間隔を分けて設計する
根が濡れたことと、噴霧が成立したことは違う
多段送液の記事では、高さと枝管抵抗が流量を変えることを扱った。エアロポニックスでは、液が根へ連続した膜として流れるのではなく、ノズルから液滴として供給される。ポンプが動いていても、圧力不足、ノズル詰まり、液滴の到達範囲、停止後の再加圧が未確認なら、根圏への供給を保証できない。
本記事は噴霧システムの構成要素と観測境界を整理する。ノズル型式や作物別の噴霧時間を推奨するものではない。数値は合成条件である。
経路を四つに分ける
| 部分 | 確認する量 | その量だけでは分からないこと |
|---|---|---|
| タンク・吸込 | 液位、液温、ストレーナ差圧 | ノズル先端の圧力 |
| ポンプ・配管 | 流量、吐出圧、電力、脈動 | 各ノズルの液滴分布 |
| ノズル列 | 入口圧、ノズル別吐出、詰まり | 根表面の濡れ方 |
| 根室・排液 | 根の位置、回収量、漏れ | 次の噴霧までの水分状態 |
矢印は代表的な液体経路。空気の流れ、液滴の蒸発、根表面の保持は別の観測対象である。
圧力はポンプ出口の値で代用しない
ポンプ出口の圧力が正常でも、分岐、フィルタ、標高差、曲がり、ノズル入口の損失を通れば、末端圧力は変わる。各ノズルの吐出が同じになるという仮定を置くなら、ノズル列の入口圧と末端圧、列ごとの採液量を同時に記録する。
ノズルの合成モデルを、吐出量 q_i=k_i\sqrt{\max(p_i-p_{min},0)} とする。p はkPa、q はmL/min、k_i は合成係数である。これはメーカー曲線ではなく、圧力低下で吐出が減る関係を示すだけの教材式である。
同じ圧力でも k_i が違えば吐出は変わる。ノズル交換後に同じ指令時間を使う場合、実吐出を再校正する。ノズル列を並列にすると、一本の詰まりが他の枝の圧力と流量を変えることがある。
噴霧間隔はタイマーだけで決めない
噴霧を10秒、停止を50秒とする設定は、根室の保持水、液滴の到達、温度・湿度、排液の戻りを表していない。間隔は、少なくとも次の時刻を分けて記録する。
- 指令開始と実ポンプ始動。
- ノズル列の圧力到達。
- 根室の最初の噴霧到達。
- 指令停止と実流量ゼロの確認。
- 次の噴霧を許可できる観測時刻。
停止を送信した時刻だけで流量ゼロと判断しない。投入制御の記事と同じく、異常時は再試行を積み重ねず、原因確認後に明示的に復旧する。
合成ノズル列を計算する
3本のノズルへ入口圧120 kPa、最低作動圧40 kPaを与え、係数を[2.0, 1.8, 1.2]とする。同じ指令で3本が同量になる例ではない。
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である。ここで重要なのは数値の推奨ではなく、係数と圧力を保存し、列ごとの偏りを残すことである。
許可条件と異常条件を分ける
| 状況 | 追加で確認するもの | 直ちに再噴霧しない理由 |
|---|---|---|
| 末端圧が低い | フィルタ差圧、液位、配管漏れ | ポンプ時間を延ばすと別枝へ過量になる |
| 一本の吐出が低い | ノズル交換前後、詰まり、列圧 | 根室全体の不足とは限らない |
| 停止後も滴下 | 弁の閉止、配管の残液、逆止 | 指令時間と実液量がずれる |
| 根室の観測が欠測 | センサー時刻、カメラ、回収量 | 古い値で間隔を短縮できない |
エアロポニックスでは、噴霧量、液滴の分布、根表面の保持水、回収量を同じ変数として扱わない。根室を開けて目視した一地点の濡れだけで、全ノズルの成立を推定しない。
範囲
本記事は液滴経路、圧力観測、間隔の時刻定義までを扱った。ノズルのメーカー選定、粒径測定、病原体衛生、停電時のバックアップ設計、実測した根の水分応答は未検証である。次はエアロポニックスを含む方式で、回収液の衛生・再利用境界を整理する。

コメント
コメントの投稿にはログインが必要です
まだコメントはありません。