水力学计算程序代码
涵洞快速计算程序
![涵洞快速计算程序](https://img.taocdn.com/s3/m/361d755132687e21af45b307e87101f69e31fb38.png)
涵洞快速计算程序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水闸水力学计算程序](https://img.taocdn.com/s3/m/f8a6600a6fdb6f1aff00bed5b9f3f90f76c64dfd.png)
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)源代码及分析
![明渠水面线(D-7之Basic WTSF之Fortran)源代码及分析](https://img.taocdn.com/s3/m/44803f03bed5b9f3f90f1c98.png)
各分段之断面类型: 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 组。渠道横断面可以有下列几种类型:
油库课程设计水力计算编程
![油库课程设计水力计算编程](https://img.taocdn.com/s3/m/8f5620886bec0975f465e237.png)
夏季铁路收汽油程序及运行结果:#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课件
![水力计算问题用Excel编程处理PPT课件](https://img.taocdn.com/s3/m/0ff808cde2bd960590c677f1.png)
(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 进行计
算,直至相等或相接近为止。计算可列表进行,以便检查错误及逐次 逼近。
河海大学水力学编程作业源代码
![河海大学水力学编程作业源代码](https://img.taocdn.com/s3/m/6fd214d2bed5b9f3f80f1c9f.png)
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代码
![水力学水面曲线计算VB代码](https://img.taocdn.com/s3/m/7e55aade195f312b3169a554.png)
程序共有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 文件是程序窗体文件,相关运算,结果等都在此界面输出。
流体力学计算器 源代码
![流体力学计算器 源代码](https://img.taocdn.com/s3/m/4d6861d27f1922791688e87b.png)
以下为 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 = "不做要求"; }}}。
计算水力学04
![计算水力学04](https://img.taocdn.com/s3/m/dd8374d5b9f3f90f76c61b86.png)
李光炽
计算水力学
连续方程
∂Z ∂Q B + =q ∂t ∂x +1 Z n+1 − Z n+1 + Z n +1 − Z n ∂Z j j j j = ∂t 2∆t +1 Q n+1 − Q n +1 Q n+1 − Q n ∂Q j j j j =θ( ) + (1 − θ )( ) ∂x ∆x j ∆x j
An
1 j+ 2
= A(
U n+1 + U n j j 2
)
李光炽
计算水力学
令A为常数,则有:
A
n j+ 1 2
∂F = ≈ n ∂U U j +1 − U n j
j+ 2
F jn+1 − F jn
F jn+1 − F jn = A n 1 (U n+1 − U n ) j j
U
n +1 j
∆t 1 ∆t 2 2 n n n =U − A(U j +1 − U j −1 ) + ( ) A (U j +1 − 2U n + U n−1 ) j j 2 ∆x 2 ∆x
其中 C j , D j , E j , F j , G j , Φ j 均由初值计 算,所以方程组为常系数线性方程组。对一 条具有L2-L1个河段的河道(如图4-8所 示),有2·(L2-L1+1)个未知变量,可以列出 2· (L2-L1)个方程,加上河道两端的边界条 件,形成封闭的代数方程组。 可唯一求解断 面的水位和流量。
计算水力学
Lax-Wendroff格式 第二节 Lax-Wendroff格式 Lax和Wendroff提出了有限差分格式 写成守恒形式的一阶微分方程系统为:
基于Excel及VBA编程的水力自动化计算
![基于Excel及VBA编程的水力自动化计算](https://img.taocdn.com/s3/m/bf7653ba7f1922791688e8d4.png)
第37卷第2期2018年4月红水河HongShui RiverVol .37 No .2Apr .2018基于E xcel 及VBA 编程的水力自动化计算李倩\申忠辉2(1.广西电力职业技术学院,广西南宁530007; 2.广西水利电力勘测设计研究院,广西南宁530023)摘要:针对国内各水利水电勘测设计院普遍采用的商业软件、自行编程计算、Excel 普通自带函数链接计算等 方法的优缺点进行了分析,提出了在Excel 软件上基于V B A 编程的水力自动化计算的方法。
实现有针对性的个 性化、自动化水力计算。
工程实例证明,该方法具有效率高、简单易学等优点,还可利用E xcel 的图表功能使 结果表达得准确直观。
关键词:水力学;计算;编程;软件中图分类号:TP317.3文献标识码:B文章编号:1001-408X( 2018) 02-0015-031研究背景水力学计算是水利水电工程设计过程中非常重 要的工作内容。
部分水力学计算工作具有过程繁 复、试算及迭代步骤多等特点。
在水力学计算与水 工建筑物优化布置相结合时,更是需要进行反复计 算来寻找最优化的布置结果。
目前国内各水利水电勘测设计院大多采用以下 方法来进行水力学计算。
1)方法一:采用专业化的商业软件,如“水利计算程序集” “理正系列软件”“张东明软件” 等。
由于商业软件一般都投人了较多的人力、物力 进行开发,因此购买价格昂贵,且只能按照软件设 定的功能或条件进行计算。
但各工程实际情况千差 万别,有些条件不一定吻合,软件也无法根据实际情况进行修改,灵活性较差。
2) 方法二:利用编程软件自行编程制作水力 计算程序。
利用程序语言编程计算往往可以与各工 程的实际情况相适应,但利用这些工具往往需要设 计人员花费许多精力来进行编程学习,而且实际操 作中还要花费大量精力进行程序编写,这使得设计 人员往往力不从心。
3)方法三:采用Excel 软件的函数功能进行 表格链接计算。
水力学各种计算
![水力学各种计算](https://img.taocdn.com/s3/m/bd083f046d175f0e7cd184254b35eefdc8d315cb.png)
计算方法说明明渠均匀流求正常水深程序是针对棱柱体明渠(过水断面为对称梯形或矩形)恒定均匀流,已知河床底坡i ,河床糙率n,过水断面形状(b,m ),流量Q ,求解正常水深h 0。
明渠断面示意图按照谢才公式:Ri CA =Q谢才系数:611R n=C过水断面面积:h mh b A )(+= 湿周:212m h b ++=χ 水力半径:χ/A R =由此解得正常水深:)/()12()(04.0203.0220mh b m h b iQ n +++=h算法:采用迭代法求解非线性代数方程。
1. 正常水深的迭代方程为:)/()12()(04.0203.02201n n n mh b m h b iQ n h +++=+;2.假设。
进行迭代求解h ; m h 0.100=....321000h h ⇒⇒3.迭代结束的判断依据为ε<Q Q Q /|-计算|,ε为一个小值。
求临界水深程序是针对棱柱体明渠(过水断面为对称梯形或矩形)恒定均匀流,已知过水断面形状(b,m ),流量Q ,动能校正系数α,求解临界水深hc 。
明渠断面示意图临界水深公式:0132=−=c c s B gA Q dh dE α其中,――断面单位能量。
s E 由此可得:cc B A g Q 32=α过水断面面积:h mh b A )(+= 水面宽度:mh b B 2+=由此解得临界水深: 3132])/()2()/[(c c c mh b mh b g Q h ++×=算法:采用迭代法求解非线性代数方程。
1. 临界水深的迭代方程为:3132])/()2()/[(1n n n c c c mh b mh b g Q h ++×=+; 2.假设。
进行迭代求解h ;m h c 0.10=....321c c c h h ⇒⇒3.迭代结束的判断依据为ε<+n n n c c c h h h /|1-|并且ε<++11/|n n n c c c h h h -|,ε为一个小值。
水力学程序
![水力学程序](https://img.taocdn.com/s3/m/78c29de9524de518964b7d21.png)
水力学电算作业一、运用迭代试算法求解明渠均匀流正常水深h0C语言程序如下:#include<stdio.h>#include<math.h>void main(){double b,m,q,i,n,h,h0=1.0;printf("请依次输入渠道底宽,边坡系数,流量,底坡,糙率:\n");scanf("%lf,%lf,%lf,%lf,%lf",&b,&m,&q,&i,&n);do{h=h0;h0=pow((q*n)/pow(i,0.5),0.6)*pow((b+2*h*pow((1+m*m),0.5)),0.4)/(b+m* h);}while(fabs(h0-h)>0.00001);printf("正常水深为%lf\n",h0);}试算实例截图:二、环状管网的流量及水头损失计算C语言程序如下:#include<stdio.h>#include<math.h>#define Im 5 /*管段数*/#define Jm 2 /*环路数*/void main(){double q[Im]={0.05,0.15,0.02,0.03,0.04}; /*输入管段流量*/ double rl[Im]={450,500,500,400,550}; /*输入管段长度*/ double d[Im]={0.25,0.15,0.20,0.20,0.25}; /*输入管段直径*/ double rn[Im]={0.0125,0.0125,0.0125,0.0125,0.0125};/*输入管段糙率*/double a[Jm][Im]={1,0,1,-1,0,0,1,-1,0,-1}; /*输入系数Aij*/double hf[Im],dq[Jm],shf[Jm],shfq[Jm],s0[Im];printf(" 水头闭合差修正流量\n");loop:for(int j=0;j<Jm;j++) /*环路循环计算*/ {shf[j]=0; /*求和变量初值置0*/shfq[j]=0; /*求和变量初值置0*/for(int i=0;i<Im;i++) /*管段循环计算*/{s0[i]=10.29*rn[i]*rn[i]/pow(d[i],5.3); /*计算比阻S0*/hf[i]=s0[i]*rl[i]*q[i]*fabs(q[i]); /*计算水头损失hfi*/shf[j]=shf[j]+a[j][i]*hf[i]; /*计算水头损失闭合差*/shfq[j]=shfq[j]+fabs(a[j][i])*hf[i]/q[i];}dq[j]=-shf[j]/2/shfq[j]; /*计算修正流量dQj*/printf("%d,%lf,%lf",j,shf[j],dq[j]); /*输出中间结果*/ }for(j=0;j<Jm;j++)for(i=0;i<Im;i++)q[i]=q[i]+a[j][i]*dq[j]; /*修正流量Qi*/ for(j=0;j<Jm;j++){ if(fabs(shf[j]>=0.0001)) goto loop;} /*判断精度*/ printf("计算结果如下:\n");printf("管道号d(m)L(m)s0 q(m^3/m) hf(m)\n");printf("----------------------------------------------------------------\n");for(i=0;i<Im;i++)printf("%d,%lf,%lf,%lf,%lf,%lf",i,d[i],rl[i],s0[i],q[i],hf[i]);/*输出结果*/}试算实例截图:三、棱柱形渠道水面曲线计算C语言程序如下:#include <stdio.h>#include <math.h>double q,i,n,m,b,a,r,v2,ja,jb,es1,es2;double csn,srm,alfa;int ds,ns,dr;int main(){double h[201],v[201],s[201];double hk,h0,hb;double downx,upx;double wucha;double hd;double Vn;static double eps=0.0005;int l;double erfenfa(double (*f)(double),double x1,double x2,double eps);double fe(double h);double fhk(double h);double fh0(double h);alfa=1.05; downx=0.0;upx=40.0; wucha=0.0005;printf("***************计算结果如下***************\n");printf("请输入流量Q 坡度i 糙率n 边坡m 底宽b:\n");scanf("%lg%lg%lg%lg%lg",&q,&i,&n,&m,&b);printf("\n");printf("输入结果为:\n");printf("流量q=%6.2lf(m^3/s) 坡度i=%7.5lf 糙率n=%6.4lf 边坡m=%4.2lf 底宽:%4.2lf(m)\n",q,i,n,m,b);csn=pow((1.0-i*i),0.5);srm=pow((1+m*m),0.5); //计算临界水深//hk=erfenfa(&fhk,0.0,40.0,eps);//二分法求临界水深,函数子程序fhk 附在主程序之后//printf("\n临界水深hk=%9.6f",hk,"(m)\n");//计算正常水深h0//if(i<=0.0){h0=100.0;printf("坡度小于或等于0.0,没有正常水深\n");}else{h0=erfenfa(&fh0,0.0,40.0,0.0005); //二分法求正常水深。
水力学中常用的基本计算方法
![水力学中常用的基本计算方法](https://img.taocdn.com/s3/m/ca384fe3ba1aa8114531d9d8.png)
水力学中常用的基本计算方法水力学中经常会遇到一些高次方程,微分方程的求解问题。
多年来,求解复杂高次方程的基本方法便是试算法,或查图表法,对于简单的微分方程尚可以用积分求解,而边界条件较为复杂的微分方程的求解就存在着较大的困难,但随着计算数学的发展及计算机的广泛使用,一门新的水力学分支《计算水力学》应运而生,但用计算机解决水力学问题,还需要了解一些一般的计算方法。
在水力学课程中常用的有以下几种,现分述于后。
一、高次方程式的求解方法:(一)二分法1、二分法的基本内容:在区间[X1,X2]上有一单调连续函数F(x)=0,则可绘出F(x)~X关系曲线。
如果在两端点处函数值异号即F(x1)·F(x2)<0,(见图(一)),则方程F(x)=0,在区间[X1,X2]之间有实根存在,其根的范围大致如下:取1°若F(x2)·F(x3)>0,则解ξ∈[X1,X3]2°若F(x2)·F(x3)<0,则解ξ∈[X3,X2]3°若F(x2)·F(x3)=0,则解ξ=X3对情况1°,可以令x2=x3,重复计算。
对情况2°,可以令x1=x3,重复计算。
当规定误差ε之后,只要|x1-x2|≤ε,则x1(或x2)就是方程F(x)=0的根。
显然,二分法的理论依据就是高等数学中的连续函数介值定理。
它的优点是思路清晰,计算简单,其收敛速度与公比为的等比级数相同;它的局限性在于只能求实根,而不能求重根。
2、二分法的程序框图(以求解明渠均匀流正常水深为例)最后必须说明,二分法要求x2值必须足够大,要保证F1·F2<0,否则计算得不到正确结果。
为了避免x2值不够大,产生计算错误,在程序中加入了判别条件F1·F2>0。
也可以给定xJ及步长△x,让计算机选择x2(x2=x1+△x)。
(二)牛顿法,1、牛顿法的基本内容:设有连续函数F(x)=0,则可以绘出F(x)~x关系曲线,选取初值xo,过点(xo·F(xo))作一切线,其斜率为辅F'(xo),切线与x 轴的交点是x1,则有:再过(x1,F(x1)作切线,如此类推得到牛顿法的一个迭代序列:xn+l=xn-F(xn)/F'(xn),令xn=xn+1,重复计算,直至满足给定的精度要求,即|xn+1-xn|≤,从而得到方程F(x)=0的根。
《水利水电工程设计计算程序集》.
![《水利水电工程设计计算程序集》.](https://img.taocdn.com/s3/m/e22da667168884868762d656.png)
《水利水电工程设计计算程序集》适用于新规范新疆水利厅张校正《程序集》3.0版的发行通知中说,‘视窗版不但进一步订正了老版的缺陷,对绝大多数程序按照新规范的要求,进行了修改。
’现在有一种说法,说《程序集》是老规范,已经过时,不能再用,这是一种不负责任的说法。
下面具体说明情况,以正视听,做到正确理解规范,正确理解《程序集》,正确处理设计计算工作。
关于水工结构计算一、新老规范简况新的《水工混凝土结构设计规范》仅是水利行业推荐性标准,并且从来没有宣布旧的《水工钢筋混凝土结构设计规范》作废或者必须被替代,而是仍可继续执行。
所以《程序集》中的一些程序,依照旧的《水工钢筋混凝土结构设计规范》编制仍然是合法的。
二、新的《水工隧洞设计规范 SL279-2002》没有按照结构可靠度编制,而且重新选用旧的《水工钢筋混凝土结构设计规范 SDJ 20-78》,这就使得在水工隧洞设计中,使用新的《水工混凝土结构设计规范》反而成为不合法。
下面摘录有关条文,说明这个情况。
《水工隧洞设计规范 SL279-2002》有关条文摘录:6.2.7 ……抗震强度和稳定性验算应按SL203-1997《水工建筑物抗震设计规范》规定执行6.3.2 混凝土和钢筋混凝土衬砌,应根据需要提出混凝土的强度、抗渗、抗冻、抗磨和抗侵蚀等要求,其强度标号不应低于R150,…..6.3.3混凝土和钢筋混凝土衬砌的强度计算仍按SDJ20-78《水工钢筋混凝土结构设计规范(试行)》的规定执行。
《水工隧洞设计规范 SL279-2002》条文说明摘录:6.3.3 本规范未按结构可靠度进行编制,即混凝土和钢筋混凝土结构设计仍执行SDJ20-78,结构强度设计中涉及的控制标准均按该规范取值。
三、新旧抗震规范中,结构计算的拟静力法,所选参数(地震设防烈度、地震加速度、影响系数等)没有改变。
所以说,水工结构计算程序中的抗震部分是符合新规范的。
四、《水利水电工程设计计算程序集》的G-17A是按照新的《水工混凝土结构设计规范SL/T 191-96》编制,它可以应用到《程序集》的所有结构计算中。
- 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。