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.
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:
- Clone the
ARTIST
repository:git clone https://github.com/ARTIST-Association/ARTIST.git
- 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]"
- Install basic dependencies:
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.
└── ...
You can check out the full ARTIST
documentation at https://artist.readthedocs.io/en/latest/index.html 🚀!
The ARTIST
documentation includes:
- Installation instructions
- Tutorials
- Some theoretical background information
- API reference
Check out our contribution guidelines if you are interested in contributing to the ARTIST
project 🔥.
Please also carefully check our code of conduct 💙.
This work is supported by the Helmholtz AI platform grant.