<aside> <img src="/icons/condense_yellow.svg" alt="/icons/condense_yellow.svg" width="40px" /> Python | 曼宁公式 | 流体 | 水力 | 一维 | 流量 | 数学 | 微积分 | 线性代数 | 拉普拉斯 | 傅里叶 | 统计 | 浅水 | 渗流 | 平流 | 模型

</aside>

📜曼宁公式-用例

📜Python流体数据统计模型和浅水渗流平流模型模拟 | 📜Python蒸发散物理问题(微积分-线性代数-拉普拉斯和傅立叶变换)

✒️Python计算一维流量

高克勒-曼宁-斯特里克勒公式公式基于一维(横截面平均)流动特性的假设,将明渠水流的水深和流速联系起来。斯特里克勒公式是对纳维-斯托克斯方程和连续性方程进行大幅简化的结果。 尽管一维方法在很大程度上已被至少二维数值模型所取代,但一维斯特里克勒公式公式仍经常用作边界条件的第一近似值。

斯特里克勒公式的基本形式为:

$$ u=k_{s t} \cdot S^{1 / 2} \cdot R_h^{2 / 3} $$

其中,

水力半径$R_h$是润湿面积A与润湿周长$P$的比率。 A 和P 都可以作为水深h 和河道底部宽度b 的函数进行计算。许多河道横截面可以近似为梯形,其中水面宽度$B=b+2 \cdot h \cdot m$(其中$m$是下图所示的岸坡)。

因此,A 和 P 由以下公式得出:

$$ \begin{gathered} A=h \cdot 0.5 \cdot(b+B)=h \cdot(b+h \cdot m) \\ P=b+2 h \cdot\left(m^2+1\right)^{1 / 2} \end{gathered} $$

最后,排水 $Q\left( m ^3 / s \right)$可计算为:

$$ Q=u \cdot A=k_{s t} \cdot S^{1 / 2} \cdot R_h^{2 / 3} \cdot A $$

编写一个脚本,将流量打印为河道底宽 b、岸坡 m、水深 h、坡度 S 和斯特里克勒系数 $k_{s t}$ 的函数。

 def reversed_mannings_fun(tar, args):

     Q, b, m_l, m_r, n_m, S_0 = args
     area = ((((tar * m_l) + (tar * m_r) + b) + b) / 2) * tar
     perimeter = b + (tar * (m_l * m_l + 1) ** 0.5) + (tar * (m_r * m_r + 1) ** 0.5)
     ratio = area / perimeter
     return (Q * n_m / S_0 ** 0.5) - (area * ratio ** (2.0 / 3.0))
 
 
 def solve(fun, x0, precision, args):

     last_x = x0
     next_x = last_x + 10 * precision
 
     while abs(last_x - next_x) > precision:
 
         next_y = fun(next_x, args)
         last_x = next_x
         next_x = last_x - next_y / derivative(fun, last_x, precision, args)  # update estimate using N-R
     return next_x
 
 def derivative(fun, x, delta_x, args):

     return (fun(x + delta_x, args) - fun(x - delta_x, args)) / (2.0 * delta_x)
 
 if __name__ == '__main__':

     Q = 15.5
     b = 5.1
     m_left = 2.5
     m_right = 2.5
     n_m = 1/20
     S_0 = 0.005
     init_value = .01

     args0 = [Q, b, m_left, m_right, n_m, S_0]

     x_found = solve(reversed_mannings_fun, init_value, init_value / 10.0, args0)
     print("Iterated water depth = %.3f" % x_found)
 

https://embed.notionlytics.com/wt/ZXlKM2IzSnJjM0JoWTJWVWNtRmphMlZ5U1dRaU9pSlhiRWhvWlV4VVQxbHNjMlZYV2tKbU9URndaU0lzSW5CaFoyVkpaQ0k2SWpJMU4yWXlabVkzTUdOaU9UUTJaR1U1TWpZek1qVmhZV0ZsTTJSaFpqVXhJbjA9