Understanding Heliostats

ARTIST is a digital twin for concentrating solar tower power plants. One of the most important aspects of these plants are the heliostats - the mirrors that reflect light onto the receiver. Heliostats aren’t just perfect flat mirrors; they are complex structures that must be accurately modeled. In ARTIST, we model heliostats using three key components: a surface, a kinematic model, and actuators. This page provides a brief overview of how we include heliostats in ARTIST and details the specific models we support.

Surfaces

The surface is a crucial element of a heliostat, as it’s responsible for reflecting light onto the receiver. Accurately modeling the surface is of utmost importance. In ARTIST, a surface consists of multiple facets, which can be canted at an angle to improve sunlight concentration.

Most commonly, heliostats in ARTIST consist of four facets, as shown in the image below.

Facet Properties Overview

As you can see, each facet has a position relative to the heliostat’s center and canting direction vectors (canting_e, canting_n) that define its orientation.

Kinematic

The heliostat’s kinematic model describes the motion of its mechanical system. It’s used to predict the final orientation of the heliostat surface based on variable inputs. The kinematic model is also used to calculate the aligned surface points and normals for a predicted orientation. The choice of kinematic type can depend on the type and number of actuators or the availability of a dataset on the positions, orientations, and movements of the heliostat’s mechanical system.

The abstract class Kinematic contains a method to align the heliostat surface, which internally first computes the desired orientation for a given input. All derived kinematic types override this method.

ARTIST currently supports the following kinematic type:

  • RigidBody

This rigid body kinematic model uses a two-actuator structure, allowing movement in two directions. These actuators introduce mechanical offsets, described by translation vectors for three components: joint one, joint two, and the concentrator. These vectors point in the east, north, and up directions, as shown in the image below.

Kinematic Translations Overview

In ARTIST these translations, as well as possible rotations of each joint, are included in the translation_deviation_parameters and rotation_deviation_parameters tensors (see artist.field.kinematic_rigid_body.RigidBody), allowing multiple rigid body kinematics with slightly different translations and rotations to be effectively modeled. Joint one and two and the concentrator all have translations in the east north and up direction, making the translation_deviation_parameters a 9-dimensional tensor. Only joint one and two have rotation_deviation_parameters. Joint one has these deviations only in the north and up direction, whereas joint two has them only in east and north, making this a 4-dimensional parameter for the rigid body kinematic.

Actuators

Heliostat actuators are the motors responsible for adjusting the heliostat’s surface orientation to direct sunlight onto a defined aim point. The actuators are described by the actuator parameters, which may contain information on motor turning direction, step size, or offsets. The actuator parameters are split into non_optimizable_parameters and optimizable_parameters when initializing the actuators. The abstract class Actuators contains one method to map motor steps to angles and another to map angles to motor steps. All derived actuator types override these methods.

ARTIST currently supports the following actuator types:

  • LinearActuators

  • IdealActuators

The LinearActuator is modeled on the actuator used in the Jülich power plant and includes the following parameters:

Actuator Properties
Linear Actuator Non-Optimizable Parameters

Parameter Name

Description

type

The type of actuator.

clockwise_axis_movement

A boolean indicating if the movement direction is clockwise.

min_motor_pos

The smallest motor position the actuator accepts.

max_motor_pos

The largest motor position the actuator accepts.

increment

The total number of increments per full stroke.

offset

The physical offset from the actuator axis to the pivot. (2) in the image above.

pivot_radius

The radius from the pivot center to the actuator anchor. (1) in the image above.

Linear Actuator Optimizable Parameters

Parameter Name

Description

initial_angle

The starting angular position of the actuator.

initial_stroke_length

The initial extension length of the actuator. (3) in the image above.

In ARTIST the linear actuator is physics-informed to prevent invalid values and NaNs during forward and backward passes. The parameters increment, initial_stroke_length, offset and pivot_radius are defined strictly positive using the softplus function, ensuring physically meaningful values throughout the optimizations. Additionally, the law of cosines, is used in both methods of the linear actuator to compute angles or motor steps. This involves the stroke length, offset, and pivot radius of each linear actuator. Together they make up a triangle, defining how far the actuator is from the actual rotational center of the joint. To make the law of cosines applicable, the sides (offset and pivot radius) of the triangle must satisfy the triangle inequality:

\[|offset - pivot\_radius| \leq stroke\_length \leq offset + pivot\_radius\]

This ensures that a valid triangle can always be formed. With this physics-informed backbone, the linear actuator can accurately model real actuator behavior in an efficient manner.

The IdealActuator has no optimizable parameters. The non-optimizable parameters only include the type, clockwise_axis_movement, min_motor_pos and max_motor_pos.