基于Matlab水位-流量关系曲线的高水延长

2023-01-05

测站测流时, 由于施测条件限制或其他种种原因, 致使最高水位的流量缺测或漏测。为取得全年完整流量过程, 必须进行高水时水位-流量关系的延长。高水延长的结果, 对洪水期流量过程的主要部分, 包括洪峰流量在内, 有重大影响, 因此延长需慎重[1]。池宸星[2]研究了水位流量关系曲线的计算机辅助率确定与应用。程晓波[3]等人研究了利用Excel规划求解拟合“水位-流量”关系曲线。但都只对已知“水位-流量”散点进行拟合并未延伸。本文对如何应用Matlab实现“水位-流量”关系曲线的高水延长进行了研究, 并给出了利用Matlab实现“水位-流量”曲线高水延长的M文件, 具有重复和可操作性。

1 水位流量曲线的延长

1.1 水位流量曲线的手工延长

手工方式工作量繁重[2], 且精度无法确定。在普通方格纸上, 纵坐标是水位, 横坐标是流量, 点绘的水位流量关系点据密集, 分布成一带状, 75%以上的中高水流速仪测流点据的平均关系线的偏离不超过±5%, 且关系点没有明显的系统偏离, 这时即可通过点群中心定一条单一线。点图时, 在同一张图纸上依次点绘水位流量、水位面积、水位流速关系曲线, 并用同一水位下的面积与流速的乘积, 校核水位流量关系曲线中的流量, 使误差控制在±2%~±3%。以上3条曲线比例尺的选择, 应使它们与横轴的夹角分别近似为45°、60°、60°, 且互不相交[1]。

1.2 水位流量曲线Matlab延长

Matlab是美国Math Works公司出品的商业数学软件, 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境.在输入输出方面, 可以直接向Excel和HDF5进行连接[4]。Cftool是Matlab简单实用而强大的曲线拟合工具箱, 支持多种关系曲线模型, 如线性、多项式、幂函数等。实际应用时从这些曲线拟合方法中选择最优的作为结果, 由于水位流量曲线的特殊性, 应用时采用人机交互界面是Matlab的一个重大优势。

Matlab延长水位-流量曲线只需要运行独立的M文件就可以实现曲线的绘制, cftool工具箱界面会给出曲线模型的具体表达式和拟合分析, 还能实现图形的输出。

2 程序设计

利用Matlab平台编制“manning1.m”, “manning2m”, “manning3.m”, “manning4.m”, “stevens.m”5个M文件, 分别用来绘制曼宁公式外延4种情况和斯蒂文斯法外延, 并都保存在Matlab work子目录中以便调用。

曼宁公式V= (R2/3S1/2) /n (1)

式 (1) 中:V为流速, R为水力半径, S为水面比降, n为糙率

延长时, 用上式计算流速, 用实测大断面资料延长水位面积关系曲线, 从而达到延长水位流量的目的.计算流速时, 因水力半径R可用大断面资料求得, 故关键在于确定水面比降S和糙率n值。给出曼宁公式的一种情况, manning4.m, 其他情况类似.

2.1 曼宁公式第4种情况

糙率n和水面比降S均没有资料, 则由 (S1/2) /n=Q (AR2/3) , 画出Z~S1/2/n曲线并延长 (Z比较大时, S1/2n趋近于常数) 则由Q= (AR2/3S1/2) /n求出Q。

利用Matlab平台编制的M文件, manning4编程和变量解释如下:

Z=input ('请输入水位:') ;

Q1=input (‘请输入流量:’) ;%只需输入已知水位对应流量

A=input (‘请输入断面面积:’) ;

R=input (‘请输入水力半径:’) ;

m1=length (Q1) ;%求出流量数组的长度

Z1=Z (:, 1:m1) ;%Z1为已知流量对应的水位

Z2=Z (:, m1+1:end) ;%Z2为未知流量对应的水位

A1=A (:, 1:m1) ;

A2=A (:, m1+1:end) ;

R1=R (:, 1:m1) ;

