- 最危险破裂面与垂直面之间的夹角
$$
\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)
}
$\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)}
$$公式(H.0.1-4)计算$E$的公式有误,与规范配图不一致,应为:
$$
E=\frac{1}{2} b\gamma H^2 \lambda^{‘’}
$$
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 admin@yantu.org