English | Português
The Photovoltaic Simulator is a computational modeling tool developed in Python to simulate the electrical behavior of solar modulesunder varying environmental conditions.
Unlike simple linear approximations, this project implements the Single Diode Model (SDM), a physical model that represents the solar cell as a current source in parallel with a diode and parasitic resistances (
-
Physics-based Modeling: accurate representation of
$V_{oc}$ and$I_{sc}$ thermal drift. -
OOP Architecture: modular design using dataclasses for Datasheet abstraction and classes for physical components, allowing easy scalability to simulate full PV arrays.
-
Data Visualization: automated generation of I-V and P-V curves using Matplotlib.
This project serves as both an engineering tool for performance estimation and a study on applying Object-Oriented Programming to solve physical engineering problems.
The project was built using Python 3, focusing on scientific computing libraries and clean code practices.
-
Core Language: Logic and OOP implementation.
-
Numerical Computing: Used for vectorization and handling mathematical constants.
-
Plotting: Library used to render the I-V and P-V curves.
-
Dataclasses: Used to create immutable and type-safe data structures for module specifications.
-
Mermaid & LaTeX: Used for documentation, UML diagrams, and mathematical rendering within the repository.
The core of this simulation is the Single Diode Model, widely used in photovoltaic engineering to represent the electrical behavior of a solar cell. The fundamental equation relating current (
The characteristic equation implemented is:
Where:
-
$I$ : Output current (A) -
$V$ : Output voltage (V) -
$I_{ph}$ : Photocurrent (A), directly proportional to irradiance ($G$ ). -
$I_0$ : Diode reverse saturation current (A). -
$n$ : Diode ideality factor. -
$R_s$ : Series resistance ($\Omega$ ). -
$V_t$ : Thermal voltage (V).
The thermal voltage is a function of the cell temperature (
Where
Since
This iterative process ensures high precision for the
The SolarPanel class encapsulates the physical behavior of the photovoltaic module. The methods are grounded in semiconductor physics and the Single Diode Model equations.
Defined in the __init__ method, these constants are essential for the diode equation:
-
Boltzmann Constant (
$k$ ):$1.38 \times 10^{-23} J/K$ . Relates temperature to energy. -
Elementary Charge (
$q$ ):$1.60 \times 10^{-19} C$ . The electric charge carried by a single proton/electron. -
Ideality Factor (
$n$ ): Represents how closely the diode follows the ideal diode equation. For silicon cells, this typically ranges between$1.0$ and$1.5$ . -
Series Resistance (
$R_s$ ): Accounts for internal losses due to contact resistance and wire connections.
Since solar panels rarely operate under Standard Test Conditions (STC:
A. Thermal Voltage (
B. Photocurrent correction (
C. Open Circuit Voltage correction (
D. Reverse Saturation Current (
This equation is solved using computational numerical methods, as mentioned in the 📐 Mathematical Background section.
English | Português
O Simulador Fotovoltaico é uma ferramenta de modelagem computacional desenvolvida para simular as características elétricas de módulos fotovoltaicos sob condições ambientais variadas.
Ao contrário de aproximações lineares simples, este projeto implementa o Modelo de Diodo Único (Single Diode Model - SDM), um modelo físico que representa a célula solar como uma fonte de corrente em paralelo com um diodo e resistências parasitas (
-
Modelagem Baseada na Física: Representação precisa da deriva térmica de
$V_{oc}$ (Tensão de Circuito Aberto) e$I_{sc}$ (Corrente de Curto-Circuito). -
Arquitetura POO: Design modular utilizando
dataclassespara abstração do Datasheet e classes para componentes físicos, permitindo fácil escalabilidade para simular arranjos fotovoltaicos completos. - Visualização de Dados: Geração automática de curvas I-V e P-V utilizando Matplotlib.
Este projeto serve tanto como uma ferramenta de engenharia para estimativa de desempenho quanto como um estudo sobre a aplicação de Programação Orientada a Objetos para resolver problemas físicos de engenharia.
O projeto foi construído utilizando Python 3, com foco em bibliotecas de computação científica e práticas de código limpo (clean code).
- Linguagem Principal: Implementação de lógica e POO.
- Computação Numérica: Utilizada para vetorização e manipulação de constantes matemáticas.
- Plotagem: Biblioteca usada para renderizar as curvas I-V e P-V.
- Dataclasses: Utilizadas para criar estruturas de dados imutáveis e tipadas para as especificações dos módulos.
- Mermaid & LaTeX: Utilizados para documentação, diagramas UML e renderização matemática dentro do repositório.
O núcleo desta simulação é o Modelo de Diodo Único, amplamente utilizado na engenharia fotovoltaica para representar o comportamento elétrico de uma célula solar. A equação fundamental que relaciona corrente (
A equação característica implementada é:
Onde:
-
$I$ : Corrente de saída (A) -
$V$ : Tensão de saída (V) -
$I_{ph}$ : Fotocorrente (A), diretamente proporcional à irradiância ($G$ ). -
$I_0$ : Corrente de saturação reversa do diodo (A). -
$n$ : Fator de idealidade do diodo. -
$R_s$ : Resistência série ($\Omega$ ). -
$V_t$ : Tensão térmica (V).
A tensão térmica é uma função da temperatura da célula (
Onde
Como
Este processo iterativo garante alta precisão na geração da curva I-V.
A classe SolarPanel encapsula o comportamento físico do módulo fotovoltaico. Os métodos são fundamentados na física de semicondutores e nas equações do Modelo de Diodo Único.
Definidas no método __init__, estas constantes são essenciais para a equação do diodo:
-
Constante de Boltzmann (
$k$ ):$1.38 \times 10^{-23} J/K$ . Relaciona a temperatura com a energia. -
Carga Elementar (
$q$ ):$1.60 \times 10^{-19} C$ . A carga elétrica transportada por um único próton/elétron. -
Fator de Idealidade (
$n$ ): Representa o quão próximo o diodo segue a equação ideal. Para células de silício, este valor tipicamente varia entre$1.0$ e$1.5$ . -
Resistência Série (
$R_s$ ): Contabiliza as perdas internas devido à resistência de contato e conexões dos fios.
Como os painéis solares raramente operam sob Condições Padrão de Teste (STC:
A. Tensão Térmica (
B. Correção da Fotocorrente (
C. Correção da Tensão de Circuito Aberto (
D. Corrente de Saturação Reversa (
Essa equação resolveremos utilizando cálculo numérico computacional como mencionado na seção 📐 Fundamentação Matemática.
