Skip to main content

AI-enhanced Differentiable Ray Tracer for Irradiation Prediction in Solar Tower Digital Twins

Project description

logo

AI-enhanced differentiable Ray Tracer for Irradiation Prediction in Solar Tower Digital Twins

DOI License: MIT OpenSSF Best Practices fair-software.eu FAIR checklist badge Ruff codecov pre-commit.ci status Documentation Status

What ARTIST can do for you

The ARTIST package provides an implementation of a differentiable ray tracer using the PyTorch machine-learning framework in Python. Leveraging automatic differentiation and GPU computation, it facilitates the optimization of heliostats, towers, and camera parameters within a solar field by combining gradient-based optimization methods with smooth parametric descriptions of heliostats.

Our contributions include:

  • Efficient heliostat calibration: We develop a parallelized geometric kinematic model that enables efficient calibration via either ray tracing-based or motor position data. This offers a flexible and robust approach to heliostat calibration.

  • Surface reconstruction and flux density prediction: Leveraging learning Non-Uniform Rational B-Splines (NURBS), ARTIST reconstructs heliostat surfaces accurately using calibration images commonly available in solar thermal power plants. Thus, we can achieve sub-millimeter accuracy in mirror reconstruction from focal spot images, contributing to improved operational safety and efficiency. The reconstructed surfaces can be used for predicting unique heliostat flux densities with state-of-the-art accuracy. Check out this paper for more details.

  • Immediate deployment: ARTIST enables deployment at the beginning of a solar thermal plant's operation, allowing for in situ calibration and subsequent improvements in energy efficiencies and cost reductions.

  • Optimized flux density: ARTIST enables flux density optimization across an entire heliostat field by optimizing the motor positions of all heliostats to distribute the flux optimally over the receiver.

Installation

We heavily recommend installing the ARTIST package in a dedicated Python3.10+ virtual environment. You can install ARTIST directly from the GitHub repository via:

pip install artist

Alternatively, you can install ARTIST locally. To achieve this, there are two steps you need to follow:

  1. Clone the ARTIST repository:
    git clone https://github.com/ARTIST-Association/ARTIST.git
    
  2. Install the package from the main branch. There are multiple installation options available:
    • Install basic dependencies: pip install .
    • Install with optional dependencies to run the tutorials: pip install ."[tutorials]"
    • Install an editable version with developer dependencies: pip install -e ."[dev]"

Structure

The ARTIST repository is structured as shown below:

.
├── artist # Parent package
│   ├── core # Core functionality of ARTIST, e.g. raytracing, optimizers etc.
│   ├── data_loader # Deals with loading data into ARTIST from different sources.
│   ├── field # Objects in the field, e.g. heliostats and target areas like receivers and calibration targets.
│   ├── scenario # Functionality to create and load scenarios in ARTIST.
│   ├── scene # Light sources and factors influencing the surroundings.
│   └── util
├── tests
│   ├── data
│   │   ├── field_data # Real measurements from the PAINT database and STRAL that can be used in ARTIST.
│   │   ├── scenarios # Scenarios describing an environment that can be loaded by ARTIST.
│   │   └── ...
│   ├── core
│   ├── data_loader
│   └── ...
└── tutorials # Tutorials to help you get started with ARTIST.
    ├── data # Data accessed in the tutorials.
    │   ├── paint # Real measurements from the PAINT database.
    │   ├── scenarios # Scenarios describing an environment that can be loaded by ARTIST.
    │   └── stral Real # Measurements from STRAL.
    └── ...

Documentation

You can check out the full ARTIST documentation at https://artist.readthedocs.io/en/latest/index.html :rocket:! The ARTIST documentation includes:

  • Installation instructions
  • Tutorials
  • Some theoretical background information
  • API reference

How to contribute

Check out our contribution guidelines if you are interested in contributing to the ARTIST project :fire:. Please also carefully check our code of conduct :blue_heart:.

Acknowledgments

This work is supported by the Helmholtz AI platform grant.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

artist_csp-1.0.0.tar.gz (51.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

artist_csp-1.0.0-py3-none-any.whl (114.5 kB view details)

Uploaded Python 3

File details

Details for the file artist_csp-1.0.0.tar.gz.

File metadata

  • Download URL: artist_csp-1.0.0.tar.gz
  • Upload date:
  • Size: 51.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for artist_csp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6ef6358bf3733275c7a0d4d687a24bdf94c518a23d5a8935fc53a1848679520b
MD5 47743b94fa16ae15c06acfe5ea6859fe
BLAKE2b-256 b5f8d0eef2a0f3d2cac2f05221dfd3510633ea1877b174e4ab717964ac56307f

See more details on using hashes here.

File details

Details for the file artist_csp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: artist_csp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 114.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for artist_csp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94e8ec8d0866f97f019f0747b0dcf8a591e7b0847c92ee0196328dc43d9acedc
MD5 99525db17b94aa9e1305bf33de1209d4
BLAKE2b-256 4532c1a840b92e40c7d65f3ef84f2a225d3cebc75cd0fea09ff0afd6d7ce5331

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page