Engenharia de Processos e Sistemas - eq.uc.ptnuno/eps/Edicoes_anteriores/2012-13/aula01/... · mas...

26
Engenharia de Processos e Sistemas (EPS) Programa EngIQ — Módulo EPS 1 Nuno Oliveira (DEQ/FCTUC)

Transcript of Engenharia de Processos e Sistemas - eq.uc.ptnuno/eps/Edicoes_anteriores/2012-13/aula01/... · mas...

Engenharia de Processos e Sistemas (EPS)

Programa EngIQ — Módulo EPS 1 Nuno Oliveira (DEQ/FCTUC)

Conteúdo

1 Introdução 4

1.1 Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Conteúdo e funcionamento . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.1 Conteúdo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.2 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.3 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.4 “Background” dos formandos? . . . . . . . . . . . . . . . . . . 7

2 Ferramentas básicas na solução de problemas numéricos 8

2.1 Objectivos fundamentais . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Tarefas consideradas . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 Conceptuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.2 Operacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Sistemas disponíveis (ferramentas) . . . . . . . . . . . . . . . . . . . . 11

2.3.1 Sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.2 Folhas de cálculo . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.3 Linguagens básicas de programação . . . . . . . . . . . . . . . 15

2.3.4 Linguagens avançadas de programação . . . . . . . . . . . . . 15

2.3.5 Linguagens para modelação e optimização . . . . . . . . . . . 17

2

3 Solução de sistemas de equações não-lineares 20

3.1 Sistemas de equações lineares . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Sistemas não-lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 Métodos gráficos . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 Método das substituições sucessivas . . . . . . . . . . . . . . . 22

3.2.3 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . 25

Programa EngIQ — Módulo EPS 3 Nuno Oliveira (DEQ/FCTUC)

Capítulo 1

Introdução

1.1 Contactos

Coordenador: Nuno Oliveira (DEQ/FCTUC).

Contactos: [email protected], Tel. 914 006 725, 239 798 742.

Sítios web:

• Oficial: http://e-learn.engiq.pt/moodle/.

• Edições anteriores (backup): http://www.eq.uc.pt/~nuno/eps/.

Lista de divulgação: Correio electrónico: [email protected]. O arquivo de men-

sagens anteriores pode ser consultado em http://e-learn.engiq.pt/mailman/listinfo/.

4

1.2 Objectivos

Visão geral sobre área de PSE:

Desenvolvimento e aplicação de metodologias sistemáticas de solução de problemas

(descritos num formalismo matemático) no domínio da Engenharia Química, e em par-

ticular de Eng. de Processos e Produtos.

Exemplos:

• Projecto de processos.

• Desenvolvimento de produtos.

• Estratégias de supervisão.

• Diagnóstico.

• Optimização de unidades e operações existentes.

• Tratamento de dados e desenvolvimento de modelos.

• Eficiência energética e ambiental.

Características fundamentais:

• Reaproveitamento de elementos existentes na definição de estratégias (ferramentas)

— carácter sistemático.

• Integração (diversos níveis, facetas).

Domínio muito vasto. Necessário compromisso nas matérias abordadas aqui (assuntos

e extensão).

1.3 Conteúdo e funcionamento

Necessário elemento de contacto por sítio.

Programa EngIQ — Módulo EPS 5 Nuno Oliveira (DEQ/FCTUC)

1.3.1 Conteúdo

Ver FUC e plano de funcionamento.

1.3.2 Avaliação

• 3 pequenos projectos (TPC), a serem realizados em grupos de 2 elementos (' 1

projecto / cada 3 semanas de aulas).

– 1o¯ trabalho (19 de Janeiro): simulação (sistemas de equações) + modelação

(simples).

– 2o¯ trabalho (2 de Fevereiro): optimização (usando aplicação da área de tra-

balho, ou outro tema interessante); pode também incluir a componente de

modelação.

– 3o¯ trabalho (9 de Março): gestão de operações (aplicação específica).

Os prazos para entrega destes trabalhos serão de 3 semanas, excepto se estipulado

