水力学计算程序代码
涵洞快速计算程序

涵洞快速计算程序h(m)(输)b(m)(输)m左(边坡输)m右(边坡输)ω(m2)3.723400.50.51271.7192 3.2133100.50.51001.1916852.72800.50.5759.645 2.1712500.50.5545.1066205 1.5972300.50.5368.5852045 0.4761000.50.547.713288Q(m3/s)(输)b(m)(输)m左(边坡输)m右(边坡输)ω(m2)0.62 1.5 1.5 1.27135122.32300.50.565.820898 466.32300.50.5147.17416050.51 1.5 1.5 2.51.4422 5.9202466.623022206.984898X1(输)Y1(输)X2(输)Y2(输)X(输)59.149.357.148.558.70.001 3.1660.0028.9660.00110420.3630.356 2.564Q(m3/s)(输)b(m)(输)m左(边坡输)m右(边坡输)hk(m)(试输)40.72300.50.50.148120170.50.5 1.69 212170.50.5 2.45Q(m3/s)(输)b(m)(输)m左(边坡输)m右(边坡输)hk(m)(输) 120170.50.5 1.6901 166170.50.5 1.415 244170.50.5 1.415Q(m3/s)(输)E0(输)b(m)(输)q(m3/sm)流速系数(输)1.354 1.50.90.95122.3 1.771120 1.0191666670.8521213.551712.470588240.85hc''的计算(第202页)正插值计算(请X、梯形断⾯临界⽔深hk的计算,《⽔⼒学》(上册)(河海⼤学1986级梯形断⾯临界底坡的计算,《⽔⼒学》(上册)(河海⼤学1986级教科书,第271页)底流式矩形消⼒池(⾮扩散)的计算《hc的计算(第201页)hc(m)(引⽤)q(m3/sm)(引⽤)Frc hc''(m)0.10830.98.062418189 1.1818712820.217 1.019166667 3.2190009620.8853015880.93212.47058824 4.425155815 5.385149739池深S的计算Q(m3/s)(引⽤)b(m)(引⽤)ht(m)(输)hc''(m)(引⽤)σ(输)1.35 1.5 3.9 1.181871282 1.05122.3120 2.2760.885301588 1.0521217 3.237 5.385149739 1.05消⼒坎设计《⽔⼒计算⼿册》第210页。
D-2水闸水力学计算程序

D-2 水闸水力学计算程序作者 陈靖齐(水电部天津勘测设计院) 校核 潘东海(水电部天津勘测设计院)一、概述:(一)水闸过水能力计算的难题是流量系数μ,经验方式很多,各家不同,甚至一本参考书,列出几种公式,几种算例,深入研究流量系数不是本程序范围,本程序仅对现有公式择优选一。
(二)一般计算流量时,不计行进流速V 0=Q/BH ,本程序用迭代法,考虑了V 0,即Q →V 0→H 0,再算Q ,较符合实际过程,精度│△Q │< 0.001m 3/s 。
(三)求e 用迭代法。
二.功能:本程序能计算平底平板闸门、平底弧形闸门、实用堰平板闸门、实用堰弧形闸门四种情况下的流量,闸门开启度e 。
三.公式和算法: (一)流量公式(平底平板闸门可求淹没系数σ) 或(其他三种情况)式中:μ0—流量系数,因闸门形式,底坎形式,相对开度e/H 而异; e —闸门开度(m ); B —闸门宽(m ); H 0—闸前水深(m ); H S —下游水深(m );g —重力加速度(9.8m/s 2)。
(二)流量系数:本程序取武水的一套较完整的流量系数公式。
1,平底、平板闸门μ0=0.6-0.176e/H [清华、武水](华水多—尾项)2,平底、弧形闸门μ0=0.97-0.56e/H-(1-e/H )×0.258θ[武水]式中:θ--弧形闸门下缘入流角(弧度值)。
25°≤θ≤90°,0.1≤e/H ≤0.65 R —弧形闸门半径; C —转轴高;02gH eB Q σμ=)(s h h g eB Q -=002μRe c COS -=-1θ3,实用堰上平板闸门4,实用堰上弧形闸门(三)淹没出流问题1,平板平底闸门,淹没系数σ=σ[(hs-hc ″)/(H-hc )],其关系为一条曲线,本程序已使其离散和数据化存数据库中,可自动插值。
式中: hs —下游水深(m );hc ″—水跃后水深(m ); hc —收缩断面宽度:hc=ε eFrc=Uc 2/ghc 收缩断面Frude 数e —平板闸门侧收缩系数表,本程序已存数据库中。
明渠水面线(D-7之Basic WTSF之Fortran)源代码及分析

各分段之断面类型: 12333334
各分段之长度: 0 -10 -10 -10 -10 -10 -10 -10
各分段之纵坡: 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100
二.计算结果:
分段 0 1 2 3 4 5 6 7
水深 h 正常水深 ho 临界水深 hk 流速 v 3.700 2.388 2.301 1.960 3.624 2.330 2.330 1.910 3.512 2.340 2.301 2.052 3.414 2.340 2.301 2.141 3.316 2.340 2.301 2.237 3.218 2.340 2.301 2.340 3.120 2.340 2.301 2.451 3.257 1.543 1.475 1.453
若 D、G 同号,令 h 上限= h2;D=G 若 D、G 异号,令 h 上限= h 下限;h 上限= h2;D=G 继续二分,直到∣h1-h2∣≤允许误差为止
4,当渠道为梯形断面带圆弧底时,圆形与边坡相切,程序按几何关系自动计算各要素。
5,水面曲线的类型: 根据渠道的临界水深 hK、正常水深 h0、实际水深 h 三者的关系,将水面曲线分为 a1、
b1、c1、a2、b2、c2、a3、c3 8 种类型;另外,平底(i=0)倒破(i<0)的水面曲线分为 b0(h<hK)、 C0(h>hK)两种类型(参看图 2)。
204
三、输入数据
1,基本参数:Q,K,T,H(0)
Q
渠道计算流量
K
计算渠段分段数
T
渠道不相同断面的个数
H(0)
试算断面水深
2,渠道横断面参数,共有 T 组。渠道横断面可以有下列几种类型:
油库课程设计水力计算编程

夏季铁路收汽油程序及运行结果:#include<stdio.h>#include<math.h>float Q[4]={50,250,250,250};float d[4],L[4];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon;float hf[4];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("集油管管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[3],&L[3]);for(i=0;i<4;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857);Remax=(665-765*log10(epsilon))/epsilon;nd=0.594*pow(10,-6)*exp(0.013*(15.6-35));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}冬季铁路收汽油程序及运行结果:#include<stdio.h>#include<math.h>float Q[4]={50,250,250,250};float d[4],L[4];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon; float hf[4];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("集油管管内径(m),长度(m):\n"); scanf("%f,%f",&d[1],&L[1]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[3],&L[3]);for(i=0;i<4;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857);Remax=(665-765*log10(epsilon))/epsilon;nd=0.594*pow(10,-6)*exp(0.013*(15.6+3));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}夏季铁路收柴油程序及运行结果:#include<stdio.h>#include<math.h>float Q[4]={50,250,250,250};float d[4],L[4];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon;float hf[4];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("集油管管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[3],&L[3]);for(i=0;i<4;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857);Remax=(665-765*log10(epsilon))/epsilon;nd=4.420*pow(10,-6)*exp(0.036*(20-35));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}冬季铁路收柴油程序及运行结果:#include<stdio.h>#include<math.h>float Q[3]={50,100,100};float d[3],L[3];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon; float hf[3];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);for(i=0;i<3;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857); Remax=(665-765*log10(epsilon))/epsilon;nd=4.420*pow(10,-6)*exp(0.036*(20+3));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}夏季公路发汽油程序及运行结果:#include<stdio.h>#include<math.h>float Q[3]={50,100,100};float d[3],L[3];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon;float hf[3];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);for(i=0;i<3;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857);Remax=(665-765*log10(epsilon))/epsilon;nd=0.594*pow(10,-6)*exp(0.013*(15.6-35));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}冬季公路发汽油程序及运行结果:#include<stdio.h>#include<math.h>float Q[3]={50,100,100};float d[3],L[3];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon; float hf[3];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);for(i=0;i<3;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857); Remax=(665-765*log10(epsilon))/epsilon; nd=0.594*pow(10,-6)*exp(0.013*(15.6+3));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}夏季公路发柴油程序及运行结果:#include<stdio.h>#include<math.h>float Q[3]={50,100,100};float d[3],L[3];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon;float hf[3];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);for(i=0;i<3;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857);Remax=(665-765*log10(epsilon))/epsilon;nd=4.420*pow(10,-6)*exp(0.036*(20-35));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}冬季公路发柴油程序及运行结果:#include<stdio.h>#include<math.h>float Q[3]={50,100,100};float d[3],L[3];void main(){float Hf,v,lamda,Remin,Remax,nd,Re,lt,epsilon; float hf[3];int i;printf("鹤管内径(m),长度(m):\n");scanf("%f,%f",&d[0],&L[0]);printf("吸入管内径(m),长度(m):\n");scanf("%f,%f",&d[1],&L[1]);printf("排出管内径(m),长度(m):\n");scanf("%f,%f",&d[2],&L[2]);for(i=0;i<3;i++){epsilon=2*0.06/(1000*d[i]);Remin=59.7/pow(epsilon,1.142857); Remax=(665-765*log10(epsilon))/epsilon; nd=4.420*pow(10,-6)*exp(0.036*(20+3));Re=4*Q[i]/(3600*3.14159*d[i]*nd);printf("雷诺数:%f,Re1:%f,Re2:%f\n",Re,Remin,Remax);if(Re<Remin)printf("水力光滑区lamda=%f\n",lamda=0.3164/pow(Re,0.25));if(Remin<Re&&Re<Remax)printf("混合摩擦区lamda=%f\n",lamda=1/pow((-1.8*log10(6.8/Re+pow((epsilon/7.4),1.11))),2));if(Re>Remax)printf("粗糙区lamda=%f\n",lamda=1/pow((1.74-2*log10(epsilon)),2));v=4*Q[i]/(3600*3.14159*d[i]*d[i]);hf[i]=lamda*L[i]*v*v/(2*9.8*d[i]);printf("hf[%d]=%f\n",i,hf[i]);}}。
水力计算问题用Excel编程处理PPT课件

(9-5)
计算步骤如下:
1)令 hc 0 代入式(9-5)的右边计算得 hc1 。
2)将 hc1 仍代入式(9-5)的右边计算得 hc2 ,比较 hc1和 hc2 ,如二 者相等,则 hc2 即为所求 hc 。否则,再将 hc2 代入式(9-5)计算得 hc3 ,
再比较,如不满足再计算,就这样逐次逼近,直至二者相等或相接近为止。
1.2 收缩断面水深计算
1.2.1 基本方程
任意断面:
E0
hc
Q2
2gAc2 2
矩形断面:
E0
hc
q2
2g 2hc2
式中:
E0
P1
H0
P1
H
0v02
2g
它是以收缩断面底部为基准的坝前断面总水头
(9-1) (9-2)
第1页/共10页
1.2.2 计算方法
(1)试算法
已知溢流坝断面形状、尺寸、E0 、Q 和 时,根据式(9-1)
第4页/共10页
举例计算
【例一】 某水闸单宽流量q=12.50m3/(s﹒m),上游水位
28.00m,
0.95
下游水位24.50m,下游渠底高程21.00m,闸底高程
2解2.:0首0m先,计算E0 ,如
28.00
下游坝高: 图所示,试判断下游水流衔接形式。
P1 22.00 21.00 1.00(m)
或(9-2)应用试算法求解 hc 的步骤如下: 假设一个 hc ,计算式(9-1)或(9-2)的右边,如计算值恰好
等于题给出的 E0 值,则所设的 hc 即为所求。否则再重设 hc 进行计
算,直至相等或相接近为止。计算可列表进行,以便检查错误及逐次 逼近。
河海大学水力学编程作业源代码

