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.
| 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. |
- 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 matplotlibPara verificar se o Tkinter está disponível:
python -m tkinterEsse 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.
- Abra a pasta do repositório em Arquivo → Abrir Pasta.
- Use Python: Select Interpreter na paleta de comandos para selecionar o ambiente com as dependências instaladas.
- Abra o arquivo da simulação desejada.
- 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.pypython simulacao_Qwen_pemfc_50w.pypython pemfc_simulator_1kw.pyNo 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.
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
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.
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.
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 80Comparar 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 24Ajustar os parâmetros à curva experimental:
python pemfc_simulator_1kw.py --calibrate dados/curva_experimental_pemfc_real_schneider_cell11_rh100_80c.csv --target-voltage 24Consultar as opções disponíveis:
python pemfc_simulator_1kw.py --helpConforme 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/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.
.
├── 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.
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.