关于《铁路隧道设计规范》(TB10003-2016)附录H 洞门墙计算方法的探讨

  1. 最危险破裂面与垂直面之间的夹角

$$
\tan \omega=\frac{\tan^2\phi+\tan\epsilon\tan\alpha-A\frac{\tan\epsilon}{1-\tan\epsilon\tan\alpha}(1+\tan^2\phi)}{\tan\epsilon(1-A\frac{\tan\epsilon}{1-\tan\epsilon\tan\alpha})(1+\tan^2\phi)-\tan\phi(1-\tan\alpha\tan\epsilon)}\\-\frac{\sqrt{(1+\tan^2\phi)(\tan\phi-\tan\epsilon)[(1-\tan\epsilon\tan\alpha)(\tan\phi+\tan\alpha)-A(1+\tan\phi\tan\epsilon)]}}{\tan\epsilon(1-A\frac{\tan\epsilon}{1-\tan\epsilon\tan\alpha})(1+\tan^2\phi)-\tan\phi(1-\tan\alpha\tan\epsilon)}
$$

此公式最本质的来源是求极限平衡状态下的滑动体的水平力,可用核心公式计算,其中令$\alpha-\delta=0$,经过求导求极值即可。

我们可以用程序来验证,结果发现求得的破裂角与规范公式求得的结果一致。

package main

import (
    "fmt"
    "math"
    "sort"
)

var (
    height, alphaDegree, alpha, betaDegree, beta float64
)

var (
    cohesion, phiDegree, phi, gamma float64
)

var horizontalLength float64

// 计算精度
const STEP = 0.0001

func init() {

    fmt.Print("请输入挡土墙高度h(m):")
    fmt.Scanf("%f", &height)
    fmt.Print("请输入挡土墙倾角α(°):")
    fmt.Scanf("%f", &alphaDegree)
    alpha = alphaDegree * math.Pi / 180
    fmt.Print("请输入墙顶边坡倾角β(°):")
    fmt.Scanf("%f", &betaDegree)
    beta = betaDegree * math.Pi / 180
    fmt.Print("请输入土体重度γ(kN/m3):")
    fmt.Scanf("%f", &gamma)
    fmt.Print("请输入土体黏聚强度c(kPa)")
    fmt.Scanf("%f", &cohesion)
    fmt.Print("请输入土体摩擦角φ(°):")
    fmt.Scanf("%f", &phiDegree)
    phi = phiDegree * math.Pi / 180
    fmt.Print("请输入坡顶水平长度L(m):")
    fmt.Scanf("%f", &horizontalLength)
}
func main() {
    type thetaPressure struct {
        thetaDegree float64
        pressure    float64
    }
    var totalActiveEarthPressures []thetaPressure
    var thetaDegree float64
    var totalActiveEarthPressure float64

    for thetaDegree = betaDegree + STEP; thetaDegree <= 180-alphaDegree; thetaDegree += STEP {
        // l1 := height / math.Sin(alpha)
        l2 := horizontalLength
        t := height/math.Tan(thetaDegree*math.Pi/180) - height/math.Tan(math.Pi-alpha) - 2
        if t < 0 {
            // todo: 此时滑动面于坡顶水平平台相交
        }
        l3 := t * math.Sin(math.Pi-thetaDegree*math.Pi/180) / math.Sin(thetaDegree*math.Pi/180-beta)
        l4 := (height + l3*math.Sin(beta)) / math.Sin(thetaDegree*math.Pi/180)
        area := 0.5*(l2+t)*height + 0.5*t*l3*math.Sin(beta)
        gravity := area * gamma
        theta := thetaDegree * math.Pi / 180

        //核心公式
        totalActiveEarthPressure = (gravity*math.Sin(thetaDegree*math.Pi/180-phi) - cohesion*l4*math.Cos(phi)) / math.Sin(theta-phi+math.Pi/2)
        fmt.Println(thetaDegree, totalActiveEarthPressure)
        totalActiveEarthPressures = append(totalActiveEarthPressures, thetaPressure{thetaDegree: thetaDegree, pressure: totalActiveEarthPressure})
    }

    sort.Slice(totalActiveEarthPressures, func(i, j int) bool {
        return totalActiveEarthPressures[i].pressure > totalActiveEarthPressures[j].pressure
    })

    fmt.Printf("破裂角θ=%.4f°,相应的主动土压力为%.4fkN/m\n", totalActiveEarthPressures[0].thetaDegree, totalActiveEarthPressures[0].pressure)
}
  1. $\alpha$的较大或较小并不影响主动土压力的计算结果,破裂角$\omega$的大小受坡顶水平平台长度$a$的影响,一旦$a$确定,无论其大小,均不影响主动土压力的计算结果,即H.0.1-2中的“较大、较小”两种情形的计算结果一致。需要注意的是公式(H.0.1-4)计算$\lambda^{‘’}$的公式有误,应为:
    $$
    \lambda^{‘’}=[\frac{(\tan\omega-\tan\alpha)(1-\tan\alpha\tan\epsilon)}{1-\tan\omega\tan\epsilon}+A]\frac{1}{\tan(\omega+\phi)}
    $$

  2. 公式(H.0.1-4)计算$E$的公式有误,与规范配图不一致,应为:
    $$
    E=\frac{1}{2} b\gamma H^2 \lambda^{‘’}
    $$


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 admin@yantu.org