资源描述:
科教园地 SCIENCE AND TECHNOLOGY EXCEL的二次开发在矿井通风阻力测定计算中的应用 口叶建中 (新疆维吾尔自治区屯南煤业有限责任公司,新疆和丰县和什镇矿区 ,834407 摘要基于Microsoft Excel的二次开发功能,实现矿井通风阻力测定数据的可视化 操作和全自动化处理的编程 关键词通风阻力测定Excel Visual Basic编程方法 引言 井巷通风阻力测定是调查研究矿井通风状况的一 项重要措施, 对其测定数据的准确计算又是真实反映 矿井通风状况的重要因素。 随着计算机技术的H新月 异,采用Microsoft Excel软件及其二次开发功能处理矿 井通风阻力测定数据,已充分显现出它的优越性。比采 用手工处理节省了大量的时间和精力, 计算精度也较 高, 还可以采用一些手工难以完成的方法对测擢数据 进行修正, 从而达到更为真实反映矿井通风状况的目 的。 下文主要介绍一种利用压差计法测定得到的巷道 通风阻力数据进行自动处理的原理,及相应的Excel表 格面板布置和数据自动处理的具体编程实现方法。 1数据处理表格的建立 在Excel中可仿照MT厅440-1995标准中所推荐 的各类原始数据记录表格和汇总表格建立起 “用户表 格 "。其基本内容包含所有的实测数据项目及能反映通 风状况的数据项目。例如,巷道的名称、断面形状、断面 面积、支护方式以及其他关于断面的几何参数;大气参 数方面有干湿球温度,相对湿度、空气密度等;除此之 外还有风量、风阻、百米标准风阻、测点间间距、测点间 压差等能表明矿井通风状况所必需的参数项目。 表格的具体形式可参考下图制作或根据自己的工 作需要进行改编。 总之,表格的数据项目要全面,布置 美观即可。 2可视化界面的建立 可视化界面分为两部分。 第一部分利用Excel自 带的Visual Basic开发控件丁具箱为 “用户表格”添加 按钮及对话框,、以便和用户建立起初步的联系。 本人在 表格中主要添加了 “基本数据输入”和“打印前准备”以 及其他两个附属功能按钮。 第二部分利用Excel 的Visual Basic编辑器完成 设计,它也是整个计算核心的托载容器,其中包含了3 个功能模块,2个窗体。在这一部分本人主要设计了 “使 用说明 ”界面、“基本数据输入“界面以及其他警告、提 示等界面来增强表格的友好性。 窗体的具体形式可参考下图制作, 若需要还可添 加更多的窗体和功能按钮。 3 数 据 处 理 的基本原理及编程 实现 3.1实测数据 自动化处理的基本 原理 实测数据的自 动化处理原理分为 两部分。 第一部分是 空气密度的计算原 理。计算空气密度所 需的基本数据有大 气压力Pa、干球温 度(屯)相对湿度、水分压力Pa,其中 ”相对湿度” 和 “水分压力”是要通过查表才能得到的,这样一来就 降低了我们的工作效率。 相对湿度的计算公式是 ll e,w-AP�T xlOO 其中A是一个与风速有关 e, 的常数,P是大气压,A是干湿球温度差。 很显然如果 认为A与 P是固定的,那么U就是一个关于干球温度 t和干湿球温度差�T的二元函数,在几何上就是一个 空间曲面, 而引用对基准值的二次分段线性插值的方 法就可以简化关系使U成为线性函数。如此就可以通 过简单编程实现 ”相对湿度”和“水分压力”的自动计 算,进而也就解决了空气密度不能全自动计算的问题。 以上这一部分代码包含在第一个功能模块里。 _ 二二三[ -8』 二 二杠 i gi一了 I . 』 二三二三』 二 二”了二了 46 当代矿工2007年第4期 科 教园 地 第二部分主要是用来对巷道断面面积 、 断面周长 、 风速 、 风量 、 动压差 、 通风阻力 、 阻力 、 百米标准阻力 、 测 点间间距等,除计算空气密度所需数据以外的数据进 行处理和 自动排版。在设计过程 中“ 用户表格” 的第一 行很重要 , 它含有所有基本数据问的函数关系。这些函 数关系可以利用 E x c e l 的公式编辑器来轻松完成 。 其次 是要充分利用 E x c e l 的“ 相似填充性” 和“ 录制新宏” 的 功能来实现数据的 自动处理 以及对结果 的 自动排版。 其 中 “ 录制新宏”功能很重要 ,它为不太熟悉 V i s u a l B a s i c的开发用户提供 了很好 的编程代码提示和学 习 模仿环境 , 通过这个功能可以对 E x c e l 的各种操作的原 代码 了如指掌。 通过模仿和改编 E x c e l 操作的原代码就 可以实现“ 相似填充性”“ 排版”“ 字体变换 ” 等功能 的 自动化完成。 例如 , 要对某个区域的字体做特定 的色彩 变化 , 可以先选择“ 录制新宏 ” , 然后进行一次色彩变化 的操作 , 与此 同时“ 录制新宏 ” 功能就会将 刚才 的操作 编译成 V i s u a l B a s i c 语 言代码并生成新的模块 储存 在 V i s u a l B a s i c编辑器里 ,而我们就可以通过编辑器来学 习和改编代码以最终实现 自动处理的 目的。以上这一 部分代码包含在第二个功能模块里 。 3 . 2计算空气密度的 Vi s u a l B a s i c 语言程序代码 整个表格的主要功能是 由 3个功能模块 空气密 度计算模块 , 相似性填充模块 , 代码保护模块 完成。 空 气密度计算是其 中一个 ,它 由一个主函数和一个功能 函数构成 , a i r 0 是主函数 , a i r 2 x l A s I n t e g e r , x 2 A s I n t e g e r , y l A s S i n g l e , y 2 A s S i n g l e , t g A s S i n g l e 是功能 函数。 这里要特别说 明的是 ,为方便编程我建议将原本 应该用二维数组表达的变量改为引用 E x c e l 表格 内的 数据 , 这样一方面便于二维数组变量 的定义 , 另一方面 也有利于以后对基准值的更新。例如 , S h e e t 2 . c e l l s i , j , S h e e t 3 . c e l l s i , j 内分别储存的是“ 相对湿度” 和 “ 水分压 力” 的基准值 , 用户只要输人干球温度 、 湿球温度 、 大气 压三个基本参数,程序就可以结合 S h e e t 2 . c e l l s i,j , S h e e t 3 . c e l l s i ,j 内的基准值用插值法计算 出相应 的空气 密度值 。 以下为空气密度计算 的模块代码 F u n c t i o n a i r 2 x l As I n t e g e r ,x 2 As I n t e g e r , y l As S i n g l e , y 2 A s S i n g l e , t g A s S i n g l e A s S i n g l e Di m W As Si n g l e Wy l t gx 1 y 2一y 1 / x 2一x 1 ‘ 插值计 算 a i r 2W‘ 返 回结果到主函数 En d F u nc t i o n SCI ENCE AND TECHNOL OGY S u b a i r D i m i , k , j , k l , k 2 , t l , t 2 , l A s I n t e g e r D i m t A s S i n g l e ’ 干球温度 D i m t s A s S i n g l e ’ 湿球温度 D i m t r A s S i n g l e ’ 干 、 湿球温度差 Di m I l l ,ml ,m2, ps As S i n g l e Di m n As I n t e g e r nS h e e t 1 . C e l l s 4 , 1 9 5 ’ 确定用户要处理多 少组数据 F o r i 6 T o n ’ 循环调用 A I R 2 t S h e e t 1 . C e l l s i , 1 8 ’ 干球温度的引用赋值 l I n t t / 1 1’ 干球温度 的取整 t s S h e e t 1 . C e l l s i , 1 9 ’ 湿球温度的引用赋值 t r t t s ’ 干 、 湿球温度差 ’ 以下代码是为了防止 用户将干球温度 和湿球温度填 写相反而设 的警 告界 面 R a n g e S h e e t 1 . C e l l s i , 1 8 , S h e e t 1 . C e l l s i , 2 O . S e l e c t S e l e c t i o n . I n t e r i o r . Co l o r I n d e x x l No n e I f t r 0 Th e n Ms g B o x“ 干温度小于湿温度 , 请改正 ” R a n g e S h e e t 1 . C e l l s i , 1 8 , S h e e t 1 . C e l l s i , 2 O . S e l e c t W i t h S e l e c t i o n. I n t e r i o r. Co l o r I n d e x 3 P a t t e r nx l S o l i d End W i t h En d E n d I f ’ 以下代码即是插值法的具体实现 kI n t t r /1 1 ’ 计算基准值 的横坐标 k1 1lk k 2k l 1 ’ 比干 、 湿球温度差大一度 的温度值 jI n t t / 2 ’ 计算基准值 的纵坐标 t l2 j t 2t l2 ’ 比干球温度大两度 的温度值 mla i r 2 t 1 , t 2 , S h e e t 2 . C e l l s k 1 , j 1 , S h e e t 2 . C e l l s k1 , j 2 , t ’ 调用 a i r 2功能函数 m2a i r 2 t 1 , t 2 , S h e e t 2 . C e l l s k2 , j 1 , S h e e t 2 . C e l l s k2 , j2 , t ’ 调用 a i r 2功能函数 I l l a i r 2 k 1 , k 2 , m1 , m2 , t r /1 0 0 ‘ 相对湿度% S h e e t 1 . C e l l s i , 2 1 I l l‘ 相对湿度% p sS h e e t 3 . C e l l s 1 1 ,1 S h e e t 3 . C e l l s 1 2 , 1 一 S h e e t 3 . C e l l s 1 1 , 1 t 1 ’ 水分压力计算 S h e e t 1 . C e l l s i , 2 2 p s Ne x t i Ms g B o x“计算完毕 ” En d S l l b 当 代 矿 工2 0 0 7 年第4 期 47 维普资讯
展开阅读全文