Bài tập tin ứng dụng: Lập trình C

Bài tập + Phần 1: Tập hợp các chương trình đã thức hiện trên lớp về các nội dung: vào/ra dữ liệu, xử lý mảng, con trỏ, hàm. + Phần 2: Lập chương trình tính các thông số nhiệt động của môi chật nhiệt. - Lựa chọn một loại môi chất - Xây dựng các quan hệ giữa các thông số nhiệt động. + Phần 3: Lập chương trình giải một bài toán nhiệt(tính toán chu trình nhiệt hoặc thiết bị nhiệt). Ví dụ một số bài toán sau: - Tính nhiệt thiết bị trao đổi nhiệt - Tính nhiệt thiết bị sấy - Tính nhiệt chu trình máy lạnh nén hơi 1 cấp - Tính toán cân bằng nhiệt và cân bằng vật chất cháy lò hơi - Tính nhiệt tầng Tua bin hơi nước - Tính nhiệt chu trình Tua bin khí - Tính nhiệt chu trình Tua bin hơi nước.

doc32 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2130 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài tập tin ứng dụng: Lập trình C, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TIN HäC øNG DôNG Bµi tËp + PhÇn 1: TËp hîp c¸c ch­¬ng tr×nh ®· thøc hiÖn trªn líp vÒ c¸c néi dung: vµo/ra d÷ liÖu, xö lý m¶ng, con trá, hµm. + PhÇn 2: LËp ch­¬ng tr×nh tÝnh c¸c th«ng sè nhiÖt ®éng cña m«i chËt nhiÖt. - Lùa chän mét lo¹i m«i chÊt - X©y dùng c¸c quan hÖ gi÷a c¸c th«ng sè nhiÖt ®éng. + PhÇn 3: LËp ch­¬ng tr×nh gi¶i mét bµi to¸n nhiÖt(tÝnh to¸n chu tr×nh nhiÖt hoÆc thiÕt bÞ nhiÖt). VÝ dô mét sè bµi to¸n sau: - TÝnh nhiÖt thiÕt bÞ trao ®æi nhiÖt - TÝnh nhiÖt thiÕt bÞ sÊy - TÝnh nhiÖt chu tr×nh m¸y l¹nh nÐn h¬i 1 cÊp - TÝnh to¸n c©n b»ng nhiÖt vµ c©n b»ng vËt chÊt ch¸y lß h¬i - TÝnh nhiÖt tÇng Tua bin h¬i n­íc - TÝnh nhiÖt chu tr×nh Tua bin khÝ - TÝnh nhiÖt chu tr×nh Tua bin h¬i n­íc. - ... Thùc hiÖn 1. PhÇn 1:Tãm t¾t lý thuyÕt cña ng«n ng÷ lËp tr×nh C a.Vµo ra d÷ liÖu HiÓn thÞ d÷ liÖu ra mµn h×nh: printf(); Có ph¸p: printf(,[danh s¸ch ®èi]); VD: HiÓn thÞ gi¸ trÞ x=20 ra mµn h×nh int x; x=20; printf("Gia tri cua x la:%d",x); Vµo d÷ liÖu tõ bµn phÝm scanf(); Có ph¸p: scanf(,{danh s¸ch ®èi}); VD: NhËp gi¸ trÞ thùc x tõ bµn phÝm. float x; printf("Vao gia tri cua x:"); scanf("%f",&x); b.Xö lý m¶ng Khai b¸o m¶ng: Có ph¸p: tªnm¶ng[kÝch th­íc]; VD: int x[10]; -> cã nghÜa lµ m¶ng x cã nhiÒu nhÊt 10 phÇn tö nguyªn Truy cËp c¸c phÇn tö m¶ng Có ph¸p: tªnm¶ng[chØ sè] VD: Ta cã m¶ng nguyªn x cã nhiÒu nhÊt 10 phÇn tö, ta muèn truy cËp vµo phÇn tö thø 5 cña nã ®Ó g¸n gi¸ trÞ cho 1 biÕn y kh¸c, ta lµm nh­ sau: int x[10],y; y=x[4];s NhËp d÷ liÖu cho m¶ng Có ph¸p:- Sö dông vßng lÆp for - Sö dông biÕn trung gian ®Ó nhËp d÷ liÖu VD: Vµo d÷ liÖu cho m¶ng nguyªn x cã 10 phÇn tö: int x[10],y,i,n; n=10; for(i=0;i<n;i++) { printf("x[%d]=",i+1); scanf("%d",&y); x[i]=y; } HiÓn thÞ d÷ liÖu m¶ng Có ph¸p:-Sö dông vßng lÆp for, mçi vßng lÆp sÏ cho ta 1 gi¸ trÞ cña m¶ng. VD: HiÓn thÞ gi¸ trÞ cña m¶ng x nguyªn võa nhËp ë trªn int x[10],i,n; n=10; for(i=0;i<n;i++) printf("\nx[%d]=%d",i+1,x[i]); Mét sè gi¶i thuËt - TÝnh tæng VD:TÝnh tæng cña m¶ng nguyªn x int x[10],i,n,T; n=10;T=0; for(i=0;i<n;i++) T+=x[i]; //T=T+x[i]; - T×m biÕn VD:T×m xem cã bao nhiªu phÇn tö m¶ng x cã gi¸ trÞ lín h¬n 5. int x[10],i,n,dem; n=10;dem=0; for(i=0;i<n;i++) if (x[i]>5) dem=dem+1; - X¾p xÕp VD: X¾p xÕp m¶ng x theo thø tù t¨ng dÇn: int x[10],i,j,n,tg; n=10; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if (x[i]>x[j]) { tg=x[i];x[i]=x[j];x[j]=tg; } c.Xö lý con trá Khai b¸o Có ph¸p:*; VD: Khai b¸o biÕn con trá thùc víi tªn lµ px. double *px; To¸n tö &,* - To¸n tö &: &(tªn biÕn) -> ®Þa chØ biÕn VD: printf("\n Dia chi cua bien x la:&p",&x); - To¸n tö *: * -> tr¶ l¹i n«i dung cña « nhí(biÕn) mµ con trá trá tíi. VD: x=5.7; px =&x; printf("Gia tri cua x la:%lf",*px); - C¸c phÐp to¸n víi con trá: * G¸n 1 ®Þa chØ cho 1 con trá int i,*pi; pi=&i; * G¸n c¸c con trá cïng kiÓu int *pi2; pi2=pi; * Céng trõ con trá víi sè nguyªn Chó ý: con trá sÏ trá tíi « nhí cã ®Þa chØ t¨ng(gi¶m) 1 sè l­îng b»ng sè byte t­¬ng øng víi kiÓu d÷ liÖu cña con trá VD: px -> cã gi¸ trÞ ACF1 px+1 -> cã gi¸ trÞ ACF9 - Con trá void(); Lµ kiÔu void rçng, kh«ng t­¬ng øng víi bÊt kú « nhí nµo, cã thÓ nhËn ®­îc ®Þa chØ cña bÊt kú 1 biÕn nµo. VD: int *pi; double *px; void *pp; pp=pi; pp=px; - Liªn hÖ gi÷a con trá vµ m¶ng Khi khai b¸o 1 m¶ng th× ®ång thêi cã 1 h»ng con trá cã tªn trïng víi tªn cña m¶ng trá vµo phÇn tñ ®Çu tiªn cña m¶ng. Do ®ã muèn truy cËp ph©ng tö thø i cña m¶ng x cã nhiÒu c¸ch VD: int x[10],*pi,i; pi=x; printf("Gia tri phan tu thu %d cua mang la%d",i+1,*(x+i)); printf("Gia tri phan tu thu %d cua mang la%d",i+1,pi[i]); printf("Gia tri phan tu thu %d cua mang la%d",i+1,*(pi+i)); printf("Gia tri phan tu thu %d cua mang la%d",i+1,x[i]); - Chuçi kÝ tù Chuçi kÝ tù lµ 1 m¶ng kÝ tù. Do ®ã khi thao t¸c víi nã ta thao t¸c nh­ víi 1 m¶ng c¸c kÝ tù vµ cã dïng con trá kÝ tù L­u ý: tr­íc hµm vµo d÷ liÖu ký tù, chuçi ký tù nªn dïng hµm xo¸ hÕt c¸c ký tù cßn l­u l¹i trong bé nhíbµn phÝm. d.Xö lý hµm Khai b¸o hµm:T¹o hµm sau ch­¬ng tr×nh chÝnh song khai b¸o hµm tr­íc ch­¬ng tr×nh chÝnh. ViÖc t¹o vµ khai b¸o thÕ nµo sÏ ®­îc cô thÓ qua c¸c vÝ dô. §Þnh nghÜa hµm:[KiÓu DL tr¶ vÒ]([D/s¸ch c¸c tham sè]) VD: #include #include #include double vhn(double,double) void main() { double p,t,v; p=600;t=500;v=vhn(p,t); printf(“\n The tich rieng hoi nuoc tai %10.2lf at va %10.2lf oC la %10.2lf m3/kg”,p,t,v); getch(); } double vhn(double p,double t) { double tg; t +=273.15; tg=8314*t/p-1.224E6/pow(t,3); return tg; } Mét sè ch­¬ng tr×nh: #include #include int A[22][32],B[22][32],C[22][32]; int i,j,x,m,n,p,k; void main() { printf("\n nhap so hang ma tran A: m="); scanf("%d",&m); printf("\n nhap so cot ma tran A: n="); scanf("%d",&n); printf("\n nhap so cot ma tran B: p= "); scanf("%d",&p); printf("Hay nhap cac phan tu cua ma tran:\n"); printf(" Nhap ma tran A:\n"); for(i=1;i<=m;i++) for(j=1;j<=n;j++) {printf("A[%d][%d]=",i,j); scanf("%d",&x); A[i][j]=x;} printf(" Nhap ma tran B:\n"); for(i=1;i<=n;i++) for(j=1;j<=p;j++) { printf("B[%d][%d]=",i,j); scanf("%d",&x); B[i][j]=x; } for(i=1;i<=m;i++) for(j=1;j<=p;j++) { x=0; for(k=1;k<=n;k++) x+=A[i][k]*B[k][j]; C[i][j]=x; } printf("\n Ma tran A la:\n"); for(i=1;i<=m;i++) { for(j=1;j<=n;j++) printf("%5d",A[i][j]); printf("\n"); } printf("\n Ma tran B la:\n"); for(i=1;i<=n;i++) { for(j=1;j<=p;j++) printf("%5d",B[i][j]); printf("\n"); } printf("\n Tich hai ma tran AB la:\n"); for(i=1;i<=m;i++) { for(j=1;j<=p;j++) printf("%5d",C[i][j]); printf("\n"); } for(i=1;i<=p;i++) { float x; x=0; for(j=1;j<=m;j++) x=x+C[j][i]; printf("\n Gia tri trung binh cua cot %d la: %lf",i,x/m); } } KÕt qu¶ ch¹y: #include #include main() { double x[30],y[30],l[30],p,xo,yo,tg,t,tt,xx,yy; int i,j,n,m,k,a; printf("\n nhap n="); scanf("%d",&n); m=0;k=0; a=0; do { for(i=0;i<=n+a;i++) { printf("x[%d]=",i+m); scanf("%lf",&tg); x[i+m]=tg; } for(i=0;i<=n+a;i++) { printf("y[%d]=",i+m); scanf("%lf",&tg); y[i+m]=tg; } printf("\n ta co bang sau:"); printf("\nx:"); for(i=0;i<=n;i++) printf("%5.2lf ",x[i]); printf("\n"); for(i=0;i<4*n+5;i++) printf("--"); printf("\ny:"); for(i=0;i<=n;i++) printf("%5.2lf ",y[i]); do { printf("\n nhap xo="); scanf("%lf",&xo); p=0; for(j=0;j<=n;j++) { l[j]=1; for(i=0;i<=n;i++) if(i!=j) l[j]*=(xo-x[i])/(x[j]-x[i]); p+=y[j]*l[j]; } yo=p; printf("\n gia tri tai %10.4lf la%10.4lf",xo,yo); printf("\nkhong muon tiep tuc nhap xo thi an 1 en ter"); scanf("%lf",&t); } while(t!=1); printf("\n khong muon tiep tuc nhap n thi an 2 enter"); scanf("%lf",&tt); if(tt!=2) { printf("\n so diem ban muon nhap them la:"); scanf("%d",&k); m=n+1;n=n+k; a=k-n-1; } } while(tt!=2); printf("\n nhap xx="); scanf("%lf",&xx); if(xx<x[0]) i=0; if(xx>x[n]) i=n; if(xx>=x[0]&&xx<=x[n]) for(i=0;i<=n;i++) if(xx>=x[i]&&xx<=x[i+1]) break; yy=y[i]+(xx-x[i])*(y[i+1]-y[i])/(x[i+1]-x[i]); printf("\n gia tri tai x=%lf la: y=%lf",xx,yy); getch(); } KÕt qu¶ ch¹y: #include #include main() { int n,i,j,k,l,p,q,a; printf("\n nhap so hang n(<6)="); scanf("%d",&n); for(p=0;p<12;p++) for(i=0;i<n;i++) { for(q=0;q<5;q++) { for(j=0;j<i+3;j++) printf("$"); printf(" "); for(k=0;k<2*n-3-2*i;k++) printf("*"); if(2*n-3-2*i>0) printf(" "); for(l=0;l<i+3;l++) printf("$"); } printf("\n"); } getch(); } 2. PhÇn 2:TÝnh nhiÖt th«ng sè nhiÖt ®éng cña h¬i b·o hoµ Èm a.Më ®Çu Trong c¸c bµi to¸n nhiÖt m«i chÊt ®îc sö dông kh¸ nhiÒu lµ R12. Do vËy viÖc tra cøu c¸c th«ng sè cña R12 lµ mét qu¸ tr×nh th­êng xuyªn ®­îc sö dông khi gi¶i c¸c bµi to¸n liªn quan tíi nã. ViÖc cã mét ch¬ng trinh tra cøu c¸c th«ng sè h¬i R12 sÏ ®em l¹i sù thuËn tiÖn vµ h÷u Ých cho ng­¬i sö dông ®Ó gi¶i to¸n. Trong ch¬ng tr×nh nµy ta míi dõng l¹i ë viÖc tra cøu c¸c th«ng sè cña h¬i b·o hoµ Èm theo th«ng sè nhiÖt ®é t(oc) hay ¸p suÊp p(bar) vµ ®é kh« x. b.Bµi to¸n Tra cøu th«ng sè cña h¬i b·o hµo Èm theo th«ng sè t(oc)hay p(bar) vµ ®é kh« x. Trong ®ã c¸c th«ng sè cÇn ph¶i t×m lµ thÓ tÝch riªng v(m3/kg), entanpi i(kj/kg), entropi s(kj/kg.k) ,néi n¨ng u(kj/kg). Trªn thùc tÕ ®©y lµ mét bµi to¸n nhiÖt ®¬n gi¶n, c¶ vÒ mÆt lËp tr×nh C lÉn lý thuyÕt nhiÖt. Ta chó ý cac c«ng thøc sau: s=s’+x(s’’-s’) i=i’+x(i’’-i’) v=v’+x(v’’-v’) u=i-p.v C¸c gi¸ trÞ s’,s’’,i’,i’’,v’,v’’ ®­îc tra tõ b¶ng. Chóng ta chØ cÇn cã mét b¶ng sè liÖu vµ ®­a chóng vµo ch­¬ng tr×nh sau ®ã dùa vµo th«ng sè ®­a vµo vµ mét sè c«ng thøc nhiÖt ®Ó tra cøu. Tõ ®ã ta cã thÓ hoµn thiÖn mét ch¬ng tr×nh tÝnh nhiÖt c¬ b¶n cña mét m«i chÊt ®· chän. VÒ thuËt gi¶i bµi to¸n nµy lµ kh¸ ®¬n gi¶n, v× vËy mµ ta kh«ng tr×nh bµy ë ®©y. Chóng ta cã thÓ t×m hiÓu chóng lu«n th«ng qua néi dung bµi gi¶i sau. c.Néi dung bµi gi¶i: Chó ý r»ng nhiÖt ®é lµ sè nguyªn : t=-80;-79;-78;,,,,,,,,;78;79;80. nªn ta kh«ng cÇn nhËp vµo. main() { int j,k,index,chon; float x; double tt,u,v,i,s,pp,ss1,ss2,hh1,hh2,rr,ff1,ff2; do { printf("\n1:Tinh toan thong so nhiet"); printf("\n2:Bang hoi bao hoa cua R12"); printf("\n3:Thoat"); printf("\nChon muc:"); scanf("%d",&index); switch(index) { case 1: printf("\n Ban nhap vao nhiet do t hay ap suat p?"); printf("\n Nhap nhiet do t(oc) thi an 1 enter ,nhap ap suat p(bar) thi an 2 enter"); scanf("%d",&chon); if(chon==2) { printf("\n Ban hay nhap vao ap suat p="); scanf("%lf",&pp); if(pp<0.06168) j=0; if(pp>41.4490) j=159; if(pp>=0.06168&&pp<=41.4490) for(j=0;j<=159;j++) if(pp>=p[j]&&pp<=p[j+1]) break; tt=t[j]+(pp-p[j])*(t[j+1]-t[j])/(p[j+1]-p[j]); } if(chon==1) { printf("\n Ban hay nhap vao nhiet do cua R12 de tra cac thong so!"); printf(" t(oc)=");scanf("%lf",&tt); } do { printf("\n Ban hay nhap do kho (0<=x<=1)x="); scanf("%f",&x); if((x1)) { printf("\n Ban da nhap khong dung gia tri cua do kho x!"); printf("\n Ban hay nhap lai!"); } } while(x1); if(tt<-80) j=0; if(tt>80) j=159; k=0; if(tt>=-80&&tt<=80) for(j=0;j<=159,k=0;j++) if(tt>=t[j]&&tt<=t[j++]) k=1; pp=p[j]+(tt-t[j])*(p[j+1]-p[j])/(t[j+1]-t[j]); ff1=f1[j]+(tt-t[j])*(f1[j+1]-f1[j])/(t[j+1]-t[j]); ff2=f2[j]+(tt-t[j])*(f2[j+1]-f2[j])/(t[j+1]-t[j]); hh1=h1[j]+(tt-t[j])*(h1[j+1]-h1[j])/(t[j+1]-t[j]); hh2=h2[j]+(tt-t[j])*(h2[j+1]-h2[j])/(t[j+1]-t[j]); rr=r[j]+(tt-t[j])*(r[j+1]-r[j])/(t[j+1]-t[j]); ss1=s1[j]+(tt-t[j])*(s1[j+1]-s1[j])/(t[j+1]-t[j]); ss2=s2[j]+(tt-t[j])*(s2[j+1]-s2[j])/(t[j+1]-t[j]); printf("\n Ta tra duoc cac thong so :"); printf("\n Nhiet do:%lf (K)",tt+273); printf("\n Ap suat bao hoa:%lf (bar)",pp); printf("\n Khoi luong rieng o the long(soi):%lf (kg/dm3)",ff1); printf("\n Khoi luong rieng hoi bao hoa kho:%lf (kg/m3)",ff2); printf("\n The tich rieng o the long: %lf (dm3/kg)",1/ff1); printf("\n The tich rieng hoi bao hoa kho: %lf (m3/kg)",1/ff2); printf("\n Entanpi o the long(soi): %lf (kj/kg)", hh1); printf("\n Entanpi hoi bao hoa kho: %lf (kj/kg)",hh2); printf("\n Nhiet an r=%lf (kj/kg)",rr); printf("\n Entropi o the long: %lf (kj/kg.k)",ss1); printf("\n Entropi hoi bao hoa kho: %lf (kj/kg.k)",ss2); printf("\n"); printf("\n Voi do kho x=%4.3lf=>cac thong so cua hoi bao hoa am!",x); v=1/ff1+x*(1/ff2-1/ff1); printf("\n The tich v=%lf (kg/m3)",v); i=hh1+x*(hh2-hh1); printf("\n Entanpi i=%lf (kj/kg)",i); s=ss1 +x*(ss2-ss1); printf("\n Entropi s=%lf (kj/kg.K)",s); break; case 2: printf("\n Bang hoi bao hoa cua R12:"); printf("\n t[oc]p[bar]f1[kg/dm3]f2[kg/m3]v1[dm3/kg]v2[m3/kg]h1[kj/kg]h2[kj/kg]s1[kj/kg.k]s2[kj/kg.k]"); for(int j=-80;j<=80;j++) printf("\n %d %6.4f %6.4lf %5.4lf %5.4lf %5.1lf %5.2lf %5.4lf %5.4lf",j,p[j+80],f1[j+80],f2[j+80],1/f1[j+80],1/f2[j+80],h1[j+80],h2[j+80],s1[j+80],s2[j+80]); break; } } while (index!=3);} 3. PhÇn 3:Bµi to¸n tÝnh nhiÖt Tua bin h¬i n­íc 1 tÇng c¸nh. a.Më ®Çu Tuabin h¬i n­íc lµ ®éng c¬ nhiÖt trong ®ã thÕ n¨ng cña h¬i n­íc ®­îc chuyÓn ho¸ thµnh c¬ n¨ng ®Ó quay roto: Tuabin gåm cã 2 tæ hîp d·y c¸nh:d·y c¸nh tÜnh l¾p trong hép & d·y c¸nh ®éng quay l¾p trªn ®Üa, kÕ tiÕp theo ®­êng h¬i ®i ®­¬c gäi lµ tÇng tuabin.ë trong mçi d·y èng phun dßng h¬i ®­îc gia tèc trong c¸c r·nh èng phun ®· ®­îc ®Þnh h×nh vµ h­íng vµo c¸c c¸c qu¹t ®éng lùc do dßng h¬i t¸c ®éng lªn c¸nh qu¹t ®éng sÏ lµm quay ®Üa vµ trôc. M«i chÊt sö dông lµ h¬i n­íc, trong bµi to¸n nµy ta tÝnh tÇng ®¬n nªn tÊt c¶ c¸c th«ng sè nhiÖt ®éng lµ th«ng sè cña h¬i qu¸ nhiÖt. H¬i n­íc cã thÓ coi lµ lý t­ëng vµ ta cã thÓ ¸p dông c¸c c«ng thøc cña khÝ lý t­ëng cho c¸c qu¸ tr×nh nhiÖt ®éng(®¼ng entropi). Mét sè ®¹i l­îng cÇn x¸c ®Þnh vµ tÝnh to¸n trong bµi to¸n tÝnh nhiÖt Tuabin 1 tÇng c¸nh: H0 :nhiÖt gi¸ng nuyoi(): hiÖu suÊt t­¬ng ®èi nuyoi = Hi/H0; Hi: nhiÖt gi¸ng sö dông H0: nhiÖt gi¸ng sö dông tÇng nuyol(): hiÖu suÊt trªn c¸nh qu¹t b.Bµi to¸n TÝnh tÇng tuabin ®¬n khi biÕt c¸c ®¹i l­îng ®Çu vµo: L­u l­îng h¬i G(kg/s), ¸p suÊt h¬i tr­íc tÇng p0(bar), tèc ®é h¬i vµo tÇng C0(m/s), ¸p suÊt sau tÇng p2(bar), tÇn sè quay n(), ®­êng kÝnh trung b×nh d(m) Ta cÇn tÝnh to¸n c¸c th«ng sè cña tuabin: tèc ®é ra cña c¸nh èng phun, c¸nh ®éng, tèc ®é vµo c¸nh ®éng(C1t, C1, C2, W1, W2t, W2),diÖn tÝch ra d·y èng phun, d·y c¸nh ®éng, chiÒu cao èng phun, c¸nh ®éng c¸c gãc trªn tam gi¸c tèc ®é(ë bµi lËp tr×nh ta chØ tÝnh tang cña c¸c gãc nµy,F1, F2, l1, l2, tg Tam gi¸c tèc ®é: beta2 W2 C2 U anfa2 beta1 W1 U C1 anfa1 Trong bµi ta chØ xÐt ®Õn 2 lo¹i tæn thÊt chñ yÕu lµ: tæn thÊt trong d·y èng phun Hc(kj/kg), tæn thÊt trong d·y c¸nh ®éng Hl(kj/kg) vµ tõ ®ã tÝnh ®Õn n¨ng l­îng lý thuyÕt cña tÇng E0(kj/kg), nhiÖt gi¸ng sö dông tÇng(Hi), c«ng suÊt trong cña tÇng Pi(kW) Khi tÝnh to¸n tÇng th­êng chän ®é ph¶n lùc r«=0.1->0.5 ChÊp nhËn hÖ sè l­u l­îng muy = 0.975 HÖ sè tèc ®é phi th­êng tõ 0.96 ->0.98 HÖ sè tèc ®é psi th­êng ®­îc lÊy tõ 0.86 ->0.96 §é chêm khi x¸c ®Þnh chiÒu cao c¸nh ®éng lÊy b»ng 0.0035(m) HÖ sè dïng cho tÇng tiÕp theo n»m trong kho¶ng lÊy trung b×nh lµ: 0.75 Bµi nµy ta chØ quan t©m tíi th«ng sè vµo ra cña tÇng ®¬n Do ®ã ta tÝnh nh÷ng th«ng sè c¬ b¶n nhÊt mµ ch­a tÝnh to¸n toµn bé Khi tÝnh to¸n nhiÖt tÇng tuabin ta ph¶i dùng qu¸ tr×nh trªn gi¶n ®å i-s cña h¬i n­íc: §iÓm quan träng cña bµi to¸n lµ ta ph¶i lËp tr×nh cho m¸y tÝnh x¸c ®Þnh ®­îc entanpi cña h¬i n­íc t¹i c¸c ®iÓm ®Çu ra cña d·y èng phun, d·y c¸nh ®éng vµ t¹i ®iÓm gi·n në cña h¬i trong c¸nh ®éng(do bµi to¸n cã tÝnh ®Õn ®é ph¶n lùc ) TÊt c¶ c¸c c«ng viÖc trªn ta thùc hiÖn b»ng c¸ch néi suy tuyÕn tÝnh theo miÒn C¸c b­íc gi¶i cña bµi to¸n ®ù¬c thÓ hiÖn nh­ sau: B­íc 1: Thùc hiÖn néi suy tuyÕn tÝnh:t×m kho¶ng trong d·y ®iÓm nhËp vµo(trong bµi lËp tr×nh lµ mét ma trËn 1 chiÒu)cã chøa ®iÓm mµ ta cÇn x¸c ®Þnh. B­íc nµy ta tæ chøc thµnh 1 hµm riªng B­íc 2: Thùc hiÖn néi suy tuyÕn tÝnh theo miÒn:(Thùc chÊt lµ néi suy tuyÕn tÝnh theo 2 chiÒu víi ma trËn d÷ liÖu vµo lµ mét m¶ng 2 chiÒu). Môc ®Ých lµ t×m entanpi theo p&t vµ ta còng lµm 1 hµm víi 2 tham sè h×nh thøc lµ p&t theo d÷ liÖu vµo lµ 1 ma trËn 2 chiÒu theo p&t cña entanpi h¬i qu¸ nhiÖt KÕt qu¶ nhËn ®­îc nh­ sau: Víi bµi to¸n nµy ta coi lµ h¬i qu¸ nhiÖt(kh«ng cã ®é Èm) lµ khÝ lý t­ëng vµ x¸c ®Þnh nhiÖt ®é t¹i ®iÓm 2(p2,t2) b»ng ph­¬ng tr×nh sau: T2/T2 = (p2/p2) , víi T lµ nhiÖt ®é tuyÖt ®èi, k lµ sè mò ®o¹n nhiÖt. Tõ ®ã ta x¸c ®Þnh ®­îc nhiÖt ®é t2 vµ thùc hiÖn néi suy tuyÕn tÝnh theo miÒn ®Ó t×m entanpi. §Ó x¸c ®Þnh entanpi trong c¸nh ®éng ta ph¶i ®i t×m nhiÖt ®é tk&pk, ®iÓm nµy ph¶i cã cïng entropi víi ®iÓm (p0,t0) vµ (p2,t2), tøc lµ tõ ®iÓm 0->k->2 lµ qu¸ tr×nh ®¼ng entropi. Ta còng lËp mét hµm riªng ®Ó x¸c ®Þnh entropi theo nhiÖt ®é vµ ¸p suÊt b»ng gi¶i thuËt nh­ víi tr­êng hîp x¸c ®Þnh entanpi.Tõ ®ã biÕt entropi vµ x¸c ®Þnh ®­îc entanpi cña ®iÓm nµy nhê c«ng thøc: ik = (i0 – i2) + i2t, víi i0, i2 lµ entanpi t¹i ®iÓm 0, 2. Ta x©y dùng hµm tÝnh tk&pk theo entanpi & entropi b»ng c¸ch lÆp nh­ sau: T¹o gi¸ trÞ ban ®Çu tk= tk* pk = pk* tÝnh entanpi & entropi theo tk* &pk* (theo c¸ch ë trªn) nÕu (entropi-0.5 <entropi*(võa tÝnh) <entropi +0.5) vµ(entanpi-1 < entanpi(võa tÝnh)<entanpi+1) Tho¸t NÕu ch­a tho¶ m·n ®iÒu kiÖn trªn TiÕp tôc t¨ng tk &pk L¹i t×m entanpi trong c¸nh ®éng theo tk& pk Mét hµm quan träng kh¸c lµ hµm t×m thÓ tÝch riªng lý thuyÕt theo nhiÖt ®é vµ ¸p suÊt Ta sö dông hµm sau: v = KÕt qu¶ nhËn ®­îc nh­ sau: TÊt c¶ c¸c ®¹i l­îng cßn l¹i ®Òu ®· cã c«ng thøc t­êng minh(c¸c c«ng thøc sau ®©y ®­¬c lÊy ra tõ s¸ch tuèc bin h¬i n­íc GS.TS Ph¹m L­¬ng TuÖ) ¸p suÊt h·m tr­íc tÇng(bar) :p0h = h0+C0.khi0/2; Tû sè tèc ®é :u/Ca = u/ §é ph¶n lùc r« :chän NhiÖt gi¸ng lý thuyÕt trong d·y èng phun (kj/kg) : h01 = (1-ro)h0h (hoh:nhiÖt gi¸ng víi th«ng sè h·m) NhiÖt gi¸ng lý thuyÕt trong d·y c¸nh ®éng(kj/kg) :h02 = r o.h0 Tèc ra lý thuyÕt khái c¸nh èng phun(m/s) :C1t = DiÖn tÝch ra cña d·y èng phun(m) :F1 = ChiÒu cao cña c¸nh èng phun(m) :l1 = Tèc ®é ra cña h¬I khái d·y èng phun (m) :C1 = Tèc ®é t­¬ng ®èi ®Çu vµo c¸nh ®éng(m): W1 = Gãc h­íng beta cña tèc ®é t­¬ng ®èi W1 :tg Tèc ®é ra lý thuyÕt cña c¸nh ®éng(m/s) :W ChiÒu cao c¸nh ®éng(m) :l2 = l1+ DiÖn tÝch ra cña d·y c¸nh ®éng(m) :F2 = Gãc h­íng beta2 cña tèc ®é W2 :sin Tèc ®é t­¬ng ®èi cña ®Çu ra c¸nh ®îng W2 :W2 = Tèc ®é tuyÖt ®èi ®Çu ra c¸nh ®éng (m) :C2 = Gãc h­íng anfa2 cña tèc ®é C2 (m) : Tæn thÊt trong d·y èng phun Hc(kj/kg) :Hc= Tæn thÊt trong d·y c¸nh ®éng Hl(kj/kg) :Hl= N¨ng l­îng cña tèc ®é ra Hc2(kj/kg) :Hc2= N¨ng l­îng lý thuyÕt cña tÇng E0(kj/kg) :E0=h0-khic2.Hc2 HiÖu suÊt trªn c¸nh qu¹t : NhiÖt gi¸ng sö dông cña tÇng(kj/kg) :Hi =Eo-Ho-Hl C«ng suÊt trong cña tÇng(kW) :Pi =G.Hi HiÖu suÊt t­¬ng ®èi cña tÇng : ThuËt gi¶i bµi to¸n ®­îc cô thÓ nh­ sau: NhËp th«ng sè ®Çu vµo P0, t0, p2, G, d, Co,ro, muy1, muy2, pxi, phi, anfa1 khico, khic2: (®©y lµ c¸c th«ng sè ®Çu vµo cÇn thiÕt) Néi suy c¸c gi¸ trÞ: noisuytuyentinh(double t,double p) //hµm néi suy tuyÕn tÝnh 1 chiÒu t×m entanpi noisuytuyentinhmien(double t, double p) //hµm néi suy vÞ trÝ vïng cã chøa ®iÓm cÇn néi suy tuyÕn tÝnh entanpi cÇn t×m ham_h1(……………………..) //nhËp c¸c ®iÓm gi¸ tri entanpi vµo m¶ng 2 chiÒu ®Ó néi suy ham_h2(………………….) ham_s(….)……….(tÊt c¶ ®Òu cã trong bµi lËp tr×nh) TÝnh to¸n: TÝnh tÊt c¶ c¸c th«ng sè cña tuabin Mµ ta ®· x¸c ®Þnh b»ng c¸c c«ng thøc ë trªn Ta cã sö dông th­ viÖn hµm chuÈn lµ “math.h” In kÕt qu¶ c.Néi dung bµi gi¶i #include #include #include #define R 8314 #define pi 3.14 #define k 1.3 typedef double MT[10][10]; double nstuyentinh(int n, double *x , double *y, double x0); //n so cot //x0 gia tri can tinh tai x0 //x,y ma tran gia tri nhap vao double nstuyentinhmien(int n, int m,double *x,double *y, MT z, double x0, double y0); //n cot //m hang //x,y ma tran //z ma tran 2 chieu double ham_h1(double t,double p); //p ap suat //t nhiet do //ham entanpi theo ap suat va nhiet do double ham_h2(double t,double p); //p ap suat //t nhiet do double ham_v(double t,double p); //ham the tich theo ap suat va nhiet do double ham_s(double t,double p); //ham tinh entropi theo ap suat va nhiet do void tpis(double *t,double *p); //ham tinh ap suat ,nhiet do khi biet entanpi voi qua trinh doan nhiet void inkq(); //ham in cac thong so cua tua bin tinh duoc double pp[]={ 14,16,18,20,30,40,50,60,70,80}; double tt[]={220,240,260,280,300,350,400,450,500,600 }; double s0,i0,i2,h0,u,uca,h01,h02,t2,tk,pk,v1t,v2t,C1t,C1,C2,W1,W1t,W2,W2t,F1,l1,F2, l2,Hc,Hl,Hc2,E0,nuyol,Hi,nuyoi,Pi,sinbeta2,tanbeta1,tananfa2; //cac thong so cua tua bin can tinh double G,d,n,p0,t0,C0,p2,ro,muy1,anfa1,phi,denta,muy2,pxi,khic0,khic2; //cac thong so dau vao void main() { double cosbeta2; clrscr(); printf("\n vaoluu luong hoi G(kg/s): "); scanf("%lf",&G); printf("\n duong kinh trung binh d(m): "); scanf("%lf",&d); printf("\n tan so quay n(1/s): "); scanf("%lf",&n); printf("\n ap suat hoi truoc tang p0(bar): "); scanf("%lf",&p0); printf("\n nhiet do hoi truoc tang t0(oC): "); scanf("%lf",&t0); printf("\n toc do hoi vao tang C0(m/s): "); scanf("%lf",&C0); printf("\n ap suat sau tang p2(bar): "); scanf("%lf",&p2); printf("\n do phan luc ro: "); scanf("%lf",&ro); printf("\n he so luu luong ong fun muy1: "); scanf("%lf",&muy1); printf("\n goc huong cua toc do C1,anfa1(do):"); scanf("%lf",&anfa1); printf("\n he so toc do day ong fun phi: "); scanf("%lf",&phi); printf("\n he so luu luong canh dong muy2: "); scanf("%lf",&muy2); printf("\n he so toc do day canh dong pxi: "); scanf("%lf",&pxi); printf("\n he so su dung tang khic0: "); scanf("%lf",&khic0); printf("\n he so su dung tang khic2 : "); scanf("%lf",&khic2); denta =0.0035; i0 = ham_h1(t0,p0); s0 = ham_s(t0,p0); i2 = ham_h2(t0,p2); h0 = (i0-i2) + (1e-3)*C0*C0*khic0/2; t2 = (t0+273)*pow(p2/p0,(k-1)/k) - 273; u = pi*d*n; uca = u/(sqrt((2e+3)*h0)); h01 = (1-ro)*h0; h02 =ro*h0; tpis(&tk,&pk); v1t = ham_v(tk,pk); v2t = ham_v(t2,p2); C1t = sqrt((2e+3)*h01); F1 = G*v1t/(muy1*C1t); l1 = F1/(pi*d*sin(anfa1)); C1 = phi*C1t; W1 = sqrt(C1*C1 + u*u - 2*u*C1*cos(anfa1)); W2t = sqrt((2e+3)*h02 + W1*W1); l2 = l1+denta; F2 = G*v2t/(muy2*W2t); W2 =W2t*pxi; tanbeta1 = sin(anfa1)/(cos(anfa1) - u/C1); sinbeta2 = F2/(pi*d*l2); cosbeta2 = sqrt(1 - sinbeta2*sinbeta2); C2 = sqrt(W2*W2 + u*u - 2*W2*u*cosbeta2); tananfa2 = sinbeta2/(sqrt(1 - sinbeta2*sinbeta2) - u/W2); Hc = 0.001*(1 - phi*phi)*C1t*C1t/2; Hl = 0.001*(1 - phi*phi)*W1*W1/2; Hc2 = 0.001*C2*C2/2; E0 = h0 - khic2*Hc2; Hi = E0 - Hc -Hl - (1-khic2)*Hc2; Pi = G*Hi; nuyol = (E0 - Hc - Hl)/E0; nuyoi = Hi/E0; inkq(); } void inkq() { printf(" KET QUA BAI TOAN TINH NHIET TANG TUA BIN HOI NUOC "); printf("\n************************************************************"); printf("\nEntanpi cua hoi truoc tang i0: %10.4lf(kj/kg)",i0); printf("\nEntanpi hoi sau tang i2: %10.4lf(kj/kg)",i2); printf("\nEntropi cua qua trinh doan nhiet s0: %10.4lf(kj/kg.k)",s0); printf("\nNhiet giang ly thuyet cua tang theo thong so ham h0: %10.4lf(kj/kg)",h0); printf("\nToc do vong quay: u: %10.4lf(m/s)",u); printf("\nTy so toc do uca: %10.4lf",uca); printf("\nNhiet giang ly thuyet trong day ong phun h01: %10.4lf(kj/kg)",h01); printf("\nNhiet giang ly thuyet trong day canh dong h02: %10.4lf(kj/kg)",h02); printf("\nThe tich rieng sau day ong phun(ly thuyet) v1t: %10.4lf(m3/kg)",v1t); printf("\nThe tich rieng sau day canh dong(ly thuyet) v2t: %10.4lf(m3/kg)",v2t); printf("\nToc do ra ly thuyet cua day ong phun C1t: %10.4lf(m/s)",C1t); printf("\nToc do ra khoi day ong phun C1: %10.4lf(m/s)",C1); printf("\nToc do tuong doi dau vao canh dong W1: %10.4lf(m/s)",W1); printf("\nToc do ra ly thuyet khoi canh dong W2t: %10.4lf(m/s)",W2t); printf("\nToc do tuong doi dau ra canh dong W2: %10.4lf(m/s)",W2); printf("\nToc do tuyet doi dau ra canh dong C2: %10.4lf(m/s)",C2); printf("\nDien tich ra khoi ong phun F1: %10.4lf(m2)",F1); printf("\nChieu cao canh ong phun l1: %10.4lf(m)",l1); printf("\nDien tich ra cua day canh dong F2: %10.4lf(m2)",F2); printf("\nChieu cao canh dong l2: %10.4lf(m)",l2); printf("\nGoc huong beta1(tang) cua toc do tuong doi W1 : %10.4lf",tanbeta1); printf("\nGoc huong anfa2(tang) cua toc do C2 : %10.4lf",tananfa2); printf("\nGoc huong beta2(sin) cua toc do W2 : %10.4lf",sinbeta2); printf("\nTon that trong day ong phun Hc Hc: %10.4lf(kj/kg)",Hc); printf("\nTon that trong day canh dong Hl Hl: %10.4lf(kj/kg)",Hl); printf("\nNang luong cua toc do ra Hc2 Hc2: %10.4lf(kj.kg)",Hc2); printf("\nNang ly thuyet cua tang E0 E0: %10.4lf(kj/kg)",E0); printf("\nNhiet giang su dung tang Hi Hi: %10.4lf(kj/kg)",Hi); printf("\nHieu suat tren canh quat nuyol: %10.4lf",nuyol); printf("\nHieu suat trong tuong doi cua tang nuyoi: %10.4lf",nuyoi); printf("\nCong suat trong cua tang Pi: %10.4lf(kW)",Pi); getch(); } double nstuyentinh(int n,double *x,double *y,double x0) { int i; double tg; if(x0<=x[0]) i=0; if(x0>=x[n]) i=n-1; // tim khoang chua x0 if((x0>x[0])&&(x0<x[n])) for(i=0;i<=n-1;i++) if((x0>=x[i])&&(x0<x[i+1])) break; //tinh gia tri ham tai x0,y0 tg=y[i]+(x0-x[i])*(y[i+1]-y[i])/(x[i+1]-x[i]); return tg; } double nstuyentinhmien(int n,int m,double *x, double *y, MT z,double x0, double y0) { int i,j; double c1,c2,a[10],itg; if(y0<=y[0]) j=0; if(y0>=y[m]) j=m-1; //tim khoang hang co chua hang y0 if((y0>y[0])&&(y0<y[m])) for(j=0;j<m;j++) if((y0>=y[j])&&(y0<y[j+1])) break; //sao chep hang j cua ma trn z for(i=0;i<n;i++) a[i]=z[j][i]; c1=nstuyentinh(n,x,a,x0); for(i=0;i<n;i++) a[i]=z[j+1][i]; c2=nstuyentinh(n,x,a,x0); itg=c1+(c2-c1)*(y0-y[j])/(y[j+1]-y[j]); return itg; } double ham_h1(double t , double p) { int n,m; n=10;m=10; double ii[10][10]={2855,2902,2948,2992,3036,3147,3256,3365,3474,3695, 2844,2893,2940,2986,3030,3142,3243,3363,3472,3693, 2833,2884,2932,2979,3025,3138,3249,3360,3470,3691, 2821,2875,2924,2972,3019,3134,3246,3357,3468,3690, 943.5,2823,2882,2947,2988,3111,3229,3343,3456,3682, 943.7,1037.49,2838.65,2901.45,2958.39,3089.44,3212.11,3330.18,3445.73,3647.75, 944.12,1037.49,1135.04,2858.33,2924.06,3065.57,3194.10,3315.94,3434.43,3666.8, 944.12,1037.49,1134.20,2809.34,2884.70,3014.29,3176.52,3301.29,3422.71,3658.43, 944.54,1037.49,1134.20,1235.94,2841.58,3015.75,3157.26,3287.05,3410.98,3650, 945.1,1037.9,1134.4,1235.4,2784,2985,3135,3270,3397,3640 }; return nstuyentinhmien(n,m,tt,pp,ii,t,p); } double ham_s(double t,double p) { int n,m; n=10;m=10; double ss[10][10]={6.602,6.697,6.784,6.867,6.945,7.130,7.299,7.455,7.601,7.870, 6.524,6.622,6.711,6.796,6.877,7.063,7.233,7.390,7.537,7.806, 6.452,6.554,6.646,6.732,6.814,7.003,7.175,7.333,7.480,7.750, 6.385,6.491,6.585,6.674,6.757,6.949,7.122,7.282,7.429,7.701, 2.5146,6.255,6.337,6.438,6.530,6.735,6.916,7.080,7.231,7.506, 2.512,2.698,6.148,6.262,6.364,6.585,6.773,6.943,7.098,7.376, 2.510,2.696,2.883,6.097,6.214,6.453,6.651,6.825,6.984,7.267, 2.508,2.693,2.880,5.940,6.076,6.339,6.546,6.726,6.888,7.175, 2.506,2.691,2.876,3.063,5.943,6.235,5.455,6.640,6.806,7.097, 2.504,2.688,2.873,3.509,5.788,6.126,6.358,6.552,6.722,7.019}; return nstuyentinhmien(n,m,tt,pp,ss,t,p); } double ham_h2(double t,double p) { double ttg2,ktg; ktg=(k-1)/k; ttg2=(t0+273)*pow((p2/p0),ktg)-273; return ham_h1(ttg2,p2); } void tpis(double *t,double *p) { double ptg,ttg,i,s; ptg=p2; ttg=(t0+273)*pow(p2/p0,(1.3-1)/1.3) - 273; do { i=ham_h1(ttg,ptg); s=ham_s(ttg,ptg); ttg+=1; ptg+=0.1; } while(((i2+h02+2) <= i)&&(i <=(i2+h02-2))&&((s0+0.5) <= s)&&(s <=(s0-0.5))); *t=ttg; *p=ptg; } double ham_v(double t,double p) { double vtg; vtg=R*(t+273)/((p*1e+5)*18) - 1.234e+6/pow((t+273),3); return vtg; } d.KÕt qu¶ ch¹y ch­¬ng tr×nh

Các file đính kèm theo tài liệu này:

  • docBài tập tin ứng dụng - Lập trình C.doc
Tài liệu liên quan