哈迪-克罗斯法 配管网模拟器 返回
流体工程

哈迪-克罗斯法 配管网模拟器

用于体验包含循环的配管网流量分布求解的古典迭代法"哈迪-克罗斯法"的工具。在连接同两个节点的并联2管中加入全流量,调整阻力系数和初始分配,可实时观察随迭代进行各管流量如何收敛。

参数设置
全流量 Q
L/s
两个节点间流过的合计流量
管1的阻力系数 K₁
上方管道。h₁ = K₁·Q₁²(Q 单位 m³/s)
管2的阻力系数 K₂
下方管道。h₂ = K₂·Q₂²(Q 单位 m³/s)
初始分配(管1的比例)
%
迭代的出发点。分配给管1的初始流量比例
计算结果
管1的收敛流量 (L/s)
管2的收敛流量 (L/s)
损失水头(收敛)(m)
第1次流量修正 ΔQ (L/s)
收敛所需迭代次数 (次)
流量分配比
配管循环图 — 流动动画

两个节点由上下两根管道连接成一个循环。粒子密度和速度表示收敛的流量分配,各管显示损失水头数值。

各迭代步的流量收敛
损失水头 vs 管1流量
理论·主要公式

$$h = K\,Q^{2}, \qquad \Delta Q=-\frac{\sum K\,Q^{2}\,\text{sign}}{\sum 2\,K\,|Q|}$$

各管损失水头 h(K:阻力系数,Q:流量 m³/s)和循环流量修正量 ΔQ。修正 ΔQ 以相同方向加到循环内所有管道上,在保持各节点连续条件的情况下,使循环损失水头失衡逐步趋近于零。

$$Q_1 = Q\,\frac{\sqrt{K_2}}{\sqrt{K_1}+\sqrt{K_2}}, \qquad Q_2 = Q\,\frac{\sqrt{K_1}}{\sqrt{K_1}+\sqrt{K_2}}$$

并联2管在 h₁ = h₂ 达到平衡时的收敛流量(闭形式解)。迭代应收敛到此值。本工具实际运行迭代循环,此公式用于验证。

$$\Delta Q=-\frac{K_1 Q_1^{2}-K_2 Q_2^{2}}{2\,(K_1 Q_1 + K_2 Q_2)}$$

应用于并联2管的修正公式。每次迭代 Q₁ += ΔQ、Q₂ −= ΔQ,当|ΔQ| 小于容差值(1e-6 m³/s)时停止迭代。

哈迪-克罗斯法概述

🙋
我第一次听说"哈迪-克罗斯法"。这是用于水管计算的方法吗?
🎓
完全正确,就是水管网的计算方法。城市的给水管不是单根分支,而是许多根管道连接在一起形成"循环(闭路)"。我们想知道这些管道各自的流量。问题在于这无法用手工计算一步求出。1936年,结构工程师哈迪-克罗斯发表了用迭代计算实用化求解这个问题的方法。那是计算机普及前的几十年。
🙋
为什么一步求不出来?流量应该可以用加法求出来吧……
🎓
这是因为有两个条件,而且它们互相制约。首先是"连续条件"——任何节点处,流入量必须等于流出量。其次是"能量条件"——任何闭循环绕行一周时,损失水头之和必须为零,即回到起点时压力相同。困难在于,管道的损失水头与流量的平方成正比(h = K·Q²)。因此联立方程组是非线性的,用代入法无法一步求解。
🙋
仅仅因为有平方项就这么复杂吗?哈迪-克罗斯是怎么解决的?
🎓
他的想法非常优美。首先,假设流量值使连续条件满足,流量分配完全是"假定的"。这样循环的能量条件就不能满足,每个循环内都会留下一点损失水头的失衡。然后,我们计算这个失衡的"流量修正量 ΔQ"——这是用牛顿法一步,用失衡量除以循环对流量的灵敏度。将这同一个修正加到循环内所有管道上。这样做既不破坏连续条件,又能缩小能量失衡。重复这个过程,修正量迅速变得可以忽略不计,流量收敛。
🙋
这个工具中是并联2根管子。即使我把初始分配从50%改成别的数值,最后也会落在同一个流量上吗?
🎓
正是这样,这是哈迪-克罗斯法最有力的地方。初始分配设为30%还是70%都不要紧,只要不断迭代,最终流量就会收敛到同一个值。对于并联2管,答案甚至可以写成闭形式:Q₁ = Q·√K₂/(√K₁+√K₂)。这完全符合直观感受——阻力小的管道承载更多流量。看一下"各迭代步的流量收敛"图,出发点再不同,也会平滑地向同一个值靠拢。通常3~5次迭代就基本收敛了。
🙋
仅有2根管子就这样了,那城市整个几百根管子是计算机在处理吧。
🎓
完全正确。现代的上水道模拟(EPANET 等著名软件)内部虽然用了更精细的求解方法,但"连续条件和能量条件交替满足"的骨架思想和哈迪-克罗斯法是一样的。区域热供应网或燃气管网的分析也是这个思想。手工计算时代的智慧,至今仍在发挥作用。

常见问题

