收藏 分销(赏)

哈工大流体力学大作业管路计算.docx

上传人:快乐****生活 文档编号:4135161 上传时间:2024-07-31 格式:DOCX 页数:16 大小:288.91KB 下载积分:8 金币
下载 相关 举报
哈工大流体力学大作业管路计算.docx_第1页
第1页 / 共16页
哈工大流体力学大作业管路计算.docx_第2页
第2页 / 共16页


点击查看更多>>
资源描述
Harbin Institute of Technology 流体力学大作业 院 系: 班 级: 姓 名: 学 号: 指导教师: ©哈尔滨工业大学 计算机在管路水力计算中的应用 1 等径无分支管路的计算 1.1简单管路沿程损失的计算 分析:此题为第一类问题,可用如下步骤求解。 1) 2) 3) 调用CL子程序计算。 4) 1.1.1 程序框图 见图1-1。 1.1.2 程序说明: 在程序中,hf表示,q表示,pi表示。 1.1.3 程序代码: #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float,int); void main() {int id; id=0; float dlt,d,l,q,nu,hf,v,re,lmd; printf("please input:dlt,d,l,q,nu\n"); scanf("%f,%f,%f,%f,%f",&dlt,&d,&l,&q,&nu); v=4*q/(pi*d*d); re=v*d/nu; lmd=CL(dlt,d,re,id); hf=lmd*l*v*v/(d*2.0*g); printf("v=%7.4fm/s,re=%7.4f,lmd=%7.4f,hf=%7.4fm",v,re,lmd,hf);} N N 开 始 调用CL求λ 打印输出 结束 读qV,d,l,ν,△ 图1-1 简单管路程序框图(1) 1.2简单管路流量的计算 分析:此题为第二类问题,要用试算法,其步骤如下: 1)取=0.03 2)由达西公式可求得 3) 4)调用CL子程序计算。 5)检查和之差是否小于给定精度,如果不满足,将算出的作为重复2)3)4)步骤,直至满足后计算下一步。 6) 1.2.1 程序框图 见图1-2。N 开 始 打印输出 结束 读hf,d,l,ν,△ λ=0.03 调用CL求λ |λ-λ1|<ε 图1-2 简单管路程序框图(2) 1.2.2 程序说明: 在程序中,参数表示同前述程序相同,取精度=0.000005。 1.2.3 程序代码: #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float,int); void main() {int id; id=0; float dlt,d,l,q,nu,hf,v,re,lmd,lmd1; printf("please input:dlt,d,l,hf,nu\n"); scanf("%f,%f,%f,%f,%f",&dlt,&d,&l,&hf,&nu); lmd1=0.03; v=sqrt(2*g*d*hf/(l*lmd1)); re=v*d/nu; lmd=CL(dlt,d,re,id); while(fabs(lmd-lmd1)>=1e-6) {lmd1=lmd; v=sqrt(2*g*d*hf/(l*lmd1)); re=v*d/nu; lmd=CL(dlt,d,re,id);} q=pi*d*d*v/4; printf("v=%7.4f m/s,re=%7.4f,lmd=%7.4f,q=%7.4f m3/s",v,re,lmd,q);} 1.3 简单管路管径的计算 分析:此题为第二类问题,要用试算法,其步骤如下: 1)取=0.03 2)由代入达西公式可求得 3) 4)调用CL子程序计算。 5)检查和之差是否小于给定精度,如果不满足,将算出的作为重复2)3)4)步骤,直至满足后计算下一步。 1.3.1 程序框图 见图1-3。 1.3.2 程序说明: 在程序中,参数表示同前述程序相同,取精度=0.000005。 3.3.3 程序代码: #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float,int); void main() {int id; id=0; float dlt,d,l,q,nu,hf,v,re,lmd,lmd1,lll; printf("please input:dlt,q,l,hf,nu\n"); scanf("%f,%f,%f,%f,%f",&dlt,&q,&l,&hf,&nu); lmd1=0.03; d=pow(8*l*q*q*lmd1/(pi*pi*g*hf),0.2); v=4*q/(pi*d*d); re=v*d/nu; lmd=CL(dlt,d,re,id); while(fabs(lmd-lmd1)>=1e-6) {lmd1=lmd; lll=8*l*q*q*lmd1/(pi*pi*g*hf); d=pow(lll,0.2); v=4*q/(pi*d*d); re=v*d/nu; lmd=CL(dlt,d,re,id);} printf("v=%7.4f m/s,re=%7.4f,lmd=%7.4f,d=%7.4f m ",v,re,lmd,d);} Y N N 开 始 打印输出 结束 读hf,qV,l,ν,△ λ=0.03 调用CL求λ |λ-λ1|<ε 图1-3 简单管路程序框图(3) 2 串联管路的计算方法 2.1串联管路总水头的计算 分析:此题为第一类问题,由公式容易求出h。 2.1.1 程序框图 见图2-2。 N 开 始 , 打印输出 结束 读qV, l1,l2,d1,d2,ν,△1,△2,ζ 调用CL求λ1,λ2 由公式(4-1)计算h 图2-2 串联管路程序框图(1) 2.1.2 程序说明: 在程序中,lmd1和lmd2分别表示和,lmd11和lmd22分别表示和,dlt1和dlt2分别表示1和2,zet表示,其它表示上述程序。 2.1.3 程序代码 #include <windows.h> #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float) ; void main() { float dlt1,lmd1,lmd11,re1,d1,l1,v1; float dlt2,lmd2,lmd22,re2,d2,l2,v2; float q,nu,hf,zet; float dk,lll; lmd11=0.025;lmd22=0.015; printf("please input:q,d1,d2,dlt1,dlt2,l1,l2,nu,zet\n"); scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f",&q,&d1,&d2,&dlt1,&dlt2,&l1,&l2,&nu,&zet); v1=4*q/(pi*d1*d1); v2=4*q/(pi*d2*d2); re1=v1*d1/nu; re2=v2*d2/nu; lmd1=CL(dlt1,d1,re1); lmd2=CL(dlt2,d2,re2); hf=(zet+lmd1*l1/d1)*(v1*v1)/(2*g)+(v1-v2)*(v1-v2)/(2*g)+(lmd2*l2/d2+1)*(v2*v2)/(2*g); printf("v1=%7.4fm/s,re1=%7.4f,lmd1=%7.4f\n",v1,re1,lmd1); printf("v2=%7.4fm/s,re2=%7.4f,lmd2=%7.4f,hf=%7.4fm3/s\n",v2,re2,lmd2,hf);} 2.2串联管路流量的计算 分析:此题为第二类问题,,要用试算法,其步骤如下: 1)取=0.025,=0.015 2)由(2-1)(2-2)二式可求得 (2-3) (2-4) 3) , (2-5) 4)调用CL子程序计算, 5)检查和之差的绝对值及和之差的绝对值是否同时小于给定的精度,如果不满足,将算出的和作为新的和重复2)3)4)步骤,直至满足所取精度后再计算下一步。 6) 2.2.1 程序框图 见图2-3。Y N N 开 始 由公式(4-3)求出v1 由公式(4-4)求出v2 打印输出 结束 读h, l1,l2,d1,d2,ν,△1,△2,ζ 取λ1=0.025,λ2=0.025 调用CL求λ1,λ2 |λ1-λ1′|<ε |λ2-λ2′|<ε 由公式(4-5)求Re1,Re2 图2-3 串联管路程序框图(2) 2.2.2 程序代码: #include <windows.h> #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float) ; void main() { float dlt1,lmd1,lmd11,re1,d1,l1,v1; floatdlt2,lmd2,lmd22,re2,d2,l2,v2; float q,nu,hf,zet; float dk,lll; lmd11=0.025;lmd22=0.015; printf("please input:hf,d1,d2,dlt1,dlt2,l1,l2,nu,zet\n"); scanf("%f,%f,%f,%f,%f,%f,%f,%f,%f",&hf,&d1,&d2,&dlt1,&dlt2,&l1, &l2,&nu,&zet); dk=d1*d1/(d2*d2); lll=zet+lmd11*l1/d1+(1-dk)*(1-dk) +lmd22*l2*dk*dk/d2+dk*dk; v1=sqrt(2*g*hf/lll); v2=dk*v1; re1=v1*d1/nu; re2=v2*d2/nu; lmd1=CL(dlt1,d1,re1); lmd2=CL(dlt2,d2,re2); if(fabs(lmd11-lmd1)>=5e-6||fabs(lmd22-lmd1)>=5e-6) {lmd11=lmd1; lmd22=lmd2; lll=zet+lmd11*l1/d1+(1-dk)*(1-dk)+lmd22*l2*dk*dk/d2+dk*dk; v1=sqrt(2*g*hf/lll); v2=dk*v1; re1=v1*d1/nu; re2=v2*d2/nu; lmd1=CL(dlt1,d1,re1); lmd2=CL(dlt2,d2,re2); } q=pi*d1*d1*v1/4.0; printf("v1=%7.4fm/s,re1=%7.4f,lmd1=%7.4f\n",v1,re1,lmd1); printf("v2=%7.4fmm/s,re2=%7.4f,lmd2=%7.4f,q=%7.4fm3/s\n",v2,re2, lmd2,q); } 3 并联管路的计算方法 3.1并联管路流量的计算 分析:此题相当于简单管路的第二类问题。为了编成方便,采用三位数组表示三条管路的各个参数。 1)取=0.03 2)由达西公式可求得 3) 4)调用CL子程序计算(i) 5) 检查(i)和之差的绝对值是否同时小于给定的精度,如果不满足,将算出的(i)作为新的重复2)3)4)步骤,直至满足所取精度后再计算下一步。 5) 6) 3.1.1 程序框图 见图3-2。 Y Y N N 开 始 打印输出 读已知参数 取λ1(i)=0.03 调用CL计算λ(i) |λ(i)-λ1(i)|<ε 结束 图3-2并联管路程序框图(1) 3.1.2 程序说明: 在程序中,用三位数组表示三条管路的各个参数,即q(0)、q(1) 、q(2)分别表示、、,v(2)、v(1)、v(2)分别表示v1、v2、v3,lmd(0) 、lmd(1) 、lmd(2),分别表示、、,h(0) 、h(1) 、h(2)分别表示h1、h2、h3,qq表示总流量。 3.1.3 程序代码: #include <windows.h> #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float) ; void main() {int i; float dlt[3],lmd[3],re[3],d[3],l[3], v[3],h[3],q[3]; float lmd1[3]; float hf,nu,qq; for(i=0;i<3;i++) {printf("input:d,l,dlt"); scanf("%f,%f,%f",&d[i],&l[i],&dlt[i]); } printf("input:,nu,hf"); scanf("%f,%f",&nu,&hf); for(i=0;i<3;i++) { lmd1[i]=0.03; v[i]=sqrt(2*g*d[i]*hf/(l[i]*lmd1[i])); re[i]=v[i]*d[i]/nu; lmd[i]=CL(dlt[i],d[i],re[i]); if(fabs(lmd1[i]-lmd[i])>=1e-6) {lmd1[i]=lmd[i]; v[i]=sqrt(2*g*d[i]*hf/(l[i]*lmd1[i])); re[i]=v[i]*d[i]/nu; lmd[i]=CL(dlt[i],d[i],re[i]);} q[i]=pi*d[i]*d[i]*v[i]/4.0; } qq=q[0]+q[1]+q[2]; printf("q1=%7.4fm3/s,v1=%7.2fm,re1=%7.1f,lmd1=%7.2f\n",q[0],v[0],re[0],lmd[0]); printf("q2=%7.4fm3/s,v2=%7.2fm,re2=%7.1f,lmd2=%7.2f\n",q[1],v[1],re[1],lmd[1]); printf("q3=%7.4fm3/s,v3=%7.2fm,re3=%7.1f,lmd3=%7.2f,qq=%7.3fm3/s\n",q[2],v[2],re[2],lmd[2],qq); } 3.2并联管路沿程损失的计算 分析:此题为关联管路的第二类问题。由于只知道总流量,各分支流量及能量损失均不知道,因此计算较复杂,其具体步骤如下: 1)根据经验,先给定一个hf值 。 2) 由此hf值求出各分支管的流量,,,(其步骤参见简单管路第二类问题)。 3) 计算其和=++ 4) 将总流量按如下比例分配 =./,=./,=./ 5) 用计算出的、、去求以核对流量分配的正确性, 若求得各分支管路的损失h1、h2、h3中任意两者之间的差小于某一给定精度,则认为hf正确,否则进行下一步。 6) 令hf= (h1+h2+h3)/3,重复(b)(c)(d)(e)步骤,直至满足所给定的精度为止。 3.2.1 程序框图 见图3-3。Y N N 开 始 计算,,, 打印输出 读已知参数 给定一个h值 =./,=./,=./ | h1-h2)|<ε | h3-h2)|<ε | h1-h3)|<ε =++ 计算h1、h2、h3 hf= (h1+h2+h3)/3 结束 图3-3并联管路程序框图(2) 3.2.2程序代码: #include <windows.h> #include<math.h> #include<stdio.h> #define pi 3.1415926 #define g 9.81 float CL(float,float,float) ; void main() { int i; float dlt[3],lmd[3],re[3],d[3],l[3],v[3],h[3],q[3]; float q1[3],lmd1[3]; float qt,hf,hff,nu,qq; for(i=0;i<3;i++) {printf("input:d,l,dlt"); scanf("%f,%f,%f",&d[i],&l[i],&dlt[i]); } printf("input:qq,nu"); scanf("%f,%f",&qq,&nu); qt=0; hff=100; loop: for(i=0;i<3;i++) { hf=hff; lmd1[i]=0.03; v[i]=sqrt(2*g*d[i]*hf/(l[i]*lmd1[i])); re[i]=v[i]*d[i]/nu; lmd[i]=CL(dlt[i],d[i],re[i]); if(fabs(lmd1[i]-lmd[i])>=1e-6) {lmd1[i]=lmd[i]; v[i]=sqrt(2*g*d[i]*hf/(l[i]*lmd1[i])); re[i]=v[i]*d[i]/nu; lmd[i]=CL(dlt[i],d[i],re[i]);} q1[i]=pi*d[i]*d[i]*v[i]/4.0; qt=qt+q1[i]; } for(i=0;i<3;i++) {q[i]=qq*q1[i]/qt; v[i]=4*q[i]/(pi*d[i]*d[i]); re[i]=v[i]*d[i]/nu; lmd[i]=CL(dlt[i],d[i],re[i]); h[i]=lmd[i]*l[i]*v[i]*v[i]/(d[i]*2.0*g); } hff=(h[0]+h[1]+h[2])/3.0; if(fabs(h[0]-h[1])<=0.01||fabs(h[1]-h[2])<=0.01||fabs(h[2]-h[1])<=0.01) goto loop; printf("q1=%7.4fm3/s,v1=%7.2fm,re1=%7.1f,lmd1=%7.2f,h1=%7.3fm\n,q[0],v[0],re[0],lmd[0],h[0]); printf("q2=%7.4fm3/s,v2=%7.2fm,re2=%7.1f,lmd2=%7.2f,h2=%7.3fm\n,q[1],v[1],re[1],lmd[1],h[1]); printf("q3=%7.4fm3/s,v3=%7.2fm,re3=%7.1f,lmd3=%7.2f,h3=%7.3fm\n,q[2],v[2],re[2],lmd[2],h[2]); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服