首页/文章/ 详情

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

1年前浏览685

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年前
                    计算岩土力学
                    传播岩土工程教育理念、工程分析...
                    获赞 122粉丝 880文章 1732课程 0
                    点赞
                    收藏
                    未登录
                    还没有评论

                    课程
                    培训
                    服务
                    行家

                    VIP会员 学习 福利任务 兑换礼品
                    下载APP
                    联系我们
                    帮助与反馈