Prévia do material em texto
Métodos Computacionais Aplicados à Engenharia Química Parte I – Introdução Prof. Jackson Araújo de Oliveira Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Engenharia Química Fev/2008 1 1. – Introdução ao uso dos métodos computacionais Nos últimos anos, com o aumento da capacidade de processamento dos computadores, a aplicação dos métodos computacionais em problemas de engenharia teve um enorme desenvolvimento, transcendendo o campo da pesquisa científica e ingressando definitivamente no campo da engenharia aplicada. O que comprova a notoriedade desta revolução tecnológica é o surgimento de um número significativo de simuladores de processos disponíveis comercialmente para as diversas áreas da engenharia e, em particular, de forma marcante para a engenharia química. Como exemplo, podemos citar alguns simuladores de processos bastante utilizados na engenharia química: o PRO/II (da empresa SIMSCI-ESSCOR ou Simulation Science), o AspenOne (da empresa AspenTech) e o Hysys. É importante chamar a atenção aqui que na essência destes simuladores comerciais estão implementados muitos dos métodos computacionais de que abordaremos durante o andamento deste curso. 1.1 – Fases na resolução de problemas de engenharia A resolução de um problema físico passa por algumas etapas principais, conforme representado abaixo: A partir de um problema físico, a modelagem surge como a etapa de análise dos recursos e fontes de dados do problema. O modelo, por definição, é qualquer objeto concreto ou abstrato utilizado para explicar algum tipo de fenômeno. Na engenharia, um modelo pode ser concebido quando um certo conjunto de dados e idéias são utilizados para explicar um fenômeno de interesse. Se relações quantitativas entre as diversas variáveis do problema puderem ser estabelecidas, então o modelo passa a ser um modelo matemático. A engenharia química emprega, fundamentalmente, as leis de conservação (de massa, de energia e de quantidade de movimento) e as relações constitutivas (equações termodinâmicas, taxas de reação química, taxas de transferência de massa e calor, etc.) para formular os modelos matemáticos dos processos de interesse. Portanto, não é possível imaginar engenharia sem modelos matemáticos. Sem os modelos matemáticos, estaríamos condenados a repetir apenas os procedimentos que deram certo ou a perder tempo e dinheiro realizando inúmeras tentativas na busca por situações melhores. É necessário afirmar que o modelo não é a realidade, mas apenas uma representação consistente da realidade. O melhor modelo será aquele que consegue descrever mais adequadamente os aspectos de interesse dentro da realidade. Como não é possível ter um modelo que descreva completamente todos os aspectos da realidade, somos obrigados a conviver com algumas hipóteses e simplificações e, portanto, com algumas incertezas. “É a vida....” Os modelos matemáticos podem ser úteis em todas as fases da engenharia química, desde a pesquisa e desenvolvimento de projetos de unidades de processamento até a 2 operação e otimização da planta industrial, sendo de grande importância na compreensão da relação causa-efeito do processo. Não é objetivo deste curso enveredar no caminho do desenvolvimento de modelos matemáticos, já que este será um tema abordado futuramente em outras disciplinas do curso de engenharia química. O objetivo principal aqui é apresentar métodos numéricos que serão de fundamental importância na etapa de resolução dos modelos matemáticos e, por conseguinte, na resolução do problema físico. O conhecimento adquirido nesta disciplina terá aplicações diretas em outras disciplinas, tais como: Modelagem e Simulação de Processos; Instrumentação e Controle de Processos; Fenômenos de Transporte; Operações Unitárias; Termodinâmica; Cálculo de Reatores, etc. A etapa de resolução do modelo matemático tem como propósito mostrar se o problema tem solução ou não e, se houver solução, mostrar se a solução é única ou não. A resolução dos modelos que representam adequadamente os problemas da engenharia química, na maioria das vezes, não pode ser feita analiticamente e, por esta razão, tais modelos precisam ser resolvidos numericamente. A solução (ou a resposta do problema de interesse, modelado por uma certa equação ou por um sistema de equações) é dita numérica quando a mesma é obtida de forma aproximada, através de testes e procedimentos que são diferentes da manipulação analítica da equação. Deste modo, os métodos numéricos surgem como ferramenta importante para resolver problemas cujas soluções analíticas são complicadas e, principalmente, quando tais soluções analíticas não são possíveis de serem obtidas. 1.2 – Erros Por ser uma resposta aproximada, a obtenção de uma solução numérica para um problema físico pode diferir da solução real, coincidindo apenas dentro de um certo limite de tolerância. Também é possível que diferentes soluções numéricas sejam obtidas, coincidindo com a solução real também apenas dentro de uma tolerância. Esta diferença entre a solução numérica e a solução real é chamada de erro e é inerente ao processo numérico, não podendo ser evitada em muitos casos. As principais fontes de erros, no que diz respeito à resolução de um problema físico, concentram-se nas fases de modelagem e resolução numérica. 1.2.1 – Erro na fase de modelagem Conforme já foi discutido, durante a concepção de um modelo matemático não é possível levar em consideração os infinitos aspectos da realidade. Desta forma, algumas simplificações são necessárias ao modelo matemático e constituem em fontes de erros. Para minimizar os erros provenientes da modelagem é comum uma reformulação do modelo, revendo e modificando algumas das hipóteses admitidas inicialmente. 3 1.2.2 – Erro na fase de resolução Na resolução numérica de modelos matemáticos, é necessária a utilização do computador como instrumento de cálculo que, em seu funcionamento, apresenta certas limitações que podem gerar erros. Também, durante o processo numérico de resolução, alguns métodos apresentam simplificações inerentes que conduzem a erros. Os seguintes erros podem ser classificados em relação à resolução do modelo: (a) Erros de arredondamento Os erros de arredondamento surgem pelo fato de que algumas propriedades básicas da aritmética real não são válidas quando executadas no computador. Enquanto na matemática alguns números podem ser representados por infinitos dígitos, no computador isso não é possível, já que a memória da máquina apresenta capacidade finita (limitada). Desta forma, matematicamente 1/3 = 0,33333333... (com infinitas casas decimais) e computacionalmente 1/3 ≈ 0,3333 (aproximadamente), sendo que nesta representação existe erro de arredondamento. Os erros de arredondamentos dependem de como os números são representados na máquina. A representação do número, por sua vez, depende da base de escrita e da quantidade máxima de dígitos usados nessa representação. Quanto maior o número de dígitos após a vírgula, maior a precisão numérica. É usual, no cotidiano, a representação e a realização de operações com números decimais (ou número na base 10). Porém um número real pode ser representado em qualquer base. No caso particular de um computador (ou de uma máquina de calcular), um número é representado internamente através de uma seqüência de sinais elétricos que indicam dois estados: 0 ou 1 (ligado ou desligado). Isto significa que os números são representados na base 2 ou base binária. Quando o usuário está utilizando o computador para executar uma operação, ocorrem os seguintes passos: - o usuário entra com seus dados numéricos na base decimal; - o computador converte toda a informaçãopara a base binária; - o computador realiza todas as operações na base binária (através dos circuitos eletrônicos com sinais 0 ou 1); - o computador converte as respostas das operações realizadas para a base decimal e, finalmente, transmite ao usuário. Ex.: o número 72 (na base decimal) é representado por 1001000 (na base binária), ou ainda, 7210 = 10010002. Para transformar um número decimal (base 10) num número binário (base 2), é preciso aplicar um processo sucessivo para a parte inteira do número decimal e outro processo para a parte fracionária do mesmo. 4 i) Para a parte inteira – divide-se o número por 2. Em seguida, procede-se sucessivamente dividindo os quocientes por 2 até que o último quociente seja igual a 1. O número binário é, então, formado pelo último quociente seguido pelos restos das divisões lidos em sentido inverso. Ex.: Representar os números 29 e 42 (decimais) na base 2. ii) Para a parte fracionária – multiplica-se o número fracionário por 2. Em seguida, procede-se sucessivamente multiplicando a nova parte fracionária por 2 até que a última parte fracionária seja igual a 0 ou até que se observe o aparecimento de uma repetição (dízima periódica). O número binário é, então, formado pelo número inteiro de cada parte fracionária obtida no processo e seguindo o sentido normal. Ex.: Representar o número 0.1875 (decimal) na base 2. Ex.: Representar o número 0.6 (decimal) na base 2. Para representar um número decimal com parte inteira e fracionária ao mesmo tempo, é preciso proceder como mencionado anteriormente para cada parte separadamente. Ex.: Representar o número 12.25 (decimal) na base 2. 5 A situação inversa, ou seja, para transformar um número binário num número na base decimal, é preciso expressar o número na forma: m m 1 2 1 0 m m 1 2 1 0a 2 a 2 ... a 2 a 2 a 2 ... − −⋅ + ⋅ + + ⋅ + ⋅ + ⋅ + (1) Como pode ser visto nos exemplos abaixo, é simples converter da base 2 para a base 10. Basta apenas multiplicar o dígito binário por uma potência de 2 adequada. Ex.: 100112 (base binária) = 1·24 + 0·23 + 0·22 + 1·21 + 1·20 = 19 (na base decimal) Ex.: 110,012 (base binária) = 1·22 + 1·21 + 0·20 + 0·2-1 + 1·2-2 = 6.25 (na base decimal) De um modo geral, um número x qualquer pode ser representado numa base β por: 31 2 n 1 2 3 n dd d dx ... α⎡ ⎤= ± + + + + ⋅β⎢ ⎥β β β β⎣ ⎦ , (2) onde: di – são números inteiro dentro do intervalo (0 ≤ di ≤ β-1), com i = 1, 2, ..., n; α – é um certo expoente; 31 2 n 1 2 3 n dd d d...⎡ ⎤+ + + +⎢ ⎥β β β β⎣ ⎦ – é chamada de mantissa e representa os dígitos significativos; n – é o número de dígitos significativos e é comumente chamado de precisão da máquina. Ex.: Uma certa máquina, com sistema em base binária, possui 16 dígitos (bits) para representação de um número. São distribuídos 10 bits para a mantissa, 4 bits para o expoente, um bit para o sinal da mantissa e um bit para o sinal do expoente. Os bits usados para representar o sinal da mantissa e do expoente são configurados como 0 para positivo e 1 para negativo. Como ficariam os 16 bits para representar o número 53 decimal nesta máquina? Solução: 5310 = 1101012 = 0.110101·26 = 0.110101·2110 1101 2 3 4 5 6 7 8 9 10 1 1 0 1 0 1 0 0 0 053 2 2 2 2 2 2 2 2 2 2 2 ⎡ ⎤= + + + + + + + + + + ⋅⎢ ⎥⎣ ⎦ Ou na forma do sinal eletrônico binário: Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 + Mantissa + Expoente 6 Ex.: Para a mesma máquina do exemplo anterior, como ficariam os 16 bits para representar agora o número -7.125 decimal nesta máquina? Solução: - 7.12510 = - 0.111001·23 = -0.111001·211 111 2 3 4 5 6 7 8 9 10 1 1 1 0 0 1 0 0 0 07.125 2 2 2 2 2 2 2 2 2 2 2 ⎡ ⎤− = − + + + + + + + + + ⋅⎢ ⎥⎣ ⎦ Ou na forma do sinal eletrônico binário: Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 - Mantissa + Expoente Ex.: Para a mesma máquina dos exemplos anteriores, como ficaria a representação do número decimal 0.1? Solução: 0.110 = 0.000110011001100...2 = 0.110011001100...·2-3 = 0.110011001100... 2-11 Ou na forma do sinal eletrônico binário: Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 + Mantissa - Expoente Retornando este número para a base decimal, tem-se 0.099976 ≠ 0.1. Ex.: Para a mesma máquina dos exemplos anteriores, quais seriam os valores decimais máximos e mínimos que esta máquina poderia processar? Solução: valor máximo = 0.1111111111·21111 = 3273610 valor máximo = - 0.1111111111·21111 = - 3273610 Através destes exemplos, foi possível observar que: - Não é possível representar todos os números reais por meio destes sistemas. Ao se tentar representar números reais por meio desses sistemas, pode-se incorrer nos chamados erros de arredondamentos. - Existe um intervalo válido (finito) de números que pode ser representado numa determinada máquina. Portanto, é muito importante conhecer os limites da mesma. 7 O número de casas decimais da mantissa pode ser utilizado como parâmetro para avaliar a precisão de um determinado sistema de representação. Como o último bit da mantissa é o bit de maior significância, então a precisão pode ser dada por: n 1Pr ecisão ≤ β , (3) Ex.: A máquina dos exemplos anteriores trabalhava com base binária (β = 2) e com 10 bists na mantissa (n =10). Logo, a precisão desta máquina fica: 10 1Pr ecisão 2 ≤ ≈ 10-3 e o número de casa decimais significativas é 3. (b) Erros de truncamento Os erros de truncamentos são inerentes ao método numérico e ocorre pelo fato de que, muitas vezes, a aproximação numérica substitui um procedimento matemático infinito por um processo finito (ou truncado). É o caso, por exemplo, quando processos infinitos são utilizados para avaliar funções matemáticas (exponenciais, logarítmicas, trigonométricas, etc.). Exemplos: 3 5 7x x xsen(x) x ... 3! 5! 7! = − + − + 2 3 4 x x x xe 1 x ... 2! 3! 4! = + + + + + Em geral, pode-se dizer que os erros de truncamento são controláveis. É possível reduzir o erro de truncamento de um método numérico até alcançar um valor na ordem de grandeza do erro de arredondamento. Ao longo do curso, serão abordadas diversas situações onde aparecem erros de truncamento e como fazer para controlá-los. (c) Propagação de erros É sempre desejável durante a resolução numérica de um problema manter um controle adequado dos erros de arredondamento e truncamento. Isto porque, numa seqüência de operações, o erro pode propagar ao longo das operações subseqüentes. Se a propagação não é significativa, então o problema é dito estável numericamente. Por outro lado, se o problema é sensível a flutuações (como no caso de erros de arredondamento), tais flutuações serão propagadas nas diversas operações levando o resultado final do problema a um valor muito diferente do valor esperado. Nesta situação, o problema é dito instável numericamente. (d) Erro absoluto, erro relativo e tolerância 8 Já foi mencionado que, durante a resolução numérica de um problema, a solução é obtida de forma aproximada. Portanto, é importante conhecer e delimitar o erro da aproximação realizada. Para se estimar e delimitar os erros, recorre-se aos conceitos de erro absoluto e erro relativo. A definição é dada por: - Erro Absoluto = |x* - x| - Erro Relativo = |x* - x|/x sendo x* o valor obtido pela aproximação numérica e x o valor exato do problema. A tolerância é definida como um critério numérico utilizado para permitir a obtenção da solução numérica de uma certa equação (ou um sistema de equações). O problema é testado um número finito de vezes, durante a resolução, até quea condição admitida para a tolerância seja satisfeita. Quando isto ocorre, a solução numérica atingiu o critério de convergência. Ex.: Supondo que se deseja resolver numericamente a equação f(x) = 0. Então uma solução aproximada x* desta função poderia ser obtida quando testes repetidos fossem feito até que o critério |f(x*)| ≤ ε fosse satisfeito. Neste caso, ε é a tolerância e normalmente é um número pequeno (da ordem de 10-4 a 10-6). Nota-se que, se ε fosse exatamente zero, a solução aproximada x* seria exatamente a solução exata x do problema. Logo, quanto menor é o valor de ε, mais próximo a solução aproximada x* estará da solução exata x. 1.3 – Considerações Finais A partir das discussões iniciais, abordadas nesta introdução aos conceitos básicos dos métodos numéricos, uma nova forma de encarar as fases da resolução de um problema físico é apresentada de modo mais abrangente com relação à fase resolução: A escolha do método numérico mais eficiente para a resolução de um problema físico deve levar em conta os seguintes aspectos: a) capacidade de resolução – o método converge para o resultado desejado? b) precisão dos resultados – qual o método que fornece o menor erro? c) desempenho de resolução – o método demanda grande esforço computacional?