利用Turbo C 2.0编程软件实现孔板流量计的计算
2006/11/16 9:00:00
一、 C语言的起源 C 语言是1972年由美国的Dennis Ritchie设计发明的, 并首次在UNIX操作系统 的 DEC PDP-11 计算机上使用。 它由早期的编程语言 BCPL( Basic Combind Programming Language) 发展演变而来。在1970年, AT&T 贝尔实验室的 Ken Thompson根据BCPL语言设计出较先进的并取名为 B的语言, 最后导了C 语言的问世。 随着微型计算机的日益普及, 出现了许多C 语言版本。由于没有统一的标准, 使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况, 美国国家标准 研究所(ANSI)为C 语言制定了一套ANSI标准, 成为现行的C语言标准[1]。 二、C 语言的特点 C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象PC- DOS 、WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点: 1. C是中级语言 它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2. C是结构式语言 结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。 3. C语言功能齐全 C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。 4. C语言适用范围大 C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于 多种机型[1]。 三、 Turbo C 2.0集成编程环境 Turbo C 2.0最好安装在硬盘特定的目录下,如“D:\ TC(下依次为例),可再以章为单位建立下级目录,如D1、D2。DOS下键入TC↙(回车)第一次运行,显示主屏暮如图1-1所示。 进入 Turbo C 2.0集成编程界面。(注:第一次进入Turbo C 2.0集成编程界面时,需要对Turbo C 2.0集成编程界面进行必要的设置。按下F10键激活菜单,进入Options子菜单,有7项。第4项Directories中。修改3处:“Include directories::D:\ TC \ TC20 \ INCLUDE”,“Library directories:D:\ TC \ TC20 \ LIB”,“Turbo C directory:D:\ TC \ TC20 ”。按ESC键退回。选择“Save options”,在“Config File”窗口中选择“D:\ TC \ TC20 \ TCCONFIG.TC “,覆盖存盘。最后还提醒一点:FILES中的Change dir(改变当前目录)中应设置为当前程序所在目录。) 四、利用Turbo C 2.0编程软件编写孔板流量计孔径的计算程序 求:20℃情况下孔板节流孔直径d20 已知条件: 质量流量Qmax,Qcom,Qmin(kg/h);操作密度M (kg/m3); 动力黏度N (mPa•s); 20℃情况下工艺管道内径D20(m); 正常操作压力P MPa(G);正常操作温度T (℃);管道材质的线膨胀系数rD; 孔板材质的线膨胀系数rd ; 通过计算后所得的数据: 正常操作温度T情况下工艺管道内径D(m);雷诺数ReD;计算差压上限值CPcom 和CPmax; 计算A2[2] ;计算孔板流量计的流出系数C[2] 在知道了相应的工艺条件后,下面我就利用Turbo C 2.0编程软件编写孔板流量计孔径的计算程序。首先,在开始前,我还要先介绍一下Turbo C 2.0相关的几个基本函数,然后通过应用这些函数来编写孔板流量计孔径的计算程序。 1 数学函数 包含在如表1-1所示:(注:使用时在源文件前加命令行: # include) 2 由上面的已知条件和Turbo C 2.0的数学函数,通过Turbo C 2.0编程软件编写孔板流量计孔径的计算程序如下: #include main() { int n; const float pai=3.141592653289; const float b0=0.500000; const float C0=0.606000; float Qmax,Qcom,Qmin,M,N,D20,rD,rd,T=0.0,b,D,ReD,CPmax,CPcom,A2, L,C,C1,b1,b2,d,d20; printf("Qmax,Qcom,Qmin,M,N,D20,rD,rd,T=\n"); scanf("%f%f%f%f%e%f%e%e%f",&Qmax,&Qcom,&Qmin,&M,&N,&D20,&rD,&rd,&T); /*输入已知的工艺参数*/ D=D20*(1+rD*(T-20)); ReD=4*Qcom/(3600*pai*N*D); CPcom=pow(4*Qcom*sqrt(1-pow(b0,4))/(3600*pai*b0*b0*D*D*C0),2)*1/(2*M); CPmax=CPcom*pow((Qmax/Qcom),2); A2=4*Qcom/(3600*pai*D*D*sqrt(2*25e3*M)); printf("CPcom=%6.10f\n",CPcom); printf("CPmax=%6.10f\n",CPmax); if(ReD>2e5) /*利用Turbo C的if判断语句对雷诺数进行判断计算*/ {b=pow(1+pow((0.60/A2),2),-0.25);} if(ReD<2e5) {b=pow(1+pow((0.60/A2+0.06),2),-0.25);} L=0.0254/D; C=0.5961+ 0.0261*pow(b,2)- 0.216*pow(b,8)+ 0.000521*pow(((pow(10,6)*b)/ReD),0.7)+ ((0.0188+0.0063*pow((19000*b/ReD),0.8)))*pow(b,3.5)*pow((pow(10,6)/ReD),0.3)+ (0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b/ReD),0.8))* (pow(b,4)/(1-pow(b,4)))- 0.031*(2*L/(1-b)-0.8*pow(2*L/(1-b),1.1))*pow(b,1.3); b1=pow(1+pow((C/A2),2),-0.25); C1=0.5961+ 0.0261*pow(b1,2)- 0.216*pow(b1,8)+ 0.000521*pow(((pow(10,6)*b1)/ReD),0.7)+ ((0.0188+0.0063*pow((19000*b1/ReD),0.8)))*pow(b1,3.5)*pow((pow(10,6)/ReD),0.3)+ (0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b1/ReD),0.8))* (pow(b1,4)/(1-pow(b1,4)))- 0.031*(2*L/(1-b1)-0.8*pow(2*L/(1-b1),1.1))*pow(b1,1.3); b2=pow(1+pow((C1/A2),2),-0.25); for(n=2;fabs(b2-b1)>1.0e-10;n++) /*利用Turbo C的for循环语句进行迭代计算*/ { b=b1; C=0.5961+ 0.0261*pow(b,2)- 0.216*pow(b,8)+ 0.000521*pow(((pow(10,6)*b)/ReD),0.7)+ ((0.0188+0.0063*pow((19000*b/ReD),0.8)))*pow(b,3.5)*pow((pow(10,6)/ReD),0.3)+ (0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b/ReD),0.8))* (pow(b,4)/(1-pow(b,4)))- 0.031*(2*L/(1-b)-0.8*pow(2*L/(1-b),1.1))*pow(b,1.3); b1=pow(1+pow((C/A2),2),-0.25); C1=0.5961+ 0.0261*pow(b1,2)- 0.216*pow(b1,8)+ 0.000521*pow(((pow(10,6)*b1)/ReD),0.7)+ ((0.0188+0.0063*pow((19000*b1/ReD),0.8)))*pow(b1,3.5)*pow((pow(10,6)/ReD),0.3)+ (0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b1/ReD),0.8))* (pow(b1,4)/(1-pow(b1,4)))- 0.031*(2*L/(1-b1)-0.8*pow(2*L/(1-b1),1.1))*pow(b1,1.3); b2=pow(1+pow((C1/A2),2),-0.25); } printf("C1=%6.10f\n",C1); /*输出计算孔板流量计的流出系数C1*/ printf("b2=%6.10f\n\n",b2); /*输出计算孔板流量计的直径比b2*/ d=D*b2; d20=d/(1+rd*(T-20)); printf("d20=%6.10f\n\n",d20); /*输出计算孔板流量计在20℃情况下孔板节流孔直径d20*/ } 以上就是计算孔板流量计孔径的计算程序。通过此程序可以很快的计算出孔板流量计在20℃情况下孔板节流孔孔径的大小。 五 应 用 实例一: ① 被测流体 :水; ② 流体流量:最大流量Qmax=500t/h;正常流量Qcom=400t/h;最小流量Qmin=200t/h ③ 正常操作压力:P=14.6 MPa(G); ④ 正常操作温度:T=220 ℃; ⑤ 20℃情况下工艺管道内径:D20=233㎜; ⑥ 管道材质的线膨胀系数:rD=11.16e-6㎜/㎜•℃; ⑦ 孔板材质的线膨胀系数:rd=16.60e-6 ㎜/㎜•℃; ⑧ 操作密度:M=850.9082 (kg/m3); ⑨ 动力黏度:N=0.124 (mPa•s) ; 按下Ctrl+F9运行计算程序:(注意单位换算) 要求输入已知的工艺参数:Qmax, Qcom, Qmin, M, N, D20, rD, rd, T = 500000 400000 200000 850.9082 124e-6 .233 11.16e-6 16.60e-6 233↙(回车) 经过程序的运算得到如下的结果:(按下Alt+F5查看结果) CPcom=166259.4432591512 CPmax=257980.3725675625 C1=0.6023605334 b2=0.5024122240 d20=0.116966338 实例二: ① 测流体 :汽油; ② 流体流量:最大流量Qmax=40000 kg/h;正常流量Qcom=31250 kg/h; 最小流量Qmin=20000 kg/h ③ 正常操作压力:P=0.80 MPa(G); ④ 正常操作温度:T=40 ℃; ⑤ 20℃情况下工艺管道内径:D20=102㎜; ⑥ 管道材质的线膨胀系数:rD=11.16e-6㎜/㎜•℃; ⑦ 孔板材质的线膨胀系数:rd=16.60e-6 ㎜/㎜•℃; ⑧ 操作密度:M=720 (kg/m3); ⑨ 动力黏度:N=0.3000 (mPa•s) ; 按下Ctrl+F9运行计算程序:(注意单位换算) 要求输入已知的工艺参数:Qmax, Qcom, Qmin, M, N, D20, rD, rd, T = 40000 31250 20000 720 300e-6 .102 11.16e-6 16.60e-6 40↙(回车) 经过程序的运算得到如下的结果:(按下Alt+F5查看<
提交
查看更多评论
其他资讯
KAM 光学界面检测仪设计方案及技术规格
关于设计院生产设计管理的几点想法
电磁流量计故障检查和分析
石油化工仪表防火规范.rar
催化干气脱硫和溶剂再生系统改造