em contrário. Caso este prazo não seja exequível, os alunos deverão contactar o

docente respectivo.

• Exame escrito final, com consulta dos elementos das aulas e notas (mas não livros

nem computadores).

• Data exame: Sábado, 20 de Abril de 2013, 10h00.

• Classificação final em EPS = 0,4 × Nota dos Trabalhos + 0,6 × Nota de Exame.

• Classificação mínima no exame para aprovação = 7,0/20 valores.

1.3.3 Bibliografia

• Geral: indicada na FUC.

Programa EngIQ — Módulo EPS 6 Nuno Oliveira (DEQ/FCTUC)

• Notas do curso CIM2003 (web).

• + referências específicas indicadas em cada aula.

• + elementos e notas disponibilizados em cada aula.

1.3.4 “Background” dos formandos?

• Formação anterior.

• Programação.

• Métodos numéricos.

• Optimização.

• Modelação avançada.

• Opções em engenharia de sistemas.

• Experiência prática.

Programa EngIQ — Módulo EPS 7 Nuno Oliveira (DEQ/FCTUC)

Capítulo 2

Ferramentas básicas na solução

de problemas numéricos

2.1 Objectivos fundamentais

Com esta unidade curricular pretende-se que os formandos adquiram:

1. Uma visão geral sobre o desenvolvimento e a aplicação de metodologias siste-

máticas de solução de problemas, num leque de aplicações diverso em Processos

Químicos.

2. A capacidade de tratar de forma eficiente a complexidade das aplicações anterio-

res.

2.2 Tarefas consideradas

• Conceptuais

8

– Construir modelos ou formulações matemáticas.

– Implementar estes modelos numa linguagem ou sistema.

• Operacionais

– Resolver sistemas de equações NL.

– Optimização (baseada em modelos).

2.2.1 Conceptuais

Base dos modelos:

• Empírica (estatística) ou data-driven.

• Mecanística.

Exemplo: Cinética de uma reacção química:

v = a0T +a1 lnT +a2C2A versus v = A0e−Ea/RTCA

2.2.2 Operacionais

Sistemas de equações não-lineares:

f (x) = 0; x, f ( ·) ∈ Rn

Notação:

α,β ∈ R; a,x ∈ Rn; A,B ∈ Rn×m

Caso linear: A ·x = b (mais simples, problema elementar).

Programa EngIQ — Módulo EPS 9 Nuno Oliveira (DEQ/FCTUC)

Exemplo: Uso de formulação de transportes no projecto de redes de recuperação de

calor:

→ Optimização linear (LP)

Conceitos fundamentais:

• no¯ de graus de liberdade:

nGDL = nVARS−nEQs

• Existência e unicidade soluções (linear vs. não-linear).

• Graus de dificuldade na pesquisa das soluções.

Muitos problemas numéricos são decompostos numa sucessão de problemas + simples;

Muito frequente solução de sistemas lineares (ou iteração destes).

Optimização:

minx

φ(x)

s.a h(x) = 0

g(x)≤ 0

• φ(x)→ função objectivo: avalia o mérito das soluções alternativas.

Programa EngIQ — Módulo EPS 10 Nuno Oliveira (DEQ/FCTUC)

• h(x) = 0, g(x)≤ 0→ restrições do problema.

• x→ variáveis de decisão.

Embora as variáveis do problema x necessitem serem todas especificadas (em conjunto),

nem todas correspondem a graus de liberdade do problema:

nGDL = no. variáveis de decisão−no. restrições activas (igualdades na solução)

Tipicamente φ( ·) ∈ R, senão optimização multiobjectivo. x,g,h→ vectores.

Optimização multiobjectivo não tratada aqui. 2 abordagens básicas possíveis:

• Redução a uniobjectivo. Por exemplo pesando ou prioritizando os diversos ob-

jectivos. Nalguns cenários possível também converter objectivos em restrições.

• Tratar problema (clarificar decisões possíveis), mas adiar escolha para decisor.

Também possível o uso de variáveis discretas (binárias, inteiras); considerado + à

