用EXCEL VBA实现回弹法数据自动计算
2015-03-26董振忠
董振忠
摘 要:該文主要介绍了使用EXCEL VBA编写回弹法数据处理程序的计算流程、编写思路,以及程序在快速编写检测报告中的作用。重点介绍了程序所采用的自定义函数,主要包括平均回弹值函数、检测角度修正函数、检测面修正函数、非泵送混凝土换算值函数、泵送混凝土换算值函数、插值函数等自定义函数和工作表函数。简要介绍了与手算结果和其他回弹仪自带软件计算结果的对比,结果完全一致。程序降低了回弹法数据处理难度,给编写报告带来了极大的便利。
关键词:回弹法 EXCEL VBA 测面修正 测角修正 强度换算 强度推定
中图分类号:TV331 文献标识码:A 文章编号:1674-098X(2015)01(a)-0069-01
公路和城市桥梁都需按照规范要求进行常规检测和结构检测,而在检测中通常要对构件的材质劣化程度作出评定,分析对结构安全和耐久性的影响,为后续维护和加固提供依据。由于混凝土强度是体现混凝土力学性能的重要指标,而回弹法是无损检测中测定混凝土抗压强度最广泛采用的方法,所以经常要对回弹法数据进行分析计算评定。回弹仪自带软件可以进行基本的计算,并将数据输出到EXCEL,但与编写检测报告所需要的格式和内容有差异,所以,利用EXCEL VBA对会回弹法数据进行计算、分析、评定形成编写报告所需表格,然后将表格复制到WORD中,这样就极大地方便了报告的编写。
1 计算流程
程序依据的规范分别为《回弹法检测混凝土抗压强度技术规程》JGJ/T 23-2011和《公路桥梁承载能力检测评定规程》JTG/T J21-2011。程序对数据进行计算、分析、判定,与手算过程完全相同,计算分析的基本流程为:测区范围识别→计算平均回弹值→进行角度修正→进行浇筑面修正→计算混凝土强度换算值→计算混凝土强度推定值→计算平均强度匀质系数→计算推定强度匀质系数→判定标度→耐久性评价。
程序主要定义了平均回弹值函数、测角修正函数、测面修正函数、非泵送混凝土换算值函数、泵送混凝土换算值函数、插值函数,最终对表格进行数据计算并填写子程序。对于程序中需要的EXCEL中包含的函数,都采用工作表函数(WorksheetFunction.函数)的方式引用。
程序首先根据用户在数据区选择的数据范围来获得测区数、各测区碳化深度、浇筑面、检测角度和设计强度信息,然后主要是运用定义好的函数进行计算。如果测区数小于10个,那么最后的推定值就会取最小值,如果测区数大于等于10个,那么最后的推定值就会按照统计的方法计算。同时填写标准差、推定强度匀质系数和平均强度匀质系数,判断其标度,并对混凝土强度状况作出评价。
2 主要函数
2.1 插值函数CZ(ByVal X1,Y1,X2,Y2,x)
规范中所有能够查表的,程序全部采用了查表法确定相应数值,根据传递的变量X1,Y1,X2,Y2,x值采用线性内插法计算出CZ值,即x对应的y值。
'插值计算
Public Function CZ(ByVal X1,Y1,X2,Y2,x)
CZ=(Y2-Y1)*x/(X2-X1)+Y2-(Y2 -Y1)*X2/(X2-X1)
End Function
2.2 平均回弹值函数PJHTZ(ByVal Areas As Range)
程序根据选择区域分别处理区域内每一列的数据,主要是应用了选择区域的列属性、WorksheetFunction.Large、WorksheetFunction.Small函数来去除三个最大值和三个最小值,然后求出平均值。关键性的语句如下:
Cells(ROWN+ROWC+ 3, COLN +i-1)=PJHTZ(Selection.Areas(1).Columns(i))
larg1=WorksheetFunction.Large(Areas,1)
上面的语句是为了获得选择区域某一列的数据,可作为一个区域进行数据的传递。
2.3 测角修正函数CJXZ(ByVal x,JD)
测面修正函数包含两个参数,x为平均回弹值,JD为检测角度,把非水平方向检测时的修正值定义为数组,确定x所在的相邻的整数回弹值区间,对强度进行第一次线性内插计算,然后依据角度进行第二次线性内插,也就是计算任意强度任意角度时的修正值。查询数据主要使用了WorksheetFunction.Lookup方法。
2.4 测面修正函数CMXZ(ByVal QD,JZM)
测面修正函数包含两个参数,QD是进行了角度修正后的回弹值,JZM是浇筑面参数,分别用BM代表表面,DM代表底面,CM代表侧面。程序将不同浇筑面的回弹值修正值表中数据定义成三个数组,分别为Rm对应的ArrQD数组,表面修正值对应的ArrCMB数组和底面修正值对应的ArrCMD数组,这样便可以使用WorksheetFunction.Lookup方法任意来查找所需数据。对于判断是表面、底面还是侧面,是在启动对话框按下确定按钮时,程序查找每一列的浇筑面信息,然后将变量再传递到侧面修正函数中,通过传递的参数判断浇筑面属性。
2.5 混凝土强度换算函数
程序定义了非泵送混凝土强度换算函数THXZFBS(ByVal QD,THZ)和泵送混凝土强度换算函数THXZBS(ByVal QD,THZ),两个函数采用相同的算法,都包含两个参数,一个是修正后的回弹值QD,另一个是碳化深度值THZ。程序采用动态数组储存测区混凝土强度换算表中的数据,每一个数组存储一行数据,当需要某个数值时,采用指定数组行号和列号的方法取用数据,即采用y=arr(行号)(列号)的形式。程序根据碳化值查到此碳化值在测区混凝土强度换算表中的列号,然后程序再计算出与平均回弹值上下相邻的Rm值所在的行号,最后程序在数组中取出数据,进行线性内插后得到最后的强度换算值。
3 结语
把使用EXCEL VBA编写的回弹法混凝土强度计算程序与多家数显回弹仪所带软件的计算结果进行了比较,结果完全吻合。在对多人回弹法手算测试中,对手算结果进行了验证,结果与手算法完全一致。回弹法混凝土强度计算程序已在检测工作中使用了两年,在相关检测报告中得到了大量使用,给回弹数据处理带来了很大的方便。由于程序完成了全部需要计算的过程,剩下的只是数据输入,这大大降低了数据处理的难度,使编写回弹法检测混凝土强度报告变得特别简单。
参考文献
[1] 中华人民共和国建设部.养护技术规范(CJJ99-2003)[S].中国建筑工业出版社,2003.
[2] 中华人民共和国住房和城乡建设部.回弹法检测混凝土抗压强度技术规程(JGJ/T 23-2011)[S].中国建筑工业出版社,2011.
[3] 中华人民共和国交通运输部.公路桥梁承载能力检测评定规程(JTG/T J21-2011)[S].人民交通出版社,2011.