Skip to main content
Solved

WFE simulation through Zernike Fringe Phase optimization

  • November 15, 2023
  • 5 replies
  • 271 views

Forum|alt.badge.img

Hi

In order to simulate WFE in my design, I’ve added a Zernike Fringe Phase surface in the exit pupil. I then generate the desired amount of error through optimization of a merit function with ZERN operand (ZERN(-5)) and I’ve defined the 37 zernike parameters of my surface as variables.

It works but it generates almost exactly the same WFE (same WFE amplitude which is expected but also same wavefront shape) at each run of the optimization (I reset all parameters to zero before a new run).

What could I do to end up with a different wavefront shape? 

Thank you

Best answer by Kevin Scales

Hi Renaud,

If you are starting with the same inputs and the same targets, the result will be the same every time. In an optimization, the starting conditions can be critical, and starting from one set of inputs can lead to a very different system than you get with a different set of inputs. Like Mark suggested, you could work with a global search or use ZPL to make some randomized starting conditions. But if I understand your description, you might also just start with some different Zernike parameter values and see if they lead to a different wavefront. There are lots of Zernike-defined wavefronts that have the same RMS, so I’d say just try a few different starting values for your variables.

View original
Did this topic help you find an answer to your question?

5 replies

Mark.Nicholson
Luminary
Forum|alt.badge.img+3

It doesn’t surprise me that optimization gives the same result each time. The optimizer tries to find the lowest value of merit function every time. Global Search may offer you more variety, or you could program the Zernike with a ZPL macro and the RAND() function.


Forum|alt.badge.img
  • Author
  • Infrared
  • 12 replies
  • November 16, 2023

Hi Mark, thank you for your reply.

I understand your point but I was expecting to get different Zernike coeff values, leading to the same WFE, at each optimization. But I have almost exactly the same value for each coefficient every time.

You suggestion using the RAND() function is to start with more random values for the coeff rather than all set to zero before the optimization. Do I understand you correctly?


Mark.Nicholson
Luminary
Forum|alt.badge.img+3

Try running a cycle or two of Global Search. If you run too many they will all tend to look alike, as the optimizer tried to reduce the MF to zero. Just run 1 or two cycles and you may be a wider range of Zernike values.


Kevin Scales
En-Lightened
Forum|alt.badge.img+1
  • En-Lightened
  • 185 replies
  • Answer
  • November 21, 2023

Hi Renaud,

If you are starting with the same inputs and the same targets, the result will be the same every time. In an optimization, the starting conditions can be critical, and starting from one set of inputs can lead to a very different system than you get with a different set of inputs. Like Mark suggested, you could work with a global search or use ZPL to make some randomized starting conditions. But if I understand your description, you might also just start with some different Zernike parameter values and see if they lead to a different wavefront. There are lots of Zernike-defined wavefronts that have the same RMS, so I’d say just try a few different starting values for your variables.


Forum|alt.badge.img
  • Author
  • Infrared
  • 12 replies
  • December 6, 2023

Hi Kevin.

Thank you for the suggestions!

Renaud


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings