Microwave Office Training: Tuning, Optimization, and Yield Analysis
Microwave Office Training: Tuning, Optimization, and Yield Analysis
Microwave Office Training: Tuning, Optimization, and Yield Analysis
Summary
Each task asks the computer to find the value of a parameter:
Tuning user selects values manually Optimization Best value selected based on goal criteria Yield Pass/Fail of randomly selected values within a range
Tuning
To be known: parameters to be tuned and their limits
Optimization
To be known: parameters to be optimized and their limits, goals, type of optimizer
Yield:
To be known: parameters, limits of variation, distribution Can also perform yield optimization
Tuning, Optimization, and Yield 2
Optimization
Values picked to approach a desired goal Finding the Optimal Model Yield Optimization Values for maximum Yield
Yield
Values picked randomly within a range Manufacturing tolerances
Tuning
Purpose: manually vary a parameter What the computer needs to know:
parameter(s) to be varied what values
Method 1 Screwdriver and Slider Method 2 Select Tuning in the Elements Properties > Parameters
Equations Toolbar
Filter
Tuning, Optimization, and Yield 5
Equations Toolbar
C and L turn blue indicating they are being tuned Note: Selecting the element again turns off the tuning Tip: You can get rid of the screwdriver after using it by clicking anywhere on the schematic
Tuning, Optimization, and Yield 7
Tip: Holding down the Ctrl key updates all schematics and layouts at the same time!
Save a state of the tuner Name it Recall it with Revert Many saved states are allowed
Note: Saved states wont be remembered once the tuner is closed! Note: Reset will return the tuner to its initial state Tip: Saving your project before tuning allows you to return to the initial saved state before tuning even if the tuner is closed Tip: If you copy a schematic, tuning is turned off for the copy
Tuning, Optimization, and Yield 10
11
Note: The advantage is you can set lower and upper limits explicitly
Tuning, Optimization, and Yield 12
13
Optimization
Purpose: to obtain a best value of a parameter to meet a goal What the computer needs to know:
the parameter(s) to be optimized and their limits the goal(s) the type of optimizer
14
Optimization - Example
The parameters to be optimized and their limits
can be selected via the elements properties or in the Variables Browser Vary the left inductor and capacitor Constrain L2 to be between 2 nH and 8 nH, set nominal value to 4 nH Constrain C1 to be between .1 pF and .8 pF, set nominal value to 0.35 pF
Inductor Settings
Tuning, Optimization, and Yield
Optimization Example - 2
Goals
set in the Optimizer Goals tab of the Project Browser.
Set a goal of S11 being less than 17dB from 4.2 to 5.5 GHz
Note: A new goal can be set by RC on Optimizer Goals > Add Opt Goal
16
Optimization Example - 3
The measured |S11| should be < 17 dB from 4.2 to 5.5 GHz 1. Pick a measurement 2. Should the goal be >=< the measurement? 3. Pick the frequency range
Advanced Features You can have sloped goals Multiple goals can be weighted differently with a cost function the bigger number has more weight Cost function = w1*goal1 + w2*goal2 + ... L is the type of cost function (usually L=2) Cost function = | goal measure |L
Tuning, Optimization, and Yield 17
Optimization Example - 4
The optimizer goal is seen in the graphs with the measurement.
Optimization Example - 5
Note: The S11 goal has been sloped by using the drag handles
Tuning, Optimization, and Yield 19
Optimization Example - 6
Setting the type of optimizer To run the optimizer Simulate > Optimize F7
The goal cost and history smaller is better! You can equalize the goals weights for multiple goals
Next slide
Tuning, Optimization, and Yield 20
Optimization Example - 7
Updates the graph for each iteration
If unchecked you can move optimizer goals while still going and you can tune over other variables
Reset Sets the variables back to their initial values Note: Closing the optimizer changes the parameter values!
Save and Revert allow saving states and retrieving them, just as with the tuner
21
More on Goals
Open the project Understanding_Goals.emp
S11 = 0.5 for this simple circuit as shown in the graph S11
More on Goals - 2
What is the cost of this optimization?
The first goal is |S11| < 0.4 with L=1 |S11goal S11measured|1 = |0.5 0.4| = 0.1 Note the frequency range is normalized to 1, i.e. no matter how large the frequency range the cost is 0.1 The second goal is |S11| < 0.6 with L=1 This gives a cost of 0, because the goal has been met everywhere Note: If a goal is met in a certain part of the frequency range, its contribution to the cost is 0 The total cost is 0.1 + 0 = 0.1
Tuning, Optimization, and Yield 23
More on Goals - 3
Try these goals and make sure you understand them
Cost = 0
More on Goals - 4
The lower part (with L=1) costs of 0.05 = 0.025 The is because half of the interval does not meet the goal Total cost for this example is 0.0 + 0.025 + 0.0 = 0.025
25
Weighting
Weighting helps make one goal more important than another, or it can equalize goals where divergent
Example 1: Band-reject filter The S21 in the stop band could give a huge difference in cost and completely dominate the goals even though the S21 in the pass band might be as important Example 2: Different frequency ranges of goals. The cost of each goal are calculated with a normalized frequency range If one goal must be true over a much larger frequency range than another, this wont be reflected in the goals Example 3: Different units. Goals are dimensionless If one of the S parameters is in dB and the other is not, the dB costs will probably be much larger
Tuning, Optimization, and Yield 26
Optimization Issues
Finding the global minimum or maximum
In 1D it can be found (although maybe expensive) Note: Figures from Numerical Recipes in C http://www.nrbook.com/a/bookcpdf
Step 1: Divide the region into sub-regions Step 2: Find the minimum by bracketing Step 3: Compare the minima to find the global minimum Convergence is linear (i.e. adds a digit with each iteration)
Tuning, Optimization, and Yield 27
Optimization Issues - 2
In multiple dimensions you can never be absolutely sure you have the Global minimum or maximum!
For example, in 2D you bound areas, but that is a closed curve with an infinite number of points All optimizers try to find the global minimum, quickly and accurately Note: The optimizers for MWO use the following methods: Basic Gradient Optimizers, Random, and Annealing Numerical Recipes in C: http://www.nrbook.com/a/bookcpdf.php. Pointer Optimizers: Come from Synaps http://www-fp.mcs.anl.gov/OTC/Guide/SoftwareGuide/Blurbs/synaps.html
28
Derivatives or not?
Why not use an algorithm that always goes downhill the fastest? Conjugate Gradient Method
Convergence can be quadratic However Derivatives have to be calculated in all directions before the next step. For many variables this can be slow Near the minimum the function might be almost constant having a gradient of 0 There is no way of getting out of a local minimum Could get stuck here! (If in more than one dimensions) Strategy: If not too many variables, start with conjugate gradient When close to the minimum/maximum, conjugate gradient might stall Switch to a non-derivative method
Tuning, Optimization, and Yield 29
30
This is the error tolerance in a given direction. Set it as small or smaller than the total error you can tolerate. Too small, and it will never get there.
Tuning, Optimization, and Yield 31
Random Optimizers
They jump around randomly trying to find the minimum Local Random jumps around the initial guess Global Random jumps all over the place trying to find the minimum Note: This is the optimizer of last resort! Genetic algorithms: Random and Gaussian
32
Simulated Annealing
Introduce some randomness in conventional optimization
Inspired by physics thermodynamics A material at high temperature is cooled slowly and finds the state of lowest energy This optimization method introduces temperature T: T >> 1, take big random step between iterations of the optimizer T << 1, take small random step between iterations of the optimizer Slowly reduce the temperature k step number K total number of steps You set T0 and a Pick either Simplex or Random Local
Tuning, Optimization, and Yield 33
34
Train It Run It
Set the maximum number of iterations much larger than the target iterations Train with a simpler problem, or a typical problem
Start small
Tuning, Optimization, and Yield 36
Discrete Optimization
Reasons to use discrete optimization
discrete datasets like S parameter files discrete manufacturable values discrete / logical values, e.g. switches
37
Discrete Optimization - 2
Open up the project Help > Circuit_Features > Optimization > Discrete_Filter_Optimization.emp Len, Wid, and Gap take on discrete values
38
Discrete Optimization - 3
Run the optimizer Use Pointer
39
You can set subcircuit to be the value of data_files Then you can tune or optimize over different S parameter files
40
Yield Analysis
Purpose: Pass/Fail analysis with manufacturing variations What the computer needs to know
variables to be varied limits of variation and statistical distribution: flat or normal pass/fail criteria
41
Yield Analysis - 2
Reopen the Filter project Set the yield parameters of the left inductor (L2) with value 4 nH by going into Properties > Statistics. Use 10 % variation and normal distribution
Use must be checked for use in yield analysis. (Most common error!) Distribution Normal 1 standard deviation at limits
Yield Analysis - 3
Set up yield analysis in the first capacitor (C1), nominal value 0.35 pF 0.1 pF variation, Uniform
Step 15: Set up the yield goal: |S11| < 16 , 4.4 to 5.2 GHz
43
Yield Analysis - 4
Run Yield Analysis: Simulate > Yield Analysis
Will run up to 5000 iterations
44
Yield Analysis - 5
Modifying the Graph
Go to the graph properties: RC > Properties > Yield Data You can change the graph to show a variety of things: Only passed/fail/mean. Range Sigma 2*Sigma
46
Note: The number of trials in the bin has nothing to do with the height of the bins. It is used to show the way the Monte Carlo was run normal or uniform distribution.
Remember that C is varying too. This is why you are getting passing between 0 and 100 %.
47
48
Not Centered
Sensitivity graphs look at different slices through the parameter space. Here we have 2 parameters C and L.
Insensitive Component
Tuning, Optimization, and Yield 49
Yield Optimization
Purpose: Select component values that give maximum yield What the computer needs to know:
Parameters Limits of variation and statistical distribution Pass/fail criteria.
50
Yield Optimization - 2
Dampening Factor - How much to change the value 1.0 - Large/maximum change 0.5 - Smallest change Example: Peak at 9.8 instead of 10.0, tries 9.9 with dampening factor of 0.5
Maximum Error - Simulator will run until estimated error is smaller than maximum error (or max iterations reached) - Larger maximum error > fewer iterations
Note: Select Opt to allow the parameters value to change in Yield Optimization.
51
Yield Optimization - 3
Select the left L and C for Yield Optimization.
Tip: The values of 4 nH and 0.35 pF are close to optimal already. You might change the starting values to be where the yield could be obviously improved.
52
53
Capacitance Nominal_C
54
The Equations
Add the following equations to the schematic:
Random1
Random2
56
Yield Analysis
Create a graph Spars as before
Frequency simulation from 1 to 9 GHz, steps of 0.1 GHz Set yield goals of |S21| for 18 dB from 4.5 to 5.5 GHz
57
58