一、 C語(yǔ)言的起源
C 語(yǔ)言是1972年由美國(guó)的Dennis Ritchie設(shè)計(jì)發(fā)明的, 并首次在UNIX操作系統(tǒng) 的 DEC PDP-11 計(jì)算機(jī)上使用。 它由早期的編程語(yǔ)言 BCPL( Basic Combind Programming Language) 發(fā)展演變而來(lái)。在1970年, AT&T 貝爾實(shí)驗(yàn)室的 Ken Thompson根據(jù)BCPL語(yǔ)言設(shè)計(jì)出較先進(jìn)的并取名為 B的語(yǔ)言, 最后導(dǎo)了C 語(yǔ)言的問(wèn)世。 隨著微型計(jì)算機(jī)的日益普及, 出現(xiàn)了許多C 語(yǔ)言版本。由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn), 使得這些C 語(yǔ)言之間出現(xiàn)了一些不一致的地方。為了改變這種情況, 美國(guó)國(guó)家標(biāo)準(zhǔn) 研究所(ANSI)為C 語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn), 成為現(xiàn)行的C語(yǔ)言標(biāo)準(zhǔn)[1]。
二、C 語(yǔ)言的特點(diǎn)
C 語(yǔ)言發(fā)展如此迅速, 而且成為最受歡迎的語(yǔ)言之一, 主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語(yǔ)言編寫的。用C 語(yǔ)言加上一些匯編語(yǔ)言子程序, 就更能顯示C 語(yǔ)言的優(yōu)勢(shì)了, 象PC- DOS 、WORDSTAR等就是用這種方法編寫的。歸納起來(lái)C 語(yǔ)言具有下列特點(diǎn):
1. C是中級(jí)語(yǔ)言
它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C 語(yǔ)言可以象匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。
2. C是結(jié)構(gòu)式語(yǔ)言
結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化, 即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護(hù)以及調(diào)試。C 語(yǔ)言是以函數(shù)形式提供給用戶的, 這些函數(shù)可方便的調(diào)用, 并具有多種循環(huán)、條件語(yǔ)句控制程序流向, 從而使程序完全結(jié)構(gòu)化。
3. C語(yǔ)言功能齊全
C 語(yǔ)言具有各種各樣的數(shù)據(jù)類型, 并引入了指針概念, 可使程序效率更高。另外C 語(yǔ)言也具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大, 可以實(shí)現(xiàn)決策目的。
4. C語(yǔ)言適用范圍大
C 語(yǔ)言還有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于 多種機(jī)型[1]。
三、 Turbo C 2.0集成編程環(huán)境
Turbo C 2.0最好安裝在硬盤特定的目錄下,如“D:\ TC(下依次為例),可再以章為單位建立下級(jí)目錄,如D1、D2。DOS下鍵入TC↙(回車)第一次運(yùn)行,顯示主屏暮如圖1-1所示。
進(jìn)入 Turbo C 2.0集成編程界面。(注:第一次進(jìn)入Turbo C 2.0集成編程界面時(shí),需要對(duì)Turbo C 2.0集成編程界面進(jìn)行必要的設(shè)置。按下F10鍵激活菜單,進(jìn)入Options子菜單,有7項(xiàng)。第4項(xiàng)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 “,覆蓋存盤。最后還提醒一點(diǎn):FILES中的Change dir(改變當(dāng)前目錄)中應(yīng)設(shè)置為當(dāng)前程序所在目錄。)
四、利用Turbo C 2.0編程軟件編寫孔板流量計(jì)孔徑的計(jì)算程序
求:20℃情況下孔板節(jié)流孔直徑d20
已知條件:
質(zhì)量流量Qmax,Qcom,Qmin(kg/h);操作密度M (kg/m3); 動(dòng)力黏度N (mPa?s); 20℃情況下工藝管道內(nèi)徑D20(m); 正常操作壓力P MPa(G);正常操作溫度T (℃);管道材質(zhì)的線膨脹系數(shù)rD; 孔板材質(zhì)的線膨脹系數(shù)rd ;
通過(guò)計(jì)算后所得的數(shù)據(jù):
正常操作溫度T情況下工藝管道內(nèi)徑D(m);雷諾數(shù)ReD;計(jì)算差壓上限值CPcom 和CPmax;
在知道了相應(yīng)的工藝條件后,下面我就利用Turbo C 2.0編程軟件編寫孔板流量計(jì)孔徑的計(jì)算程序。首先,在開(kāi)始前,我還要先介紹一下Turbo C 2.0相關(guān)的幾個(gè)基本函數(shù),然后通過(guò)應(yīng)用這些函數(shù)來(lái)編寫孔板流量計(jì)孔徑的計(jì)算程序。
1 數(shù)學(xué)函數(shù) 包含在如表1-1所示:(注:使用時(shí)在源文件前加命令行:
# include)
2 由上面的已知條件和Turbo C 2.0的數(shù)學(xué)函數(shù),通過(guò)Turbo C 2.0編程軟件編寫孔板流量計(jì)孔徑的計(jì)算程序如下:
#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);
/*輸入已知的工藝參數(shù)*/
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判斷語(yǔ)句對(duì)雷諾數(shù)進(jìn)行判斷計(jì)算*/
{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循環(huán)語(yǔ)句進(jìn)行迭代計(jì)算*/
{
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); /*輸出計(jì)算孔板流量計(jì)的流出系數(shù)C1*/
printf("b2=%6.10f\n\n",b2); /*輸出計(jì)算孔板流量計(jì)的直徑比b2*/
d=D*b2;
d20=d/(1+rd*(T-20));
printf("d20=%6.10f\n\n",d20);
/*輸出計(jì)算孔板流量計(jì)在20℃情況下孔板節(jié)流孔直徑d20*/
}
以上就是計(jì)算孔板流量計(jì)孔徑的計(jì)算程序。通過(guò)此程序可以很快的計(jì)算出孔板流量計(jì)在20℃情況下孔板節(jié)流孔孔徑的大小。
五 應(yīng) 用
實(shí)例一:
① 被測(cè)流體 :水;
② 流體流量:最大流量Qmax=500t/h;正常流量Qcom=400t/h;最小流量Qmin=200t/h
③ 正常操作壓力:P=14.6 MPa(G);
④ 正常操作溫度:T=220 ℃;
⑤ 20℃情況下工藝管道內(nèi)徑:D20=233㎜;
⑥ 管道材質(zhì)的線膨脹系數(shù):rD=11.16e-6㎜/㎜?℃;
⑦ 孔板材質(zhì)的線膨脹系數(shù):rd=16.60e-6 ㎜/㎜?℃;
⑧ 操作密度:M=850.9082 (kg/m3);
⑨ 動(dòng)力黏度:N=0.124 (mPa?s) ;
按下Ctrl+F9運(yùn)行計(jì)算程序:(注意單位換算)
要求輸入已知的工藝參數(shù):Qmax, Qcom, Qmin, M, N, D20, rD, rd, T =
500000 400000 200000 850.9082 124e-6 .233 11.16e-6 16.60e-6 233↙(回車)
經(jīng)過(guò)程序的運(yùn)算得到如下的結(jié)果:(按下Alt+F5查看結(jié)果)
CPcom=166259.4432591512
CPmax=257980.3725675625
C1=0.6023605334
b2=0.5024122240
d20=0.116966338
實(shí)例二:
① 測(cè)流體 :汽油;
② 流體流量:最大流量Qmax=40000 kg/h;正常流量Qcom=31250 kg/h;
最小流量Qmin=20000 kg/h
③ 正常操作壓力:P=0.80 MPa(G);
④ 正常操作溫度:T=40 ℃;
⑤ 20℃情況下工藝管道內(nèi)徑:D20=102㎜;
⑥ 管道材質(zhì)的線膨脹系數(shù):rD=11.16e-6㎜/㎜?℃;
⑦ 孔板材質(zhì)的線膨脹系數(shù):rd=16.60e-6 ㎜/㎜?℃;
⑧ 操作密度:M=720 (kg/m3);
⑨ 動(dòng)力黏度:N=0.3000 (mPa?s) ;
按下Ctrl+F9運(yùn)行計(jì)算程序:(注意單位換算)
要求輸入已知的工藝參數(shù):Qmax, Qcom, Qmin, M, N, D20, rD, rd, T =
40000 31250 20000 720 300e-6 .102 11.16e-6 16.60e-6 40↙(回車)
經(jīng)過(guò)程序的運(yùn)算得到如下的結(jié)果:(按下Alt+F5查看結(jié)果)
CPcom=31982.3496093750
CPmax=52399.8828125000
C1=0.6041094065
b2=0.5007327199
d20=0.051069240
實(shí)例三:
① 測(cè)流體 :堿液;
② 流體流量:最大流量Qmax=6000 kg/h;正常流量Qcom=5000 kg/h;
最小流量Qmin=3000 kg/h
③ 正常操作壓力:P=0.65 MPa(G);
④ 正常操作溫度:T=40 ℃;
⑤ 20℃情況下工藝管道內(nèi)徑:D20=52㎜;
⑥ 管道材質(zhì)的線膨脹系數(shù):rD=11.16e-6㎜/㎜?℃;
⑦ 孔板材質(zhì)的線膨脹系數(shù):rd=16.60e-6 ㎜/㎜?℃;
⑧ 操作密度:M=1112 (kg/m3);
⑨ 動(dòng)力黏度:N=2.0000 (mPa?s) ;
按下Ctrl+F9運(yùn)行計(jì)算程序:(注意單位換算)
要求輸入已知的工藝參數(shù):Qmax, Qcom, Qmin, M, N, D20, rD, rd, T =
6000 5000 23000 1112 2000e-6 .052 11.16e-6 16.60e-6 40↙(回車)
經(jīng)過(guò)程序的運(yùn)算得到如下的結(jié)果:(按下Alt+F5查看結(jié)果)
CPcom=7848.1137695312
CPmax=11301.2841796875
C1=0.6153961420
b2=0.5284164548
d20=0.027457322
六:結(jié)束語(yǔ)
通過(guò)上述實(shí)例對(duì)
孔板流量計(jì)孔徑的計(jì)算程序進(jìn)一步的做了驗(yàn)證,可以得到如下結(jié)論:一,利用此程序可以精確的計(jì)算出不同介質(zhì)、不同溫度、不同流量等條件下的孔板流量計(jì)孔徑的大小;二:利用此程序計(jì)算孔板流量計(jì)孔徑的特點(diǎn)是快速,簡(jiǎn)單、計(jì)算量?。蝗豪么顺绦?yàn)榻窈蟮脑O(shè)計(jì)提供了一套有序的計(jì)算方法。
參 考 文 獻(xiàn)
[1] 郭繼展.新編C語(yǔ)言程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2004. 2-3.
[2] 孫淮清,王建中,流量測(cè)量節(jié)流裝置設(shè)計(jì)手冊(cè)[M].化學(xué)工業(yè)出版社,2006. 13.