O software EMSO (Environment for Modeling Simulation and Optimiza- tion) foi utilizado para realizar as simula¸c˜oes no presente trabalho. Este simulador ba- seado em equa¸c˜oes possui uma linguagem interna de modelagem orientada a objetos, permitindo heran¸ca e composi¸c˜ao. O conceito de heran¸ca permite construir modelos com- plexos a partir de outro mais simples, enquanto o conceito de composi¸c˜ao permite criar modelos complexos utilizando v´arios outros modelos simples (RODRIGUES; SOARES; SECCHI, 2010).
O software traz consigo um conjunto de modelos que cobrem grande parte das opera¸c˜oes industriais, como reatores, colunas de destila¸c˜ao, trocadores de calor, entre outros. Esses modelos est˜ao abertos para visualiza¸c˜ao e altera¸c˜ao do usu´ario, al´em de ser poss´ıvel a este desenvolver seus pr´oprios modelos empregando a linguagem de modelagem do simulador. Esta caracter´ıstica ´e fundamental para o presente trabalho, pois este envolve v´arios equipamentos que normalmente n˜ao s˜ao encontrados em simuladores comerciais.
Al´em do modo texto o simulador tamb´em possui uma interface gr´afica com o usu´ario, na qual este pode facilmente montar fluxogramas de processos ligando os equi- pamentos. Tal caracter´ıstica facilita a sua utiliza¸c˜ao por usu´arios leigos, para os quais a simula¸c˜ao em modo texto seria pouco atrativa (RODRIGUES; SOARES; SECCHI, 2010). Como o simulador pode apresentar problemas de convergˆencia, dependendo do conjunto de vari´aveis especificadas ou do valor destas, esse possibilita a utiliza¸c˜ao de arquivos contendo chutes iniciais para algumas, ou todas, as vari´aveis do sistema. Isso auxilia a convergˆencia do sistema, diminuindo, al´em disso, o n´umero de itera¸c˜oes necess´arias para a convergˆencia do mesmo. Esse aspecto ´e essencial para problemas de otimiza¸c˜ao, nos quais muitos pontos de opera¸c˜ao s˜ao testados.
60 3 Metodologia
3.1.1
Adi¸c˜ao de plug ins
Rotinas externas de c´alculo podem ser adicionadas ao EMSO atrav´es de plug ins implementados em linguagem C/C++ ou FORTRAN. ´E disponibilizado um template para facilitar o desenvolvimento do plug in, al´em das bibliotecas necess´arias. O plug in criado deve ser compilado como uma biblioteca dinˆamica (dll ), e esta inclu´ıda ao EMSO atrav´es da op¸c˜ao add plugin.
A implementa¸c˜ao de rotinas externas como plug ins torna o simulador bas- tante flex´ıvel. Por´em isso tem um pre¸co, pois, para tais rotinas n˜ao ´e poss´ıvel a deriva¸c˜ao simb´olica das equa¸c˜oes, o que ´e substitu´ıdo pela deriva¸c˜ao num´erica, que ´e menos robusta.
3.1.2
Adi¸c˜ao de Solvers
A adi¸c˜ao de solvers tamb´em segue um modelo que ´e disponibilizado junto com o EMSO, o qual deve ser implementado em linguagem C/C++. Adicionou-se o oti- mizador Particle Swarm Optimization (PSO) cl´assico (KENNEDY; EBERHART, 1995) como solver do EMSO. Por´em, o EMSO n˜ao estava adaptado para o uso de otimizadores estoc´asticos, pois este transfere ao otimizador todas as vari´aveis do problema, e n˜ao so- mente as vari´aveis de otimiza¸c˜ao. Neste caso, as equa¸c˜oes dos modelos dos equipamentos envolvidos s˜ao tratadas como restri¸c˜oes de igualdade para o problema de otimiza¸c˜ao.
Assim, foi necess´ario realizar adapta¸c˜oes no c´odigo fonte do EMSO para que este inclu´ısse uma op¸c˜ao mediante a qual somente as vari´aveis de otimiza¸c˜ao seriam recebidas pelo otimizador. Neste caso, cada itera¸c˜ao teria duas etapas: na primeira o otimizador atualiza o valor das vari´aveis de otimiza¸c˜ao, na sequˆencia um algoritmo de resolu¸c˜ao de sistemas n˜ao-lineares resolve o problema para as demais vari´aveis. No caso do sistema n˜ao convergir, ou seja,do ponto n˜ao ser fact´ıvel, a part´ıcula recebe um valor alto para a fun¸c˜ao objetivo, de modo que esta n˜ao seja escolhida como melhor part´ıcula. Outra abordagem est´a sendo estudada que n˜ao dependa do valor da fun¸c˜ao objetivo, pois o “valor alto” depende do caso particular em estudo. Estuda-se a possibilidade de utilizar uma vari´avel booleana para sinalizar se o sistema convergiu, sendo a part´ıcula descartada para o caso negativo.
3.2 Interpolador 61
3.2
Interpolador
Foi implementado um interpolador multilinear como plug in do EMSO, se- gundo o modelo descrito em Nelles (2001). Multilinear pois este n˜ao apresenta termos de ordem quadr´atica ou superior, somente termos de intera¸c˜ao bin´aria, tern´aria, etc., dependendo da dimens˜ao do sistema.
O interpolador realiza uma busca na tabela de dados de modo a encontrar os pontos mais pr´oximos `a entrada. A vari´avel resposta interpolada consiste nos valores desses pontos ponderados pelas ´areas (ou volumes, hipervolumes, etc., dependendo da dimens˜ao do sistema) opostas a ele, como mostra a equa¸c˜ao 3.1.
y′i= ∑
2M
j wj yi j
∑2iMwi
(3.1)
O pseudoc´odigo do interpolador ´e apresentado a seguir:
✓
✒
✏
✑
Algoritmo 2: pseudoc´odigo do interpolador(tabela de dados, x) Busque os pontos mais pr´oximos a x
w← 0 for i ← 1 to 2M do wi← 1 for j ← 1 to M do nwi← wi∗ |pi j− xj| w← w + wi for i ← 1 to N do y′i← 1 for j ← 1 to 2M do ny′i← y′i∗wj∗yi j w return (y′)
Na equa¸c˜ao e no pseudoc´odigo apresentados, M ´e o n´umero de vari´aveis de entrada, ou seja, as vari´aveis especificadas, N o n´umero de vari´aveis resposta, yi j ´e
a vari´avel resposta i no ponto j do interpolador, y′i ´e a vari´avel resposta i obtida por interpola¸c˜ao, xj ´e a vari´avel de entrada j, pi j ´e a vari´avel de entrada i no ponto j do
63