{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial 8a - Tolerancing, Sensitivity Analyses" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "nbsphinx-toctree" ] }, "source": [ "### September 2024" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial, we will explore the process of tolerancing an optical system in Optiland via sensitivity analysis. Tolerancing is a crucial aspect of optical design, ensuring that the system performs adequately despite manufacturing imperfections. Sensitivity analysis helps in understanding how variations in design parameters affect the overall performance of the optical system.\n", "\n", "Tolerancing in Optiland requires 4 key components:\n", "\n", "1. Optic - the optical system to be analyzed.\n", "2. Operands - the metrics which are assessed e.g., wavefront error.\n", "3. Perturbations - the variations applied to the optic or a surface of an optic e.g., surface tilt.\n", "4. Compensators - a parameter of the optical system that can be adjusted to counteract the effects of a perturbation.\n", "\n", "In this example, we will apply various perturbations to our optic, one at a time, while monitoring various metrics, or operands. We will perform a sensitivity analysis, which will show the variation in each metric (operand) as a function of each perturbation. In this case, all perturbations are applied independently." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:21.633566Z", "iopub.status.busy": "2026-03-24T11:30:21.629945Z", "iopub.status.idle": "2026-03-24T11:30:30.706441Z", "shell.execute_reply": "2026-03-24T11:30:30.705603Z" } }, "outputs": [], "source": [ "from optiland.samples.objectives import CookeTriplet\n", "from optiland.tolerancing import RangeSampler, SensitivityAnalysis, Tolerancing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Defining the tolerancing object:\n", "\n", "The core of tolerancing in Optiland is the Tolerancing class. This class contains all operands, perturbations and compensators that are used during a tolerancing exercise. We start by defining a Cooke triplet and passing it to our Tolerancing class." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.712146Z", "iopub.status.busy": "2026-03-24T11:30:30.711050Z", "iopub.status.idle": "2026-03-24T11:30:30.782718Z", "shell.execute_reply": "2026-03-24T11:30:30.781892Z" } }, "outputs": [], "source": [ "optic = CookeTriplet()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.786001Z", "iopub.status.busy": "2026-03-24T11:30:30.785412Z", "iopub.status.idle": "2026-03-24T11:30:30.790212Z", "shell.execute_reply": "2026-03-24T11:30:30.789430Z" } }, "outputs": [], "source": [ "tolerancing = Tolerancing(optic)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Adding perturbations\n", "\n", "\n", "Each tolerancing object contains perturbations, or variations that are applied to the optic during a tolerancing analysis. Each perturbation requires a value that should be applied to the perturbation. For example, we may wish to tilt the first surface by 0.01 radians. The values of a given perturbation are specified via \"samplers\", which provide the perturbation value in each iteration. We define a \"RangeSampler\", in which perturbation values are defined in a linear range from a \"start\" value to a \"end\" value over a given number of \"steps\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the first perturbation, we wish to specify the following properties:\n", "\n", "- Variation in radius of curvature of first surface of lens\n", "- Variation occurs from 15 mm to 30 mm over 128 steps\n", "\n", "This is defined and added to our tolerancing instance as follows:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.793089Z", "iopub.status.busy": "2026-03-24T11:30:30.792793Z", "iopub.status.idle": "2026-03-24T11:30:30.798236Z", "shell.execute_reply": "2026-03-24T11:30:30.797507Z" } }, "outputs": [], "source": [ "sampler = RangeSampler(start=15, end=30, steps=128)\n", "tolerancing.add_perturbation(\"radius\", sampler, surface_number=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the next perturbation, we will apply a variation of x-tilt to the first surface:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.800639Z", "iopub.status.busy": "2026-03-24T11:30:30.800408Z", "iopub.status.idle": "2026-03-24T11:30:30.804655Z", "shell.execute_reply": "2026-03-24T11:30:30.804059Z" } }, "outputs": [], "source": [ "sampler = RangeSampler(start=-0.05, end=0.05, steps=128) # radians\n", "tolerancing.add_perturbation(\"tilt\", sampler, surface_number=1, axis=\"x\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the last perturbation, we will vary the thickness of our first lens (at surface 1):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.807021Z", "iopub.status.busy": "2026-03-24T11:30:30.806788Z", "iopub.status.idle": "2026-03-24T11:30:30.811618Z", "shell.execute_reply": "2026-03-24T11:30:30.810640Z" } }, "outputs": [], "source": [ "sampler = RangeSampler(start=2, end=5, steps=128)\n", "tolerancing.add_perturbation(\"thickness\", sampler, surface_number=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Adding operands\n", "\n", "When we apply perturbations, we want to monitor various performance metrics. Here, we will monitor:\n", "\n", "- focal length\n", "- RMS spot size\n", "- mean OPD difference\n", "\n", "The syntax used here follows that used in the optimization module when variables are defined. In general, we pass the following arguments to the \"add_operand\" method to create a new operand:\n", "\n", "- operand type - see optiland.optimization.operand for complete list of options.\n", "- input_data - a dictionary containing the optic instance at a minimum, and generally other parameters related to the operand, such as wavelength.\n", "- target (optional) - if an operand has a target, we may specify it here. This is only used when we apply compensation, or optimize the system to counteract perturbations.\n", "- weight (optional) - if an operand is more important than others, it may be given a larger weight during compensation.\n", "\n", "We define the 3 operands as follows:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.814329Z", "iopub.status.busy": "2026-03-24T11:30:30.814060Z", "iopub.status.idle": "2026-03-24T11:30:30.906002Z", "shell.execute_reply": "2026-03-24T11:30:30.902309Z" } }, "outputs": [], "source": [ "input_data = {\"optic\": optic}\n", "tolerancing.add_operand(\"f2\", input_data)\n", "\n", "input_data = {\n", " \"optic\": optic,\n", " \"surface_number\": -1,\n", " \"Hx\": 0,\n", " \"Hy\": 0.0,\n", " \"wavelength\": 0.55,\n", " \"num_rays\": 5,\n", "} # surface_number=-1 means the last surface\n", "tolerancing.add_operand(\"rms_spot_size\", input_data, target=0)\n", "\n", "input_data = {\"optic\": optic, \"Hx\": 0, \"Hy\": 1, \"wavelength\": 0.55, \"num_rays\": 5}\n", "tolerancing.add_operand(\"OPD_difference\", input_data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Run sensitivity analysis\n", "\n", "\n", "The next step is to pass our tolerancing variable to a \"SensitivityAnalysis\" instance. This class performs all sensitivity operations, saves the results, and provides an interface to view the results." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.923411Z", "iopub.status.busy": "2026-03-24T11:30:30.921483Z", "iopub.status.idle": "2026-03-24T11:30:30.940478Z", "shell.execute_reply": "2026-03-24T11:30:30.937622Z" } }, "outputs": [], "source": [ "sensitivity_analysis = SensitivityAnalysis(tolerancing)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can now run the analysis. The duration of the analysis will depend on the number of operands, perturbations and their ranges, as well as whether compensators are applied. On the author's machine, this analysis takes a couple seconds (for ≈400 evaluations in total)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:30.950554Z", "iopub.status.busy": "2026-03-24T11:30:30.949260Z", "iopub.status.idle": "2026-03-24T11:30:49.558207Z", "shell.execute_reply": "2026-03-24T11:30:49.555340Z" } }, "outputs": [], "source": [ "sensitivity_analysis.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. View and analyze results\n", "\n", "\n", "We can call the \"view\" method of SensitivityAnalysis to show effect of the perturbations on the operands:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:49.566219Z", "iopub.status.busy": "2026-03-24T11:30:49.565151Z", "iopub.status.idle": "2026-03-24T11:30:51.836192Z", "shell.execute_reply": "2026-03-24T11:30:51.835142Z" } }, "outputs": [ { "data": { "text/plain": [ "(
,\n", " [,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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fHdQKcRNH66NG8p2a4d7s1xguUCUU6hnoX6FCQNR30LdCctImUID2jfffKO+q8uWLbOpPoaOA5RJGM2ilwlY6g4jcrCPIBo90xgtiXoS0oH6KDqdsNY9Xo/nEKii3LBUVzWndevWahJETF6G+hfqnajH4RJMTJoLKEcxCSQmUEO9DMtp2TLJmbGs6pgYSYRea1xeicncUAaiF14fsZpVflmCujzKRHTeIN/0MpKTluWQna/BpmywNFnK1KlT1RJTmNgLky/gNZj2H5M2jBkzRnv55ZfT/TtMQoYJHrBsQLFixdSkX1lNfHPq1Cm1JAImLahXr562fv36dBMlYCIYTCaB58PCwtTnnT171uKxYPIKLI2F5Z1Ml8aydgIyHSaawTFi4gtMroa09+jRI93EZJggonbt2mpinRYtWqgJMMwtjWVJ48aN1es3b96c7nFr8hvpe+yxx1TeGH8mJqjAEmJ4/B//+If2v//9z+zSWKYw4QTyDseLSTCwDMJLL72klj8wntzC0iQWmLxsxIgRakkIHDPOA0xQgbTHx8db/Tc3N7GbpYmGsI0lvPBeSO+cOXMynHM4J4YMGaKVKFFC/R1Nl1f7/fff1fI/BQsWVO9TrVo1NfmH8cQapnAumC43weKM3GUCsj179mh16tQxTDhpzsSJE9XSMiiLjGEfj+N5YLnwN5YLRNZPQJbZ5K3m6imYCBFlB+on+N6ivmJpci5MJIt62fLlyy1Ouoj3x+forl69qupZev0RywD2799fi42N1aKiorQuXboYygu8H5bfwvJRmHgLy0yhrMFzqEMNGjTIMJmanr7M6p1TpkxR5R/quUg3PhvLpWIJK93ly5fVxIiYLLhy5cpqmUBzE5AZT+RoaQIya+qYODYshYVjRZ6XLVtWpdOa/LLE3NKM1kwgSZlTC9zmNCAnIsfDdTXooUIvfaFChZydHCJyASwXiIgsQ68thoBj5Ap6hInsjcO8idyEPuyIFWYi0rFcICLKvIzEOs4MpMlR2DNNREREREREZCP2TBMRERERERHZiME0ERERERERkY0YTBMRERERERHZiME0ERERERERkY0YTBMRERERERHZiME0ERERERERkY0YTBMRERERERHZiME0ERERERERkY0YTBMRERERERHZiME0ERERERERkdjm/wFbfM5UgWecJAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sensitivity_analysis.view()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we defined 3 operands and 3 perturbations, we see a collection of 9 (3x3) plots. The rows represent the operands and the columns represent the perturbations. A few relationships we can observe:\n", "\n", "- the strongest effect by far is perturbation of the radius of curvature\n", "- the RMS spot size and OPD difference are a minimum at the nominal radius of curvature value (≈22mm)\n", "- tilting or changing the thickness of surface 1 has little impact on the focal length\n", "- tilt has a small impact on the OPD difference, with a minimum near 0 radians" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lastly, if we wish to further analyze the results, we can retrieve all results via the \"get_results\" method, which returns a pandas DataFrame." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:51.839306Z", "iopub.status.busy": "2026-03-24T11:30:51.839026Z", "iopub.status.idle": "2026-03-24T11:30:51.845665Z", "shell.execute_reply": "2026-03-24T11:30:51.844909Z" } }, "outputs": [], "source": [ "df = sensitivity_analysis.get_results()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:51.848596Z", "iopub.status.busy": "2026-03-24T11:30:51.848308Z", "iopub.status.idle": "2026-03-24T11:30:51.863736Z", "shell.execute_reply": "2026-03-24T11:30:51.862737Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
perturbation_typeperturbation_value0: f21: rms spot size2: OPD difference
0Radius of Curvature, Surface 115.00000033.4699452.70167010.590084
1Radius of Curvature, Surface 115.11811033.7434912.63400110.438667
2Radius of Curvature, Surface 115.23622034.0172002.56747010.281144
3Radius of Curvature, Surface 115.35433134.2910712.50204810.118328
4Radius of Curvature, Surface 115.47244134.5651042.4377049.950932
\n", "
" ], "text/plain": [ " perturbation_type perturbation_value 0: f2 \\\n", "0 Radius of Curvature, Surface 1 15.000000 33.469945 \n", "1 Radius of Curvature, Surface 1 15.118110 33.743491 \n", "2 Radius of Curvature, Surface 1 15.236220 34.017200 \n", "3 Radius of Curvature, Surface 1 15.354331 34.291071 \n", "4 Radius of Curvature, Surface 1 15.472441 34.565104 \n", "\n", " 1: rms spot size 2: OPD difference \n", "0 2.701670 10.590084 \n", "1 2.634001 10.438667 \n", "2 2.567470 10.281144 \n", "3 2.502048 10.118328 \n", "4 2.437704 9.950932 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:51.866599Z", "iopub.status.busy": "2026-03-24T11:30:51.866376Z", "iopub.status.idle": "2026-03-24T11:30:51.886888Z", "shell.execute_reply": "2026-03-24T11:30:51.886259Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
perturbation_value0: f21: rms spot size2: OPD difference
count384.000000384.000000384.000000384.000000
mean8.66666750.4243850.3633491.853603
std10.2272806.0999110.5854202.730398
min-0.05000033.4699450.0043430.028153
25%0.02539449.9558740.0165170.216752
50%3.50000049.9997830.0706620.433987
75%18.69094550.0293810.4797622.460403
max30.00000069.5587942.70167010.590084
\n", "
" ], "text/plain": [ " perturbation_value 0: f2 1: rms spot size 2: OPD difference\n", "count 384.000000 384.000000 384.000000 384.000000\n", "mean 8.666667 50.424385 0.363349 1.853603\n", "std 10.227280 6.099911 0.585420 2.730398\n", "min -0.050000 33.469945 0.004343 0.028153\n", "25% 0.025394 49.955874 0.016517 0.216752\n", "50% 3.500000 49.999783 0.070662 0.433987\n", "75% 18.690945 50.029381 0.479762 2.460403\n", "max 30.000000 69.558794 2.701670 10.590084" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may also save the results to a csv file:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T11:30:51.889644Z", "iopub.status.busy": "2026-03-24T11:30:51.889217Z", "iopub.status.idle": "2026-03-24T11:30:51.903288Z", "shell.execute_reply": "2026-03-24T11:30:51.902266Z" } }, "outputs": [], "source": [ "df.to_csv(\"sensitivity_analysis.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Conclusions\n", "\n", "- This tutorial demonstrated the basics of tolerancing in Optiland.\n", "- Tolerancers in Optiland require:\n", "\n", " 1) an optic\n", " 2) operand(s)\n", " 3) perturbation(s)\n", " 4) (optional) compensator(s)\n", "- A sensitivity analysis can be performed by first defining a tolerancing object, then passing it to SensitivityAnalysis and calling the \"run\" method.\n", "- The results of a sensitivity analysis can be retrieved as a pandas DataFrame and saved for further analysis." ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.2" } }, "nbformat": 4, "nbformat_minor": 2 }