哈迪-克罗斯法是求解包含循环(闭路)的配管网流量分布的迭代计算方法。首先在每根管道中假设一个流量,使其满足各节点的连续条件(流入=流出)。假设的流量不满足循环的能量条件(绕行一周的损失水头之和=0),所以循环内仍有损失水头的失衡。通过牛顿法一步计算出该失衡的流量修正量 ΔQ,对循环内所有管道应用相同的修正。重复此过程,修正量逐渐减小,流量最终收敛。
配管网需要同时满足两个条件。其一是连续条件(各节点处流入量=流出量),其二是能量条件(每个闭循环绕行一周时损失水头之和为零)。由于管道损失水头 h 与流量 Q 的平方成正比(h = K·Q²),所得的联立方程组是非线性的,无法用代入法一步求解。1936年,结构工程师哈迪-克罗斯发表了用迭代法实用化求解该问题的方法,这是计算机普及前几十年的事。
ΔQ = −(Σ K·Q²·sign) / (Σ 2·K·|Q|) 。分子是循环内绕行一周的损失水头失衡,分母是循环整体对流量的灵敏度(损失水头微分之和)。这对应于循环失衡的牛顿法一步。所得的 ΔQ 以相同方向加到循环内所有管道上,在保持各节点连续条件的前提下,逐步缩小循环的能量失衡。
连接同两个节点的并联2管,流量分配使得两管的损失水头相等。从 h = K·Q² 和 h₁ = h₂ 求解,收敛流量为 Q₁ = Q·√K₂/(√K₁+√K₂)、Q₂ = Q·√K₁/(√K₁+√K₂)。阻力小的管道承载较多流量,流量按阻力系数平方根的倒数比例分配。本工具用闭式公式验证,实际上通过哈迪-克罗斯反复循环求到相同的值。

现实应用

上水道(供水)网设计:城市的供水管网是由泵站或配水池通过多条管道呈格子状连接,形成多个循环供水到各家各户。我们需要知道哪根管道流多少水、哪个地点压力下降多少,才能确定管径和布置。哈迪-克罗斯法是这种分析的出发点,现代上水道模拟软件(EPANET等)虽然内部求解方法更先进,但"同时满足连续条件和能量条件"的框架思想不变。

区域供热或地区热供应网:大规模城市街区中,一个热源厂房通过环形配管向各栋楼供应温水或冷水。各楼的负荷时刻在变化,流量分配也随之变化。通过求解配管循环的流量和压力损失,可估算泵的动力需求,检验末端是否能收到所需温度和流量。

燃气管网和工业装置配管:城市燃气的中压和低压管网也有多个循环,用哈迪-克罗斯法的思想来分析向各用户的供应。化学工厂或空调风道网这样的流体在多条路径分流再合并的系统,也可用"循环失衡通过迭代消除"的想法来处理。

工程教育和数值方法入门:哈迪-克罗斯法是用迭代牛顿法求解非线性联立方程组的一个视角清晰的入门例子。通过并联2管这个最小的循环,体验"初值不同但最后收敛到同一答案"的现象,为更大规模的数值流体分析和电路网分析打下基础。本工具就是为培养这种直观理解而设计的教材。

常见误解和注意事项

常见的误解首先是"把阻力系数 K 看作常数"。为了论述清晰,本工具固定K值,但在实际管路中,损失水头 h = K·Q² 中的 K 通过摩擦系数来间接地依赖于流量(雷诺数)。在湍流区K的变化较小,但严格来讲并非常数,精确的分析中每次迭代都要更新摩擦系数。本工具的结果应理解为给定K值情况下的精确收敛解。

第二个常见错误是"盲目相信反复几次就一定收敛"。对于并联2管这样简单的循环,3~5次反复就能收敛,但当循环众多交缠、或初始分配过度偏斜时,收敛会变慢甚至出现振荡。实际编程中必须设置反复次数上限(本工具约50次),确保不会进入无限循环。不收敛时需重新评估初值或改用更稳健的求解法。

第三个常见误区是"逐管独立计算修正 ΔQ"。哈迪-克罗斯法的核心在于,ΔQ 是"针对整个循环计算一次",然后对循环内所有管道施加相同的修正。若各管分别修正,各节点的连续条件就会被破坏。正因为全循环一致的修正既保证了连续,又能消除能量失衡,这个古典手法至今不衰。

使用指南

  1. 输入全流量Q(L/s)。例如,设置给水管的总流量为100 L/s
  2. 分别输入管1和管2的阻力系数(由管径、长度、粗糙度计算得出)。例如钢管φ50mm长50m的阻力系数约0.8,φ40mm长40m约1.5
  3. 输入初始流量估计值ΔQ并启动模拟。哈迪-克罗斯法通过反复计算修正流量分配,使管内损失水头达到一致的真实值

具体计算示例

配水管网中总流量100 L/s分别流入管1(阻力0.5)和管2(阻力1.2)的情况:从初始估计Q1=60 L/s、Q2=40 L/s开始计算。第一次流量修正ΔQ=-8.3 L/s被计算出来,Q1修正为51.7 L/s、Q2修正为48.3 L/s。当损失水头差小于0.001 m时,收敛所需的迭代次数约6次,最终两管的损失水头都达到3.2 m时达到收敛

实务中的注意要点