frente.

2.3 Sistemas disponíveis (ferramentas)

Tentar:

• Procurar usar sempre os sistemas (ferramentas) mais específicos para a tarefa em

causa. Em geral estes permitem maiores produtividades, menor esforço, melhor

qualidade de solução.

Exemplo: construção de estradas.

• Útil conhecer (dominar) 1 leque alargado de ferramentas de uso possível num

dado tipo de problemas.

• Útil conhecer ferramentas de uso geral, utilizáveis em muitas classes de proble-

mas (garantia de resposta).

Programa EngIQ — Módulo EPS 11 Nuno Oliveira (DEQ/FCTUC)

Objectivo: Cada aluno (praticante) deve estar familiarizado e ser proficiente com pelo

menos uma ferramenta de cada um dos tipos anteriores.

2.3.1 Sistemas operativos

Sistemas mais comuns: Microsoft Windows, MacOSX, Linux.

• Usar sempre o mais conveniente.

• MacOSX, Linux partilham base comum (UNIX):

– muitos servidores, quase todos da lista TOP500 são Linux-based.

– muitas facilidades de programação e muitas ferramentas no domínio pú-

blico.

Exemplo: na shell (emulador de terminal — texto):

ls | wc

simul | tee result.txt

– Muita usada a shell (terminal)→ necessário conhecer comandos a usar.

– Quase todas as ferramentas podem ser escolhidas (e personalizadas), e.g.,

shells, ambientes gráficos.

– Possível experimentar estes ambientes, usando máquinas virtuais (emulado-

res), e.g., VirtualBox, VmWare.

2.3.2 Folhas de cálculo

Programas mais comuns: Microsoft Excel, LibreOffice / OpenOffice.

Características fundamentais:

• Manipulações simples de dados, visualização, introdução e apresentação de dados

(organização).

Programa EngIQ — Módulo EPS 12 Nuno Oliveira (DEQ/FCTUC)

• Desaconselhável programação (elaborada), ou folhas com dependências comple-

xas (por exemplo, difícil de validar / remover erros).

• Meio natural de entrada / saída de dados, incluindo interfaces com outros progra-

mas (e.g., bases de dados, outros sistemas, simuladores).

• O solver permite resolver sistemas de equações (L/NL) e optimização (L/NL):

O método numérico básico (versões anteriores do Microsoft Excel) é GRG -

generalized reduced gradient→ robustez numérica intermédia (anos 70).

O Microsoft Excel 2010 incorpora solvers mais variados (e.g., multistart, evo-

lucionários).

Exemplo:

minx1,x2

x21 + x2

2

s.a 3x1 +2x2 = 4

Possível eliminar x2 = (4−3x1)/2 da restrição anterior, e substituir esta equação

como um problema sem restrições:

minx1

a+bx1 + cx21

As condições de optimalidade deste tipo de problemas são muito + fáceis de ma-

nipular. Os métodos RG aplicam uma abordagem conceptualmente semelhante.

• Muita documentação (Web, livros) relativamente à utilização dos solvers.

• Outros solvers mais específicos também disponíveis para Excel (caixas negras).

Exemplo:

@Risk (Palisade Corporation)→ simulação probabilística de cenários.

Nota: optimização robusta (considerando incertezas) abordada + à frente.

Programa EngIQ — Módulo EPS 13 Nuno Oliveira (DEQ/FCTUC)

Exemplo: Modelo de previsão de vendas:

Procura Diesel = f (EVD, IDesempenho,Brent, . . .)

EVD — Câmbio Euro / USD.

Nota: Inteiramente caixa negra.

Programa EngIQ — Módulo EPS 14 Nuno Oliveira (DEQ/FCTUC)

2.3.3 Linguagens básicas de programação

Estas implementam sistemas capazes de realizarem cálculos numéricos e processamento

de dados arbitrários. Exemplos mais comuns: Fortran, C/C++, VisualBasic, Python,

etc.

• Codificação directa da sequência de cálculos (da responsabilidade do utilizador).

