毕业设计中有大量计算,需要写程序来完成。而我们拥有的只有一个流传了N年的老旧的vb代码。为了完善该程序的功能,采用新的技术以便传播,我便用python重写了一个稳定分析的程序。 由于我学业不精,对稳定这部分的理解不足,程序逻辑上也许会有一些问题。因此严正申明: 本程序仅供学习使用,不能用于专业设计。

坝坡稳定分析

本程序采用的算法为折线滑动面法(滑楔法),目测适用于采用滑楔法的各种土石心墙坝的坝坡稳定分析。可考虑地震荷载的影响。最终求得Kc的最小值。

版本

VB改写版本/vb

此版本是由学长处获得的VB代码改写成Python语法而得,几乎完全相同。可同时算出一般情况下的安全系数,以及考虑地震荷载时的安全系数。同时会返回折点处D点的坐标。(以坝趾为坐标原点)

该脚本没有考虑心墙的位置,而是把心墙当做坝壳材料计算的。(也就是说该版本应该适用于均质土石坝的坝坡稳定分析)

Pro版本/pro

该版本直接用Python语法编写,各个计算过程均独立成函数,方便维护调试。同时,也考虑了心墙位置的影响,计算滑坡时,心墙不一起滑动。最终会输出计算数据与成果到 out.txt 文本中。

可以考虑水位骤降的影响,具体为折点位置始终与当前水位(下降的瞬间水位)齐平。因此计算各块体的重量的公式没有改变。

不会同时输出一般情况以及地震荷载时的安全系数。当地震等级为7,8,9时会输出考虑地震荷载时的安全系数,否则输出一般情况下的安全系数。

stability_analysis.py 是主程序,必须配套数据文件 data.py 一起使用,否则程序无法正常运行!

测试工具/tools

这个目录下的是测试工具,用来测试 pro 中的主程序。

更新日志

2016-05-15

更新了脚本,可以考虑水位骤降的影响。由于水位骤降的情况,暂时不对程序作更新,只进行bug修复。

Pro版本可以在数据文件 data.py 丢失时提出解决方法,Lite版本删除。

修改了文件操作语句,提高了稳定性。

Python教程参考

不得不说廖雪峰的Python教程是蛮好的,结构清晰,方便查阅。然而后面的内容太跳跃了,我还搞不懂。不过学了前面几个章节的内容就足够我写出这里的代码了。

另外,鱼C零基础入门 Python中文视频教程也是蛮好的,小甲鱼幽默风趣,以游戏为例子深入浅出的讲解Python3。而且,鱼C论坛上的Python内容也是很齐全。