Option ExplicitOption Base 1Public b As Single, c As Single, d As Single, e As Single, f As Single, g As Single, s1 As Single, s2 As Single _, x1 As Single, x2 As Single, x3 As Single, v1 As Single, v2 As Single, v3 As Single, r1 As Single, r2 As Single, _r3 As Single, k1 As Single, k2 As Single, k3 As Single, j As Single, h As StringPrivate Sub Command1_Click()Dim a As Single, q As Single, i As Single, p As Single, x As Singlea = Text1.Textb = Text2.Textc = Text3.Textd = Text4.Texte = Text5.Textf = Text6.Textg = Text7.Texth = Text8.Texti = 0If Option1.Value = True Thenq = b - ap = fx(q, b)If p < 0 ThenGoTo kkkkElseGoTo mmmmEnd Ifmmmm:Do While i < h q = b - a p = fx(q, b)If p < 0 Then Exit Subi = i + pList1.AddItem "水深: " & Int(CStr(q * 1000)) / 1000 & " △s: " _& In t(CStr(p * 100))/ 100 & ”s: " & ib = qLoopExit Subkkkk:Do While i < hq = b + a p = fx(q, b)If p < 0 Then Exit Subi = i + pList1.AddItem "水深: " & Int(CStr(q * 1000)) / 1000 & " △s: " _& In t(CStr(p * 100))/ 100 & ”s: " & ib = qLoopElse q = b - a p = fx(b, q) If p < 0 ThenGoTo ffffElseGoTo jjjjEnd Ifjjjj:Do While i < h q = b - a p = fx(b, q) If p < 0 Then Exit Sub i = i + p List1.AddItem "水深: " & Int(CStr(q * 1000)) / 1000 &"& In t(CStr(p * 100)) / 100 & ”s: " & ib = qLoop Exit Sub ffff:Do While i < h q = b + a p = fx(b, q) If p < 0 Then Exit Sub i= i + pList1.AddItem "水深: " & Int(CStr(q * 1000)) / 1000 &"& In t(CStr(p * 100)) / 100 & ”s: " & ib = qLoopEnd IfEnd SubPrivate Sub Command2_Click()List1.ClearEnd SubPrivate Function fx(a As Single, b As Single) As Singles1 = =e * a + f * a A 2s2 = =e * b + f * b A 2x1 =e + 2 * a * Sqr(1 +f A 2)x2 =e + 2 * b * Sqr(1 +f A 2)v1 = g / s1: v2 = g / s2v3 = (v1 + v2) / 2r1 = s1 / x1: r2 = s2 / x2r3 = (r1 + r2) / 2k1 = r1 A (1 / 6) / d: k2 = r2 A (1 / 6) / dk3 = (k1 + k2) / 2j = (v3 A 2) / (k3 A 2 * r3)fx = (b - a + (v2 A 2 - v1 A 2) / (2 * 9.81)) / (c - j) End Function △ s: △ s:。
水力学水面曲线计算VB代码

