【MATLAB】基于曼宁公式求解复式断面水位-流量关系曲线

基于曼宁公式求解复式断面水位-流量关系曲线

1 曼宁公式原理

在这里插入图片描述
在这里插入图片描述

2 MATLAB求解代码

输入数据说明:X为n×2矩阵,第一列数据为起点距;第二列数据为起点距对应水位高程

部分代码如下:

clc
close all
clear
%% 曼宁公式原理
% 流量Q=A*R^(2/3)*J^(1/2)/n
% 变量说明:
% 过水断面面积A
% 湿周L:流体和固体边缘接触周长
% 水面半径R=A/L
% 糙率n 
% 比降J ‰

%% 导入数据
load('X.mat');
nlength = length(X(:,1));

helpdlg("您的比降和糙率数据更改了么???","重要提示:");
n = 0.05;
J = 3.123 /1000;

Hmin = min( X(:,2) );          % 水位最低点
Hmax =max( X(:,2) );          % 水位最高点
% 将左右端节点水位高程设为最高点同一高程
% ---------------------------------------------
if X(1,2)==Hmax||X(end,2)==Hmax
    if X(1,2)~=X(end,2)
        if X(1,2)>X(end,2)
            % 初始断面高于结束断面
            X(nlength +1,1) = X(end,1);
            X(nlength +1,2) = X(1,2);
        else
            % 初始断面低于结束断面
            X(2:nlength +1,:) = X;
            X(1,1) = X(2,1);
            X(1,2) = X(end,2);
        end
        nlength = nlength +1;
    end    
else
    X(1,2) = Hmax;
    X(end,2) = Hmax;
end

糙率n增大(0.03-0.05之间),成灾水位对应的周期会减小。

3 案例

求解结果图形展示如下:

  • 断面1:
    在这里插入图片描述

  • 断面2:
    - 断面2:![
    【说明】断面非单调的原因:
    推测是因为曼宁公式的局限,代码在计算的时候固定比降和糙率不变,根据计算公式 Q~A*R,面积是单调增的,但是R=A/L(注:L为湿周),在复杂断面时,面积增加小部分,湿周可以增加很多,导致水利半径R变小,最终导致流量变小。
    这也是我的疑惑,只知道原因,但是还不知道如何解决。但是代码针对规整的断面,水位-流量曲线应该是单增的。

  • 断面3:
    在这里插入图片描述

4 代码获取链接

基于曼宁公式求解复合断面水位-流量关系曲线
若需获取/有问题可私信

重点:将复杂过水断面(如复式断面)划分为多个子断面,计算各子断面的流量,相加得到整个复杂断面的流量。

参考

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WW、forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值