• Fortran continua a ser muito usado em cálculo numérico (eficiência, bibliotecas

anteriores muito extensas); actualmente muito semelhante a linguagem C, cuja

evolução tem tentado acompanhar.

• C++, Python: object based (orientadas por objectos)→ programação mais avan-

çada. Modularidade permite sistemas de maior dimensão.

• Usadas em tarefas muito repetitivas, na manipulação de sistemas de grandes di-

mensões, ou quando é necessário obter grande eficiência numérica.

A programação neste tipo de linguagens recorre geralmente a bibliotecas — implemen-

tação de tarefas mais comuns.

Bibliotecas numéricas→ NETLIB <http://www.netlib.org>.

Bibliotecas numéricas básicas mais comuns: BLAS, LAPACK. Frequentemente os sistemas

incluem versões optimizadas destas (e.g., Intel MKL).

2.3.4 Linguagens avançadas de programação

Sobretudo + específicas do domínio de aplicação pretendido. Exemplos mais comuns:

MATLAB / Octave, Mathematica.

• Para além das funcionalidades das linguagens básicas, permitem manipulação

matricial, de outros objectos, e incluem sistemas gráficos.

• Possível estabelecer interfaces (dependendo das facilidades do sistema operativo).

Programa EngIQ — Módulo EPS 15 Nuno Oliveira (DEQ/FCTUC)

• Outros paradigmas (modelos) de programação são também tornados possíveis

(e.g., programação baseada em listas, programação funcional).

• Permitem (incentivam) programação interactiva → desenvolvimento rápido de

aplicações.

• A eficiência numérica pode ser inferior à da conseguida com linguagens de pro-

gramação básicas. No entanto, a optimização destas aplicações (por exemplo

através da vectorização) já permite eficiências comparáveis.

MATLAB / Octave

Referência específica: K. Sigmom, MATLAB Primer (1992); muitas outras referências

semelhantes disponíveis.

GNU Octave: <http://www.gnu.org/software/octave/>. John W. Eaton, Univer-

sidade de Wisconsin, ChemE!

Algumas diferenças significativas face a MATLAB (nomeadamente interface gráfico —

Java, e muitas bibliotecas adicionais).

Objecto básico é matriz:

A = [ 1 2; 3 4];

b = [1 ; 2];

x = A\b (divisão à esquerda)

Testar outras funções sistema de ajuda (help), por exemplo:

eig(A)

Possíveis testes lógicos (if) e ciclos de iteração (for), etc., de forma semelhante às

linguagens básicas.

Programa EngIQ — Módulo EPS 16 Nuno Oliveira (DEQ/FCTUC)

Mathematica

Linguagem concebida desde o início para permitir a manipulação simbólica de objectos

matemáticos. Permite por exemplo o uso de precisão infinita nos cálculos efectuados.

2.3.5 Linguagens para modelação e optimização

• GAMS: <http://www.gams.com/>.

• AMPL: <http://www.ampl.com/>.

• lpsolve: <http://sourceforge.net/projects/lpsolve/>.

• Aqui apenas necessário fornecer equações que constituem problema (formulação

matemática). Evita-se assim a necessidade de chamar rotinas / funções, nem

verificar parâmetros.

GAMS muito usada aqui. Possui bom suporte comercial, e muitos manuais,

exemplos (biblioteca, etc.) → instalar versão de demonstração / estudante.

• Solvers: bibliotecas numéricas para tipos específicos de sistemas.

• Como codificar os modelos matemáticos? (limitações e paradigmas distintos des-

tas linguagens).

• Os modelos assim desenvolvidos são conjuntos de equações. Torna-se difícil

portanto a implementação de procedimentos.

Exemplos de aplicação:

Problema de transportes:

Considerado no Capítulo 1 do manual do GAMS (tutorial):

Programa EngIQ — Módulo EPS 17 Nuno Oliveira (DEQ/FCTUC)

Formulação matemática:

minxi j

∑i

∑j

ci jxi j

s.a ∑i

xi j ≥ p j, ∀ j

∑j

xi j ≤ si, ∀i