程序共有2个文件,Hydraulics.bas和Form1.frm。
Hydraulics.bas文件里定义了水力学计算所需的相关函数,后面的计算全部基于这些函数。
相关函数有:(参数已省略)‘author:吴昱驹‘e-mail:328522073@‘platform: VB6.0fxA() 计算过水面积fxv() 计算断面平均流速fxEs() 计算断面单位能量fxv_average() 计算平均速度fxR_average() 计算平均水力半径fxC_average() 计算平均谢才系数fxX() 计算湿周fxR() 计算水利半径fxC() 计算谢才系数fxJ() 计算水力坡度fxdeltaS() 计算ΔSfxHc() 计算临界水深fxH0() 计算正常水深Hydraulics文件内容如下Public Const g As Single = 9.81'定义重力加速度常量gFunction fxA(b As Single, m As Single, h As Single) As Single '计算过水面积fxA = (b + m * h) * hEnd FunctionFunction fxv(q As Single, a As Single) As Single '计算断面平均流速fxv = q / aEnd FunctionFunction fxEs(h As Single, alpha As Single, v As Single) As Single '计算断面单位能量fxEs = h + alpha * v * v / (2 * g)End FunctionFunction fxv_average(v1 As Single, v2 As Single) As Single '计算平均速度fxv_average = 0.5 * (v1 + v2)End FunctionFunction fxR_average(r1 As Single, r2 As Single) As Single '计算平均水力半径fxR_average = 0.5 * (r1 + r2)End FunctionFunction fxC_average(c1 As Single, c2 As Single) As Single '计算平均谢才系数fxC_average = 0.5 * (c1 + c2)End FunctionFunction fxX(b As Single, h As Single, m As Single) As Single '计算湿周fxX = b + 2 * h * Sqr(1 + m * m)End FunctionFunction fxR(a As Single, x As Single) As Single '计算水力半径fxR = a / xEnd FunctionFunction fxC(n As Single, r As Single) As Single '计算谢才系数fxC = (r ^ (1 / 6)) / nEnd FunctionFunction fxJ(v As Single, c As Single, r As Single) As Single '计算水力坡度fxJ = v * v / (c * c * r)End FunctionFunction fxdeltaS(es1 As Single, es2 As Single, i As Single, J As Single) As Single '计算ΔS fxdeltaS = (es2 - es1) / (i - J)End FunctionFunction fxHc(alpha As Single, q As Single, htest As Single, b As Single, m As Single) As Single '试算法计算临界水深Dim temp As Single, ht As Single, temph As Singletemp = alpha * q * q / gFor ht = htest To 0 Step -0.0001temph = ((b + m * ht) * ht) ^ 3 / (b + 2 * m * ht)If Abs(temph - temp) < 1 ThenExit ForEnd IfNext htIf ht > 0 ThenfxHc = htElsefxHc = -1End IfEnd FunctionFunction fxH0(q As Single, b As Single, m As Single, n As Single, i As Single) As Single '计算正常水深Dim qt As Single, ht As Single, c As Single, a As Single, r As Single, x As SingleFor ht = 0 To 10 Step 0.0001x = fxX(b, ht, m)a = fxA(b, m, ht)r = fxR(a, x)c = fxC(n, r)qt = c * a * Sqr(r * i)If Abs(qt - q) < 0.1 ThenExit ForEnd IfNext htIf ht < 10 ThenfxH0 = htElsefxH0 = -1End IfEnd FunctionForm1.frm 文件是程序窗体文件,相关运算,结果等都在此界面输出。
流体力学计算器 源代码

