All projects

Scientific research

PGNN: an Itaipu study

Predict and test physical consistency.

Paper accepted at Latin.Science 2026

MY ROLE

Network implementation and co-authored research

HOW TO READ THE RESULT

The operational scenario with a residual MLP achieved an RMSE of 508 MWavg, versus 590 for persistence. This result should not be confused with the physical-term ablation figures.

THE DECISION THAT MATTERS

Evaluate more than one type of error

In the ablation, removing the physical term reduced data error but increased the physical residual around 33-fold. A single metric does not describe the model's overall quality.

READING THE ABLATION RESULTS

What happens when the physical term is removed?

With physical term0.017Physical residual
Without physical term0.559Physical residual

The model without the physical term had the lowest data error, but a physical residual around 33 times larger. Lower is better for this metric.

Ablation comparison described in the résumé. These values are not the RMSE of the operational scenario with a residual MLP. Bars start at zero and share the same scale.

The question

How can a neural network for hydroelectric generation be evaluated for both prediction error and consistency with physics?

My contribution

I implemented a neural network from scratch in Rust, without machine learning libraries, and worked with ONS data from 2015 to 2024. I reserved 2023 and 2024 for testing and compared the models against a simple baseline: repeating the previous day's generation.

The result

The operational scenario with a residual MLP achieved an error of 508 MWavg, versus 590 for the baseline, outperforming that baseline in every year of rolling validation from 2020 to 2024. The paper was accepted at Latin.Science 2026, part of Latinoware.

A study using public historical Itaipu data, with no stated affiliation to the power plant. In the ablation, the model without the physical term had lower data error but a physical residual around 33 times larger. Results do not guarantee future prediction performance.

Explore the technical details

Backpropagation and Adam implemented by hand and verified with gradient checks. Operational scenario R² of 0.91. Flow alone improved little over persistence (RMSE 586 versus 590 MWavg). Reproducible from a clean clone, with CI running clippy, tests and data SHA-256 checks.

Physics-guided network architecture, including loss terms and backpropagation.
What changes: beyond data error, the PGNN considers physical constraints. Open image at original size
Code and reproduction on GitHub
Next project: Peso na GranjaDiscuss an opportunity

Project image