R2=R (:, m1+1:end) ;

y1=Q1./ (A1.*R1.^ (2/3) ) ;

p1=polyfit (Z1, y1, 3) ;%由于只能由已知水位Z求y1, 故根据y1~Z1散点大致形状选择合适多项式拟合次数

y2=polyval (p1, Z2) ;%根据拟合出曲线求未知流量水位对应的y2

Q2=A2.*R2.^ (2/3) .*y2;

Q=[Q1, Q2];%将Q1, Q2合并为一个数组

cftool (Q, Z) ;%用拟合工具拟合Q, Z

2.2 斯蒂文斯法

由谢才流速公式导出流量为Q=CA (RS) 1/2式中:C为谢才系数, 其余符号同前.

对于断面无明显冲於, 水深不大但水面较宽的河槽, 以断面平均水深h代替R, 则上式可改写为Q=CA (h S) 1/2=KAh1/2

式中, K=CS1/2, 高水时其值接近常数。故高水时Q-Ah1/2呈线性关系, 据此外延.由大断面资料计算Ah1/2并点绘不同高水位Z在Z-Ah1/2曲线上查得Ah1/2值, 并以Q-Ah1/2曲线上查得Q值, 根据对应的 (Z, Q) 点据, 便可以实现水位与流量关系曲线的高水延长。

利用Matlab平台编制的M文件, stevens编程和变量解释如下:

Z=input ('请输入水位:') ;

Q1=input ('请输入流量:') ;%只需输入已知水位对应流量

p1=polyfit (m2, Q1, 1) ;%由于高水时Q1-m2呈线性关系, 所以拟合次数为1

m3=A2.*h2.^ (1/2) ;%计算未知流量大断面的Ah1/2值

Q2=polyval (p1, m3) ;%根据拟合出曲线求未知流量水位对应的流量

Q=[Q1, Q2];%将Q1, Q2合并为一个数组

cftool (Q, Z) ;%用拟合工具拟合Q, Z

3 实例

某水文站的水位流量资料如表1所示。

用stevens法实现水位流量曲线的过程如下:

在Command Window运行“stevens”M文件后, 窗口会提示输入变量, 将表格中变量复制到窗口中后, 弹出“cftool”工具箱, 选择最合适的曲线模型, 则出现水位流量曲线结果如图1, 得出的结果与实测结果误差分析见表2。

4 结语

通过编写5个M文件, 分别实现曼宁公式四种情况和斯蒂文斯法水位-流量曲线外延, 通过“cftool”工具箱选取合适的曲线模型拟合, 通过实例分析, 验证了程序的正确性.本程序适用于水位-流量曲线高水延长的绘制, 具有具有重复和可操作性, 为水文学中水位-流量关系曲线延长的绘制提供了一种新的办法.

摘要:水位-流量关系曲线的高水延长是流量信息处理的一个重要环节, 传统的人工方式工作量大, 且精度不高。在Matlab平台编写5个独立M文件, 分别实现曼宁公式4种情况和斯蒂文斯法水位-流量曲线外延, 并以某, 水文站水位流量实测资料为基础检验了方法的正确性, 为水文学中水位-流量关系曲线高水延长的绘制提供了一种新的办法。

关键词:水位-流量曲线,Matlab,曼宁公式,斯蒂文斯公式,高水延长

参考文献

[1] 詹道江, 徐向阳, 陈元芳.工程水文学[M].北京:中国水利水电出版社, 2009.

[2] 池宸星.水位流量关系曲线的计算机辅助率定与应用[J].水文, 2009, 29 (1) :38-41.

[3] 陈晓波, 高峰, 王永伟, 等.利用Excel规划求解工具拟合“水位-流量”关系曲线[J].气象水文海洋仪器, 2013, 2 (2) :62-65, 97.

[4] 徐金明.MATLAB实用教程[M].北京:清华大学出版社, 北京交通大学出版社, 2005.

上一篇:试论大学生法律素质的培养下一篇:石油化工装置事故处置的基本对策及改进建议