Escolar Documentos
Profissional Documentos
Cultura Documentos
Uberlândia / MG
2009
2
Uberlândia / MG
2010
3
BANCA EXAMINADORA:
___________________________________
Prof. Luís Cláudio Oliveira Lopes
Orientador- FEQUI/UFU
___________________________________
Prof.ª Dra. Míria Hespanhol Miranda Reis
FEQUI/UFU
___________________________________
Prof. Cláudio Roberto Duarte
FEQUI/UFU
1
AGRADECIMENTOS
Ao orientador Prof. Dr. Luís Cláudio Oliveira Lopes que sempre acreditou no meu
potencial e na minha capacidade em desenvolver este projeto de graduação.
Aos amigos, Diego Souza e Karen Valente, que foram meus companheiros de reunião
antes da minha ida para a França.
E principalmente aos meus familiares e amigos que sempre estiveram comigo e que
entenderam os momentos que estive desenvolvendo este e que não passei com eles. Este
apoio, mesmo que indiretamente, colaborou para a execução da obra e meu êxito.
2
SUMÁRIO
1 INTRODUÇÃO .................................................................................................................. 1
2 REVISÃO BIBLIOGRÁFICA............................................................................................ 3
2.1. IMPORTÂNCIA DE FONTES DE DADOS TERMODINÂMICOS ............................ 3
2.1.1. DIPPR (Design Institute for Physical Properties)........................................................ 3
2.1.2. FYDAT ........................................................................................................................ 4
2.2. CAPE-OPEN ................................................................................................................... 5
2.3. A REGRA DE FASES DE GIBBS E GRAU DE LIBERDADE ................................... 7
2.4. CÁLCULOS DE FLASH – SISTEMA DE ÚNICO ESTÁGIO DE EQUILÍBRIO....... 9
2.4.1. Derivações do Modelo Flash ..................................................................................... 10
2.4.1.1. Estratégias para os cálculos de flash ...................................................................... 13
2.4.1.2. Sequência de cálculo Flash TP ............................................................................... 14
2.4.2. Método Inside-Out para os Cálculos de Flash ........................................................... 15
2.5. PROJETO DE REATORES NÃO-ISOTÉRMICOS .................................................... 18
2.5.1. Balanço de energia e a Primeira Lei da Termodinâmica ........................................... 19
2.5.2. CSTR (Continuous-Stirred-Tank-Reactor) ................................................................ 20
2.5.3. PFR (Plug-Flow Tubular Reactor) ............................................................................. 22
3 RESULTADOS E DISCUSSÃO ...................................................................................... 24
3.1. FHASH ISOTÉRMICO MULTICOMPONENTE........................................................ 24
3.2. FLASH ADIABÁTICO MULTICOMPONENTE........................................................ 39
3.3. REATOR CSTR ADIABÁTICO MULTICOMPONENTE ......................................... 42
3.4. REATOR PFR ADIABÁTICO MULTICOMPONENTE ............................................ 44
3.5. CASO ESPECIAL DE UM SEPARADOR À MEMBRANA DE BIOGÁS................ 45
3.6. OBTENÇÃO DE PARÂMETROS FÍSICOS E TERMODINÂMICOS ...................... 46
4 CONCLUSÃO .................................................................................................................. 46
SUGESTÕES PARA PRÓXIMOS TRABALHOS ................................................................. 47
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 47
APÊNDICES ............................................................................................................................ 48
APÊNDICE A - CÓDIGO SCILAB UTILIZADO PARA SIMULAR OS CASOS DE FLASH
ISOTÉRMICO, PONTO DE BOLHA E PONTO DE ORVALHO. ........................................ 49
APÊNDICE B – CÓDIGO IMPLEMENTADO NO SCILAB QUE UTILIZA AS
FERRAMENTAS DO COCO. ................................................................................................. 55
4
LISTA DE FIGURAS
Figura 1 - Janela principal do ambiente de simulação do COCO-COFE. .................................. 6
Figura 2 - Separação contínua e com um único estágio de equilíbrio: (a) vaporização flash
(flash adiabático com válvula, flash isotérmico sem válvula com T especificada); (b)
condensação parcial (análogo para flash isotérmico quando T é especificado). ...................... 10
Figura 3 - Unidade Flash. ......................................................................................................... 11
Figura 4 - Localização da seção de criação de pacotes termodinâmicos (ConfigureTEA) e
caixa de seleção de pacotes termodinâmicos criados previamente dos pacotes de substâncias
químicas. ................................................................................................................................... 28
Figura 5 - Adicionando componentes a um pacote termodinâmico. ........................................ 29
Figura 6 - Seleção das propriedades e equações de estado....................................................... 30
Figura 7 - Inserção de unidade de operação Scilab no COCO. ................................................ 32
Figura 8 - Edição de uma unidade de Operação no COCO. ..................................................... 33
Figura 9 - Configuração da corrente de alimentação. ............................................................... 34
Figura 10 - Edição da unidade de operacional Scilab, aproximando a aparência da unidade a
ser simulada. ............................................................................................................................. 35
Figura 11 - Ícone de teste do código Scilab implementado no COCO..................................... 35
Figura 12 - Tela de simulação do COCO mostrando o caso do Flash isotérmico I- Método de
Newton, para o qual não obteve sucesso. ................................................................................. 36
Figura 13 - Tela de simulação do COCO mostrando o caso do Flash isotérmico II. ............... 38
Figura 14 - Tela de simulação do COCO mostrando o caso do Flash isotérmico. ................... 39
Figura 15 - Impressão da tela principal do COCO mostrando os resultados simulados para o
caso do flash adiabático. ........................................................................................................... 41
Figura 16 - Impressão da tela principal do COCO mostrando os resultados simulados para o
caso de um CSTR adiabático. ................................................................................................... 43
Figura 17 - Impressão da tela principal do COCO mostrando os resultados simulados para o
caso do flash adiabático. ........................................................................................................... 44
Figura 18 – Fluxograma e planilhas de resultados obtidos para o caso de Separação de Biogás.
.................................................................................................................................................. 46
6
LISTA DE TABELAS
RESUMO
ABSTRACT
This work aimed at the development of a database (library) composed for dynamic
models of low and average complexity of activities in the areas of separation of fluids
and chemical reactors, using computational tools which supply, in a free computational
language and of easy access, results more nearby to those that is found in the industrial
reality and cited in the literature. Moreover, this work was lead in two different ways,
however complementary. The first one dedicated in the implementation of search Scilab
codes of thermodynamic data of physicist-chemistries substances, through the binary
decoding of two softwares, the FYDAT and the DIPPR, specific for this activity and
available commercially. The second way was the use of the Scilab platforms and
COCONUT (that it uses standard CAPE-OPEN and Inside-Out), verifying the viability to
work simultaneously with both, through the implementation of Chemical Engineering
typical problems. The advantage to use these softwares is the COCONUT friendly
graphical interface and also the possibility to implement problems using methods that
produce the results desirable. The results had shown that the gamma of possibilities is
great and none or small relative shunting lines of the values presented in literature can
occur, and this precision depends on the equation of state and the thermodynamic
prediction correlations of the parameters used in the calculations.
1 INTRODUÇÃO
2 REVISÃO BIBLIOGRÁFICA
2.1.2. FYDAT
O banco de dados FYDAT é um software livre o qual pode ser ampliado inserindo
novas substâncias. Este não é universalmente usado, mas é destinado às técnicas
computacionais para propósitos práticos e pedagógicos. O FYDAT pode ser utilizado como
um direto diálogo interativo para o cálculo de propriedades ou como uma biblioteca usada em
programas de aplicação escrita em Visual Basic 5.0.
Este banco de dados fornece as seguintes propriedades físicas:
Massa molar;
Constantes críticas (pressão, temperatura, volume);
Fator acêntrico;
Índice de refração;
Momento dipolo;
Ponto de ebulição normal;
Ponto de fusão;
Calor de fusão;
Ponto de ebulição (dependente da pressão);
Ponto de orvalho;
Calor de evaporação;
Densidade (fase vapor e líquida);
Viscosidade dinâmica (fase vapor e líquida);
Capacidade térmica (fase vapor e líquida);
Condutividade térmica (fase vapor e líquida);
Tensão superficial;
Pressão de vapor;
Funções termodinâmicas (entalpia,entropia, energia interna);
Coeficiente de Joule-Thompson;
5
2.2. CAPE-OPEN
O padrão CAPE-OPEN pode interagir com outros softwares e com isso, ser possível
utilizar a linguagem de programação específica daquele software. Isso é possível com o
Microsoft Office Excel, Matlab e Scilab. Na página do grupo amsterCHEM,
http://www.amsterchem.com, existem guias de como operar o CAPE-OPEN nos três
softwares acima citados e vice-versa. Mais especificamente para este trabalho, a interação
utilizada foi entre o CAPE-OPEN e o Scilab.
As duas formas disponíveis para realizar a interação são através da utilização dos
pacotes ‘Scilab CAPE-OPEN Thermo Import’ e ‘Scilab CAPE-OPEN Unit Operation’. O
primeiro permite importar do CAPE-OPEN pacotes de propriedades termodinâmicas e físicas
para o Scilab, através de um pacote de comandos, e então apresentar os cálculos das mesmas
propriedades assim como cálculos de equilíbrio termodinâmico. O pacote define todas as
interfaces de comunicação com os pacotes de propriedades CAPE-OPEN e este não
implementa um equipamento termodinâmico sozinho. Para utilizar estes pacotes, são
7
necessárias as versões 5.02 (ou maior) do Scilab assim como a versão 1.1 do CAPE-OPEN.
(http://www.amsterchem.com/scilabthermo.html)
A segunda forma de interação, o ‘Scilab CAPE-OPEN Unit Operation’, é uma
implementação de uma unidade de operação na qual os cálculos são realizados na linguagem
Scilab. Para iniciá-lo, é necessário iniciar o ambiente de simulação escolhido que utiliza o
padrão CAPE-OPEN, no caso deste, o ambiente de simulação COCO. Após, inserir um
‘Scilab CAPE-OPEN Unit Operation’, definir as “portas” de alimentação e produto. Para
editar a unidade de operação, insere-se o código Scilab na seção corresponde à este, e as
correntes de entrada e saída devem ser especificadas de acordo com a linguagem específica de
resgate das mesmas no padrão CAPE-OPEN.
(http://www.amsterchem.com/scilabunitop.html)
F = C−P +2 (1)
V = C .P + 2 (2)
E = P + C (P − 1) (3)
onde (1) e (2) refere às fases em equilíbrio. Para duas fases, há C expressões independentes
deste tipo, três fases, 2C; para quatro, 3C; e assim por diante.
Usando a Regra de Fases de Gibbs, pode-se notar que K’s não são variáveis, mas são
funções termodinâmicas que dependem de variáveis intensivas. A Regra é limitada porque ela
não trata de correntes enviadas para o estágio de equilíbrio nem de variáveis extensivas
usadas no design ou análise em operações de separação. No entanto, a regra de fases pode ser
estendida para aplicações em processos, adicionando a corrente de alimentação e variáveis
extensivas, e equações independentes adicionais relatando as variáveis de alimentação,
extensivas, e intensivas já consideradas pela regra. (SEADER; HENLEY (2006))
9
Figura 2 - Separação contínua e com um único estágio de equilíbrio: (a) vaporização flash
(flash adiabático com válvula, flash isotérmico sem válvula com T especificada); (b)
condensação parcial (análogo para flash isotérmico quando T é especificado).
A menos que a volatilidade relativa seja muito grande, o grau de separação alcançado
entre os dois componentes em um estágio único de equilíbrio é pobre. Portanto, um flash
(parcial vaporização ou condensação parcial) é usualmente uma operação auxiliar usada para
preparar correntes para um processo seguinte. Tipicamente, a fase vapor é enviada para o
sistema de separação de vapor, enquanto a fase líquida é enviada para o sistema de separação
de líquidos. (SEADER; HENLEY (2006))
Vapor
Feed
Liquid
Flash isotérmico
Figura 3 - Unidade Flash.
O modelo desenvolvido para esta unidade de separação é baseado nos fluxos molares
para os NC componentes i nas correntes de alimentação, vapor e líquida, fi, vi, li,
respectivamente. Assume-se que o estado da alimentação é completamente definido, ou seja,
conhece-se a vazão, fração molar (zi) e a entalpia de entrada. Definindo, as frações molares
como xi=li/(Σili) e yi=vi/(Σivi) obtém-se o mínimo conjunto de balanço de massa:
f i = vi + l i i=1,...NC (4)
equações de equilíbrio:
e um balanço de entalpia:
FH f ( f ,T , P ) + Q = VH v ( v ,T , P ) + LH l ( l ,T , P ) (6)
o qual nos dá (2 NC+1) equações para as (2 NC+3) variáveis, vi, li, T, P e Q. Tem-se portanto
um grau de liberdade igual à dois para especificar para o problema flash.
No entanto, quando uma fase desaparece, um modelo derivado dos balanços de massa
em fluxos molares conduz a composições indefinidas para as condições de ponto de orvalho e
de bolha. Além disso, já que as relações de equilíbrio de fase não-linear são dependentes da
composição, será desenvolvido um modelo de flash um pouco diferente em termos das vazões
e frações molares. Seguindo a mínima descrição acima, o balanço de massa para a unidade é
dada por:
zi F = Vyi + Lxi i=1,...NC (7)
F =V + L i=1,...NC (10)
Agora considere que o mais simples dos casos onde T e P são especificados. Este
dissocia o balanço de entalpia e permite que Q seja calculado uma vez que o balanço de massa
é resolvido. Combinando a equação do balanço total de massa com as expressões de balanço
de massa dos componentes e de equilíbrio chega-se nas seguintes relações para as frações
molares:
zi K i zi
xi = F yi = (11)
V V
1 + (K i − 1) 1 + (K i − 1)
F F
Neste momento, necessita-se de uma especificação adicional em qualquer um dos
conjuntos de frações molares para obter um modelo com o requerido grau de liberdade igual à
dois.
Considere as duas escolhas óbvias: Σxi =1 ou Σyi=1. Par a primeira escolha tem-se:
Fz i
∑ x = ∑ F + (K
i i i =1
- 1)V
(12)
i
e o modelo flash é trivialmente satisfeito para todo problema flash se for estabelecido que yi =
zi e V=0. Similarmente, se for usado Σyi=1 encontra-se:
F.K i .z i
∑ y = ∑ F + (K
i =1 (13)
i - 1)V
i i
e o modelo flash é trivialmente satisfeito para todo problema flash se for estabelecido que yi
= zi e V=F.
13
∑ x −∑ y =0
i i i i (14)
Nota-se que esta nova especificação, junto com o balanço de massa total, ainda conduz
às corretas especificações nas frações molares. Aplicando estas condiçoes às relações das
frações molares tem-se:
F (K i - 1)z i
∑ y − ∑ x = ∑ F + (K
i i i i i
- 1)V
=0 (15)
i
e vê-se que as pseudo-raízes não podem resolver esta equação. De fato, xi=zi ou xi=zi são
soluções permitidas somente se a (bem apropriada) condição que Ki = 1 e se for uma mistura
azeotrópica. (BIEGLER et al. (1999))
∑ x −∑ y =0
i i i i
FH f + Q = VH v ( y, T , P ) + LH l ( x, T , P )
e agora dois graus de liberdade podem ser especificados. Enquanto muitas alternativas são
possíveis para os cálculos do projeto, os cálculos de flash são geralmente resolvidos pelos
graus de liberdade escolhidos entre as variáveis V/F, Q, P e T, como pode ser visto abaixo,
nas combinações possíveis dessas variáveis:
T, P - Flash isotérmico
V/F = 0, P - Temperatura do ponto de bolha
V/F = 1, P - Temperatura do ponto de orvalho
T, V/F=0 - Pressão do ponto de bolha
14
O mais simples dos casos é dado pelo flash (P,T) já que este não requer iteração para o
balanço de energia. Para este caso, o problema flash pode ser resolvido pela sequência de
cálculos, apresentada na seção 2.4.1.2.
5. Avaliar a relação implícita Ψ(V/F) = Σ xi Σ yi. Se Ψ(V/F) é zero (ou com uma
Especificações TP são mais comuns para misturas em que todos os componentes têm
pontos de ebulição numa faixa bem estreita (valores bem próximos), como o benzeno e o
tolueno. Aqui V/F pode variar enre zero e um, com uma pequena faixa de temperatura. Este
caso é comum para misturas separadas por destilação. Por outro lado, para misturas com uma
faixa larga de ebulição (como a água e ar) a especificação TP na sequência de cálculos do
flash funciona pobremente porque a temperatura de equilíbrio varia bastante para pequenas
mudanças em V/F. Estas misturas comumente separadas por absorção e as especificações
(V/F, T) e (V/F, P) são usadas. Senão, o algoritmo é similar à sequência de cálculos apresenta
anteriormente. Além disso, para estes casos, note que o balanço de entalpia não é necessário
no loop de iteração.
Finalmente, quando a especificação no calor de entrada, Q, é feita (como em um flash
adiabático), então um balanço de entalpia é imposto e necessita ser incorporado ao algoritmo
15
Ki = αi Kb
ln(K b ) = A + B (1/T - 1/T * )
(17)
H' v = C + D (T - T * )
H' l = E + F (T - T * )
L = (1 - R )∑ pi
V =F-L
K b = (∑ pi ∑α p )i i
xi = pi / (VK b + L ) (22)
y i = α i K b xi
−1
T = ((ln K b − A) / B + 1 / T * )
1. Iniciar A, B, C, D, E, F e αi;
2. Chutar R;
3. Resolver para pi, Kb,T, L, V, xi e yi usando as equaçoes acima;
4. Converter os fluxos para a base mássica e avaliar as entalpias mássicas simplificadas
para a equação de balanço;
Ψ (R ) = H ' f +Q / F' +(L' / F' )(H' l (x,T, P ) − H ' v ( y,T, P )) − H ' v ( y,T, P )
5. Se Ψ(R) está dentro da tolerância estipulada, ir para o passo 6. Senão, modifique o
chute para R e volte para o passo 3;
6. Na primeira passagem, obtem-se os novos valores de A, B, C, D, E, F e αi comparando
com as expressões não-ideais. Para os próximos ajuste somente A, C, E e αi usando o
método de Broyden para conciliar estes parâmetros com as expressões não-ideais.
Boston e Britt preferem a base mássica para o balanço de entalpia para evitar
insensibilidade de R (através de L/F) quando (Hv-Hl) é próximo de zero em termos molares.
Este algoritmo converge muito mais rapidamenteque os algoritmos desenvolvidos
anteriormente e tem sido incorporado como o algoritmo padrao para o flash em simuladores
de processos comerciais.
Para demonstrar este algoritmo, Boston e Britt resolveram uma grande variedade de
sistemas não-ideais incluindo sistemas de ponto de ebulição próximos e afastados, e com
Wilson, UNIQUAC, NRTL, e equação de estado. Típica experiência nestes exemplos tem
menos que seis interações externas (onde avaliações das propriedades físicas são requeridas).
Finalmente, experimentos numéricos têm mostrado que este algoritmo geralmente pode ser
18
dÊ = δQ − δW (23)
no qual os δ’s signficam que δQ e δW não são diferenciais exatas de uma função de estado.
Já para os sistemas abertos, ou seja, onde massa cruza as fronteiras do sistema, como
nos casos dos reatores de escoamento contínuo citados anteriormente, o balanço de energia
pode ser representado pela expressão genérica, representada pela equação (24).
taxa de taxa de transferência taxa de transferência
taxa de taxa de variação de de energia adicionada de energia perdida
acúmulo transferência (24)
= de calor das − trabalho realizado + ao sistema através − pelo sistema através
de energia pelo sistema sobre
vizinhanças da massa transferida da massa que sai
no sistema para o sistema suas vizinhanças para o sistema do sistema
O balanço de energia para o regime não estacionário para um sistema aberto que tenha
n espécies, cada qual entrando ou saindo do sistema, com suas respectivas vazões molares Fi
(moles de i por tempo), e com suas respectivas energias Ei (joules por mol de i), é
onde:
FA0 – fluxo molar da espécie de referência A;
Θ – razão do número de moles iniciais (que entram) da espécie i, pelo número de moles
iniciais (que entram) da espécie A;
20
n T
Cpi – calor específico da espécie i na temperatura T, podendo o termo ∑∫
i =1
Ti 0
Θ i C p i dT ser
representado por:
T
n T n
~ ~ ∫ C p i dT
∑∫ Θ i C p i dT = ∑ Θ i C p i (T − Ti 0 )
Ti 0
e Cpi = ;
i =1
Ti 0
i =1 (Ti 0 − T )
T
∆H° Rx (TR ) + ∫ ∆C p dT - é a entalpia de reação à temperatura T, ∆H Rx (T ) , e ∆H° Rx (TR ) é a
TR
O mais simples dos reatores cinéticos é o CSTR, no qual o conteúdo é assumido estar
perfeitamente agitado. Com isso, a composição e a temperatura são assumidas uniformes em
todo o volume do reator e igual à composição e temperatura do efluente do reator. Um reator
perfeitamente agitado é usado geralmente para reações homogêneas em fase líquida. O
modelo CSTR é adequado para este caso, desde que a reação ocorra sob condições
isotérmicas ou adiabáticas. Embora os cálculos envolvam somente equações algébricas, estas
podem ser não-lineares. Consequentemente, uma possível complicação que deve ser
considerado é a existência de múltiplas soluções, duas ou mais podendo ser estáveis.
(SEIDER et al. (2003))
A equação de projeto para um CSTR no qual não há variação espacial na velocidade
de reação é
FA 0 X
V= (27)
− rA
Acoplando a equação (27) na equaçao (26) e fazendo alguns rearranjos e simplificação
obtém a equação (28)
& −W
Q & n
FA0
s
[ ]
− X ∆H°Rx (TR ) + ∆Ĉp (T − TR ) = ∑ΘiCpi (T − Ti0 ) (28)
i=1
sendo ∆Ĉ p os calores específicos médios ou constantes. Esta equação é utilizada para obter o
resfriado por uma camisa de aquecimento ou resfriamento ou por uma serpentina colocada no
interior do reator.
As reações são frequentemente conduzidas adiabaticamente e usualmente com
aquecimento ou resfriamento das correntes de entrada e saída do vaso de reação. Com a
exceção de processos altamente viscosos, o trabalho feito pelo agitador geralmente pode ser
& na equação (28), o balanço de energia pode ser escrito
desprezado. Depois de substituir Q
como
UA(Ta − T ) n
~
FA 0
[ ]
− X ∆H° Rx (TR ) + ∆Ĉ p (T − TR ) = ∑ Θ i C pi (T − Ti 0 ) (29)
i =1
n
~
[
− X ∆H° Rx (TR ) + ∆Ĉ p TR + ∑ Θ i C pi Ti 0 ]
i =1
T= n
(T.1.6)
~
∑ Θ i C pi + X∆Ĉ p
i =1
T n
X[− ∆H Rx (T )] = ∫
Ti 0
∑Θ C
i =1
i pi dT (31)
Tabela 2 - Algoritmo para um PFR adiabático, com reação elementar reversível em fase
gasosa ( A ↔ B ) e perda de pressão desprezível.
dX − rA
Balanço molar: = (T.2.1)
dV FA 0
C
Lei de velocidade de reação: − rA = k C A − B (T.2.2)
KC
E 1 1
−
R T1 T
com k = k 1 exp (T.2.3)
∆H °Rx 1 1
−
R T2 T
K C = K C (T2 )exp (T.2.4)
T0
C A = C A 0 (1 − X ) (T.2.5)
T
T0
C B = C A0 X (T.2.6)
T
Combinando,
X T0
− rA = kC A 0 (1 − X ) − (T.2.7)
K C T
X T0
kC A 0 (1 − X ) −
dX K C T
e = (T.2.8)
dV FA 0
Balanço de energia:
n
~
[ ]
− X ∆H° Rx (TR ) + ∆Ĉ p TR + ∑ Θ i C pi Ti 0
i =1
T= n
(T.2.9)
~
∑ Θ i C pi + X∆Ĉ p
i =1
~
Entrar com os valores dos parâmetros k1, E, R, KC(T2), ∆HRx(TR), C pi , ∆Ĉ p , CA0, T0, T1, T2 e
P.
Entrar com os valores iniciais X=0, V=0 e os valores iniciais X=Xf e V=Vf.
Definir as vazões iniciais de entrada dos componentes, Fi0.
3 RESULTADOS E DISCUSSÃO
Tabela 3 - Simulação obtida no software HYSIM para o caso flash isotérmico para a
separação de hidrocarbonetos.
Corrente Alimentação Líquido Vapor Unidade
Pressão 600 600 600 Psia
Temperatura 60 60 60 °F
Vazão 144 74,3626 69,6374 lbmol/h
Fração molar metano 0,4861 0,1933 0,7988 -
Fração molar etano 0,1389 0,1435 0,1339 -
Fração molar propano 0,0694 0,1040 0,0325 -
Fração molar isobutano 0,0625 0,1067 0,0153 -
Fração molar n-butano 0,0556 0,0979 0,0104 -
Fração molar isopentano 0,0486 0,0900 0,0044 -
Fração molar n-pentano 0,0417 0,0779 0,0030 -
Fração molar n-hexano 0,0486 0,0929 0,0013 -
Fração molar n-heptano 0,0278 0,0535 0,0003 -
Fração molar n-octano 0,0208 0,0403 0,0001 -
Entalpia 231900,2465 -41325,5303 273225,7809 Btu/h
Para avaliar a convergência dos cálculos, lançou-se mão do Método de Newton, que
avalia o quanto este método é preciso na estimativa das variáveis. Para isso, definiu o limite
máximo de iterações e a tolerância do desvio entre o valor calculado na iteração atual e aquele
da iteração imediatamente anterior. Foram adotados como limte máximo de iterações e
tolerância do desvio os valores 1.107 e 1.10-8, respectivamente. Além disso, definou-se
também qual seria a estimativa inicial para a razão entre a vazão de Vapor e a da
Alimentação, representada pela variável VF. Esta será a variável de avaliação nas iterações do
Método de Newton.
Com isso, inseriu-se os dados necessários para a resolução e gerou-se os seguintes
resultados:
27
A vazão da fase vapor e líquida são, respectivamente (em lbmol/h): 69,905148 74,094852
Composição a P= 600 Psia
*******************************************************************
* componente composição vazão *
* fração molar (lbmol/h) *
*-------------------------------------------------------------------------------------------------*
* | x y | liquida vapor *
* [ metano] | 0.149866 0.842486 | 11.104326 58.894074 *
* [ etano] | 0.154405 0.122466 | 11.440620 8.560980 *
* [ propano] | 0.115503 0.020534 | 8.558175 1.435425 *
* [isobutano] | 0.114602 0.007275 | 8.491419 0.508581 *
* [n-butano] | 0.103812 0.004499 | 7.691922 0.314478 *
* [isopentano] | 0.093073 0.001461 | 6.896259 0.102141 *
* [n-pentano] | 0.080174 0.000921 | 5.940449 0.064351 *
* [n-hexano] | 0.094169 0.000300 | 6.977416 0.020984 *
* [n-heptano] | 0.053982 0.000049 | 3.999795 0.003405 *
* [ octano] | 0.040414 0.000010 | 2.994472 0.000728 *
****************************************************************
Verifica-se que o Método de Newton foi bastante eficaz, visto que foram necessários
apenas 3 iterações para se obter os valores do Estado Estacionário. O valor final da razão
entre a vazão de Vapor produzida sobre aquela da Alimentação foi 0,485, ou seja, 48,5% da
alimentação é vapor e 51,5% é líquido. Comparando os valores obtidos nesta simulação com
aqueles apresentados na Tabela 3 verifica-se que a proporcionalidade de cada fração molar de
cada componente nas correntes vapor e líquida se mantém, porém a grandeza de cada um
difere. Este resultado já era esperado, pois se trata de uma simplificação do flash e métodos
utilizados naquele implementado no HYSIM.
Para que valores mais precisos fossem obtidos seria necessário, obviamente, aumentar
o grau de detalhamento do código, em outras palavras, detalhar o comportamento
termodinâmico da mistura, pois se trata de uma mistura não-ideal (devido à condição de
pressão e também pela variedade de tamanhos das moléculas e por haver compostos com
ramificação). Este maior detalhamento viria com um aumento dos esforços tanto mental
quanto computacional.
28
Neste sentido, buscaram-se novos caminhos que diminuíssem estes esforços e que
pudessem oferecer resultados ainda melhores. As alternativas são aquelas quando se utiliza a
plataforma CAPE-OPEN no Scilab e vice-versa. E o COCO 1.15, foi o software escolhido
para este trabalho que utiliza a plataforma CAPE-OPEN.
Antes de descrever os resultados obtidos da interação entre a plataforma CAPE-OPEN
com o Scilab é necessário inserir um pacote contendo todas as substâncias da mistura e o
pacote de propriedades termodinâmicas responsáveis pelos cálculos. É extremamente
importante que estes pacotes estejam totalmente criados para que as simulações feitas com os
mesmos possam ser válidas. Para isso, os passos a seguir apresentam como são criados e
modificados estes pacotes termodinâmicos:
• Abre-se a janela de interface ConfigureTEA, que utiliza a versão 1.1 do CAPE-
OPEN.
• Se o pacote de substâncias químicas que se deseja avaliar já existe, clique em
‘done’.
• Caso este não exista, clique em ‘Create template’ (ver Figura 4). Na janela que
se abre, insere-se um nome para o pacote e uma descrição (opcional) na aba
‘General’. Na aba ‘Compounds’, clica-se em ‘Add’ e selecionam-se as
substâncias desejadas. Verifica-se em ‘Property Calculations’ quais
propriedades termodinâmicas e qual modelo das mesmas deseja-se calcular,
como por exemplo, para a Equação de Estado das fases vapor e líquida se o
modelo é mais bem representado pelo modelo de Peng Robinson ou Redlich
Kwong enre outras (ver Figuta 5).
• Além disso, pode-se definir a tolerância do erro, a quantidade máxima de
iterações a relação das pertubações da temperatura e pressão no sistema, etc.,
inseridas na aba ‘Options’.
• Existem outras abas que outros dados podem ser alterados de acordo com a
necessidade do problema.
[phases,phaseFractions,phaseCompositions,T,P]=capeOpenEquilibrium(handle,X,prop1,val1,
prop2,val2,type), onde:
Ao final da simulação do código não foi possível obter qualquer resultado, pois
existem algumas inconsistências não identificadas. Por se tratar de um trabalho inovador erros
como este podem acontecer e, somente com um dispêndio de tempo maior são possíveis de
serem resolvidos. Mas em momento nenhum se tira o mérito de se construir uma biblioteca de
modelos. O desafio pode ser repassado para futuros pesquisadores e também aos usuários dos
códigos.
modelos matemáticos intrínsecos do software, que podem não ser os mais indicados para o
caso. Porém, como se necessita de um parâmetro de comparação, configurou-se em uma
mesma janela de simulação uma unidade operacional com um código Scilab e outra gerada
pelo COCO. As especificações das entradas e pacotes termodinâmicos foram os mesmos para
ambas e, ao final, compararam-se os resultados, analizando os desvios gerados.
Para isso, a unidade operacional que será implementada com o código Scilab,
inicialmente funciona como uma “caixa-preta” na qual se pode escrever um código seja qual
for a linguagem escolhida (Scilab, Matlab), que manipula as informações de entrada e
transforma-as nas informações de saída do processo.
Os passos para se chegar nesta configuração são os seguintes:
• Abre-se a janela de interface COFE 1.15. Seleciona na barra de ferramentas o
ícone ‘Insert’, ‘Unit operation’, ‘Custom’ e finalmente ‘Scilab Unit
Operation’. Confirme em ‘ok’.
• Para modificar a unidade, clica-se duas vezes sobre esta e na janela que se abrir
seleciona-se ‘Show GUI’, na parte debaixo da mesma. Uma nova janela se abre
e nesta é possível definir as portas de entrada e saída (no caso do Flash, uma
entrada e duas saídas), os parâmetros e o próprio código. A linguagem utilizada
na seção ‘Scilab’ não difere muito daquela implementada software de mesmo
nome, como pode ser comprovada no Apêndice C.
33
• Como já dito, o COCO possui uma interface gráfica bastante amigável. Nesse
sentido, é possível modificar a aparência das unidades operacionais,
escolhendo entre várias opções de unidades operacionais já existentes no
software.
35
• Se não houver mais nenhum problema, feche as janelas abertas e para resolver
o caso clica-se em ‘Sove’, na barra de ferramentas.
• Um relatório da simulação pode ser visualizado, inserindo um ‘Stream report’:
definem-se quais portas e variáveis são pertinentes para a análise. Além deste,
pode-se gerar o relatório da unidade, o ‘Unit report’.
Duas unidades diferentes cada uma com seu código Scilab foram implementadas, uma
utilizando o mesmo método de Newton para convergência apresentado anteriormente e a
outra usando somente alguns comandos de manipulação da corrente de alimentação (através
da linguagem própria CAPE-OPEN - COCO). Estas receberão as denominações “Scilab
isotérmico I” e “Scilab isotérmico II”, respectivamente. A unidade operacional gerada com os
recursos já definidos pelo COFE será tratada como “Flash isotérmico”. Os códigos foram
exibidos nos Apêndices C e D, respectivamente. Porém, no caso da unidade ‘Scilab
isotérmico I’ o código implementado não forneceu a convergência esperada, apresentando
uma mensagem de erro, assim como ocorreu para o caso apresentado anteriormente de
utilização do COCO no Scilab. A Figura 12 mostra a tela principal do COCO onde foi
simulada a unidade “Scilab isotérmico I” com sua respectiva mensagem de erro.
Tabela 7 - Valores para a simulação de um flash adiabático apresentado por Seader & Henley
(2006).
Corrente Alimentação Líquido Vapor Unidade
Pressão 485 165 165 Psia
Temperatura 120 112 112 °F
Vazão 487,4 471,06 16,34 kmol/h
Vazão molar hidrogênio 1,0 0,3 0,7 kmol/h
Vazão molar metano 27,9 12,7 15,2 kmol/h
Vazão molar benzeno 345,1 344,7 0,4 kmol/h
Vazão molar tolueno 113,4 113,36 0,04 kmol/h
Entalpia -1089,0 -1451,0 362,0 kJ/h
Para este caso foi considerado como parâmetro de comparação o exemplo mostrado
por FOGLER (1999), no capítulo 8, sobre a isomerização em fase líquida do n-butano em um
PFR a alta pressão, usando essencialmente traços de um catalisador líquido. Este catalisador
dá à reação uma taxa específica de 31,1 h-1 a 360 K. Deseja-se calcular o volume necessário
para processar 163 kmol/h de uma mistura de 90 mol % de n-butano e 10 mol% de isopentano
(considerado inerte). O ∆HRx é igual a -6900J/molbutano e a energia de ativação 65,7 kJ/mol. A
constante da taxa de reação segue a Equação de Arrhenius e a concentração inicial de n-
butano, CA0, é 9,3 kmol/m3.
Neste exemplo, foi implementado a unidade operacional Scilab e seu código foi
mostrado no Apêndice G. A tela contendo a simulação realizada é aquela mostrada na Figura
17.
método numérica de discretização da integral, o que gera um pequeno desvio do valor real. O
valor do volume desse reator PFR citado na literatura para chegar à conversão de equilíbrio é
igual a 3,4 m3, enquanto que na simulação foi encontrado um valor de 2,58 m3.
A outra vertente desse trabalho foi a criação de um código Scilab (e que trabalha neste
ambiente) que lê e busca dados termodinâmicos e físicos das substâncias requeridas e são
apresentadas na tela CONSOLE do mesmo software estes dados reqsueridos. Este código,
descrito no Apêndice I, procura dados de duas listas diferentes de compostos simultaneamente
gerados a partir da decodificação binária de dois softwares lvres disponíveis atualmente, o
FYDAT e o DIPPR. O FYDAT possui uma lista de aproximadamente 700 substâncias
químicas e o DIPPR, 1023 compostos. Este é bastante útil e rápido na determinação das
propriedades, pois evita a necessidade de recorrer à literatura, o que pode custar bastante
tempo.
4 CONCLUSÃO
Conclui-se com este trabalho que há uma infinidade de possibilidades que podem ser
utilizadas para a simulação de unidades operacionais, servindo como uma base de modelos
dinâmicos para a utilização por pesquisadores ou até mesmo como material de aprendizado
em sala de aula. A comunicação entre softwares é muito vantajosa, visto que cada um
contribui com que melhor possui para facilitar e melhorar o entendimento de processos
47
químicos, como é o caso da ligação entre o Scilab e o COCO. Quanto mais ferramentas de
modelagem e simulação são disponíveis às pessoas mais tempo pode-se dedicar ao
aperfeiçoamento dos códigos, sem se preocupar se a propriedades físico-químicas e
termodinâmicas dos compostos estão corretas e se as fontes são confiáveis.
O objetivo deste trabalho é bastante audacioso, e nestas páginas foram descritas
somente o início de um projeto que ainda tem um potencial enorme de contribuição.
Futuros trabalhos que completem este trabalho serão bem-vindos e sugestões para
estes seriam: a verificação dos códigos implementados e possíveis melhoramentos e soluções
para os problemas de não-convergência encontrados; simulação de novas unidades
operacionais, como reatores biológicos, colunas de destilação, absorção e flash trifásico. Além
disso, criar fluxogramas de processos consagrados e verificar suas eficiências é outra forma
bastante interessante para se realizar.
REFERÊNCIAS BIBLIOGRÁFICAS
FOGLER, H.S. Elementos de Engenharia das Reações Químicas 3.ed. Rio de Janeiro,
LTC Editora, 1999.
REID, R.C.; PRAUSNITZ, J.M. The properties of gases and liquids. 5.ed. New York
McGraw-Hill, 2001.
SEADER, J.D.; HENLEY, E.J. Separation process principles. 2.ed. EUA, John Wiley
& Sons, 2006.
SEIDER, W.D. et al. Product & Process Design Principles. 2.ed. EUA, John Wiley &
Sons, 2003.
APÊNDICES
49
CAS_Methane="74-82-8";
CAS_Ethane="74-84-0";
CAS_Propane="74-98-6";
CAS_Butane="106-97-8";
CAS_Isobutane="75-28-5";
CAS_Pentane="109-66-0";
CAS_Isopentane="78-78-4";
CAS_Hexane="110-54-3";
CAS_Heptane="142-82-5";
CAS_Octane="111-65-9";
for i=1:nComp
casNumber=cas(i,:);
end
if (indexMethane==0) then error("Componente Metano nao encontrado"); end
if (indexEthane==0) then error("Componente Etano nao encontrado"); end
if (indexPropane==0) then error("Componente Propano nao encontrado"); end
if (indexButane==0) then error("Componente Butano nao encontrado"); end
if (indexIsobutane==0) then error("Componente Isobutano nao encontrado"); end
if (indexPentane==0) then error("Componente Pentano nao encontrado"); end
if (indexIsopentane==0) then error("Componente Isopentano nao encontrado"); end
if (indexHexane==0) then error("Componente Hexano nao encontrado"); end
if (indexHeptane==0) then error("Componente Heptano nao encontrado"); end
if (indexOctane==0) then error("Componente Octano nao encontrado"); end
disp('Valores de k:');
disp (k);
//Metodo de Newton
iter=0;
toler=1e10;
for d=1:nComp
x(d)=zf(d)/(1+VF*(k(d)-1));
y(d)=k(d)*x(d);
end
disp('Xs sao'); disp(x);
disp('Ys sao'); disp(y);
sum_x=sum(x);disp('somatorio de x eh:'); disp(sum_x);
sum_y=sum(y);disp('somatorio de y eh:');disp(sum_y);
Ac_coef=getSinglePhaseProperty("activityCoefficient","liquid",T,P,[x]);
Fug_coef=getSinglePhaseProperty("FugacityCoefficient","vapor",T,P,[y])
59
for s=1:nComp
k(s)=(Ac_coef(s)*Fug(s))/(P*Fug_coef(s));
end
disp('valores de k eh'); disp(k);
if abs(sum_x-sum_y)>1e-5 then
f=0;
for j=1:nComp
f=f+zf(j)*(1-k(j))/(1+VF*(k(j)-1));
end
disp("f eh"); disp(f);
df=0;
for g=1:nComp
df=df+zf(g)*(1-k(g))^2/(1+VF*(k(g)-1))^2;
end
disp("df eh"); disp(df); VF_old=VF;
if (VF>0) & (VF<1) then
if abs(df)>1e-8 then
VF= VF - f/df;
disp("vf eh"); disp(VF);
else
error ('Derivada nula');
end
else
error('Sistema nao fornece duas fases em equilibrio nessas condicoes');
end
else
break;
end
disp('tolerancia eh');
toler=abs(VF-VF_old);
disp (toler);
disp('iteracao:'); iter=iter+1; disp(iter);
end
[phases,phasefractions,compositions,T,P]=getEquilibrium(zf,"pressure",P,"temperature",T)
vaporFraction=phasefractions(1);
vaporPhase=0;
phaseCount=size(phasefractions,1);
for i=1:phaseCount
if (getAggregationState(phases(i,:))==AGGSTATE_VAPOR) then
vaporPhase=i;
break
end
end
liquidPhase=0;
phaseCount=size(phasefractions,1);
for j=1:phaseCount
if (getAggregationState(phases(j,:))==AGGSTATE_LIQUID) then
liquidPhase=j;
break
end
end
fv=totalFlow*vaporFraction;
fl=totalFlow-fv; disp(fl);
setProduct(1,fv,compositions(vaporPhase,:),"pressure",P,"temperature",T);
setProduct(2,fl,compositions(liquidPhase,:),"pressure",P,"temperature",T);
F=getFeedProp(1,"totalFlow")
delta_p=getParameter("Pressure drop")
delta_T=getParameter("Temp drop")
delta_h=getParameter("Heat duty")
zf=getFeedProp(1,"fraction")
if ((delta_p==0)&(delta_h==0)) then
//usando a alimentação de equilibrio
[phases,phasefractions,compositions,T,P]=getFeedEquilibrium(1)
else
//Calculando o equilibrio depois da queda de pressão e trabalho
if (delta_h~=0) then if (F==0) then delta_h=0, end; end
if (delta_h~=0) then delta_h=delta_h/F; end
p=getFeedProp(1,"pressure")-delta_p
t1=getFeedProp(1,"temperature")-delta_T
h=getFeedProp(1,"enthalpy")+delta_h
[phases,phasefractions,compositions,T,P]=getEquilibrium(zf,"pressure",p,"temperature",t1)
61
end
CAS_Ethane="74-84-0";
CAS_Ethylene="74-85-1";
CAS_Hydrogen="1333-74-0";
//Estequiometria
stoi_Ethane=1;
stoi_Ethylene=-1;
stoi_Hydrogen=-1;
compCount=size(cas,1)
indexEthane=0;
indexEthylene=0;
indexHydrogen=0;
for i=1:compCount
casNumber=cas(i,:);
if (indexEthane==0) then if (strcmp(casNumber,CAS_Ethane)==0) then indexEthane=i; end; end
if (indexEthylene==0) then if (strcmp(casNumber,CAS_Ethylene)==0) then indexEthylene=i; end; end
if (indexHydrogen==0) then if (strcmp(casNumber,CAS_Hydrogen)==0) then indexHydrogen=i; end; end
end
if (indexEthane==0) then error("Compound Ethane not found"); end
if (indexEthylene==0) then error("Compound Ethylene not found"); end
if (indexHydrogen==0) then error("Compound Hydrogen not found"); end
//reactor pressure
p=p-dP
//set the product (no need to perform enthalpy flash, we have done so above; use the resulting T, more efficient)
setProduct(1,ft,x,"pressure",p,"temperature",T)
CAS_Butane="106-97-8";
CAS_Isopentane="78-78-4";
64
CAS_i_Butane="75-28-5";
//Estequiometria
stoi_i_Butane=1;
stoi_Butane=-1;
stoi_Isopentane=0;
//pressao do reator
p=p-dP;
dHrx1=getParameter("dHrx");//J/mol
R=getParameter("Constgas");
E=getParameter("Eativ");
Kc1=getParameter("Const_C");
65
k1=getParameter("Const_reac");
v=getParameter("vazao_vol");disp(v);
Ca0=totalFlow/v*zf(indexButane); disp('ca0 eh'); disp(Ca0);
Cp(indexButane)=getParameter("CpnB");
Cp(indexi_Butane)=getParameter("CpiB");
Cp(indexIsopentane)=getParameter("CpiP");
theta(indexButane)=flow(indexButane)/flow(indexButane);
theta(indexi_Butane)=flow(indexi_Butane)/flow(indexButane);
theta(indexIsopentane)=flow(indexIsopentane)/flow(indexButane);
sum_thetaCp=
Cp(indexButane)*theta(indexButane)+Cp(indexi_Butane)*theta(indexi_Butane)+Cp(indexIsopentane)*theta(ind
exIsopentane);
disp(sum_thetaCp);disp(flow(indexButane));
deltaCp=Cp(indexButane)-Cp(indexi_Butane);
x=0:0.05:1;
for z=1:21
T(z)=To-(dHrx1*x(z))/sum_thetaCp;
k(z)=k1*exp(E/R*(1/360-1/T(z)));
Kc(z)=Kc1*exp(dHrx1/R*(1/333-1/T(z)));
Xe(z)=Kc(z)/(1+Kc(z));
rA(z)=k(z)*(Ca0)*(1-(1+1/Kc(z))*x(z));
t(z)=flow(indexButane)/rA(z);
end
disp (T);
disp(k);
disp(Kc);
disp(Xe);
disp(rA);disp(t);
V=0;
h1=(x(15)-x(1))/14;
V=V+3/8*h1*(t(1)+3*t(2)+3*t(3)+2*t(4)+3*t(5)+3*t(6)+2*t(7)+3*t(8)+3*t(9)+2*t(10)+3*t(11)+3*t(12)+2*t(1
3)+3*t(14)+t(15));
disp('Volume do PFR eh:');
disp(V);
Ctotal=Ca0/zf(indexButane);
Ci_Butane=zf(indexi_Butane)*Ctotal;disp(Ci_Butane);
CButane=Ca0;
CIsopentane=zf(indexIsopentane)*Ctotal;
disp(phases);
//set the product (no need to perform enthalpy flash, we have done so above; use the resulting T, more efficient)
setProduct(1,ft,b,"pressure",p,"temperature",T)
nr=(1-th)*nf;// retentate
np=th*nf;// permeate
// Generate a report
txt=[ '|===================================================================|'
'| Membrane module for gas separation |'
'| Feed side |'
'| Feed |--------------------------| Retentate |'
'| nf,z --->| plug flow |-----> xr, nr |'
'| |==========================| |'
'| np,y <---| crossflow | |'
'| Permeate |--------------------------| |'
'| Permeate side |'
'|===================================================================|'
'| Comp. |Q(i)/Q(c)| Feed | Retentate | Permeate |'
'| | alfa(i) | xf | xr | rr | xp | rp |'
'|===================================================================|'];
for j=1:nComp,
txt=[txt;sprintf('|%7s| %7.1f | %0.3f | %0.3f | %0.3f | %0.3f | %0.3f
|\n',Comp(j),alfa(j),xf(j),xr(j),rr(j),xp(j),rp(j))];
end
txt=[txt;
sprintf('|===================================================================|'
);
sprintf('|Module cut rate th = np/nf = %6.3f |\n',th);
sprintf('|Pressure ratio g = Pf/Pp = %6.1f |\n',g);
sprintf('|Permeation factor R = Q(c)*Pf*A/nf = %6.3f |\n',R);
sprintf('|===================================================================|\
n')];
setReport("Membrane module",txt);
68