I was wondering if there is a way to optimize for an equal spot size over the full field of view. Mostly, after optimization, the spotsize is bigger to the edge of the field of view. Is there a way to give up some resolution in the center of the field of view to get an equal spot size over the whole field of view.
For example, my spot size in the center is 100µm, halfway to the edge it is 150µm and at the edge it is 200µm. I want to optimize so it is 150µm at all three positions.
Page 1 / 1
Hi Rick,
One easy thing you could try, assuming you use a Spot image quality criterion in your Merit function is to try and reduce the weight of your centre field. For example, you could have a Weight of 0.5 instead of 1.0 on the On-axis Field:
But this isn’t guaranteed to make all the spots with the same size.
My solution would be to use an operand such as RSCE (RMS spot size with respect to centroid position):
RSCE
RMS spot radius with respect to the centroid in lens units. This operand uses a Gaussian quadrature method that is accurate for systems with unvignetted circular pupils. Ring is used to specify the number of rings of rays traced. If Wave is zero; then a wavelength weighted polychromatic calculation is performed; otherwise, the specified wavelength number will be used. See “Hx, Hy, Px, and Py”.
I made a dummy example with a singlet:
And this is the Merit function:
Operand 1 to 3 use RSCE to measure the spot size at different field position (controlled by Hy). 0.5 is halfway, and 1.0 is the edge of your field. Only the second operand has a weight (it contributes to the Merit function calculation) and a target of 150 um.
Operand 4 and 5 take the difference of the centre and edge with the halfway field. Operands 6 and 7 take the absolute value of this difference and target it to 0.0 (they also have a weight of 1.0 so these contribute to the Merit function calculation as well).
As you can see, the system found a nice solution:
I’m also attaching my file to this answer.
Hope this helps and take care,
David
Hello David,
That seems a very good way to do it. Thank you for the help! I will try this with my system.