xi j ≥ 0, xi j ∈ R

Problema do tipo LP, com xi j ∈ R. Implementação em GAMS (trnsport.gms).

Problema de atribuição (“assignment”):

Usar variáveis binárias yi ∈ {0,1} para codificar decisões:

yi =

1, se opção i escolhida

0, se opção i não escolhida

Formulação matemática:

Programa EngIQ — Módulo EPS 18 Nuno Oliveira (DEQ/FCTUC)

maxyi

∑i

viyi

s.a ∑i

eiyi ≤M

yi ∈ {0,1}

Problema do tipo ILP. Implementação em GAMS (mochila1.gms).

Nota: Algoritmos necessários neste caso são bastante diferentes do caso anterior: o

conceito de derivada não existe com variáveis discretas → necessário estudar agora

combinações de possibilidades (cenários).

Dificuldade: Como explorar espaço de combinações de forma exaustiva, e simultanea-

mente com pouco esforço? → enumeração implicíta, mais à frente.

Programa EngIQ — Módulo EPS 19 Nuno Oliveira (DEQ/FCTUC)

Capítulo 3

Solução de sistemas de equações

não-lineares

Tal como visto anteriormente, a solução de equações NL é uma tarefa numérica muito

comum:

Avaliação do modelo ' previsão do comportamento de um sistema para um conjunto

de condições específicas; esta é uma tarefa muito comum na manipulação de modelos.

3.1 Sistemas de equações lineares

Sistemas lineares (L) são muito comuns, por exemplo como subtarefas de outros méto-

dos numéricos:

A ·x = b , com A ∈ Rn×n, x,b ∈ Rn

Unicidade da solução se car(A) = n (A não-singular).

20

Métodos directos (e.g., eliminação Gaussiana) ou iterativos (e.g., Gauss-Seidel) dispo-

níveis para a solução destes sistemas.

Expressão geral dos métodos iterativos: xk+1 = f (xk) :

x1 = f (x0) ← fornecido

x2 = f (x1)

x3 = f (x2)

...

Garantias de convergência?

Por vezes métodos iterativos podem ser preferíveis, e.g.:

• Matrizes esparsas.

• Sistemas de grandes dimensões.

• Apenas solução parcial (aproximação) desejada.

Bibliotecas básicas: BLAS, LAPACK (NETLIB).

3.2 Sistemas não-lineares

Forma geral:

f (x) = 0 , com f ,x ∈ Rn

A maioria dos modelos em engenharia são deste tipo.

Exemplo: CSTR (RCPA), onde C(T ) e T (C) simultaneamente.

Neste caso não há em geral garantias de existência de soluções para este tipo de sistemas.

Quando as soluções existem, elas podem ser múltiplas (quais as + interessantes?).

Diversos métodos básicos podem ser usados na solução deste tipo de sistemas:

Programa EngIQ — Módulo EPS 21 Nuno Oliveira (DEQ/FCTUC)

3.2.1 Métodos gráficos

Se apenas uma variável no sistema, a localização pode ser feita graficamente:

Devem no entanto ser usadas algumas precauções na utilização deste método!

Este método pode também ser aplicado com 2 equações / variáveis, usando gráficos 3D.

Para sistemas de maior dimensão a aplicação deste método requer a eliminação de algu-

mas variáveis a partir de algumas equações (caso a caso).

Exemplo típico: demonstração da multiplicidade de estados estacionários num CSTR:

Solução quando f1(T ) = f2(T ).

3.2.2 Método das substituições sucessivas

Neste caso pretende-se transformar o sistema inicial f (x) = 0 num sistema equivalente,

da forma x = g(x), afim de possibilitar a aplicação do método iterativo

xk+1 = g(xk)

Programa EngIQ — Módulo EPS 22 Nuno Oliveira (DEQ/FCTUC)

Existe frequentemente mais do que uma maneira de conseguir isto. Quando isto acon-

tece, nem todos os métodos do tipo anterior são igualmente eficientes.

Exemplos:

1. Caso simples:

