首页/文章/ 详情

二维边坡稳定性分析模块pyslope

1年前浏览1014

1 引言

本文是对【学习工具pyslope---二维边坡稳定性分析软件】(5/10/2022)的更新,与HYRCAN【HYRCAN使用Python进行边坡稳定性的参数化分析】和Itasca软件【Python in Itasca software---UCS的参数化研究】不同的是,pyslope(V1.1.9)是一个完全用Python编写的二维边坡稳定性分析模块(A 2D Slope Stability Software using Bishop's method)。目前pyslope可以实现如下功能:

(1) 无限的水平地层(unlimited horizontal geological units);

(2) 地下水位(water table);

(3) 均布载荷(uniform loads);

(4) 线性载荷(line loads);

(5) 边坡搜索范围(slope search limits)

该模块(from pyslope import *)可以画出边坡临界破坏面或低于某一安全系数的所有破坏面。


2 计算步骤

一个典型的pyslope计算步骤如下:

(1) 产生Slope对象

边坡实例的创建输入边坡高度(m)、边坡角(°)和边坡长度(m),长度和角度只使用其中一个值,另一个值应该被设置为None。[s.plot_boundary()]


s = Slope(height=3, angle=30, length=None)

(2) 产生Material对象并且赋值到Slope

创建一个Material对象输入的参数包括: 单位重量(kN/m^3)、内摩擦角、粘结力(kPa)以及坡顶到材料层底部的深度(m)。一旦定义了材料属性,就可以将其分配给Slope实例。边坡会根据坡顶到地层底部的深度来排列材料,材料的顺序可以任意输入,但同一深度不能设置为两种不同的材料,否则会出现错误。[s.plot_boundary()]









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)

(3) 创建均布载荷Udl或线性载荷LineLoad对象,并且赋值到Slope

创建一个Udl(uniform distributed load)对象需要输入载荷的大小(kPa)、载荷距坡肩的距离(m)(默认为0m)以及载荷的长度(m)(默认为无限长)。[s.plot_boundary()]




u1 = Udl(magnitude = 100, offset = 2, length = 1)u2 = Udl(magnitude = 20)    s.set_udls(u1, u2)

创建LineLoad对象时需要输入载荷的大小(kN/m)和载荷距坡肩的距离(m)(默认为0m)。



p1 = LineLoad(magnitude = 10, offset = 3)s.set_lls(p1)

(4) 设置水位

默认情况下没有水位。水位是从坡顶测量的深度(m)。


s.set_water_table(4)

(5) 设置分析限制

分析限制(slope search limits)用来控制滑动面顶部和底部可能发生的范围,这是使用LEM分析边坡稳定性的一种优化策略,相似的讨论参考:

              相关文章,在仿真秀官网搜索:

  • 边坡稳定性多模态优化(Multi-Modal Optimization)

  • 土钉支护的边坡稳定性(Stability of Slope Reinforced with Soil Nails)

使用get_top_coordinates和get_bottom_coordinates方法定义边坡滑动面搜索范围。


s.set_analysis_limits(s._top_coord[0]-5, s._bot_coord[0]+5)

(6) 计算临界安全系数

使用analyse_slope()方法计算临界安全系数。默认值为每个滑动面划分为50个垂直条,最大迭代次数为2000。如果需要更改使用update_analysis_options方法。








s.update_analysis_options(    slices=50,    iterations=2500,    tolerance=0.005,    max_iterations=50)s.analyse_slope()

(7) 结果解释

通过上述计算可以得出边坡的最小安全系数,同时可以画出临界滑动面等。





print(s.get_min_FOS())s.plot_boundary()s.plot_critical()s.plot_all_planes(max_fos=2)


3 动态分析

这里的动态分析不是通常所指的动力分析,而是指载荷位置的变化,目的是寻求在哪个位置时达到给定的临界安全系数,这相当于是一个参数化研究或敏感性分析。










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.4)s.get_dynamic_results()s.print_dynamic_results()

结果如下:

Offset: 0.000 m, FOS: 1.027

Offset: 2.765 m, FOS: 1.406

Offset: 3.045 m, FOS: 1.438

Offset: 5.186 m, FOS: 1.662


来源:计算岩土力学
材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-27
最近编辑:1年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 147粉丝 1060文章 1782课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