← Back to home

IPV Spectral Locus Validation: Using MATLAB to Evaluate Indoor Photovoltaics

Category
Scientific computing, photovoltaic research, and data validation
Status
Public repository

Indoor photovoltaics offer a way to convert artificial indoor lighting into electrical energy. Evaluating different photovoltaic technologies under indoor lighting conditions, however, requires more than comparing headline efficiency values.

The light source, spectral response of the device, and consistency of the reported experimental data all matter.

My IPV Spectral Locus Validation project addresses part of this challenge through a MATLAB-based benchmarking workflow. It implements validation and spectral projection steps based on the framework introduced by Khampa and colleagues in their 2026 paper, A Universal Design and Benchmarking Framework for Indoor Photovoltaics.

The objective is to help assess whether digitised experimental data is internally consistent before using it to compare photovoltaic devices.

The three-stage workflow

Stage 1: Validate the experimental data. The ipv_validation.m script checks three conditions:

  • Illuminance consistency: whether the spectral power distribution corresponds to the intended 1,000-lux condition within a defined tolerance.
  • Power conversion efficiency: whether the calculated efficiency agrees with the reported value.
  • Short-circuit current density: whether the value derived from the external quantum efficiency and photon flux is consistent with the current density reported from the current-voltage data.

The checks use tolerances of ±10%. Data that passes all three checks can proceed to the next stage.

Stage 2: Project the photovoltaic performance. The spectral_projection_locus.m script projects approved device data onto four reference LED spectra. This produces a quadrilateral representing the device's position within the framework's efficiency and spectral-onset comparison.

Stage 3: Compare multiple technologies. The combined_locus_final.m script combines the resulting loci into a single comparison figure and performs pairwise dominance analysis across technologies.

Together, these stages create a repeatable workflow for checking data, generating visual comparisons, and examining the relative performance of different photovoltaic technologies.

Why I built it

Scientific results are only as useful as the data and assumptions behind them. When experimental values are extracted from published graphs, small inconsistencies can affect subsequent calculations and comparisons.

Automating validation makes those checks more systematic and makes it easier to identify data that needs further attention before drawing conclusions.

The project also gave me an opportunity to apply programming to an engineering research problem, combining data processing, numerical calculations, visualisation, and reproducibility.

The repository includes MATLAB scripts, CSV datasets, and user guides. It is based on the published research framework; the underlying methodology is credited to the original authors.

What this project represents: My interest in applying software and numerical methods to renewable energy research, with a focus on transparent and reproducible analysis.