Главная страница

термодинамический расчет. Пояснительная записка к курсовой работе по дисциплине Топлива и рабочие процессы в АиРД


Скачать 0.63 Mb.
НазваниеПояснительная записка к курсовой работе по дисциплине Топлива и рабочие процессы в АиРД
Анкортермодинамический расчет
Дата28.09.2022
Размер0.63 Mb.
Формат файлаdocx
Имя файлаAlkiev_T-1_O2 (2).docx
ТипПояснительная записка
#702968
страница7 из 7
1   2   3   4   5   6   7

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

Челябинск
1   2   3   4   5   6   7


написать администратору сайта