It is often useful to analyze your tolerances in detail so that you can best understand where and why sensitivities exist in your optical system. In OpticStudio’s tolerance analysis, you may save the tolerance results for each Monte Carlo file, or you may save each tolerance in the sensitivity analysis individually. This article describes how to take a closer look at what OpticStudio does internally to model each and every tolerance in your design.
Authored By Dan Hill
OpticStudio offers a built-in tolerancing feature which you may use to perform a complete and accurate tolerance analysis of your optical system. The tolerance feature is not always transparent, which is why OpticStudio gives you the option to view what it is doing more closely. There are two different methods to saving the modifications that OpticStudio made to your lens file to calculate the change in criteria as a function of the specified tolerances.
The first option is through an operand in the Tolerance Data Editor. The SAVE operand can be used after any tolerance that you would like to inspect in more detail. The second option is by saving multiple pertubations simultaneously through the Monte Carlo analysis.
Let's suppose that you have defined a tolerance on an element's decenter in X using the tolerance operand TEDX in the Tolerance Data Editor. After reviewing the resulting sensitivity analysis, the results do not appear to make sense.
To check your results, you may add a SAVE operand after the TEDX operand in the Tolerance Data Editor. By doing this, the next time you run the tolerance analysis, the SAVE operand will make OpticStudio save the lens (.ZMX) file used to compute the TEDX tolerance. You may then open the saved lens file to perform some more in depth analysis.
To demonstrate, consider a single element for which you would like to know how the RMS Spot Radius changes for a tilt tolerance about the X axis. Open the attached example file for this article, Single Element Lens.zmx. The operand for tolerance on element tilt about the X axis is TETX, and in this case, it applies a single element tilt tolerance of +/- 0.5 degrees.
Running the tolerance with the following settings. Note that Paraxial Focus is set as the compensator in the Criterion section.
In the Sensitivity Analysis of the tolerance output, we can see the criteria value as well as the change in criteria as a function of our TETX tolerance.
In this case, the tilt did not affect the RMS Spot Radius very much, but we can review what OpticStudio has done more closely by saving the file OpticStudio internally constructed to perform this perturbation. In the Tolerance Data Editor, under the TETX line, insert a SAVE tolerance control operand.
The SAVE command allows you to save the previous tolerance to an OpticStudio Lens File with the specified “File #.” A file will be saved for both the maximum and minimum tolerance. The file names will be TSAV_MIN_xxxx.ZMX and TSAV_MAX_xxxx.ZMX for the min and max tolerance analysis, respectively, where xxxx is the integer number specified in the File# column. In this case, the integer number is 5, so the minimum tolerance file will be TSAV_MIN_0005.ZMX. Note that the saved file is saved into the same directory as the current lens file.
Run the tolerance analysis once more with the SAVE operand in place (use the same tolerance settings). Once the analysis is complete, open the TSAV_MIN_0005.ZMX file from the appropriate directory. Note the modifications made to the Lens Data Editor. To tilt the element about the X axis, OpticStudio inserted a pair of Coordinate Break Surfaces with the appropriate solves and values. OpticStudio even places text in the Comment column to indicate which tolerance each surface represents. Also note the marginal ray height solve on surface 6. Remember, we chose to have Paraxial Focus as our compensator when performing the tolerance analysis! With this choice, OpticStudio compensates for tolerance perturbations by moving the image surface in such a way that the perturbed system has the same amount of paraxial defocus as the original system. Thus, the Marginal Ray Height Solve on surface 6 brings surface 7 to paraxial focus, and the thickness of surface 7 maintains the paraxial defocus present in the original system.
With this capability, we can clearly review what OpticStudio has done to ensure any given tolerance is performed the way we expect. Most importantly, we can thoroughly investigate any tolerance which we find to produce curious results. In the saved file, it is also possible to review the Merit Function which OpticStudio constructed to evaluate the RMS Spot Radius Criterion. The Merit Function Value is equivalent to the Criterion value reported in the tolerance output:
Much like the SAVE tolerance control operand (which is useful for evaluating one tolerance at a time), you may also save each individual Monte Carlo file generated during the tolerance analysis. This option exists in the Tolerancing dialog. In the Tolerancing Monte Carlo section, you may choose to specify how many Monte Carlo runs to perform as well as how many of these Monte Carlo files you would like to save for viewing after the analysis is complete.
The benefits to saving the Monte Carlo files are the same to that of the SAVE tolerance control operand. However, the Monte Carlo analysis simulates the effect of all perturbations simultaneously. Thus, the saved files will contain the modified Lens Data Editor with possibly many changes and additions (depending upon the number of tolerance operands you have for your system). Saved Monte Carlo files are also saved to the directory of the nominal lens file and any number of Monte Carlo files may be saved. The lens files are named MC_T000x.zmx, where x is the value 1 through the maximum number of specified Monte Carlo files to be saved.
In most cases, it isn’t necessary or desirable to review each individual saved Monte Carlo file. You may use the Monte Carlo Analysis output to help pick out any specific trial that you would like to later review in OpticStudio format.