термодинамический расчет. Пояснительная записка к курсовой работе по дисциплине Топлива и рабочие процессы в АиРД
Скачать 0.63 Mb.
|
poly(1,hi,H) = 0.25000000E+01 poly(2,hi,H) = 0.00000000E+00 poly(3,hi,H) = 0.00000000E+00 poly(4,hi,H) = 0.00000000E+00 poly(5,hi,H) = 0.00000000E+00 poly(6,hi,H) = 0.25473660E+05 poly(7,hi,H) = -0.44668285E+00 poly(1,low,OH) = 2.83853033E+00 poly(2,low,OH) = 1.10741289E-03 poly(3,low,OH) = -2.94000209E-07 poly(4,low,OH) = 4.20698729E-11 poly(5,low,OH) = -2.42289890E-15 poly(6,low,OH) = 3.69780808E+03 poly(7,low,OH) = 5.84494652E+00 poly(1,hi,OH) = 3.99198424E+00 poly(2,hi,OH) = -2.40106655E-03 poly(3,hi,OH) = 4.61664033E-06 poly(4,hi,OH) = -3.87916306E-09 poly(5,hi,OH) = 1.36319502E-12 poly(6,hi,OH) = 3.36889836E+03 poly(7,hi,OH) = -1.03998477E-01 poly(1,low,O) = 2.54363697E+00 poly(2,low,O) = -2.73162486E-05 poly(3,low,O) = -4.19029520E-09 poly(4,low,O) = 4.95481845E-12 poly(5,low,O) = -4.79553694E-16 poly(6,low,O) = 2.92260120E+04 poly(7,low,O) = 4.92229457E+00 poly(1,hi,O) = 3.16826710E+00 poly(2,hi,O) = -3.27931884E-03 poly(3,hi,O) = 6.64306396E-06 poly(4,hi,O) = -6.12806624E-09 poly(5,hi,O) = 2.11265971E-12 poly(6,hi,O) = 2.91222592E+04 poly(7,hi,O) = 2.05193346E+00 poly(1,low,O2) = 3.66096065E+00 poly(2,low,O2) = 6.56365811E-04 poly(3,low,O2) = -1.41149627E-07 poly(4,low,O2) = 2.05797935E-11 poly(5,low,O2) = -1.29913436E-15 poly(6,low,O2) = -1.21597718E+03 poly(7,low,O2) = 3.41536279E+00 poly(1,hi,O2) = 3.78245636E+00 poly(2,hi,O2) = -2.99673416E-03 poly(3,hi,O2) = 9.84730201E-06 poly(4,hi,O2) = -9.68129509E-09 poly(5,hi,O2) = 3.24372837E-12 poly(6,hi,O2) = -1.06394356E+03 poly(7,hi,O2) = 3.65767573E+00 poly(1,low,H2O) = 0.26770389E+01 poly(2,low,H2O) = 0.29731816E-02 poly(3,low,H2O) = -0.77376889E-06 poly(4,low,H2O) = 0.94433514E-10 poly(5,low,H2O) = -0.42689991E-14 poly(6,low,H2O) = -0.29885894E+05 poly(7,low,H2O) = 0.68825500E+01 poly(1,hi,H2O) = 0.41986352E+01 poly(2,hi,H2O) = -0.20364017E-02 poly(3,hi,H2O) = 0.65203416E-05 poly(4,hi,H2O) = -0.54879269E-08 poly(5,hi,H2O) = 0.17719680E-11 poly(6,hi,H2O) = -0.30293726E+05 poly(7,hi,H2O) = -0.84900901E+00 poly(1,low,CO) = 0.30484859E+01 poly(2,low,CO) = 0.13517281E-02 poly(3,low,CO) = -0.48579405E-06 poly(4,low,CO) = 0.78853644E-10 poly(5,low,CO) = -0.46980746E-14 poly(6,low,CO) = -0.14266117E+05 poly(7,low,CO) = 0.60170977E+01 poly(1,hi,CO) = 0.35795335E+01 poly(2,hi,CO) = -0.61035369E-03 poly(3,hi,CO) = 0.10168143E-05 poly(4,hi,CO) = 0.90700586E-09 poly(5,hi,CO) = 0.90442449E-12 poly(6,hi,CO) = -0.14344086E+05 poly(7,hi,CO) = 0.35084093E+01 poly(1,low,CO2) = 0.46365111E+01 poly(2,low,CO2) = 0.27414569E-02 poly(3,low,CO2) = -0.99589759E-06 poly(4,low,CO2) = 0.16038666E-09 poly(5,low,CO2) = -0.91619857E-14 poly(6,low,CO2) = -0.49024904E+05 poly(7,low,CO2) = -0.19348955E+01 poly(1,hi,CO2) = 0.23568130E+01 poly(2,hi,CO2) = 0.89841299E-02 poly(3,hi,CO2) = -0.71220632E-05 poly(4,hi,CO2) = 0.24573008E-08 poly(5,hi,CO2) = -0.14288548E-12 poly(6,hi,CO2) = -0.48371971E+05 poly(7,hi,CO2) = 0.99009035E+01 print *, "kis" write(3,*) "kis" T=Trab if (T<1000) then i=hi!(2) else i=low!(1) end if print *, "i=", i write(3,*) "i=", i do j=1,8 hrt(j)=poly(1,i,j)+poly(2,i,j)*T/2+poly(3,i,j)*(T**2)/3+poly(4,i,j)*(T**3)/4+poly(5,i,j)*(T**4)/5+poly(6,i,j)/T sr(j)=poly(1,i,j)*log(T)+poly(2,i,j)*T+poly(3,i,j)*(T**2)/2+poly(4,i,j)*(T**3)/3+poly(5,i,j)*(T**4)/4+poly(7,i,j) grt(j)=hrt(j)-sr(j) Ii(j)=hrt(j)*Ri(j)*T Si(j)=sr(j)*Ri(j) end do print *,"hrt(H)=", hrt(H) print *,"hrt(H2)=", hrt(H2) print *,"hrt(O)=", hrt(O) print *,"hrt(O2)=", hrt(O2) print *,"hrt(OH)=", hrt(OH) print *,"hrt(H2O)=", hrt(H2O) print *,"hrt(CO)=", hrt(CO) print *,"hrt(CO2)=", hrt(CO2) write (3,*)"hrt(H)=", hrt(H) write (3,*)"hrt(H2)=", hrt(H2) write (3,*)"hrt(O)=", hrt(O) write (3,*)"hrt(O2)=", hrt(O2) write (3,*)"hrt(OH)=", hrt(OH) write (3,*)"hrt(H2O)=", hrt(H2O) write (3,*)"hrt(CO)=", hrt(CO) write (3,*)"hrt(CO2)=", hrt(CO2) print *,"sr(H)=", sr(H) print *,"sr(H2)=", sr(H2) print *,"sr(O)=", sr(O) print *,"sr(O2)=", sr(O2) print *,"sr(OH)=", sr(OH) print *,"sr(H2O)=", sr(H2O) print *,"sr(CO)=", sr(CO) print *,"sr(CO2)=", sr(CO2) write (3,*)"sr(H)=", sr(H) write (3,*)"sr(H2)=", sr(H2) write (3,*)"sr(O)=", sr(O) write (3,*)"sr(O2)=", sr(O2) write (3,*)"sr(OH)=", sr(OH) write (3,*)"sr(H2O)=", sr(H2O) write (3,*)"sr(CO)=", sr(CO) write (3,*)"sr(CO2)=", sr(CO2) print *,"grt(H)=", grt(H) print *,"grt(H2)=", grt(H2) print *,"grt(O)=", grt(O) print *,"grt(O2)=", grt(O2) print *,"grt(OH)=", grt(OH) print *,"grt(H2O)=", grt(H2O) print *,"grt(CO)=", grt(CO) print *,"grt(CO2)=", grt(CO2) write (3,*)"grt(H)=", grt(H) write (3,*)"grt(H2)=", grt(H2) write (3,*)"grt(O)=", grt(O) write (3,*)"grt(O2)=", grt(O2) write (3,*)"grt(OH)=", grt(OH) write (3,*)"grt(H2O)=", grt(H2O) write (3,*)"grt(CO)=", grt(CO) write (3,*)"grt(CO2)=", grt(CO2) print *,"Ii(H)=", Ii(H) print *,"Ii(H2)=", Ii(H2) print *,"Ii(O)=", Ii(O) print *,"Ii(O2)=", Ii(O2) print *,"Ii(OH)=", Ii(OH) print *,"Ii(H2O)=", Ii(H2O) print *,"Ii(CO)=", Ii(CO) print *,"Ii(CO2)=", Ii(CO2) write (3,*)"Ii(H)=", Ii(H) write (3,*)"Ii(H2)=", Ii(H2) write (3,*)"Ii(O)=", Ii(O) write (3,*)"Ii(O2)=", Ii(O2) write (3,*)"Ii(OH)=", Ii(OH) write (3,*)"Ii(H2O)=", Ii(H2O) write (3,*)"Ii(CO)=", Ii(CO) write (3,*)"Ii(CO2)=", Ii(CO2) print *,"Si(H)=", Si(H) print *,"Si(H2)=", Si(H2) print *,"Si(O)=", Si(O) print *,"Si(O2)=", Si(O2) print *,"Si(OH)=", Si(OH) print *,"Si(H2O)=", Si(H2O) print *,"Si(CO)=", Si(CO) print *,"Si(CO2)=", Si(CO2) write (3,*)"Si(H)=", Si(H) write (3,*)"Si(H2)=", Si(H2) write (3,*)"Si(O)=", Si(O) write (3,*)"Si(O2)=", Si(O2) write (3,*)"Si(OH)=", Si(OH) write (3,*)"Si(H2O)=", Si(H2O) write (3,*)"Si(CO)=", Si(CO) write (3,*)"Si(CO2)=", Si(CO2) ! deltagrt=(2*grt(N)-1*grt(N2)); N2=2N deltagrt(CO2__CO_O2)=(1*grt(CO)+0.5*grt(O2)-1*grt(CO2))!CO2=CO+0,5O2 Ki(CO2__CO_O2)=exp(-deltagrt(CO2__CO_O2)) print *, "Ki(CO2__CO_O2)=", Ki(CO2__CO_O2) write(3,*) "Ki(CO2__CO_O2)=", Ki(CO2__CO_O2) deltagrt(H2O__H2_O2)=(1*grt(H2)+0.5*grt(O2)-1*grt(H2O))!H2O=H2+0,5O2 Ki(H2O__H2_O2)=exp(-deltagrt(H2O__H2_O2)) print *, "Ki(H2O__H2_O2)=", Ki(H2O__H2_O2) write(3,*) "Ki(H2O__H2_O2)=", Ki(H2O__H2_O2) deltagrt(H2O__OH_H2)=(1*grt(OH)+0.5*grt(H2)-1*grt(H2O))!H2O=OH+0,5H2 Ki(H2O__OH_H2)=exp(-deltagrt(H2O__OH_H2)) print *, "Ki(H2O__OH_H2)=", Ki(H2O__OH_H2) write(3,*) "Ki(H2O__OH_H2)=", Ki(H2O__OH_H2) deltagrt(H2__H)=(2*grt(H)-1*grt(H2))!H2=2H Ki(H2__H)=exp(-deltagrt(H2__H)) print *, "Ki(H2__H)=", Ki(H2__H) write(3,*) "Ki(H2__H)=", Ki(H2__H) deltagrt(O2__O)=(2*grt(O)-1*grt(O2))!O2=2O Ki(O2__O)=exp(-deltagrt(O2__O)) print *, "Ki(O2__O)=", Ki(O2__O) write(3,*) "Ki(O2__O)=", Ki(O2__O) print *, "end kis" write(3,*) "end kis" endsubroutine kis end module kis_mod Вспомогательный модуль: module source_kis integer(1):: j enum, bind(c) enumerator :: N=1, N2 endenum integer(1) :: i enum, bind(c) enumerator :: low=1, hi endenum contains end module Расчет парциальных давлений: subroutine PARD !(alph) !Ki use dat01 implicit none !real(8), dimension (8), intent (in) :: mui ! real(8), dimension (5), intent (in) :: Ki !real(8), intent (in) :: alph !real(8), dimension (8), intent (out) :: pi real(8):: Pl, Pr, Prab, z real(8):: Discr, z1, z2 real(8):: P, Q, D, deltap integer :: m real(8):: alphrast print *, "PARD" write(3,*) "PARD" print *, "pp=", pp write(3,*) "pp=", pp !(2*C+1)*z^2+sqrt(Ki(H2__H))*(C+1)*z-pp=0 - квадратное уравнение, z=PH2max^0.5 Discr=(sqrt(Ki(H2__H))*(2*Cconst+1))**2-4*((Cconst+1)*(-pp)) z1=(-sqrt(Ki(H2__H))*(Cconst+1)+sqrt(Discr))/(2*(2*Cconst+1)) z2=(-sqrt(Ki(H2__H))*(Cconst+1)-sqrt(Discr))/(2*(2*Cconst+1)) print *, "Discr=", Discr write(3,*) "Discr=", Discr print *, "z1=", z1 write(3,*) "z1=", z1 print *, "z2=", z2 write(3,*) "z2=", z2 if((z1>0).or.(z2)>0) then if(z1>=z2) then z=z1 else z=z2 end if else z=0 end if print *, "z=", z write(3,*) "z=", z Pl=0 Pr=z**2 m=0 do m=m+1 Prab=(Pl+Pr)/2 print *, "Pl=", Pl write(3,*) "Pl=", Pl print *, "Pr=", Pr write(3,*) "Pr=", Pr print *, "Prab=", Prab write(3,*) "Prab=", Prab !считаем парциальные давления, p(H2)=p(H2)max if (m < 2) then pi(H2)=Pr else pi(H2)=Prab end if pi(H)=sqrt(Ki(H2O__H2_O2)*pi(H2)) print *, "pi(H2)=", pi(H2) write(3,*) "pi(H2)=", pi(H2) print *, "pi(H)=", pi(H) write(3,*) "pi(H)=", pi(H) !считаем парциальное давление кислорода P=(2*Cconst+1)/Ki(H2O__H2_O2)*pi(H2)+(Cconst+1)*Ki(H2O__OH_H2)/Ki(H2O__H2_O2)*sqrt(pi(H2))+sqrt(Ki(O2__O)) Q=pp-(2*Cconst+1)*pi(H2)-sqrt(Ki(H2__H))*(Cconst+1)*sqrt(pi(H2)) !D=P**2+4*Q z1=(-(P/2)+sqrt((P/2)**2+Q))**2 z2=(-(P/2)-sqrt((P/2)**2+Q))**2 if((z1>0).or.(z2)>0) then if(z1>=z2) then Pi(O2)=z1 else Pi(O2)=z2 end if else stop end if pi(O)=sqrt(Ki(O2__O)*pi(O2)) print *, "P=", P write(3,*) "P=", P print *, "Q=", Q write(3,*) "Q=", Q print *, "pi(O2)=", pi(O2) write(3,*) "pi(O2)=", pi(O2) print *, "pi(O)=", pi(O) write(3,*) "pi(O)=", pi(O) !pause !давление Н2О и ОН pi(H2O)=1/Ki(H2O__H2_O2)*pi(H2)*sqrt(pi(O2)) pi(OH)=Ki(H2O__OH_H2)/Ki(H2O__H2_O2)*sqrt(pi(H2)*pi(O2)) print *, "pi(H2O)=", pi(H2O) write(3,*) "pi(H2O)=", pi(H2O) print *, "pi(OH)=", pi(OH) write(3,*) "pi(OH)=", pi(OH) !давление СО deltap=pi(H2)+pi(H)+pi(O2)+pi(O)+pi(H2O)+pi(OH) pi(CO)=(Ki(CO2__CO_O2)*(Prab-deltap))/(sqrt(pi(O2))+Ki(CO2__CO_O2)) pi(CO2)=(Prab-deltap)-pi(CO) print *, "deltap=", deltap write(3,*) "deltap=", deltap print *, "pi(CO2)=", pi(CO2) write(3,*) "pi(CO2)=", pi(CO2) print *, "pi(CO)=", pi(CO) write(3,*) "pi(CO)=", pi(CO) !расчетная альфа alphrast=(pi(H2O)+pi(OH)+2*pi(O2)+pi(O)+pi(CO)+2*pi(CO2))/(2*pi(H2O)+pi(OH)+2*pi(H2)+pi(H))*Bconst-Aconst*Bconst print *, "alphrast=", alphrast write(3,*) "alphrast=", alphrast print *, "pogreshnost alphrast=", abs((alphrast-alph)/alph) write(3,*) "pogreshnost alphrast=", abs((alphrast-alph)/alph) if(abs((alphrast-alph)/alph)>0.01) then if(alphrast Pr=Prab else Pl=Prab end if else exit end if end do print *, "end PARD" write(3,*) "end PARD" end subroutine Челябинск |