+ 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.. 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
Trang 1TIN 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
-
Trang 2Thự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(<chuỗi ký tự>,[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(<chuỗi ký tự>,{danh sách đối});
- 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ử:
Trang 3Cú pháp:<kiểu dữ liệu>*<tên con trỏ>;
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ử *:
*<Tên con trỏ> -> 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ỏ
Trang 4Chú ý: 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
- 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]);
Trang 8printf("\n nhap n=");
scanf("%d",&n); m=0;k=0; a=0;
do{for(i=0;i<=n+a;i++)
Trang 9p=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);
Trang 10yy=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:
Trang 11for(q=0;q<5;q++){
Trang 12printf(" ");
for(l=0;l<i+3;l++)
printf("$");}
printf("\n");}
getch();
}
Trang 132 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
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()
Trang 14{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("\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=");
break;
p[j]);
tt=t[j]+(pp-p[j])*(t[j+1]-t[j])/(p[j+1]-}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=");
Trang 15if((x<0)||(x>1))
{printf("\n Ban da nhap khong dung gia tri cua do kho x!");
printf("\n Ban hay nhap lai!");}
}while(x<0||x>1);
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);
Trang 16printf("\n Voi do kho x=%4.3lf=>cac thong so cua hoi bao hoa am!",x);
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);}
Trang 193 Phần 3:Bài toán tính nhiệt Tua bin hơi nớc 1 tầng cánh.
i0
ik
nuyoi(ηoi): 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(ηol): 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: Lu 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(s−1), đờ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β1,tgβ2,sinβ2)
Tam giác tốc độ:
Error: Reference source not found
Trang 20Trong 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ố lu 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 χ χ0, c2 nằm trong khoảng [ ]0,1 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à cha 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
v1t H20
v2t
khi2.Hc2 i
s H0
p0h
t0h
Đ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 ro:ρ)
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:
Trang 21Thự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)(k− 1) /k , 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:
Trang 22Tạ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 cha 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 =
6 3 3
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+C02.khi0/2;
Tỷ số tốc độ :u/Ca = u/ 2.10 03h
Độ 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 = 2.10 013h
Diện tích ra của dãy ống phun(m2) :F1 =
1 1
1
t
Gv t C
à
Trang 23Chiều cao của cánh ống phun(m) :l1 =
sin
F d
Tốc độ ra của hơI khỏi dãy ống phun (m) :C1 =ϕ.C1t
Tốc độ tơng đối đầu vào cánh động(m): W1 = C12+ −u2 2uC1cos 1α
Góc hớng beta của tốc độ tơng đối W1 :tg 1 sin 1
cos 1 u C/ 1
αβ
Gv W
βπ
=
Tốc độ tơng đối của đầu ra cánh đợng W2 :W2 =ψW 2t
Tốc độ tuyệt đối đầu ra cánh động (m) :C2 = 2 2
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 : 0
0
c l ol
E
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 :η =oi Hi E/ 0
Thuật giải bài toán đợc cụ thể nh sau:
Viện Khoa học & công nghệ Nhiệt lạnh
Trờng Đại học Bách khoa Hà Nội
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ị:
Trang 24c.Néi dung bµi gi¶i
//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
//ham entanpi theo ap suat va nhiet do
double ham_h2(double t,double p);
Trang 25//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
//cac thong so cua tua bin can tinh
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);
Trang 26printf("\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);
Trang 27printf("\nNhiet giang ly thuyet trong day canh dong h02:
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);