以下为 program.cs的代码using System;using System.Collections.Generic;using System.Linq;//using System.Threading.Tasks;using System.Windows.Forms;namespace水力计算优化版{staticclass Program{///<summary>///应用程序的主入口点。
///</summary>[STAThread]staticvoid Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new Form1());}}}以下为from1.cs的代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;//using System.Threading.Tasks;using System.Windows.Forms;namespace水力计算优化版{publicpartialclass Form1 : Form{publicdouble Q, ZCD, L, d, Md, v, DLnd, YDnd, Re, Pi = 3.14D, Kesi, Re1, Re2, lanbuda; publicdouble b, m, Hf;publicbool YDniandu, Liuliang;public Form1(){InitializeComponent();}privatevoid CanShuCongShe_Click(object sender, EventArgs e){guanjingtextBox.Clear();cucaotextBox.Clear();guanchangtextBox.Clear();midutextBox.Clear();LSutextBox.Clear();LLiangtextBox.Clear();DLitextBox.Clear();YDongtextBox.Clear();LNuotextBox.Clear();LTaitextBox.Clear();MZutextBox.Clear();YChengtextBox.Clear();guanjingtextBox.Focus();}privatevoid LSuradioButton_CheckedChanged(object sender, EventArgs e){if (LSuradioButton.Checked == true){LLiangtextBox.Visible = false;LSutextBox.Visible = true;Liuliang = false;}}privatevoid LLiangradioButton_CheckedChanged(object sender, EventArgs e) {if (LLiangradioButton.Checked == true){LLiangtextBox.Visible = true;LSutextBox.Visible = false;Liuliang = true;}}privatevoid DLiradioButton_CheckedChanged(object sender, EventArgs e){if (DLiradioButton.Checked == true){DLitextBox.Visible = true;YDongtextBox.Visible = false;YDniandu = false;}}privatevoid YDongradioButton_CheckedChanged(object sender, EventArgs e) {if (YDongradioButton.Checked == true){DLitextBox.Visible = false;YDongtextBox.Visible = true;YDniandu = true;}}privatevoid button1_Click(object sender, EventArgs e){if (cucaotextBox.Text == "")cucaotextBox.Focus();if (guanjingtextBox.Text == "")guanjingtextBox .Focus ();if (guanchangtextBox.Text == "")guanchangtextBox.Focus();if (midutextBox.Text == "")midutextBox.Focus();if (LLiangtextBox.Text == "")LLiangtextBox.Focus();if (LSutextBox.Text == "")LSutextBox.Focus();if (YDongtextBox.Text == "")YDongtextBox.Focus();if (DLitextBox.Text == "")DLitextBox.Focus();if (cucaotextBox .Text == "" || guanchangtextBox .Text == "" || guanjingtextBox .Text == "" || midutextBox .Text == ""){MessageBox.Show("请检查是否遗漏数据!");return;}if ((LLiangtextBox.Text == ""&&LSutextBox.Text == "") || (YDongtextBox.Text ==""&&DLitextBox.Text == "")){MessageBox.Show("请检查是否遗漏数据!11");return;}ZCD = float.Parse(cucaotextBox.Text);L = float.Parse(guanchangtextBox.Text);d = float.Parse(guanjingtextBox.Text);Md = float.Parse(midutextBox.Text);if (Liuliang == true){Q = float.Parse(LLiangtextBox.Text);}else{v = float.Parse(LSutextBox.Text);Q = Pi * d * d * v / 4;}if (YDniandu == true){YDnd = float.Parse(YDongtextBox.Text);}else{DLnd = float.Parse(DLitextBox.Text);YDnd = DLnd / Md;}Re = 4 * Q / (Pi * d * YDnd);LNuotextBox.Text = Re.ToString();Kesi =0.002*ZCD /d ;Re1 =59.7/Math .Pow (Kesi ,8/7);Re2 = (665 - 765 * Math.Log10(Kesi)) / Kesi;if (Re <= 2000){LTaitextBox.Text = "层流";lanbuda = 64 / Re;b = 4.15;m = 1;}else{if (3000 < Re && Re <= Re1){LTaitextBox.Text = "水力光滑";lanbuda = 0.3164 / Math.Pow(Re, 1 / 4);b = 0.0246; m = 0.25;}else{if (Re >= Re2){LTaitextBox.Text = "水力粗糙";lanbuda = 0;b = 0; m = 0;}else{LTaitextBox.Text = "混合摩擦";lanbuda = 0;b = 0; m = 0;}}}if (lanbuda == 0)MZutextBox.Text = "不做要求";elseMZutextBox.Text = lanbuda.ToString();if (b != 0 && m != 0){Hf = b * Math.Pow(YDnd, m) * Math.Pow(Q, (2 - m)) * L / Math.Pow(d, (5 - m)); YChengtextBox.Text = Hf.ToString();}elseYChengtextBox.Text = "不做要求"; }}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
降低护坦式消力池水力计算
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
End Sub
Public Function F(ByVal x0, d1)
Dim q, H0, p2, ht, z
q = Val(Text1.Text)
H0 = Val(Text5.Text)
p2 = V al(Text2.Text)
z = Val(Text3.Text)
F = q / (z * Sqr(19.6 * (H0 + p2 + (q / (19.6 * (H0 + p2))) ^ 2 + d1 - x0))) End Function
Public Sub diedai(ByVal x0, d1, y)
Dim e1
e1 = V al(Text6.Text)
Do
x0 = F(x0, d1)
Loop Until Abs(F(x0, d1) - x0) <= e1
y = x0
End Sub
Private Function d2(ByVal y)
q = Val(Text1.Text)
m = y * (Sqr(1 + 8 * q ^ 2 / (9.8 * y ^ 3)) - 1) / 2
ht = Val(Text4.Text)
Δz = q ^ 2 / 19.6 * (1 / ((0.95 * ht) ^ 2) - 1 / ((1.05 * m) ^ 2))
d2 = 1.05 * m - ht - Δz
End Function
Private Sub Command1_Click()
Dim e2, d1
e2 = V al(Text7.Text)
d1 = V al(Text10.Text)
Do
x0 = 0
Call diedai(x0, d1, y)
Loop Until Abs(d1 - d2(y)) <= e2
d = d1
q = Val(Text1.Text)
l = 8.1 * y * ((q / y / (Sqr(9.8 * y))) - 1) ^ 0.93 Text8.Text = d
Text9.Text = l
End Sub
梯形断面明渠临界水深计算程序
Dim b, m, Q, e, α, R, h0 As Single
Private Sub Command1_Click()
b = Val(Text1.Text)
m = Val(Text2.Text)
Q = Val(Text3.Text)
e = Val(Text4.Text)
α= Val(Text5.Text)
h0 = V al(Text7.Text)
Call waiwai
End Sub
Private Sub waiwai()
Do
h1 = h0 - f1(h0) / f2(h0)
If Abs(h1 - h0) < e Then Exit Do
h0 = h1
Loop
Text6.Text = h1
End Sub
Public Function f1(ByVal h)
R = b + 2 * m * h
f1 = 1 - α* Q * Q * R / (9.8 * A * A * A)
End Function
Public Function f2(ByVal h)
A = (b + m * h) * h
X = b + 2 * m * h
f2 = -α* Q ^ 2 * (2 * m * A - 3 * R ^ 2) / (9.8 * A ^ 4) End Function
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
End Sub
梯形断面明渠正常水深计算
Public Sub erfen(ByVal x, ByVal y, ByVal e, z) z = (x + y) / 2
Do Until Abs(F(z)) <= e
If F(x) * F(z) < 0 Then
y = z
Else
x = z
End If
z = (x + y) / 2
Loop
End Sub
Public Function F(ByVal h)
Dim q, b, m, n, i
q = Val(Text5.Text)
b = Val(Text1.Text)
m = Val(Text2.Text)
n = Val(Text3.Text)
i = Val(Text4.Text)
F = q - (b + m * h) * h * 1 / n * ((b + m * h) * h / (b + 2 * h * Sqr(1 + m ^ 2))) ^ (1 / 6) * Sqr((b + m * h) * h * i / (b + 2 * h * Sqr(1 + m ^ 2)))
End Function
Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
End Sub
Private Sub 计算_Click()
Dim x, y, h
x = Val(Text9.Text)
y = Val(Text8.Text)
Call erfen(x, y, Val(Text6.Text), h)
Text10.Text = h
End Sub。