Pular para conteúdo

Solução de Problemas

Problemas comuns e como resolvê-los ao trabalhar com o DWSIM, a FluentAPI e o MCP Server.

Problemas de Convergência do Solver

Sintoma: o solver falha ou oscila

Causas comuns:

  • Especificações inconsistentes (por exemplo, temperatura e fração de vapor = 0 abaixo do ponto de bolha)
  • Estimativas iniciais ruins para correntes de reciclo
  • Pacote termodinâmico inadequado para o sistema

Correções:

  1. Reverifique as especificações de corrente quanto à consistência física
  2. Forneça uma estimativa inicial razoável para correntes de reciclo (faça primeiro uma varredura direta)
  3. Aumente a tolerância do solver temporariamente para ver resultados parciais, depois aperte
  4. Para colunas: tente um número menor de estágios primeiro, depois aumente
  5. Para reatores: comece com baixa conversão ou baixo grau de avanço da reação

Sintoma: coluna de destilação não converge

Causas comuns:

  • Condição térmica da alimentação distante da saturação
  • Combinação errada de razão de refluxo + vazão de fundo (especificação inviável)
  • Estágios insuficientes para a separação requerida

Correções:

  1. Pré-aqueça a alimentação até seu ponto de bolha
  2. Tente pares alternativos de especificação (por exemplo, vazão de destilado + vazão de fundo em vez de refluxo + fundo)
  3. Adicione 5-10 estágios e tente novamente
  4. Aumente ligeiramente a razão de refluxo

Sintoma: malha de reciclo diverge

Causas comuns:

  • Forte não linearidade na malha
  • Pacote termodinâmico apresentando comportamento descontínuo perto de uma fronteira de fase

Correções:

  1. Use a aceleração de Wegstein da operação unitária Recycle (padrão)
  2. Especifique manualmente uma estimativa de tear stream próxima da solução esperada
  3. Verifique se alguma unidade na malha tem múltiplas soluções (por exemplo, reator com múltiplas raízes)

Problemas de Pacotes Termodinâmicos

Sintoma: valores de densidade ou entalpia parecem errados

Diagnóstico:

  1. Compare com NIST WebBook para componentes puros
  2. Verifique se o pacote é apropriado (veja Guia de Pacotes Termodinâmicos)
  3. Verifique se temperatura e pressão estão dentro da faixa válida

Sintoma: previsão VLE não acerta o azeótropo

Causa comum: Usar PR ou Lei de Raoult para uma mistura polar.

Correção: Mude para NRTL ou UNIQUAC.

Sintoma: resultados diferem entre dois pacotes termodinâmicos

Isso é normal. Modelos diferentes extrapolam de formas diferentes fora de sua faixa válida. Decida qual modelo é mais confiável para suas condições:

  • Para hidrocarbonetos em pressão moderada: PR é geralmente o melhor
  • Para misturas polares/aquosas: NRTL ou UNIQUAC
  • Para água pura/vapor: sempre Steam Tables

Problemas da FluentAPI

Sintoma: ModuleNotFoundError: No module named 'DWSIM.Automation.FluentAPI'

O DWSIM é um aplicativo .NET Framework, então o pythonnet precisa carregar esse runtime antes do import clr, e a pasta do DWSIM e suas subpastas unitops, ppacks e extenders precisam estar no sys.path (o assembly da FluentAPI referencia DLLs que moram nelas; quando faltam, o namespace aparece vazio sem erro). Todo script de exemplo começa com este bloco:

import os
import sys

import pythonnet
pythonnet.load("netfx")              # DWSIM is a .NET Framework application
import clr

DWSIM_BIN = os.environ.get("DWSIM_BIN")   # a pasta que contém DWSIM.Automation.FluentAPI.dll
for sub in ("", "unitops", "ppacks", "extenders"):
    sys.path.append(os.path.join(DWSIM_BIN, sub))
clr.AddReference("DWSIM.Automation")
clr.AddReference("DWSIM.Automation.FluentAPI")

from DWSIM.Automation.FluentAPI import Flowsheet, PropertyPackages, Q

Checklist:

  1. pip install pythonnet (3.x) em um Python 64 bits
  2. Defina DWSIM_BIN com a pasta de instalação, por exemplo C:\Users\<voce>\AppData\Local\DWSIM
  3. Chame pythonnet.load("netfx") antes do primeiro import clr

Sintoma: AttributeError: 'float' object has no attribute 'Kelvin'

Os helpers Q são métodos de extensão do C#, e o pythonnet não os anexa aos números do Python. Chame-os como helpers estáticos, Q.Kelvin(300.0) e Q.Pascal(101325.0), depois de importar Q:

from DWSIM.Automation.FluentAPI import Flowsheet, PropertyPackages, Q

O mesmo vale para as outras conveniências do .NET: a estequiometria de uma reação é um Dictionary[String, Double] de System.Collections.Generic, e argumentos nomeados só funcionam com os nomes de parâmetro do C#.

Sintoma: AttributeError em um método do builder

A FluentAPI evolui; verifique os nomes atuais dos métodos na referência da FluentAPI (DWSIM.FluentAPI/docs/api/index.md).

Problemas do MCP Server

Sintoma: ferramenta retorna erro "Unknown tool"

O nome da ferramenta pode estar errado ou o servidor pode estar rodando uma versão mais antiga. Verifique as ferramentas disponíveis:

{"jsonrpc":"2.0","id":1,"method":"tools/list"}

Sintoma: flowsheet_id não encontrado

Cada flowsheet tem um ID único com escopo de sessão. Se você reiniciar o MCP server, os IDs são perdidos. Salve o flowsheet em disco antes de parar o servidor.

Sintoma: o solver retorna erros mas meu flowsheet parece correto

Leia o array errors na resposta do solve. Cada entrada informa qual objeto falhou e por quê.

Funcionalidades da Edição Plus / Patreon

Se você ver erros "Plus required", a operação requer ativação do DWSIM Plus / Patreon Edition:

  • Osmose Reversa
  • Operações unitárias de refino (HDS, Reformer, FCC, etc.)
  • Módulo TEA
  • Módulo LCA
  • Electrolyte NRTL

Para ativar, siga o guia Patron Activation na documentação da FluentAPI (DWSIM.FluentAPI/docs/getting-started/patron-activation.md).

Problemas de Desempenho

Sintoma: as simulações demoram muito

Causas comuns:

  • Número grande de componentes (> 30) com pacotes termodinâmicos rigorosos
  • Malha de reciclo com convergência lenta
  • Coluna de destilação com muitos estágios

Correções:

  1. Agrupe componentes similares em pseudocomponentes
  2. Use um pacote termodinâmico mais simples para triagem; mude para um rigoroso no projeto final
  3. Reduza a tolerância do solver para iterações iniciais; aperte para o solve final

Sintoma: out of memory

Causas comuns:

  • Simulações muito grandes
  • Vazamentos de memória ao executar muitas simulações em um laço Python sem limpeza

Correções:

  1. Reinicie o processo Python entre execuções grandes
  2. Chame fs.Dispose() (ou equivalente) após cada simulação
  3. Use Python e DWSIM 64 bits

Obtendo Ajuda

  • Fóruns do DWSIM: https://www.dwsim.org/forum
  • GitHub Issues: https://github.com/DanWBR/dwsim
  • Documentação: veja DWSIM.FluentAPI/docs/, DWSIM.MCPServer/docs/ e a ajuda principal do DWSIM em PlatformFiles/Common/docs/dwsim-help/
  • Testes de Validação: DWSIM.Validation.Tests/ contém simulações de exemplo testadas