Professional Documents
Culture Documents
f90
1/9
28/12/2013 20:07:16
1:
2:
3:
4:
5:
program destilacao
1/9
destilacao.f90
2/9
28/12/2013 20:07:16
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
B= F * ((xf-xd)/(xb-xd))
!*
Clculo da corrente D
D= F - B
!*
!*
!*
Clculo da corrente L
L= RR * D
!*
!*
Clculo de Vapores
V= D + L
Vr= Lr - B
!*
total'
parcial'
teoricos =',NET
minima
=',RMin
do i=1,(NET+condensador)
xe(i)= 1.0d+0 - xa(i)
ye(i)= 1.0d+0 - ya(i)
end do
do i=1,NET
write(*,*)
end do
!*
i,xe(i), ye(i)
2/9
destilacao.f90
3/9
28/12/2013 20:07:16
143:
NetMinEsg= log(A1)/(10.7d+0*(deltaT/T))-1.0d+0
144:
145:
A2=((xd/(1-xd))/(xf/(1-xf)))
146:
147:
NetMinRet= log(A2)/(10.7d+0*(deltaT/T))-(condensador-1.0d+0)
148:
149:
NetMinimo= NetMinRet + NetMinEsg
150:
151:
write(*,*) NetMinEsg, NetMinRet, NetMinimo
152:
153: !*
Clculo das Temperaturas de Lquido e Vapor nos Pratos
154:
Do i=1,NET
155:
Tlprato(i)= (xa(i)*Teba)+(xe(i)*Tebe)
156:
Tvprato(i)= (ya(i)*Teba)+(ye(i)*Tebe)
157:
Tprato(i)=(Tvprato(i) + Tlprato(i))/2
158:
write(*,*)Tprato(i),Tlprato(i),Tvprato(i)
159:
end do
160: !*
Clculo das entalpias da fase vapor (H)
161:
yd=(alpha*xd)/(1+((alpha-1)*xd))
162:
163:
xeb=1.0d+00 - xb
164:
yeb=1.0d+00 - yb
165:
xed=1.0d+00 - xd
166:
yed=1.0d+00 - yd
167:
Tlpratob= (xb*Teba)+(xeb*Tebe)
168:
Tvpratob= (yb*Teba)+(yeb*Tebe)
169:
Tlpratod= (xd*Teba)+(xed*Tebe)
170:
Tvpratod= (yd*Teba)+(yed*Tebe)
171:
Hvap=(Hvapa+Hvape)/2.0d+0
172:
173:
Hvb=Hvap + (yb*Cpva*(Tlpratob-Tvpratob))+(yeb*Cpve*(Tlpratob-Tvpratob))
174:
175:
Hvd=Hvap + (yd*Cpva*(Tlpratod-Tvpratod))+(yed*Cpve*(Tlpratod-Tvpratod))
176:
177:
do i=1,net
178:
Hv(i)=Hvap + (ya(i)*Cpva*(Tlprato(i)-Tvprato(i)))+(ye(i)*Cpve*(Tlprato(i)Tvprato(i)))
179:
end do
180:
181:
hlb=(xb*Cpla*(Tlpratob-Tvpratob))+(xeb*Cple*(Tlpratob-Tvpratob))
182:
183:
hld=(xd*Cpla*(Tlpratod-Tvpratod))+(xed*Cple*(Tlpratod-Tvpratod))
184:
185:
do i=1,net
186:
hl(i)=(xa(i)*Cpla*(Tlprato(i)-Tvprato(i)))+(xe(i)*Cple*(Tlprato(i)Tvprato(i)))
187:
end do
188:
189:
190: !*
Clculo dos calores
191:
PM=(PM(1)+PM(2))/2.0d+0
192:
300 Qc=parcial*V*((Cpva+Cpve)/2.0d+0)*(Tlpratod-Tvpratod)
193:
if(RR.ge.Rmin)then
194:
Qc=Qc
195:
else
196:
parcial=parcial+0.01d+0
197:
goto 300
198:
end if
199:
Qr=Lr*((Cpla+Cple)/2.0d+0)*(Tlpratob-Tvpratob)
200:
201:
202: !*
Clculo das entalpias de alimentao
203:
yf=(alpha*xf)/(1+((alpha-1)*xf))
204:
yef=1.0d+0 - yf
205:
xef=1.0d+0 - xf
206:
Tlpratof= (xf*Teba)+(xef*Tebe)
207:
Tvpratof= (yf*Teba)+(yef*Tebe)
208:
if(phi.eq.1.0d+0)then
209:
hf=(xf*Cpla*(Tlpratof-Tvpratof))+(xef*Cple*(Tlpratof-Tvpratof))
210:
end if
211:
if(phi.eq.0.0d+0)then
212:
Hf=Hvap +(yf*Cpva*(Tlpratof-Tvpratof))+(yef*Cpve*(Tlpratof-Tvpratof))
3/9
destilacao.f90
4/9
28/12/2013 20:07:16
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
!*
!*
end if
if(phi.gt.0.0d+0.and.phi.lt.1.0d+0)then
hf=phi*(xf*Cpla*(Tlpratof-Tvpratof))+(xef*Cple*(Tlpratof-Tvpratof))
end if
write(*,*)i,hf,qr,qc
Clculo da viscosidade mdia da mistura
viscosidade=(visco(1)+visco(2))/2.0d+0
Clculo da eficincia pela correlao de O'Connell
EFoc= 48.7663d+0 * ((alpha*viscosidade)**(-0.255837))
NPRoc= (NET / EFoc)*100.0d+0
!*
!*
!*
!*
!*
!*
!*
Kg/s)
4/9
destilacao.f90
5/9
28/12/2013 20:07:16
284:
end if
285:
286: !*
estimativa inicial de espaamento entre os pratos
287:
tt=0.3d+0
!(espaamento entre os pratos 0,3 gt tt lt 1,0)
288:
gotejamento=(1.2d+0 / (rhov**0.5d+0))
289:
espuma=(14.5d+0 / (rhov**0.5d+0))
290:
291:
if(tt.ge.0.3d+0.and.tt.le.1.0d+0)then
292:
293: 100
Uv=((-0.171d+0*(tt*tt))+(0.27d+0*tt)-0.047d+0)*(((rholrhov)/rhov)**0.5d+0)
294:
end if
295:
if(tt.lt.0.3d+0.or.tt.gt.1.0d+0)then
296:
pause 'Consertar a estimativa de espacamento entre os pratos (tt)'
297:
end if
298:
299:
if(Uv.ge.gotejamento.and.Uv.le.espuma)then
300:
Uv=Uv
301:
else
302:
tt=tt+0.001d+0
303:
goto 100
304:
end if
305: !*
Clculo do dimetro da coluna de destilao
306:
Dc=sqrt((4.0d+0*Vw)/(pi*rhov*Uv))
307:
308: !*
Clculo das reas
309:
310: !*
rea do prato
311:
Ap=(pi*(Dc**2.0d+0))/4.0d+0
312:
313: !*
rea dos vertedouros
314:
Av=(0.12d+0 * Ap)
315:
316: !*
rea de estabilizao
317:
Ae=(0.12d+0 * Ap)
318:
319: !*
rea ativa
320:
Aa=(0.76d+0 * Ap)
321:
322: !*
rea efetiva
323:
Aef=(Ap - Av)
324:
325: !*
Altura da coluna
326:
alt=(NPRoc * tt)
327:
328: !*
Clculo de Lw (vazo mssica de lquido)
329:
if(Lr.ge.L)then
330:
Lv=(Lr*((PM(1)+PM(2))/2.0d+0))/(rhol*3600.0d+0)!(mudana de Kgmol/h para
m3/s)
331:
end if
332:
if(L.ge.Lr)then
333:
Lv=(L*((PM(1)+PM(2))/2.0d+0))/(rhol*3600.0d+0)!(mudana de Kgmol/h para
m3/s)
334:
end if
335:
336: !*
Clculo da altura dos vertedouros
337:
hw=(0.15d+0*tt)
338:
339: !*
Clculo da altura da crista
340:
how=(750.0d+0*((Lv/(rhol*hw))**0.66667d+0))/1000.0d+0 !(mudana para m)
341:
342: !*
Clculo da altura de lquido sobre o prato
343:
hliq=how+hw
344:
345: !*
Clculo do tempo de contato entre Lquido e Vapor
346:
!(volume dos vertedouros/vazo volumtrica de lquido)
347:
tempc=(Av*hw)/(2.0d+0*Lv)
348:
if(tempc.ge.1.0d+0)then
349:
tempc=tempc
350:
else
351:
tt=tt+0.01d+0
352:
goto 100
5/9
destilacao.f90
6/9
28/12/2013 20:07:16
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
end if
!*
!*
!*
!*
!*
6/9
destilacao.f90
7/9
28/12/2013 20:07:16
423:
424: !*
425:
426:
427:
|'
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
7/9
destilacao.f90
8/9
28/12/2013 20:07:16
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
(cm)=',hw*100
Write(50,*)' |Altura dos vertedouros
(cm)=',how*100
Write(50,*)' |Altura da crista de lquido
(cm)=',hliq*100
Write(50,*)' |Altura do lquido sobre o prato
(mm)=',Dbb
Write(50,*)' |Dimetro dos borbulhadores
(mm)=',Dbe*1000
Write(50,*)' |Dimetro efetivo borbulhamento
=',nnb
Write(50,*)' |Nmero de borbulhadores
=',NNC
Write(50,*)' |Nmero de campnulas
Write(50,*)' ----------------------------------------------------'
Write(50,*)' ----------------------------------------------------'
Tipo de Condensador utilizado
|'
Write(50,*)' |
Write(50,*)' ----------------------------------------------------'
if(condensador.eq.1)then
=',condensador
Write(50,*)' |Condensador Total
else
=',condensador
Write(50,*)' |Condensador Parcial
end if
Write(50,*)' ----------------------------------------------------'
Write(50,*)' ----------------------------------------------------'
Composio em vapor do componente 1
|'
Write(50,*)' |
Write(50,*)' ----------------------------------------------------'
Do i=1,(NET+condensador)
Write(50,'('' | y('',i2,'')='',F10.5)')i,ya(i)
End Do
Write(50,*)' ----------------------------------------------------'
|'
Write(50,*)' | Composio em lquido do componente 1
Write(50,*)' ----------------------------------------------------'
Do i=1,(NET+condensador)
Write(50,'('' | x('',i2,'')='',F10.5)')i,xa(i)
End Do
Write(50,*)' ----------------------------------------------------'
Write(50,*)' ----------------------------------------------------'
Composio em vapor do componente 2
|'
Write(50,*)' |
Write(50,*)' ----------------------------------------------------'
Do i=1,(NET+condensador)
Write(50,'('' | y('',i2,'')='',F10.5)')i,ye(i)
End Do
Write(50,*)' ----------------------------------------------------'
|'
Write(50,*)' | Composio em lquido do componente 2
Write(50,*)' ----------------------------------------------------'
Do i=1,(NET+condensador)
Write(50,'('' | x('',i2,'')='',F10.5)')i,xe(i)
End Do
write(50,*)'-----------------------------------------------------'
|'
Write(50,*)' | Temperatura do Lquido nos Pratos
Write(50,*)' ----------------------------------------------------'
='',F10.5)')Tlpratob
Write(50,'('' | Tlpratob
Do i=1,NET
Write(50,'('' | Tlprato('',i2,'')='',F10.5)')i,Tlprato(i)
End Do
='',F10.5)')Tlpratod
Write(50,'('' | Tlpratod
write(50,*)'-----------------------------------------------------'
Temperatura do Vapor nos Pratos
|'
Write(50,*)' |
write(50,*)'-----------------------------------------------------'
='',F10.5)')Tvpratob
Write(50,'('' | Tvpratob
Do i=1,NET
Write(50,'('' | Tvprato('',i2,'')='',F10.5)')i,Tvprato(i)
End Do
='',F10.5)')Tvpratod
Write(50,'('' | Tvpratod
write(50,*)'-----------------------------------------------------'
Temperatura Mdia nos Pratos
|'
Write(50,*)' |
write(50,*)'-----------------------------------------------------'
Do i=1,NET
Write(50,'('' | Tprato('',i2,'')='',F10.5)')i,Tprato(i)
End Do
write(50,*)'-----------------------------------------------------'
write(50,*)'-----------------------------------------------------'
=',Qr
Write(50,*)' |Calor adicionado pelo Reboiler
=',Qc
Write(50,*)' |Calor retirado pelo Condensador
if(phi.ge.0.0d+0.and.phi.lt.1.0d+0)then
=',Hf
Write(50,*)' |Entalpia de Alimentao
end if
if(phi.eq.1.0d+0)then
8/9
destilacao.f90
9/9
28/12/2013 20:07:16
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
=',hf
Write(50,*)' |Entalpia de Alimentao
end if
write(50,*)'-----------------------------------------------------'
Entapias da fase Vapor (Hv)
|'
Write(50,*)' |
write(50,*)'-----------------------------------------------------'
=',Hvb
Write(50,*)' |Entalpia do vapor do Reboiler
=',Hvd
Write(50,*)' |Entalpia do vapor do Condensador
Do i=1,NET
Write(50,'('' | Hv('',i2,'')='',F15.5)')i,Hv(i)
End Do
write(50,*)'-----------------------------------------------------'
Entapias da fase Lquida (hl)
|'
Write(50,*)' |
write(50,*)'-----------------------------------------------------'
=',hlb
Write(50,*)' |Entalpia do lquido do Reboiler
=',hld
Write(50,*)' |Entalpia do vapor do Condensador
Do i=1,NET
Write(50,'('' | hl('',i2,'')='',F15.5)')i,hl(i)
End Do
write(50,*)'-----------------------------------------------------'
Close(50)
Stop
end program destilacao
9/9