Skip to content

Repository files navigation

Simulações de células a combustível PEMFC em Python

Idioma / Language: Português (Brasil) | English

Simulações desenvolvidas com assistência de inteligência artificial. Projeto experimental em desenvolvimento e validação (WIP); os resultados ainda não foram totalmente verificados.

Repositório de estudos de células a combustível de membrana de troca de prótons (PEMFC — Proton Exchange Membrane Fuel Cell), com modelos de referência de 50 W e 1 kW.

Os programas permitem estudar curvas de polarização, potência elétrica, consumo de hidrogênio e, no modelo de 1 kW, comportamento térmico e condicionamento de potência por conversor DC-DC. As potências indicadas são referências de configuração dos modelos; os valores calculados dependem dos parâmetros e das condições de operação.

Simuladores disponíveis

Arquivo Modelo Recursos principais
simulacao_beti_pemfc_50w.py Stack de referência de 50 W Curvas de tensão e potência, identificação do ponto próximo de 50 W, máximo da varredura e estimativa de autonomia.
simulacao_Qwen_pemfc_50w.py Stack de referência de 50 W Curvas atualizadas durante a varredura em ambiente gráfico e geração de PNG no fluxo sem janela gráfica.
pemfc_simulator_1kw.py Sistema de referência de 1 kW Interface Tkinter, tensão de saída ajustável entre 24 e 48 V, evolução térmica, ventoinhas, modelo de conversor Buck e comparação com curvas experimentais.

Requisitos e instalação

  • Python 3 com suporte a Tkinter/Tcl/Tk para a interface gráfica.
  • Bibliotecas NumPy e Matplotlib.
  • VS Code com a extensão Python, caso seja usado como ambiente de execução.

No terminal do VS Code, usando o mesmo ambiente Python selecionado para executar os arquivos, instale as dependências:

python -m pip install numpy matplotlib

Para verificar se o Tkinter está disponível:

python -m tkinter

Esse comando deve abrir uma janela de demonstração. Se o módulo estiver ausente, instale ou habilite o suporte Tcl/Tk na instalação do Python. O programa de 1 kW importa Tkinter também nos modos de linha de comando.

Como executar no VS Code

  1. Abra a pasta do repositório em Arquivo → Abrir Pasta.
  2. Use Python: Select Interpreter na paleta de comandos para selecionar o ambiente com as dependências instaladas.
  3. Abra o arquivo da simulação desejada.
  4. Clique em Run Python File para executá-lo.

Também é possível executar pelo terminal, aberto na pasta do repositório:

python simulacao_beti_pemfc_50w.py
python simulacao_Qwen_pemfc_50w.py
python pemfc_simulator_1kw.py

No simulador de 1 kW, configure a tensão e a duração na janela e clique em EXECUTAR SIMULAÇÃO. A interface também oferece CURVA POLARIZAÇÃO, VALIDAR CSV e CALIBRAR CSV.

Na versão Qwen, a janela interativa pode permanecer aberta ao final da varredura; feche-a para que o programa continue e apresente o resumo no terminal. O arquivo curva_pemfc.png é salvo no fluxo não interativo; não há salvamento automático no fluxo interativo atual.

O que os modelos representam

A tensão por célula é calculada a partir de uma tensão reversível e das perdas eletroquímicas:

V_célula = E_Nernst − η_ativação − η_ôhmica − η_concentração
V_stack  = número_de_células × V_célula
P_stack  = V_stack × I_stack

Modelos de 50 W

As duas versões usam, por padrão, 18 células em série, área ativa de 15 cm² por célula e temperatura do stack de 55 °C. A varredura de corrente gera curvas de tensão e potência líquida, descontando a carga das ventoinhas conforme a regra implementada.

A estimativa de autonomia considera um tanque de 7 litros a 300 bar, fator de compressibilidade fixo e eficiência elétrica assumida de 50%. Os parâmetros ficam no método __init__ de cada classe. Alguns parâmetros ambientais declarados não estão acoplados à equação de polarização atual; a existência de um parâmetro no código não significa que ele altere todas as saídas.

Modelo de 1 kW

