## Technical Issues - Reliability of Inverse-SynthesisThis work was presented at the 2008 SPIE
Optical System Design conference in Glasgow and can be downloaded or viewed as
follows: printed paper,
PowerPoint slides,
PowerPoint slides in PDF
format (for those who cannot read PowerPoint files). Coatings are subject to random, systematic, and gross
(operator or machine) errors. In the case of random errors, inverse-synthesis by
least-squares fitting provides means to determine which layers had thickness
errors. The process is much the same as thin film design, except that here the
targets are measured data. But, unlike coating design, where many
acceptable solutions are possible, We calculate the reliability of inverse-synthesis by the following general method: - Starting with the ideal design, simulate production errors by generating a design with random layer errors. We used relative errors (as in physical thickness monitoring), but absolute errors (as in optical monitoring) can also be utilized.
- Calculate the spectrum and convert to optimization targets.
- Restore the original design and solve for the randomized design by DLS (damped least-squares) fitting.
- If each layer is close to the known original thickness value (i.e. within 0.5%), inverse-synthesis is considered successful, otherwise we have an incorrect solution.
Using FilmStar BASIC, the above sequence is automatically repeated until the statistics become clear, say 50 iterations. The example below shows an iteration of a 26 layer laser output coupler (T=2% from 450-650 nm) with StdDev = 2% random errors.
The same graph zoomed clarifies the deleterious effects of Std Dev = 2% random errors in the range of coating performance.
The blue trace (simulating a coating measured at normal incidence from 400 to 1200 nm) is converted to optimization targets and the original (red trace) design restored. Using DLS we solve for the blue spectrum and compare the solution to known layer values. In the case of visible coatings, it seems reasonable to extend measurements to the long wavelength side rather than the short side where dispersion effects will be more pronounced. The graph below
shows results. The blue curve represents the known
solution while the red (Invalid Solution, 0°) and green (Valid Solution) curves
were calculated by DLS. In the graph below, curves
are superimposed and cannot be separated.
Zooming the graph, we eventually see differences, but notice the %T scale!
Using the range 400-1200 nm and an accuracy
criterion of 0.5% we determined that reliability is essentially zero. Adding
spectra (targets) at 45° (P & S polarization) increased the reliability to
100%. Our results strongly suggests that Reliability depends on the type of design, number of layers, magnitude of errors, measurement range, angle, and accuracy criterion. Repeating the analysis for a four layer 450-750 nm AR coating with layer StdDev = 5% gave 100% reliability (0.5% accuracy) for calculations over the range 450-750 (0°). When StdDev = 20% (simulating large errors), reliability becomes 56% (0°); expanding the range to 400-1200 nm gives 76% (0°) and 92% (0-45°). Experienced coating engineers are familiar with these ideas. What
is new here is the general method for estimating reliability. Suggestions for further work include: - Generate tables showing layer deviations for valid and invalid solutions. Ultimately this will help determine systematic corrections (tooling factor shifts) for optical and physical thickness (crystal) monitors.
- Simulate measurement errors (systematic and random) for scanning, diode-array, and FTIR spectrometers. How precise do spectral measurements need to be?
- Include refractive index variations.
- Perform reliability calculations with ellipsometric quantities in order to compare multiple-angle spectroscopy with multiple-wavelength ellipsometry. Are ellipsometers really necessary? If so, when?
BASIC code (0-45° case) is given below: ```
Option Explicit
DefInt i-N
DefSng A-H, O-Z
Option Base 1
Public Const Iter = 50 ' change as required
```
Sub Main Dim i, k, IterNG, nLayers, Design0$, qDesign(), qDesc$() Dim qSolve(), qType$(), TestPC, bOK As Boolean TestPC = Val(InputBox("Enter Verification Level in %", _ "Reverse Synthesis Test", "0.5")) If TestPC > 0 Then MainEvents = True ' enables Abort menu command Design0 = Design Angle = 0 For i = 1 To Iter AxesDraw StatusLabel CStr(i) & "/" & CStr(Iter) Design = Design0 ' original design CalcRand 0, 1 ' randomize layers, retaining design GetLayers nLayers, qDesign(), qType$(), qDesc() FileSave "temp.dx" ' save to replot later SpecTargets True, "R", 1, 0, "R" Angle = 45 Pol = "P" Calculate SpecTargets False, "R", 1, 45, "P" ' convert to targets Pol = "S" Calculate SpecTargets False, "R", 1, 45, "S" Design = Design0 ' restore original design Optimize ' solve GetLayers nLayers, qSolve(), qType$(), qDesc() bOK = True For k = 1 To nLayers ' all layers in spec?? If Abs(qSolve(k) - qDesign(k))/qDesign(k) > TestPC/100 Then IterNG = IterNG + 1 ' fails bOK = False Exit For End If Next k AxesDraw LineColor "B" FileOpen "temp.dx" Replot ' replot original randomized design Wait 2 If bOK Then LineColor "G" Else LineColor "R" Angle = 0 CalcPlot ' calculate and plot solution at 0° Wait 3 Next i Design = Design0 MsgBox "Confidence Level = " & CStr(100*(Iter- IterNG)/Iter) _ & "%", vbInformation, "Inverse Synthesis 0-45°" End If LineColor "R" End Sub |