基于VB和Excel的水文频率计算软件的开发及应用
2019-01-16秦国民
秦国民
(中国电建集团西北勘测设计研究院有限公司,西安 710065)
0 前 言
Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,具有强大的数据存储、处理、分析能力,广泛应用于工程设计、管理、统计财经、金融等众多领域,也是专业技术人员常用的工具。用户可以使用Excel VBA开发加载宏,或使用VB、C#等工具开发基于Excel的插件(COM加载项)。加载宏较插件更容易开发,但在安全性方面不如插件。
水文频率计算是工程水文分析计算中的重要内容,随着计算机技术的发展,水文工作者相继采用VB6.0、Excel、Matlab等工具编制了一些水文频率计算软件[1-8]。为了改善设计手段,提高工作效率,参照最新设计洪水计算规范的要求,在总结以往生产实践的基础上,用VB6.0开发了适用于32位Excel的功能强大的水文频率计算软件,以插件的形式与Excel无缝接合,从而让繁琐的工作变得方便快捷。
1 基本原理
水文频率计算是根据某水文现象的统计特性,利用现有水文资料,分析水文要素量值与出现频率(或重现期)之间定量关系的工作过程。主要是利用现有水文资料组成样本系列,选择合适的频率曲线线型(中国一般有P-Ⅲ型、极值Ⅰ型等),采用一定的曲线拟合准则确定频率曲线参数,得到水文要素的统计规律,从而可根据需要查图得到需要的值。
中国工程水文设计中,最常用的曲线拟合准则是目估适线法。该方法首先依据经验点据通过矩法或其他方法估计统计参数的初始值,然后根据该初始参数绘制频率曲线,并目视判断频率曲线与经验点据的拟合情况,必要时调整参数并绘制调整参数后的频率曲线,直到得到满意的点线拟合结果。根据最终确定的频率曲线推求相应于各种频率(或重现期)的水文要素设计值。
上述目估适线过程中,主要的工作量集中在计算统计参数的初始值和根据统计参数初始值或调整值进行频率曲线的绘制,中间有较多重复的计算和绘图工作,以便达到目视判断拟合效果的目的,手工计算的话相当繁琐。针对水文频率计算方法和内容,基于Excel提供的接口,创建VB外接程序工程[9],编制了通用计算软件。软件依托于Excel运行,主要以自定义工具按钮和必要的用户窗体的形式实现各项功能。
2 软件设计
2.1 主界面设计
为保持Excel主界面的简洁,水文频率计算的功能主要集中在“工程水文频率适线”工具栏和频率曲线统计参数调整窗口,如图1、2所示。
图1 “工程水文频率适线”工具栏图
图2 频率曲线统计参数调整窗口图
“工程水文频率适线”工具栏主要按钮的功能说明如下。
(1) 分布线型选择:选择拟采用的分布线型,目前可供选择的线型有P-Ⅲ型、对数P-Ⅲ型、极值-Ⅰ型(Gumbel型);
(2) 有效数字位数:设置计算过程中的有效数字位数,对于流量系列,一般选3;
(3) 开始:点击“开始”按钮后,软件根据Excel活动工作表当前选中项目自动确定要执行的功能,见表1。
表1 不同Excel当前选中项目对应的“开始”按钮功能表
图3 “优选参数”设置窗口图
2.2 功能模块
软件主要包括统计参数计算、高精度离均系数Φp值计算、三参数优选、经验适线、成果输出等模块。
(1) 统计参数计算模块:根据用户选中的含样本系列的单元格,用矩法和线性矩法初估均值、Cv等统计参数,支持连序系列和不连序系列。
(2) 高精度离均系数Φp值计算模块:参考Matlab统计工具箱中有关专用数学函数,编制高精度离均系数Φp值算法,解决了Excel 2003内部函数GAMMAINV存在数值发散区的问题[10]。
(3) 三参数优选模块:以初估的统计参数为初始值,采用基于群体智能的自由搜索算法[11-12],在离(残)差平方和准则或离(残)差绝对值和准则的适线准则下,求解与经验点据拟合最优的频率曲线的统计参数。
(4) 经验适线模块:用户可以调整各统计参数,直到经验点据和频率曲线配合较好为止,也可在同一张频率曲线图添加多条频率曲线,方便对比检查成果。
(5) 成果输出模块:直接在Excel中输出频率曲线图和水文要素设计成果表,输出成果美观大方,能满足标准化、规范化的要求。
3 实 例
某水文站有1979—2013年,共35 a实测洪峰流量系列,实测最大值为4 890 m3/s。调查到1906年历史洪水,洪峰流量6 500 m3/s,量级突出,作特大值处理。经考证,重现期为81 a。
将原始数据输入Excel工作表,扩展选中调查考证参数区和原始数据所在单元格(2列:年份、数值),点击“工程水文频率适线”工具栏的“开始”按钮(见图4),程序计算完初估参数后弹出“优选参数”设置窗口,根据地区规律,Cs/Cv的上限和下限均设为5,其他参数上限和下限取默认值,即只优选均值和Cv,点击“开始优选”,即得到频率曲线图(见图5)。
图4 数据输入及开始计算界面图
图5 水文频率计算成果输出界面图
4 结 论
软件是用VB6.0编制的Excel插件,界面友好,功能齐全,并经过长期测试和反复优化,保证了其稳定、高效的优势。较其他同类软件,有以下特点:
(1) 集成在Excel中,数据输入和输出均在Excel的活动工作表完成,不需要单独建立数据输入文件,避免了在资料输入、输出格式整理上占用大量时间的问题。
(2) 采用了高精度的数值算法和高效的智能优化算法,保证计算结果的准确、可靠。
软件在生产实践中得到很好的应用效果,有较强的实用性。存在的一些不足,主要是目前支持线型较少,虽能满足中国相关规范计算要求,但对国外常用线型、计算方法的支持方面有待进一步研究。