x− exp(−x) = 0 ⇒ xk+1 = exp(−xk)

Nota: As raízes deste sistema podem ser facilmente localizadas pelo método grá-

fico.

2. Simulação de diagramas de fabrico:

Corrente 6≡ corrente quebrada→ origina correntes x6a e x6b, durante a aplicação

deste método.

Os balanços ao processo (por exemplo, mássicos) podem ser escritos como:

n2 = n1 +n6a

n3 = f (n2,u1)

n4 = f (n3,u2)

n6b = n4−n5

⇒ n6b = g(n1,n6a) (3.1)

• ni — quantidades da corrente i (e.g., caudais).

• u j — parâmetros da unidade j.

Neste processo de solução, é necessário iterar (3.1) até que n6b = n6a.

Cada iteração envolve a resolução do modelo completo do processo, considerando

Programa EngIQ — Módulo EPS 23 Nuno Oliveira (DEQ/FCTUC)

no entanto apenas as equações de cada unidade (ou ponto de mistura / separação)

individualmente. Por isso torna-se importante a convergência rápida destes méto-

dos.

Este procedimento é muito comum, sendo por exemplo utilizado por defeito pelo

ASPEN One, uma vez que requer pouco esforço adicional, para além da iteração

das correntes.

São necessários procedimentos adicionais para decidir quais as correntes que de-

vem ser quebradas (iteradas). No caso anterior correntes 2, 3, e 4 também servem.

Exercício: Verificar a afirmação anterior, indicando o procedimento de cálculo a

ser seguido num destes casos.

3. Com raízes de equações polinomiais:

x5−4x2−4 = 0 → xk+1 =±·· ·

Questões a responder para usar este método com segurança:

1. Quando converge? (propriedades globais).

2. Se convergir, qual a sua rapidez de convergência? (propriedades locais).

Teorema: Para o MSS correspondente à aplicação da fórmula iterativa xk+1 = g(xk)

convergir é necessário que esta função tenha as características de função contractiva

(“contractive mapping”).

Se ‖g′(x)‖< 1 então g(x) é uma aplicação contractiva, e o método MSS anterior con-

verge (condição suficiente):

Programa EngIQ — Módulo EPS 24 Nuno Oliveira (DEQ/FCTUC)

Necessário rever os conceitos de normas vectoriais (folhas PC)!

Com vectores, as normas representam essencialmente os conceitos de distância ou ta-

manho de vectores.

Para matrizes (A), as normas traduzem o conceito de amplificação associada ao operador

linear correspondente y = A ·x.

Rapidez de convergência: Quando ‖g′(x)‖→ 0 a convergência torna-se mais rápida.

Questão fundamental: como escolher g(x)? Resposta complexa → considerar outros

tipos de métodos.

3.2.3 Método de Newton

Método muito conhecido na sua aplicação unidimensional. Para x ∈ R:

Programa EngIQ — Módulo EPS 25 Nuno Oliveira (DEQ/FCTUC)

xk+1 = xk−f (xk)

f ′(xk)

Em problemas multidimensionais (x ∈ Rn):

f (xk) 6= 0

Expansão em série de Taylor:

f (xk +h) = f (xk)+∇ f (xk)T︸ ︷︷ ︸

JTk

·h+ · · ·= 0 (3.2)

JTk ≡ Jacobiano do sistema.

Resolvendo (3.2) em ordem a h resulta o método iterativo de Newton:

JTk ·hk =− fk

Depois faz-se xk+1 = xk +hk. Nesta equação fk ≡ f (xk).

Consequentemente torna-se necessário resolver um sistema de equações lineares por

iteração no método de Newton (A ·x = b).

Este método iterativo pára quando ‖hk‖ ≤ ε1 ou ‖ fk‖ ≤ ε2. Em geral é necessário usar

vários destes critérios simultaneamente.

Nota: Revisão de operadores diferenciais:

Descrição mais detalhada do método de Newton para sistemas de equações nas folhas

de PC.

Programa EngIQ — Módulo EPS 26 Nuno Oliveira (DEQ/FCTUC)