Excel VBA及贝塞尔曲线在旁压试验数据处理中应用
2012-11-06艾旭波
艾旭波
(中铁第五勘察设计院集团有限公司,北京 102600)
旁压试验(PMT)是工程地质勘察中的一种原位测试方法。它的原理是通过旁压器在竖直的孔内使旁压膜膨胀将压力传给周围土体,使土体变形直至破坏,从而得到压力与钻孔体积增量(或径向位移)之间的关系曲线。具有结构简单、设备低廉、操作简便、成果可靠、携带轻便等特点,因此在地质勘察中应用广泛。
1 旁压试验的数据处理方法
传统的数据处理方法是用校正后的压力和校正后的变形绘制旁压曲线,人工绘图确定P0,Pf,计算复杂、工作量大,计算结果人为误差大,从而影响后续指标的精确性。
本文利用Excel VBA语言编写程序并应用贝塞尔曲线,实现了旁压数据的自动绘图及计算、自动处理、自动选点,大大提高了工作效率,并消除了人为因素产生的误差。
2 VBA语言及贝塞尔曲线
1)VBA语言。VBA是指Visual Basic for Application,它是在Office中广泛应用的宏语言。使用宏可以增强Excel,Word等软件的自动化能力,使用户更高效的完成特定任务。
2)贝塞尔曲线。贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。曲线的定义有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点,滑动两个中间点,贝塞尔曲线的形状会发生变化。依据四个位置任意的点坐标可绘制出一条光滑曲线。
3 主要程序代码
3.1 弹性膜约束力及仪器综合变形校正
本程序利用Excel计算表将弹性膜约束力校正数据进行多项式拟合(本程序采用4次多项式),根据拟合方程可求出任一实测压力下的校正压力值;同理,仪器综合变形校正数据采用线性拟合,拟合方程的斜率即仪器综合变形校正系数。主要程序代码如下:
弹性膜约束力校正曲线及仪器综合变形校正曲线见图1,图2。
图1 弹性膜约束力校正曲线
图2 仪器综合变形校正曲线
3.2 数据处理成果及参数计算
旁压试验数据处理,本例采用Excel图表作图与计算相结合。
1)旁压曲线直线度的选取及S0确定。旁压曲线直线段起始点和结束点的选取,直接影响后续参数的计算。本程序编写了自动选择起始点和结束点的功能,即求出每两个相邻点确定的直线的斜率,满足斜率绝对值小于0.01(该斜率可根据不同工程调整)的第一个点和最后一个点,即为直线段的起点和终点。主要程序代码如下:
另外,本程序还加入了人工干预功能,可人工选定直线段的起点和终点,以应对特殊情况。选定直线段后,利用Excel直线拟合,直线的截距即为S0。
2)P0的确定。根据旁压试验数据处理方法,与S0对应的P值,即为P0。Excel的平滑线散点图,可以根据两组分别代表X-Y坐标的散点数值产生曲线图。但是,却没有提供这个曲线图的公式,所以无法查找曲线上的点坐标。一般的做法是利用Excel提供的多项式拟合,但效果不是很好。图3是利用6次(Excel支持的最高次数)多项式拟合的曲线,拟合效果并不理想,而且在开始阶段误差尤其明显。对P0的计算造成很大影响。
Excel的平滑曲线的算法是:给出两组X-Y数值以后,每一对X-Y坐标称为节点,然后在每两个节点之间画出三次贝塞尔曲线(下面简称曲线),每条曲线都由四个节点开始,计算出四个贝塞尔控制点,然后根据控制点画出唯一一条曲线。
本程序从参数指定的节点开始,计算出四个贝塞尔控制点,得到贝塞尔插值多项式方程。然后代入已知的待求数值,看它能不能满足f(t)=0有解(即曲线包含待查数值),如果f(t)=0有解,根据解出来的t值计算X-Y坐标,退出程序。否则继续检查下一段曲线。如果所有分段曲线都不包含待查数值,退出程序。
主要程序代码如下:
3)极限压力Pl的确定。极限压力Pl的确定是将临塑压力后曲线各点水位下降值S取倒数,做P—(1/S)曲线,1/(2S0+Sf)对应的压力即为极限压力Pl。P—(1/S)曲线近似直线,用直线拟合即可。
4 应用实例
应用此程序处理北京某工地旁压试验数据,处理结果及旁压曲线如表1,图4所示。
表1 旁压试验成果表
图4 旁压试验参数计算图
本程序实现了旁压数据的自动化处理及作图,提高了工作效率,避免了人为因素产生的误差;同时鉴于数据处理中的异常点问题,添加了人工干预功能,使程序的容错性增强;在很大程度上减少了数据处理人员的工作量。
[1]GB 50021-2001,岩土工程勘察规范[S].
[2]JGJ 69-90,PY型预钻式旁压试验规程[S].
[3]王朝贤.AutoLISP编程在旁压试验内业工作中的应用[J].科技创新导报,2009(11):16-17.
[4]吴美林.旁压试验的计算机数据处理[J].煤矿设计,1996(12):40-43.