準二次元不等流計算1/4:不等流計算の基礎

基礎式

矩形近似した断面の不等流計算の基礎式はベルヌーイの式とマニング則より次式となる。

ここに、:単位幅流量、:水深、:河床高、:エネルギー勾配、:マニングの粗度係数、:重力加速度とする。

等流水深、限界水深は次式となる。

ここに、:河床勾配とする。

離散化

ベルヌーイの式とマニング則を連立させて離散化すると次式となる。
なお、:上流側、:下流側とする。

エネルギー勾配は上下流断面の平均値を用いている。

常流の場合、下流から逐次計算を行なうため未知数はのみとなる。

水面形方程式

前出のベルヌーイの式を変形して次の水面形方程式(水深の微分に関する方程式)を得る。

ここに、:フルード数とする。

水面形方程式の分子=0はのため等流状態を示し、前出の等流水深が得られる(等流水深の定義)。
また、分母=0から限界水深が得られ(限界水深の定義)、のため水面形が得られない。この地点は支配断面と呼ばれる。

上式をを用いて展開すると次式が得られる。(式展開は例えばここを参照)

不等流計算を行なう上で本式より以下を理解しておく必要がある。

水面形の追跡方向

  • またはまたはは、常流
  • またはまたはは、射流

と定義される。
は(微小振幅波理論による水面波の)波速であり、射流はのため水面変化が下流のみに影響するが、常流では上流にも影響をすることが示されている。
そのため、不等流計算の水面形の追跡方向は、常流は下流から上流、射流は上流から下流となる。

水面形の概形

の関係よりの符号が決まるため水面形の概形が把握できる。教科書にみられる緩勾配水路(M水路、)や急勾配水路(S水路、)などの水面形はこの考え方による描くことができる。

出典:椿東一郎 水理学1 pp.151

数値計算方法

未知数は直接計算できなため反復法によって近似解を求める。ここでは、ニュートン法を用いた。(参考:ニュートン法とは

ニュートン法のアルゴリズムに沿うと、計算式は次のとおりとなる。

サンプルコード

単位幅流量0.5、マニングの粗度係数0.02、河床勾配1/500、水路延長50の矩形水路を対象に下流端水位を限界水深としたときの水面形を計算せよ。なお、は0.1とする。

import numpy as np

q = 0.5
n = 0.02
ib = 1/500
g = 9.8
dx = 0.1

h0 = (q**2*n**2/ib)**0.3 #等流水深
hc = (q**2/g)**(1/3) # 限界水深

L = np.arange(0,50.01,dx) #追加距離の配列
zb = L*ib #河床高の配列
h = np.zeros_like(L) #水深の配列

h[0] = hc #下流端条件
for i in range(1,len(h)):
    h[i] = h[i-1] #収束計算の初期値:一つ下流側の断面の水深
    f = 1.0 #仮値
    dfdh = 1.0 #仮値
    while np.abs(f/dfdh) > 10**(-8): # 反復計算の収束条件
        f = q**2/2.0/g/h[i]**2 + h[i] + zb[i] \
          -(q**2/2.0/g/h[i-1]**2 + h[i-1] + zb[i-1]) \
          - 0.5*(q**2*n**2/h[i]**(10/3) + q**2*n**2/h[i-1]**(10/3))*dx
        dfdh = -q**2/g/h[i]**3 + 1 + 5/3*q**2*n**2/h[i]**(13/3)*dx
        h[i] -= f/dfdh
import matplotlib.pyplot as plt

plt.plot(L,zb, label='zb')
plt.plot(L,h+zb, label='water level')
plt.plot(L,zb+h0, label='h0')
plt.plot(L,zb+hc, label='hc')
plt.legend()              # 凡例の表示
plt.show()                # 描画

png

補足:常流、射流混在流れの数値計算方法

実河川では射流が出現する範囲は局所的であり、射流の水面形が求めれることはそう多くない。

常流、射流の混在流れの計算方法については例えば以下が参考となる。

かなり煩雑な計算が必要な上、わずかな条件の差で跳水位置が変わるなど実務的に取り扱いが難しい。
また、射流部ではを十分に小さくとることが必要となる。

実務では、常流区間の中で一部が射流であれば限界水深に置き換えて計算する場合が多い。また、射流部のフルード数が大きい場合は、次に示すようなリミッターを設定することにより水面形を滑らかにすることもある。

計算負荷が大きくても問題がない場合は不定流計算による定常解により水面形を与える方法も考えられる。

常流、射流混在流れの水面形は計算手法によって大きく異なってしまうため、計算の際は十分に検討することが必要である。