您的当前位置:首页正文

基于Excel VBA水文频率计算程序的开发应用

2023-04-27 来源:意榕旅游网
西北水电・201 1年・第5期 文章编号:1006--2610(201 1)05—0o01—O3 基于Excel VBA水文频率计算程序的开发应用 袁超 (中国水电顾问集团西北勘测设计研究院,西安摘710065) 要:基于Excel VBA二次开发功能,进行5种频率线型水文频率计算程序开发;根据水文频率计算方法,采用VBA 语言编写程序,建立用户界面进行参数的输入和计算成果的输出。经检验,本程序计算结果正确,计算效率高,实用 性强。 关键词:Excel;VBA;GUI;水文频率;计算程序 中图分类号:TP311.11:P333.9 文献标识码:A Application of hydrological frequency calculation program based on Excel VBA YUAN Chao (Hydrochina Xibei Engineering Corporation,CHECC,Xi"an 710065,China) Abstract:The paper presents the development of linear hydrological ̄equency calculation program for five frequencies based on the see— ond development function of Excel VBA.According to the calculation method of hydrological frequency,VBA language is used to prepare the program and establish the user interface SO as to input the parameters and output the calculation results.Tests show that the program has correct calculation results,high calculation efficiency and practical applicability. Key words:Excel;VBA;GUI;hydrological frequency;calculation program 0引 言 在水资源分析及工程水文频率计算中,水文频 率计算是一个非常重要的环节。在进行水文频率计 1水文频率计算的基本原理 5种频率线型的水文频率分析如下。 (1)P—H1分布 P—m分布概率分布函数为: 算时,中国水文学者普遍认为水文资料系列概率分 布符合P—m型分布,因此在水文频率计算中普遍采 用P—m型分布曲线,以推求各种频率下的设计值。 目前,水文频率计算程序多采用VB6.0、Matlab以及 Excel软件为平台开发¨ J,其中Excel软件具有良 好的数据存储、计算和绘图功能,在水利工程设计计 算中应用比较广泛。 f(x)= ( )a-1exp[一/3( >0 =)](1) (2) (3) 4/C =2/(xC C ) (4) (5) 本文借助Excel VBA二次开发技术,采用面向对 象程序设计思路,构建良好的人机交互界面,利用Ex— a。=x(1—2C /C ) 式中:F( )为OL的伽玛函数;OL,卢,a。分别为P—m 分布的形状、尺度和位置参数;a>0,x为均值;C 为 变差系数;C 为偏态系数。 cel宏技术和菜单方式,加载和运行程序,同时对国外 河流水文资料,本程序增加了正态、对数正态、对数P 一Ⅲ、耿贝尔分布以满足非P—m分布设计需要。 在水文分析计算中需要绘制理论频率曲线,要 根据指定的频率P求出相应的设计值 ,即要解决 超过频率P时的分布,即: 收稿日期:2011-06-25 作者简介:袁超(1983一),男,陕西省宝鸡市人,助理工程师,主 要从事水文水资源工作. P= ao)a-1exp ao)]d ) 令t=一/3(x—a。),则: 2 袁超.基于Excel VBA水文频率计算程序的开发应用 (5)Gumbe1分布 (7) tP=卢( 一0o) P= 唧 一 唧㈠ Gumbe1分布又称双指数型分布,其密度甬数为: )=o ̄exp{一 ( — 0)一exp[一 (.15一 ())]} (21) (8) (9) 设计值 。求解: (1+c )x =式中:OL,‰分别为2个分布参数。 设计值 求解: = = +苦 (10 。(1+ C ) (22) =一0.4500532—0.77969681n[一in(1一P)j (23) tp=GAMMAINV(1 ,1) …) 式中: 为离均系数。 =孚GAMMA NV( 一p, , )一 2(12) 式中: 为离均系数;GAMMAINV为伽玛累积分布 函数的反函数。 (2)Norma1分布 正态分布概率密度函数为: f(x)= 1 exp[- ( ](13) 式中: 为均值; 为标准差。 设计值 求解: =NORMINV(1一P, ,gr) (14) 式中:NORMINV为正态累积分布函数的反函数。 (3)Log—Norma1分布 当随机变量 的对数值服从正态分布时,称 的分布为对数正态分布。对于2参数对数正态分布 而言,变量 的对数y=ln(x)服从正态分布,其均值 0 与标准差 计算采用下式: Ⅱ =In(x)一0.5or (15) =√ +1 (16) 式中:x,C 分别为 系列均值与变差系数。 设计值 求解: Yp =NORMINV(1一P,n ,O- ) (17) =exp(Yp) (18) (4)Log—P—m分布 当随机变量 的对数值Y=lnx服从P一111分布 时,称 的分布为对数P一Ⅲ分布,其密度函数为: )= (in( )  ̄qexp[ 1n( ) )] (19) 设计值 求解: 。=exp(Y ) (20) 式中: 采用式(9)求解。 2 程序运行 (1)打开Excel,选择“工具”下拉菜单“加载 宏”选项,在“加载宏”界面选择“浏览”按钮,找到本 程序存放目录,加载本程序; (2)Excel主菜单中“数据”菜单项后面出现 “水文”下拉菜单项(见图1),在F拉菜单项巾选择 “水文频率分析”子项目“水文频率适线分析”即可 运行本程序; (3)在“水文”下拉菜单项中,选择“删除菜单” 即可退出“加载宏”。 图1 程序以粟单形式出现在Excel粟单栏中图 3 功能简介 本程序主要功能分为以下几部分: (1)连续系列和非连续系列频率(多个考 期)计算; (2)5种频率线型(P—llI,Normal,Log—Nor— mall,Log-P-m,Gumbe1)选择; (3)手动调节参数取值; (4)设置数据有效数位; (5)若对现有适线成果不满意可以重新适线; (6)不同线型和不同参数取值,求取各设计频 率设计值; (7)在频率曲线图上可以添加数据点据(如 问数据); (8)同一张频率曲线罔上绘制多条频率曲线和 多个数据系列; (9)设置频率曲线图(Y坐标轴格式:最大值、 最小值、刻度单位;网格线格式:无网格、简网格、令 网格;数据点据格式:大小、形状、颜色;曲线格式:粗 西北水电・2011年・第5期 3 细、形状、颜色;图释:图名、参数取值、设计成果); (10)设计成果(原始数据、经验频率、设计成 果、频率曲线图)以Excel表格输出或直接打印。 4 实 例 某水文站调查到1904年历史洪水,洪峰流量为 5 900~6 300 m /s,为181l_-2000年最大洪水,重 现期71为191 a;实测系列中,1981年洪水作特大值 处理,洪峰流量为5 370 In /s,为1811-2000年相 当第二大洪水,重现期 为76~96 a。 将原始数据输入Excel表格,运行程序并选择 相应输入参数(见图2),按“确定”按钮出现调参界 面(见图3),调整相应参数适线并设置图形格式(见 图4),按“保存”按钮设计成果保存为Excel表格 (见图5)。 平 1904 女}6i ∞ r ~ 19鼢 ∞ i90 2 l一一立…{ 啦。0 ㈣ 36∞ 舞 ish.ttlIfr耵:耵蝴 尊 Ⅻ 麓鲫I豁黼龋  -。 ∞ 薅港 3 秘鞭豁鹄; 相毒替l蔺 赫| 麓 -3舯0 3l∞ 辱嘲畦瓣t 畦鞲|x 壤啦3 嘲 韵 瓢 m r {疆 秘 警 妊 | 鼻 Ⅻ1O  帮 — ≯嚣 ; Ⅻ 卵舫 蒹沌 √ li 她 2 鸯1疰瑚 蘧 tIllm r¥蛳 警 4。 糟蝴 鳓:i ¨l 瞄啪 27∞ 溉艇懈 々 j Shctt1 1蚰搴5:l嘴 嚣 2690 2 _  。- 确彦 。_ 癣簿t_“ 一 l镫瓣 j|j H  图2程序基本数据输入界面图 图3 程序调参并适线界面图 5结论 本文程序具有界面良好,功能丰富,操作简单; 成果以图形与数据表格输出,图形美观,打印效果 好;5种频率分布可供选择,增强了程序的适用性; 计算结果正确,满足水电工程相关规范和标准,计算 效率高,实用性强。 鹧 曼 l T。。 _柚“瑟话谴话 订螭 孔船 图4程序适线成果界面图 图5 程序适线成果输出界面图 本文程序在计算P一Ⅲ分布离均系数 值 GAMMAINV函数采用Excel内置函数,如文献[1], [2],[7]所述偏态系数C 取较大值时, 值发散, 建议C 取值在0.11~5.9范围内使用本程序,同 时,为了提高 计算精度,需重新编写GAMMA— INV函数算法。 参考文献: 王双银,向又珍,朱晓群,等.基本EXCEL的水文频率计算软 件开发[J].西北农林科技大学学报,2006,34(4):113一l16. 李智,衣起超,李艳杰,等.Excel在水文频率计算中的应用 [J].水利与建筑工程学报,2007,5(2):95—97. 耿鸿江.EXCEL在P一Ⅲ型分布频率计算中的应用研究[J].水 电能源科学,2002,20(3):41—43. 王超,伍立群,郭有安.Visual Basic及Excel在水文频率计算中 的应用研究[J].云南地理环境研究,2005,17(4):11—14. 林莺,李世才.水文频率曲线简捷计算和绘图技巧[¨.水利水 电技术,2002,33(7):52—53. 王剑峰,李宏伟,宋松柏,等.基于MATLAB GUI技术的水文频 率计算[J].人民黄河,2010,32(1O):42—43. 王正发.MATLAB在P—m型分布离均系数 值计算[J].西 北水电,2007,(4):1—4. 许议和,魏晓妹.基于Matlab的P一Ⅲ型曲线绘制软件的研发 与应用[J].水电能源科学,2010,28(7):15—17. 叶守泽,詹道江.工程水文学[M].北京:中国水利水电出舨 社,2000:188—193. ¨ i

因篇幅问题不能全部显示,请点此查看更多更全内容