【水利计算程序】python计算心墙土石坝有棱体排水(不透水地基)浸润线

# -*- coding:utf-8 -*-
# @Time     :2021-03-24 9:44

def Phreatic_line(x,m1=3,m2=2.5,m3=0.3,m4=0.3,m5=1.5,k1=0.2,k2=0.01,k3=0.5,B1=8,B2=26,H1=30,H2=4,d=6,L=50,hej=17.285):
    '''心墙土石坝有棱体排水(不透水地基)浸润线计算公式'''
    # 上游楔形体宽度m
    AL = k2 / k1 * ((H1 * m1 / (2 * m1 + 1) - m3 / (2 * m4 + 1)) + d)
    # 心墙顶部的计算宽度
    B11 = B1 + m3 / (2 * m3 + 1) * H1 + AL
    # 心墙底部计算宽度
    B22 = B2 - 2 * pow(m3, 2) / (2 * m3 + 1) * H1 + AL
    # 其值大于0.5时,按宽心墙面坝计算,小于0.5时按窄心墙坝计算
    # B22/H1=B22/H1
    # k/k1大于1000时ht=H2,K/K1小于1000时,ht稍大于H2,假设
    htj = H2
    # 单宽渗流量m3/d
    q = k2 * ((pow(H1 - htj, 2) / (
                (B22 - m4 * htj) + pow(pow(B22 - m4 * htj, 2) - pow(m4, 2) * pow(H1 - htj, 2), 0.5)) + (
                           H1 - htj) * htj / (B22 - 0.5 * m4 * htj)))
    # 棱体左下角上方水深
    h0 = 0.5 * (m5 * q / k3 + pow(pow(m5 * q / k3, 2) + 4 * pow(H2, 2), 0.5))
    # k/k1大于1000时ht=H2,K/K1小于1000时,ht稍大于H2
    ht = pow(pow(m3 * q / k3, 2) + 2 * L * q / k3 + pow(h0, 2) - m1 * q / k3, 0.5)
    # 心墙前的渗流深度m
    hw = pow(pow(H1, 2) - 2 * q / k1 * AL, 0.5)

    # 心墙下游坡渗出点处水深
    he = ((2 * pow(m4 + 0.5, 2) * (hej - ht) + m4 * ht) * (m4 + 0.5)) / (
                2 * pow(m4 + 0.5, 2) * hej + m4 * ht) * q / k2 + ht
    # 以心墙后he点的坝底为y坐标原点,方向向上
    y = pow(x * (pow(hw, 2) - pow(he, 2)) / (B2 - m3 * hw - m4 * he) + pow(he, 2), 0.5)
    return y

if __name__=="__main__":
    import matplotlib.pyplot as plt
    x = [0.5, 1, 3, 5, 7, 9, 10, 11]
    # x=[110.61,105.26,125.38,102.04,101.60,103.99,94,0]
    y=list(map(Phreatic_line,x))
    #print(y)
    #计算结果
    # [18.00535017357371, 18.695870580834278, 21.2345789782722, 23.500619395957514, 25.56659694998201, 27.477675433194936,
    #  28.38500539046262, 29.264217310927336]
    plt.plot(x,y)
    plt.show()

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神精兵院院长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值