利用SQL进行水力计算

/*
https://zhidao.baidu.com/question/116817714.html 
非满流圆管的湿周和水力半径很好算:
湿周 X=(d/2)*B   式中d——管内径;B——充满角,即水深对应的圆心角,以弧度为单位。
水力半径 R=(d/4)(1-sinB/B)

充满度 a = h/d 式中h——水深;d——管内径
充满度与充满角的关系:a =[sin(B/4)]^2  
充满角(弧度): B=asin(sqrt(a)) * 4 
有了以上公式就足以编程序计算了。
*/ 

/*
曼宁公式:v = (1/n)*power(r, 2.0/3)*power(i, 1.0/2) 
*/

declare @d numeric(18,8) -- 管(内)径(单位: 豪米, 除1000转为米) 
declare @n numeric(18,8) -- 管壁粗糙系数
declare @i numeric(18,8) -- 坡度(‰, 千分之n,即每千米下降n米,每米下降n毫米) 
declare @h numeric(18,8) -- 水深(单位: 豪米, 除1000转为米)

declare @a numeric(18,8) -- 充满度
declare @b numeric(18,8) -- 充满角(弧度)
declare @r numeric(18,8) -- 水力半径(单位: 米)
declare @x numeric(18,8) -- 湿周(单位: 米)(= 半径* 弧度)
declare @w numeric(18,8) -- 过流面积(单位:平方米)

declare @v numeric(18,8) -- 流速(单位:米/秒)
declare @q numeric(18,8) -- 流量(单位:立方米/秒)

-- 基本参数
select 
@n = 0.009, -- 粗糙系数
@d = 50.0 / 1000, -- 管(内)径(单位: 豪米, 除1000转为米) 
@h = 25.0 / 1000, -- 水深(单位: 豪米, 除1000转为米) 
@i = 26.0 / 1000, -- 坡度(‰, 千分之n) 
-- 上面:已知,下面:未知
@a = @h / @d, -- 充满度
@b = asin(sqrt(@a)) * 4, -- 充满角(弧度)
@x = (@d/2)*@b, -- 湿周(单位: 米)(= 半径* 弧度)
@w = (power(@d, 2) / 8) * (@b - sin(@b)), -- 过流面积(单位:平方米)
@r = (@d/4)*(1-sin(@b)/@b) -- 水力半径(单位: 米)

select 
[粗糙系数] = @n,
[管径] = @d,
[坡度] = @i,
[充满度] = @a, 
[充满角(弧度)] = @b, 
[湿周] = @x,
[过流面积] = @w,
[水力半径] = @r  
 
-- 流速(根据曼宁公式)
select 
@v = (1/@n)*power(@r, 2.0/3)*power(@i, 1.0/2), -- 流速(单位:米/秒)
@q = @w * @v -- 流量(单位:立方米/秒)  

select 
[公式] = '流速(曼宁公式)', 
[流速] = @v, 
[流量(立方)] = @q,  
[流量(升)] = @q * 1000   

-- 流速(谢才公式)
declare @c numeric(18, 4)
set @c=(1/@n)* power(@r, 1.0/6) -- 谢才系数

select 
@v = @c * sqrt(@r * @i), -- 流速(单位:米/秒)
@q = @w * @v -- 流量(单位:立方米/秒)
select 
[公式] = '流速(谢才公式)', 
[流速] = @v, 
[流量] = @q,
[流量(升)] = @q * 1000  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值