1 引言
在网上闲逛偶然发现了一位同学编写的学习工具pyslope---二维边坡稳定性稳定性分析程序(A 2D Slope Stability Software using bishops method),该工具使用Python编写,采用Bishop条分法进行极限平衡分析,可供学习Pyhton编程。It's fun!
2 主要功能
目前pyslope可以实现如下功能:
(1) 无限的水平地层划分;
(2) 地下水位;
(3) 均布载荷;
(4) 线性载荷;
(5) 边坡搜索范围(search limits)
该工具可以画出边坡临界破坏面或低于某一安全系数的所有破坏面。计算步骤如下:
(1) 产生Slope对象
(2) 产生Material对象并且赋值到Slope
(3) 产生均布载荷Udl或线性载荷LineLoad对象,并且赋值到Slope
(4) 设置水位
(5) 设置分析限制
(6) 计算安全系数
(7) 产生图形
3 代码测试
使用下面的代码进行了一个边坡稳定性分析。
from pyslope import *
s = Slope(height=3, angle=30, length=None)
m1 = Material(
unit_weight=20,
friction_angle=45,
cohesion=2,
depth_to_bottom=2
)
m2 = Material(20, 30, 2, 5)
s.set_materials(m1, m2)
u1 = Udl(magnitude = 100, offset = 2, length = 1)
u2 = Udl(magnitude = 20)
s.set_udls(u1, u2)
s.set_water_table(4)
s.set_analysis_limits(s._top_coord[0]-5,s._bot_coord[0]+5)
s.update_analysis_options(slices=50, iterations=2500)
s.analyse_slope()
print(s.get_min_FOS())
s.plot_boundary()
s.plot_critical()
4 动态分析
这里的动态分析不是通常所指的动力分析,而是指载荷位置的变化,目的是寻求在哪个位置时达到给定的临界安全系数。
s.remove_udls(u1)
s.set_udls(
Udl(magnitude=100, length=1,
offset=2, dynamic_offset=True,
color='purple')
)
s.analyse_dynamic(critical_fos=1.2)
print(s.get_dynamic_results())
for k,v in s.get_dynamic_results().items():
print('Offset:', round(k,3), ' m, FOS:', round(v,3))
结果如下:
Offset: 0 m, FOS: 1.019
Offset: 5.186 m, FOS: 1.464
Offset: 2.111 m, FOS: 1.296
Offset: 1.381 m, FOS: 1.21
Offset: 1.31 m, FOS: 1.196
Offset: 1.332 m, FOS: 1.2