15. Tolerancing Framework

The tolerancing framework in Optiland is designed to evaluate the sensitivity and robustness of optical systems by analyzing the effects of small perturbations in system parameters. It provides a modular and extensible approach, largely reusing components from the optimization framework to maintain consistency and simplicity.

15.1. Core Concepts

The tolerancing framework is built around the following key components:

  • Variables: System parameters subject to perturbations, such as surface curvatures, thicknesses, or material indices. These are tied to the same variable definitions used in the optimization framework.

  • Operands: Metrics used to quantify the system’s performance or deviations due to perturbations. These are also reused from the optimization framework, enabling compatibility with a wide range of analysis metrics.

  • Compensators: Parameters that can be adjusted to minimize the impact of perturbations. Compensators operate by performing an optimization to restore system performance within acceptable limits.

  • Perturbations: Defined changes to system parameters (e.g., a shift in lens position or a change in curvature) that simulate real-world manufacturing tolerances or environmental variations.

  • Samplers: Distributions, from which random perturbations are drawn during sensitivity analyses or Monte Carlo simulations. These can be customized to model specific manufacturing processes or environmental conditions.

15.2. Core Classes

The tolerancing framework centers around the following classes:

  • Tolerancing: This is the core class that orchestrates all tolerancing operations. It manages variables, operands, compensators, and perturbations, providing a unified interface for sensitivity and robustness analyses.

  • SensitivityAnalysis: This class evaluates the effect of individual perturbations on system performance. It computes the changes in operand values for each perturbation independently to identify critical sensitivities in the design.

  • MonteCarlo: This class performs stochastic simulations by applying random perturbations to system variables. The results provide insights into the statistical robustness of the design under realistic tolerances.

15.3. Workflow

  1. Create a Tolerancing Instance: Instantiate an empty Tolerancing object.

  2. Define Perturbations: Specify perturbations, together with an appropriate sampling distribution, and add them to the Tolerancing instance.

  3. Add Operands and (optionally) Compensators: Identify which metrics will be evaluated and specify any compensators (e.g., adjusting lens positions or tilts to counteract perturbations).

  4. Run Analysis: Pass the Tolerancing class instance to either the SensitivityAnalysis or MonteCarlo class, depending on the desired type of study, and run the analysis.

  5. Interpret Results: Use the output to identify sensitive parameters or assess the statistical robustness of the design. Optionally visualize the output using built-in plotting functions, or export the results as a pandas.DataFrame for further analysis.

Tip

See the Learning Guide for specific demonstrations of both sensitivity and Monte Carlo analyses using the tolerancing framework.