自编公式法在水文资料整编推流中的应用

2017-03-16 01:52:23赖厚桂长江水利委员会水文局湖北武汉430010
水利水电快报 2017年2期
关键词:数据录入运算符水文

赖厚桂(长江水利委员会 水文局,湖北 武汉 430010)

自编公式法在水文资料整编推流中的应用

赖厚桂(长江水利委员会 水文局,湖北 武汉 430010)

由于水工建筑物设施运行时特征参数变化,在推求流量的过程中,不同流态需由不同公式推流。以往的软件编制中,通常是一个公式编制一个计算过程,难以做到通用。为了提高整编软件的通用性,通过对公式中各要素进行细致分析,编制了由用户自编公式推求流量的方法。阐述了采用自编公式法推求流量的设计思路及实现方法。实际应用表明,该方法可显著减轻整编人员的工作量,降低计算数据的错误率,是水文资料整编系统推流的重要工具。

流量;流量整编;应用软件开发

在水文部门利用水工建筑物推求流量时,除水文资料整编规范对不同闸坝类型提供了既定的规范公式外[1],还有大量的推求流量公式是由设计部门或水文部门率定的。推求流量公式中相关要素较多,不同流态需由不同的公式来推求流量。以往的整编系统推求流量由软件编制人员定制,一般是一个公式编制一个过程,由用户选取相应公式及相关因素。然而,用户不易理解编制过程,且数据加工繁琐。用户需根据各要素值预先计算某一时刻的流态,还需将参加计算流量的各个要素(如:上下游水位、开高、开宽等)加工为时间相同、个数相等的数据,才能录入数据进入程序计算。要推求某个测站的流量,需进行大量的前期数据加工工作,这给整编人员带来很大困难和负担。采用自编公式法,解决了需要不同公式计算流量的问题,并能自动判断流态,选取符合条件的公式进行计算。这一功能的开发,使用户可以根据规范的堰闸流量公式和测站基于资料率定的流量公式,来编写公式并计算流量,提高了整编软件的通用性。

1 设计思路

自编公式法的设计思路是:用户按一定规则编写公式,并根据公式要素输入数据,在某一时刻,程序根据编写的公式和公式使用条件,自动选取符合条件的公式计算流量,循环计算出全年的流量,然后进行下一步水文要素的整编计算和统计。计算流程见图1。

图1 自编公式法计算流量流程

1.1 公式的编写规则与要素解释

自编公式法按照一定的规则编写公式,一般规则是:以1个英文字母代表1个水文要素,根据流量计算公式的各个水文要素的相互关系,通过加、减、乘、除、乘方等运算符号组成公式,与在Excel表格里编写公式类似;“解释公式要素”里,在字母后面解释字母所代表要素的含义,便于用户在输入各个要素数据时识别。

1.2 公式的使用条件

在水工建筑物中随着闸门开高、上下游水位的变化,某一时刻水流流态也会发生改变,流量计算就会用到多个计算公式。因此,需要设定公式的使用条件,以某个要素或要素的算术表达式,通过算术运算符、关系运算符和逻辑运算符组成判断条件,自动判断流量计算公式的使用条件。

1.3 水文要素的设定

自编公式法中,根据资料的整编要求,需要对输入的要素进行指定,程序按照指定的要素,输出正确的整编成果,如逐日平均水位、水库站的坝上水位、闸坝站的上下游水位等。

2 主要功能模块设计

自编公式法推求流量功能主要包括数据录入模块、公式检查模块、条件判断模块和公式计算模块,此外,还有对不同时间的要素进行组合的模块等,功能模块结构见图2。

图2 功能模块结构

2.1 数据录入模块

数据录入的主要功能是根据编写公式里的要素录入对应的数据。对时间相同的要素,提供对应的列供用户输入数据;如果时间不同,则提供另一个录入界面。数据录入提供了与电子表格直接交换数据的功能,方便用户从电子表格复制数据粘贴到录入界面。

2.2 公式检查模块

用户录入的公式正确与否,将直接影响到下一步能否成功计算。因此,必须对公式编写的正确性进行检查,其功能是检查各个要素、运算符及括号等组成公式的部分是否符合公式编写规则的要求。

2.3 条件判断模块

1个测站的流量计算公式有多个,每个公式都有相应的使用条件,确定某一时刻使用哪个公式,首先要对公式使用条件进行判断。该功能通过算术运算符计算表达式的值,用关系运算符比较条件是否成立,如果有多个比较条件,用逻辑运算符判断多个比较条件是否成立,如果条件成立,就选取对应的公式计算,如果全部条件都不成立,则流量(Q)为零。

2.4 公式计算模块

