1. Support
  2. OSLO
  3. OSLO Knowledge Base

How do I use OSLO to optimize the radius and conic of a mirrored surface to solve for a specific set of foci positions?

Synopsis

Simple optimization to find conic mirror foci

Symptoms

Let's assume a simple example: You have an unknown prolate ellipsoid mirror (a 3 dimensional surface created by revolving an ellipse about its major axis). The closest focus point to the mirror (f1) is 50mm away from the surface vertex along the axis of revolution. The farthest focus point (f2) is 300mm from the mirror surface vertex. Using OSLO, find the radius and conic constant of the mirror surface.

Solution

First, we will set up a mirror as a starting point. We begin by choosing "File >> New Lens". Enter a lens name that you like and leave all the other defaults. Close the Window and save your changes by clicking on the "OK" button. To enter the other data in the Surface Data Spreadsheet, it is important to understand where everything goes:
  • The object (OBJ: surface 0) should be placed at f1.
  • The image (IMG: surface 2) should be placed at f2.
  • The mirror will be in between the object and image. This makes it surface 1. Surface 1 will also be the Aperture Stop (AST) of the system.
Good starting values are shown in the Surface Data Spreadsheet below:
Lens(name): "Test Ellipse" Entrance Beam Radius = 100.0 Thickness of object (OBJ) surface = -50.0 
Starting radius of mirror (srf 1) = 100.0 Thickness of mirror (srf 1) = 300.0 Glass = REFLECT (mirror)
To see the optical system in a side view lens layout, click on the "Draw Off" button in the surface data spreadsheet. The button will change to "Draw On" and the "AutoDraw" graphics window will appear showing the lens layout. OSLO does not always draw rays all the way TO and FROM the object and image surfaces. To force this to happen,
  • Click on the grey button in the SPECIAL column of the OBJ and IMG surfaces
  • Choose "Surface Control (F) >> General" from the popup menu
  • Choose "Surface appearance in lens drawing" = "Drawn" in the resulting dialog
  • Accept all changes
  • Remember to do this for both the OBJ and IMG surfaces
In the Autodraw window, you will note that the rays do not converge to a point at f2 (the image surface, IMS). Therefore, we will use OSLO to optimize the mirror radius and conic constant. To do this, we need to create the required variables.
  • Click on the "variables" button in the Surface Data Spreadsheet.
  • Add a line by right-clicking in the #1 button on the first row of the spreadsheet and choosing "Insert After" from the popup menu.
  • In the first line of the spreadsheet double click on the "?" symbol in the "Type" column and choose "Curvature (CV)" from the popup menu.
  • In the second line of the spreadsheet double click on the "?" symbol in the "Type" column and choose "Conic Constant (CC)" from the popup menu.
  • Accept all changes and close the Variables Data Editor spreadsheet.
Now we need to create a single operand that targets a marginal ray to zero at the image surface (where we want f2 to be).
  • Choose "Optimize >> Generate Error Function >> Ray Operands" from the OSLO menu.
  • In the resulting dialog, note that the first item is listed as "Axis fymax". This is asking for the height that we want to trace real rays as a fraction of the system aperture. A value of 0.5 would one-half aperture. 1.0 would be full aperture. Leave the value at 1.0
  • Keep all the other data cells at their default values and click on the OK button.
  • The Operands Data Editor will then be shown. This complete spreadsheet comprises the Optimization Error Function. Note that the weight column (WGT) is listed as zero for all operands. This means that none of these operands are contributing (yet) to the error function.
  • The operand of interest is operand #16: "AXIS_EDY". This means that this is the error (DY) or height of a real ray in the Y direction. "AXIS" means that the ray is being traced for the on-axis field point, and the "E" means that the ray is being traced at the edge of the aperture defined in previously for the "Axis fymax" parameter. Make the weight of operand #12 = 1.0.
  • The item listed in each row of the "DEFINITION" column will be targeted to zero during the optimization (as long as the weight of that operand is non-zero). Note that OCM16 is actually the value of the ray height at the image surface. Therefore the ray height at FYMAX will be targeted to zero. Note that if we re-wrote the DEFINITION to be "OCM16-0.25", then the FYMAX ray height would be targeted to 0.25 at the image surface (since the entire DEFINITION will be targeted to zero).
  • Accept all changes and close the Operands Data Editor window.
Since we have some variables set and we have the Error Function set, we are almost ready to begin optimization. But before we do, we recommend a few cautionary steps:
  • Check that both your variables are registered: Click on the VAR icon which is on the Standard Toolbar of the Text window.
  • Check that your Error Function looks correct: Click on the OPE icon which is on the Standard Toolbar of the Text window. Note that the only operand contributing to the error function is operand 16: "AXIS_EDY". The value of this operand is the height of the FYMAX ray at the image plane (the position of f2)
  • Choose "File>>Save Lens As" and save your lens to a file in your private directory
  • Now optimize 10 cycles by clicking on the ITE icon which is on the Standard Toolbar of the Text window.
Your AutoDraw window should automatically update to show the rays converging exactly at the image surface (your desired position of f2)."