artist.field.heliostat_group_rigid_body
Attributes
A logger for the heliostat groups with a rigid body kinematic. |
Classes
Initialize a heliostat group with a rigid body kinematic and linear or ideal actuator type. |
Module Contents
- artist.field.heliostat_group_rigid_body.log
A logger for the heliostat groups with a rigid body kinematic.
- class artist.field.heliostat_group_rigid_body.HeliostatGroupRigidBody(names: list[str], positions: torch.Tensor, surface_points: torch.Tensor, surface_normals: torch.Tensor, initial_orientations: torch.Tensor, nurbs_control_points: torch.Tensor, nurbs_degrees: torch.Tensor, kinematic_translation_deviation_parameters: torch.Tensor, kinematic_rotation_deviation_parameters: torch.Tensor, actuator_parameters_non_optimizable: torch.Tensor, actuator_parameters_optimizable: torch.Tensor = torch.tensor([]), device: torch.device | None = None)
Bases:
artist.field.heliostat_group.HeliostatGroupInitialize a heliostat group with a rigid body kinematic and linear or ideal actuator type.
Parameters
- nameslist[str]
The string names of each heliostat in the group in order.
- positionstorch.Tensor
The positions of all heliostats in the group. Tensor of shape [number_of_heliostats, 4].
- surface_pointstorch.Tensor
The surface points of all heliostats in the group. Tensor of shape [number_of_heliostats, number_of_combined_surface_points_all_facets, 4].
- surface_normalstorch.Tensor
The surface normals of all heliostats in the group. Tensor of shape [number_of_heliostats, number_of_combined_surface_normals_all_facets, 4].
- initial_orientationstorch.Tensor
The initial orientations of all heliostats in the group. Tensor of shape [number_of_heliostats, 4].
- nurbs_control_pointstorch.Tensor
The control points for NURBS surfaces for all heliostats in the group. Tensor of shape [number_of_heliostats, number_of_facets_per_heliostat, number_of_control_points_u_direction, number_of_control_points_v_direction 3].
- nurbs_degreestorch.Tensor
The spline degrees for NURBS surfaces in u and then in v direction, for all heliostats in the group. Tensor of shape [2].
- kinematic_translation_deviation_parameterstorch.Tensor
The kinematic translation deviation parameters of all heliostats in the group. Tensor of shape [number_of_heliostats, 9].
- kinematic_rotation_deviation_parameterstorch.Tensor
The kinematic rotation deviation parameters of all heliostats in the group. Tensor of shape [number_of_heliostats, 4].
- actuator_parameters_non_optimizabletorch.Tensor
The non-optimizable actuator parameters. Tensor of shape [number_of_heliostats, 7, 2] for linear actuators or [number_of_heliostats, 4, 2] for ideal actuators.
- actuator_parameters_optimizabletorch.Tensor
The optimizable actuator parameters. Tensor of shape [number_of_heliostats, 2, 2] for linear actuators or [] for ideal actuators (default is torch.tensor([])).
- devicetorch.device | None
The device on which to perform computations or load tensors and models (default is None). If None,
ARTISTwill automatically select the most appropriate device (CUDA or CPU) based on availability and OS.
- kinematic
- align_surfaces_with_incident_ray_directions(aim_points: torch.Tensor, incident_ray_directions: torch.Tensor, active_heliostats_mask: torch.Tensor, device: torch.device | None = None) None
Align surface points and surface normals with incident ray directions.
This method uses incident ray directions to align the heliostats. It is possible to have different incident ray directions for different heliostats, for example during calibration tasks. Only active heliostats can be aligned.
Parameters
- aim_pointstorch.Tensor
The aim points for all active heliostats. Tensor of shape [number_of_active_heliostats, 4].
- incident_ray_directionstorch.Tensor
The incident ray directions. Tensor of shape [number_of_active_heliostats, 4].
- active_heliostats_masktorch.Tensor
A mask where 0 indicates a deactivated heliostat and 1 an activated one. An integer greater than 1 indicates that this heliostat is regarded multiple times. Tensor of shape [number_of_heliostats].
- devicetorch.device | None
The device on which to perform computations or load tensors and models (default is None). If None,
ARTISTwill automatically select the most appropriate device (CUDA or CPU) based on availability and OS.
Raises
- ValueError
If not all heliostats trying to be aligned have been activated.
- align_surfaces_with_motor_positions(motor_positions: torch.Tensor, active_heliostats_mask: torch.Tensor, device: torch.device | None = None) None
Align surface points and surface normals with motor positions.
Only active heliostats can be aligned.
Parameters
- motor_positionstorch.Tensor
The motor positions for all active heliostats. Tensor of shape [number_of_active_heliostats, 2].
- active_heliostats_masktorch.Tensor
A mask where 0 indicates a deactivated heliostat and 1 an activated one. An integer greater than 1 indicates that this heliostat is regarded multiple times. Tensor of shape [number_of_heliostats].
- devicetorch.device | None
The device on which to perform computations or load tensors and models (default is None). If None,
ARTISTwill automatically select the most appropriate device (CUDA or CPU) based on availability and OS.
Raises
- ValueError
If not all heliostats trying to be aligned have been activated.