地下水动力学中配线法的 Excel 与 VBA 实现
如果公式乱码,请用浏览器访问,用鼠标右键 -> 加载映像 显示公式。
这个专题看得多,评论少。我希望即使是过客,也请留下你的声音。
以下内容源自地下水动力学课程教学内容,应该是十年前的工作,当年给煤层气、地质工程卓业工程师班上课时,试验就是用这种思路。近日在豆丁网上发现还保存有 “实验1-配线法求参”,不知是那位同学的贡献,颇感欣慰。
这种方式先期绘制标准曲线工作量大,所以不推荐。后续的 Python 程序实现该工作相对简单。
1. 配线法原理
地下水动力学非稳定流的计算,难点在于井函数的计算,有了数据表后可以手工配线,也可用 Excel 与 VBA 实现配线。
以 Theis 公式为例。
Theis 公式及 的表达式取对数,可得到如下的形式
若含水层 已知,抽水量 确定,则 与 为常数。双对数坐标下 形状与标准曲线形状一致。
因此,将 与 标准曲线画在同一双对数坐标系中,移动 散点图配线,根据平移量可以计算出未知的参数 。
记坐标平移量为
参数计算公式为
上面的参数计算公式随配线法不同而变化。
2. 用 Excel 表配线
预先计算好井函数数据表,并用 Excel 绘制好标准曲线。Excel 需要打开自定义功能区的 “开发工具” 选项。
程序设计思路
在 Excel 表中用滚动条滚动控制散点图的平移量,并将数值返给储存 的单元格,在标准曲线上以 绘图,使滚动条、图形联动。假定单元格 K27
为水平平移量 ,单元格 K28
为垂直平移量 ,这两个单元格初始值可设为 0。
如下属性设置,实现对数刻度上左右最大移动 5 个坐标格,上下最大移动 3 个坐标格,移动最小值为一个坐标格的 1% 。
控制水平平移量的滚动条属性为
name = "HS", Min = -500,Max = 500, Value = 0, SmallChange = 1, LargeChange = 10
控制垂直平移量的滚动条属性为
name = "VS", Min = -300,Max = 300, Value = 0, SmallChange = 1, LargeChange = 10
滚动条添加事件:
Private Sub HS_Change()
Range("K27").Value = HS.Value / 100
End Sub
Private Sub VS_Change()
Range("K28").Value = VS.Value / 100
End Sub
将 K27
、K28
的值代入公式可计算参数 T
、S
。
结果形如
已完成的 Excel 表格
Excel 表还包含 Hantush-Jacob, Neumann 两种配线表。Neumann 数据长度不够,效果不好。
为了避免随意更改程序导致错误,Excel 表设置了密码。想在该表基础上试试的童鞋可在评论区联系我。