公式计算模块主要根据数据结构的表达式求值的功能原理编写[2],其功能是:经过公式检查和条件判断选取了某一个公式以后,在计算某一时刻的流量时,把各个要素所代表的数值,代入公式表达式通过运算符进行计算,从而得出某一时刻的流量值,这是自编公式法计算流量的核心。

3 功能实现与计算实例

3.1 自编公式法的一般规定

编辑公式一般以“Q=”打头,编辑的公式内容是通知程序参与计算的要素以及相互关系。1个要素只能使用1个英文字母,不区分大小写。如某站水流呈沉溺式孔流,由于流态的不同,有2个流量计算公式

Q=2.6ME

(1)

(2)

从公式表达式可以看出,程序支持的运算符包括加、减、乘、除、乘方,基本满足一般计算要求。公式编写正确与否,程序运行期间会进行检查并给出提示信息,也可复制到Excel表格上,把字符换成单元格进行验证;“解释自编公式”里的各个要素,用逗号间隔,以便在数据录入界面输入相应的数据,如图3所示。

图3 自编公式法公式及使用条件录入界面

公式使用条件是对每个公式的使用进行限制,既可以用某个公式要素控制,也可以用算术表达式控制。根据数值修约规则[3],公式要素或算术表达式的小数取位,取决于“数值*”栏的小数位。如“U-X<4.50”这个条件,程序计算U-X的值取2位小数与 4.50进行比较。

3.2 数据录入

(1) 流量系数的录入。流量系数是其与有关水力因素(上下游水头、闸门启闭等)建立的相关关系曲线,通常给定一组数据来表示,如图4的数据表明,流量系数M是与上下游水位差U-X建立的关系,某一时间U-X的值为相关因素值,采用一元三点插值法插补出公式要素值,赋值M,代入公式运算。根据数值修约规则,算术表达式U-X和流量系数M的小数取位,取决于相关因素值和公式要素值的最多小数位,实现了由用户控制计算数值精度的要求。

图4 自编公式法流量系数录入界面

(2) 各相关要素的录入。根据“解释自编公式”里的各个要素,提供对应的录入界面供用户输入数据,由于录入数据量较大,程序可对除时间要素以外的要素进行省略处理,各个数据录入界面可从Excel表格直接复制、粘贴,便于用户快速完成数据的录入,见图5。

图5 自编公式法各要素录入界面

3.3 瞬时流量计算

程序读入数据后,对全年的数据进行外循环,对公式及公式使用条件进行内循环处理。当计算第一条记录的流量时,程序首先对图3中第一个公式使用条件进行判断,U-X的值为1.23,小于4.50,且大于0,通过逻辑运算符逻辑与判断,符合第一个条件,因此采用公式(1)计算。先计算出M,相关因素表达式U-X为1.23,按照一元三点插值的方法,在相关因素值找到适合插值的3个点,插补出公式要素值1.64,赋值M;再把开高(E)0.03代入公式,即Q=2.60×1.64×0.03,代入公式计算模块得1.28,退出内循环,并进入外循环,进行下一条记录的计算,直至全部计算出瞬时流量。

3.4 校对计算结果

程序对计算的结果输出1个文本格式的文件,包括了各个要素值、计算的流量及所采用的公式,用户可以方便地导入Excel进行核实检查,确保计算结果的正确。

4 结 语

与利用各类复杂的堰闸流量公式和测站率定流量公式推求流量相比,自编公式法的公式编辑简便,公式使用条件判断灵活,可广泛用于以往的各种推流过程。目前,该功能已扩展到水位流量的单值分析计算模型、感潮河段潮流量计算模型以及引排水(潮)量计算模型的应用计算中,并被纳入水文资料整编系统。若干省(市)水文部门的应用实践表明,该方法显著减轻了整编人员的劳动强度,降低了各种计算数据的错误率,已成为水文资料整编系统推求流量的重要工具。

[1] SL247-2012 水文资料整编规范 [S].

[2] 严蔚敏,吴伟民.《数据结构》(C语言版)[M].北京:清华大学出版社, 2013.

[3] GB/T 8170-2008数值修约规则与极限数值的表示和判定 [S].

(编辑:陈紫薇)

2016-09-28

赖厚桂,男,长江水利委员会水文局,高级工程师.

1006-0081(2017)02-0015-03

P337.3

A

猜你喜欢
数据录入运算符水文
2022年《中国水文年报》发布
老祖传授基本运算符
科学24小时(2021年10期)2021-10-09 23:09:37
基于SPSS软件在市场调研中的数据录入方法
面向海外数据库的一种通用数据录入方法的研究
水文
水文水资源管理
基于SPSS软件在市场调研中的数据录入方法
科学与技术(2018年6期)2018-01-07 11:02:02
水文
C++运算符重载剖析
价值工程(2014年17期)2014-04-16 03:29:20
表达式求值及符号推导