用VB2008和Excel2007开发软弱下卧层强度验算程序
2014-03-26姜吉生陈玉平邓昌州王恩宝丁继双
姜吉生,陈玉平 ,邓昌州 ,王恩宝 ,丁继双
1. 黑龙江省904水文地质工程地质勘察院, 黑龙江 哈尔滨 150027; 2.内蒙古自治区煤田地质局117勘探队, 内蒙古 鄂尔多斯 017000;3.黑龙江省地质调查研究总院,黑龙江 哈尔滨 150036
在岩土工程勘察报告的编制过程中,当地基受力范围内存在软弱下卧层时,需要验算软弱下卧层强度。以往工作中手工计算费时费力且容易出现错误。使用程序进行验算不仅可以避免上述问题,计算结果的保存、查阅也十分容易。因此自动验算软弱下卧层强度必将成为一种主流趋势,也可以将工程技术人员从繁重的工作中解脱出来。微机和可视化编程语言的普及,使工程技术人员有机会、有能力成为程序的开发者。他们根据工作实际需要开发出适合本单位实际情况的计算软件。
Visual Studio Team System 2008是微软公司精心打造的企业级开发管理工具,目前还只是测试版。Visual Basic 2008是其中的一种语言,它是一种面向对象的可视化编程语言,其开发环境优越、使用方便、操作简单、功能强大。它通过ActiveX技术实现引用Excel2007,读取存放在Excel2007单元格中原始数据。本文将介绍如何利用这两种软件实现自动验算软弱下卧层。
1 计算程序设计实现
1.1 软件功能设计
本程序功能为自动完成软弱卧层强度验算,通过调用Excel2007并打开包含已知参数的Excel文档,获取进行计算的各类已知参数值。主要使用Visual Basic 2008中的if……then条件分支结构对基础类型、地层编号等参数进行判别,选择正确的计算公式得到验算所需未知参数。再根据验算公式进行验算。因此要明确进行软弱下卧层验算的步骤,确定程序的流程。
1.1.1 计算地基压力扩散角θ
因黑龙江省地方标准DB23/902-2005[1]地基压力扩散角表(表5.2.5)中给出上层土与软弱下卧土层的压缩模量比值(ES1/ES2)=1时扩散角度(仅供内插用),所以本文不考虑ES1/ES2<3时的如何计算扩散角。ES1/ES2≥3时,根据《地基基础设计规范》GB50007-2002[2]中地基压力扩散角表(表5.2.7)进行线性插值计算地基压力扩散角θ。可以计算扩散角作为一个公共模块供程序随时调用,这样不仅可以大幅减少编码长度、也便于程序调试。
1.1.2 计算基础宽度
分矩形基础和条形基础两种情况,基础宽度的计算如下:
对于矩形基础 A=bL (m2)
对于条形基础 A=b (长度方向取L=1m为计算单元),故条形基础最小宽度。
式中:
fa-基底处地基承载力设计值;
N—上部结构传来的轴向力设计值;
rm—基础及上覆土的加权平均重度kN/m3。
1.1.3 计算地基承载力设计值
式中:
faz-经深宽修正的地基承载力设计值;
fak—地基承载力特征值;
b、d—基础宽度和埋深;
r—基础底面处土的重度kN/m3;
rm—基础底面以上土的加权平均重度kN/m3;
ηb、ηd—基础宽度和埋深的地基承载力修正系数。
1.1.4 计算软弱下卧层顶面处的附加压力值PZ
分矩形基础和条形基础两种情况,判断基础类型后,分别计算出Pk和Pc,然后计算Pz值。
PZ按条形基础公式进行计算:
PZ按独立柱基础公式进行计算:
式中:
b-矩形基础或条形基础底边的宽度;
l-矩形基础底边的长度;
PC-基础底面处土的自重压力值;
z-基础底面至软弱下卧层顶面的距离;
θ-地基压力扩散线与垂直线的夹角。
1.1.5 验算软弱下卧层的强度
根据《建筑地基基础设计规范》GB50007-2002中的计算公式Pz+Pcz≤faz进行验算。
1.2 Visual Basic 2008 对Excel 2007对象的引用
ActiveX 在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的ActiveX控件。该技术可以实现应用程序之间相互沟通、相互控制。要实现对Excel2007的控制,就需要在Visual Basic 2008中引用Excel2007对象。点击Visual Basic 2008项目菜单下的添加引用子菜单,弹出添加引用对话框,在COM标签页中选择Microsoft Excel 12.0 Object Libray项,确定即可添加该引用。进行上述设置后,用Visual Basic编制的验算程序运行后,即可调用Excel2007并可使用Excel软件提供的各种库,实现对Excel2007的全面控制。
1.3 数据文件的准备
新建一个Excel文件,命名为rwcys.xlsx,与验算程序放在同一目录内,因为这是本程序设置的默认路径。在表格指定单元格内输入地层厚度、重度、压缩模量、承载力特征值、基础长、宽及埋深、上部结构传来的轴向力设计值、基础的深度及宽度修正系数以及基础类型等数据,VB程序会根据单元索引将数据赋值给数组变量。
1.4 程序界面设计
在Visual Basic 2008中添加一个MDIParent1.vb窗体,从工具箱中的“菜单和工具栏”中选择MenuStrip工具[3],在窗体中添加菜单条。输入插值计算、附加应力系数、土工试验数据导入等菜单项,软弱层验算仅作为程序的一个功能。在窗体中添加RichTextBox1控件,供输出验算说明书用。在状态栏添加ToolStripStatusLabel控件,可以显示系统时间。因Visual Basic开发语言可视化的特点,可以根据系统功能设计出界面美观大方的程序界面。
1.5 编写代码
界面设计好后,对所绘制的控件添加代码,本文仅对关键代码进行介绍。
1.5.1 编写扩散角插值计算模块
首先定义一个插值函数,来线性内插扩散角。
其次定义一个数组,将地基压力扩散角值依次赋给数组的每一个变量。
最后编写地基压力扩散角解线性插值程序。
利用if……then条件语句判别z/b比值隶属区间,分为z/b<0.25;0.25<z/b<0.50和z/b>=0.50三种情况。后两种情况时要判断ES1/ES2比值隶属区间,分为1≤ES1/ES2<3;3≤ES1/ES2<5;5≤ES1/ES2<10和ES1/ES2>10四种情况。每个区间调用上面的插值函数,根据不同区间赋上不同的实参,也就是供插值使用扩散角数值。按设计要求,将该功能做为一个公共模块,方便其它程序调用,程序代码如下:
‘定义一个数组,将地基压力扩散角表中数值分别赋给数组每一个变量;
‘计算上层土与下卧软弱土层的压缩模量比值;
‘计算z/b的比值;
‘当z/b<0.25时
‘当z/b>=0.25 和z/b<0.50时;
‘当z/b>=0.50时
1.5.2 为“软弱层验算”菜单编写代码
双击“软弱层验算”菜单项,在代码窗口,编写下述几部份代码。
(1) 打开rwcys.xlsx文件∶首先要调出Excel2007程序,并打开rwcys.xlsx文件,程序代码如下。
(2) 联接到rwcys.xlsx文件∶上面只是打开了rwcys.xlsx文件,还不能读取地层数据,下面的程序代码将与Excel程序建立联接,将验算需要的已知参数读到Visual Basic程序中,程序代码如下。
(3)进行验算∶首先判断基础形式,如果值为1时,说明为条形基础;为其它值时,说明为矩形基础。然后计算Pk值和Pc值。每种基础形式按照相应的公式计算,程序代码如下:
‘如果是条基的话
‘调用地基压力扩散角模块,计算扩散角
‘计算Pz值
‘计算经宽度、深度修正的承载力
(4)输出验算说明书∶将已知参数和计算结果输出到窗口,程序代码如下:
‘判别是否满足荷载要求
2 应用实例
本程序编写完成后,通过对我院近两年有代表性的软弱下卧层验算说明书进行计算、调试,现在已经能够满足工作需要,计算结果与人工计算结果一致,在新工程的验算过程中取得了良好的应用效果。缩短了工作时间,提高了工作效率,为勘察报告及时提交给建设单位提供有力保证。
3 总结
(1)本程序可以实现软弱下卧层强度自动验算功能,缩短了工作时间,提高了工作效率,能够满足工作的实际需要,在工程实践中取得良好的应用效果。
(2)本程序运用的是Visual Basic 2008开发程序的ActiveX技术,计算程序通过调用Excel2007来完成已知参数的赋值和使用。通过修改Excel2007表格的已知参数,可以实现人机交互,完成不同的算例。
(3)因扩散角数值采用黑龙江省地方规范标准规定,程序使用范围受到限制,其功能上还可能进一步调整,以适应不同地区技术人员的需要。
[1] DB23/902-2005, 建筑地基基础设计规范[S].
[2] GB50007-2002,建筑地基基础设计规范 [S].
[3] Michael Halvorson. VB2005从入门到精通[M].北京:清华大学出版社,2006.