You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For the motor position optimization the flux integral is essential as we usually want to maximize the energy on the receiver while optimally distributing the single heliostat fluxes.
45
-
To simulate the energy on the receiver we need to assign meaningful magnitudes to each single ray. This is done by providing the ``dni`` parameter.
46
-
The DNI is the insolation measured at a given location on Earth with a surface element perpendicular to the Sun's rays, excluding diffuse insolation.
44
+
For the motor position optimization, the flux integral is essential as we usually want to maximize the energy on the receiver while optimally distributing the single heliostat fluxes.
45
+
To simulate the energy on the receiver, we need to assign meaningful magnitudes to each single ray. This is done by providing the ``dni`` parameter.
46
+
The DNI is the insolation measured at a given location on Earth with a surface element perpendicular to the sun's rays, excluding diffuse insolation.
47
47
The DNI needs to be provided in W/m^2 and is then automatically converted to ray magnitudes.
48
48
The DNI is a parameter in the ``MotorPositionsOptimizer``, as we will later see.
49
49
You can pass a DNI directly into a ``HeliostatRayTracer`` anywhere else in ``ARTIST`` too, but in the previous two reconstructions it is not necessary.
@@ -59,7 +59,7 @@ Next we set the loss function as the ``KLDivergenceLoss``:
59
59
60
60
loss_definition = KLDivergenceLoss()
61
61
62
-
The ``KLDivergenceLoss`` measures how one probability distribution is different from a second, reference distribution. In
62
+
The ``KLDivergenceLoss`` measures how one probability distribution is different from a second reference distribution. In
63
63
this case the reference distribution is the trapezoid distribution, which we compare to the collective distribution
64
64
generated by all heliostats in the scenario.
65
65
@@ -105,10 +105,10 @@ specific use case. In this tutorial we define the following scheduler and optimi
105
105
config_dictionary.constraints: constraint_dict,
106
106
}
107
107
108
-
The optimization configuration is a combination of optimizer parameters, scheduler parameters and the learning constraints.
109
-
For the motor position optimization we have two constraints. With ``rho_energy`` and ``lambda_lr`` we define the parameters for Augmented Lagrangian coefficients.
108
+
The optimization configuration is a combination of optimizer parameters, scheduler parameters, and the learning constraints.
109
+
For the motor position optimization, we have two constraints. With ``rho_energy`` and ``lambda_lr`` we define the parameters for Augmented Lagrangian coefficients.
110
110
They enforce that the flux integral strives to maximize itself during the optimization.
111
-
Furthermore there are the ``max_flux_density`` and ``rho_pixel`` parameters.
111
+
Furthermore, there are the ``max_flux_density`` and ``rho_pixel`` parameters.
112
112
They constrain the flux at the pixel level. The parameter ``max_flux_density`` defines the maximum allowable flux density per pixel.
113
113
The parameter ``rho_pixel`` controls the strength of the penalty applied when this limit is exceeded.
114
114
This is particularly important because, in a real power plant, the receiver is subject to strict safety limits on the allowable flux density. Exceeding this limit could lead to material damage.
The surface reconstruction internally uses the ``torch.optim.Adam`` optimizer. Depending on the data you use, different
@@ -139,11 +139,11 @@ an cyclic or reduce on plateau scheduler:
139
139
Regularizers are used to prevent overfitting and ensure that the reconstructed surface is smooth and similar to an ideal
140
140
surface. In the surface reconstruction we consider two regularizers:
141
141
142
-
- ``IdealSurfaceRegularizer``: Pushes the reconstructed surface towards the shape of an ideal, perfectly flat or canted surface. The idea here, is that we know the general canting and shape of a flat surface and what is unknown is the minute deformations. Therefore, any dramatic changes should be avoided and in general the learnt surface should be similar to the ideal surface, apart from these minute deviations.
143
-
- ``SmoothnessRegularizer``: This regularizer promotes smoothness by penalizing large gradients. The idea behind this regularize is that neighboring points on the surface should be similar, therefore very large differences between points is unrealistic. We apply this regularize to both the NURBS control points.
142
+
- ``IdealSurfaceRegularizer``: Pushes the reconstructed surface towards the shape of an ideal, perfectly flat or canted surface. The idea here is that we know the general canting and shape of a flat surface and what is unknown is the minute deformations. Therefore, any dramatic changes should be avoided and in general the learned surface should be similar to the ideal surface, apart from these minute deviations.
143
+
- ``SmoothnessRegularizer``: This regularizer promotes smoothness by penalizing large gradients. The idea behind this regularizer is that neighboring points on the surface should be similar, therefore very large differences between points is unrealistic. We apply this regularizer to both the NURBS control points.
144
144
145
145
These regularizers are initialized automatically within the ``SurfaceReconstructor``. We can adjust their influence by setting their weights inside the constraints dict.
146
-
Weight of zero deactivate the regularizers completely.
146
+
Weights of zero deactivate the regularizers completely.
147
147
148
148
.. code-block::
149
149
@@ -155,12 +155,12 @@ Weight of zero deactivate the regularizers completely.
155
155
config_dictionary.energy_tolerance: 0.01,
156
156
}
157
157
158
-
As you can see, there are further parameters in the ``constraints`` dictionary than necessary for the two regularizers mentioned before. To further stabilize the reconstruction there is one additional constraints.
158
+
As you can see, there are further parameters in the constraints dictionary that are not required for the two regularizers mentioned before. To further stabilize the reconstruction, there is one additional constraint.
159
159
This constraint considers the flux integral of the raytraced flux images from the predicted surfaces. During reconstruction the flux integral may not change significantly.
160
160
The parameters ``initial_lambda_energy`` and ``rho_energy`` are the Augmented Lagrangian coefficients used to enforce this energy conservation constraint.
161
161
The multiplier ``lambda_energy`` represents the Lagrange multiplier associated with the energy integral constraint. It linearly penalizes violations and is updated iteratively during optimization based on the current constraint violation.
162
162
If the predicted energy deviates from the reference energy, lambda increases, thereby strengthening the enforcement of the constraint in the next iteration.
163
-
The parameter rho is the quadratic penalty weight. It controls how strongly deviations from the reference energy are penalized through the squared constraint term.
163
+
The parameter ``rho_energy`` is the quadratic penalty weight. It controls how strongly deviations from the reference energy are penalized through the squared constraint term.
164
164
The ``energy_tolerance`` describes how much the flux integral may vary relative to the initial surface.
165
165
We can now define the combined optimization parameters in the ``optimization_configuration`` dictionary:
0 commit comments