当前位置: 首页 > news >正文

Python高克勒-曼宁-斯特里克勒公式计算一维流量

📜曼宁公式-用例

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

✒️Python计算一维流量

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

斯特里克勒公式的基本形式为:
u = k s t ⋅ S 1 / 2 ⋅ R h 2 / 3 u=k_{s t} \cdot S^{1 / 2} \cdot R_h^{2 / 3} u=kstS1/2Rh2/3
其中,

  • u u u 是 ( m / s m / s m/s ) 中的横截面平均流速
  • k s t k_{s t} kst 是斯特里克勒系数 ( m 1 / 3 / s m ^{1 / 3} / s m1/3/s ),对应于曼宁 n m n_m nm​ 的倒数。
    • k s t ≈ 20 ( n m ≈ 0.05 ) k_{s t} \approx 20\left(n_m \approx 0.05\right) kst20(nm0.05) 对于粗糙、复杂和接近自然的河流
    • k s t ≈ 90 ( n m ≈ 0.011 ) k_{s t} \approx 90\left(n_m \approx 0.011\right) kst90(nm0.011) 用于光滑、混凝土内衬的渠道
    • k s t ≈ 26 / D 90 1 / 6 k_{s t} \approx 26 / D_{90}^{1 / 6} kst26/D901/6 (基于颗粒尺寸 D 90 D_{90} D90 进行近似,其中 90 % 90 \% 90% 的表面沉积物颗粒较小)
  • S S S 是假设的能量斜率 ( m / m ) ( m / m ) (m/m)​,可以假设其对应于稳定、均匀流动条件下的河道斜率。
  • R h R_h Rh 是水力半径(米)

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

因此, A A A P P P 由以下公式得出:
A = h ⋅ 0.5 ⋅ ( b + B ) = h ⋅ ( b + h ⋅ m ) P = b + 2 h ⋅ ( m 2 + 1 ) 1 / 2 \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} A=h0.5(b+B)=h(b+hm)P=b+2h(m2+1)1/2
最后,排水 Q ( m 3 / s ) Q\left( m ^3 / s \right) Q(m3/s)​可计算为:
Q = u ⋅ A = k s t ⋅ S 1 / 2 ⋅ R h 2 / 3 ⋅ A Q=u \cdot A=k_{s t} \cdot S^{1 / 2} \cdot R_h^{2 / 3} \cdot A Q=uA=kstS1/2Rh2/3A
编写一个脚本,将流量打印为河道底宽 b b b、岸坡 m m m、水深 h h h、坡度 S S S 和斯特里克勒系数 k s t k_{s t} kst 的函数。

def reversed_mannings_fun(tar, args):Q, b, m_l, m_r, n_m, S_0 = argsarea = ((((tar * m_l) + (tar * m_r) + b) + b) / 2) * tarperimeter = b + (tar * (m_l * m_l + 1) ** 0.5) + (tar * (m_r * m_r + 1) ** 0.5)ratio = area / perimeterreturn (Q * n_m / S_0 ** 0.5) - (area * ratio ** (2.0 / 3.0))def solve(fun, x0, precision, args):last_x = x0next_x = last_x + 10 * precision  while abs(last_x - next_x) > precision:next_y = fun(next_x, args)last_x = next_xnext_x = last_x - next_y / derivative(fun, last_x, precision, args)  # update estimate using N-Rreturn next_xdef 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)

🔗参阅:亚图跨际

相关文章:

  • JAVA面试题大全(二)
  • Java基础入门day52
  • 网络协议——Modbus-RTU
  • angr使用学习
  • 基于Python flask的豆瓣电影数据分析可视化系统,功能多,LSTM算法+注意力机制实现情感分析,准确率高达85%
  • Flutter 中的 ExpandIcon 小部件:全面指南
  • 2024电工杯数学建模 - 案例:最短时间生产计划安排
  • 线性回归分析
  • 第四十二天 | 背包问题理论
  • 无线通信的穿墙能力主要取决于哪些指标
  • vscode打造舒适的python开发环境
  • Qml:第一个qml程序
  • 前端起dev从110秒减少到7秒, 开发体验大幅提升
  • 使用python对指定文件夹下的pdf文件进行合并
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • 2019.2.20 c++ 知识梳理
  • Android组件 - 收藏集 - 掘金
  • egg(89)--egg之redis的发布和订阅
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • MySQL几个简单SQL的优化
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • oldjun 检测网站的经验
  • php中curl和soap方式请求服务超时问题
  • REST架构的思考
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 排序算法学习笔记
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小程序开发中的那些坑
  • 责任链模式的两种实现
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • mysql面试题分组并合并列
  • #stm32驱动外设模块总结w5500模块
  • ${ }的特别功能
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (原)Matlab的svmtrain和svmclassify
  • (转)linux 命令大全
  • ****Linux下Mysql的安装和配置
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .libPaths()设置包加载目录
  • .NET Core 中插件式开发实现
  • .Net Redis的秒杀Dome和异步执行
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET连接MongoDB数据库实例教程
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @EnableConfigurationProperties注解使用
  • @Valid和@NotNull字段校验使用