O simulador inclui:

  • Dimensionamento do número de células em função da tensão desejada.
  • Perdas por ativação, resistência elétrica e transporte de massa.
  • Evolução da temperatura por integração de Euler explícito.
  • Modelo de resfriamento e controle de ventoinhas.
  • Estimativa da vazão de hidrogênio.
  • Modelo de conversor Buck síncrono intercalado de três fases, com estimativas de perdas, rendimento, ripple, fases ativas e condição de ZVS.

O conversor é representado por cálculos simplificados de comportamento e perdas. O indicador de ZVS é uma estimativa do modelo; o programa não resolve as formas de onda de cada comutação dos semicondutores.

Curvas de polarização, comparação e calibração

Execute os comandos abaixo a partir da pasta do repositório.

Gerar a curva de polarização em PNG:

python pemfc_simulator_1kw.py --polarization --target-voltage 24 --polarization-temp-c 80

Comparar o modelo com o CSV experimental incluído:

python pemfc_simulator_1kw.py --validate dados/curva_experimental_pemfc_real_schneider_cell11_rh100_80c.csv --target-voltage 24

Ajustar os parâmetros à curva experimental:

python pemfc_simulator_1kw.py --calibrate dados/curva_experimental_pemfc_real_schneider_cell11_rh100_80c.csv --target-voltage 24

Consultar as opções disponíveis:

python pemfc_simulator_1kw.py --help

Conforme o modo escolhido, o programa grava gráficos PNG, tabelas CSV, métricas de erro, relatórios Markdown e parâmetros calibrados em resultados_validacao/. Use --output-dir outra_pasta para separar novas execuções; arquivos com os mesmos nomes podem ser sobrescritos.

A calibração gera uma comparação com os parâmetros ajustados e salva esses parâmetros em CSV. Ela não modifica automaticamente os parâmetros padrão do código nem aplica o ajuste às execuções seguintes da simulação transiente.

O formato dos CSVs e os detalhes do procedimento estão em VALIDACAO_PEMFC.md.

Dados e interpretação dos resultados

  • dados/curva_experimental_pemfc_1kw_template.csv: arquivo de exemplo para testar o fluxo de comparação. Não deve ser tratado como evidência experimental.
  • dados/curva_experimental_pemfc_real_schneider_cell11_rh100_80c.csv: curva experimental cuja origem, condições, atribuição e licença estão documentadas em FONTE_DADOS_REAIS_PEMFC.md.
  • dados/fontes_abertas/Cell_11.zip: arquivo de origem indicado na documentação dos dados.
  • resultados_validacao/: saídas locais dos procedimentos de comparação e calibração; a presença desses arquivos não comprova, por si só, validação do sistema completo.

A comparação com uma curva experimental avalia o ajuste da tensão por célula nas condições daqueles dados. Um bom ajuste na mesma curva usada para calibrar não constitui validação independente do modelo, do stack de 1 kW, da dinâmica térmica ou do conversor.

Os modelos destinam-se a estudos e desenvolvimento. Estimativas de potência, autonomia, rendimento e ZVS precisam ser confrontadas com medições e com as condições do equipamento que se pretende representar.

Organização dos arquivos

.
├── README.md
├── README.en.md
├── simulacao_beti_pemfc_50w.py
├── simulacao_Qwen_pemfc_50w.py
├── pemfc_simulator_1kw.py
├── VALIDACAO_PEMFC.md
├── dados/
│   ├── FONTE_DADOS_REAIS_PEMFC.md
│   ├── curva_experimental_pemfc_1kw_template.csv
│   ├── curva_experimental_pemfc_real_schneider_cell11_rh100_80c.csv
│   └── fontes_abertas/
│       └── Cell_11.zip
└── resultados_validacao/

Para publicar no GitHub, envie README.md e README.en.md junto dos scripts e dos arquivos de dados e documentação que desejar disponibilizar, preservando os caminhos relativos. Pastas de ambiente Python, como .venv/, e arquivos de cache, como __pycache__/, não são necessários para usar o repositório.

Atribuição e licença

Consulte os cabeçalhos dos scripts para as referências e os créditos existentes. A atribuição e a licença dos dados experimentais devem acompanhar sua redistribuição, conforme a documentação em dados/.

Ainda não há um arquivo LICENSE na pasta deste projeto. A licença dos dados experimentais não define a licença do código dos simuladores.

About

PEMFC fuel cell simulations developed in Python with AI assistance. Experimental project under validation — results have not yet been fully verified.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages