by Philip Mayfield
Quantum XL's optimizer provides the unique ability to minimize the defects per million (dpm) across multiple outputs in a model. The optimization is a true stochastic optimization, which means that the inputs are all modeled with probability distributions. This article explains how to use Quantum XL's optimizer.
This article builds on the concept of an Excel based model. If you are not familiar with building models in Quantum XL, then read the article Simple Monte Carlo Analysis Using Quantum XL first.
For this article, we will use the example of the force required to open a flip phone. Many cell phones include the feature of a cover that rotates on a hinge to provide access to the keys and display. If the force required to open the cover is too great, then the user experience is diminished; if the force is too little, then the phone will open without intent. The key metric is therefore the force required to open the phone. For this specific phone, the goal is to keep the force to open between 300 and 400, thus the lower specification limit (LSL) is 300 and the upper specification limit (USL) is 400.
The force to open the phone is a function of the design of the hinge. A simple drawing of the hinge is shown to the right. By changing the various critical design parameters such as the spring coefficient and the angle of the ramp, we can change the force required to open the phone. Don't worry, the intent of this article isn't to turn you into a phone design engineer; you don't need to understand the physics behind the design. What is important is that we have a model of the hinge that we can optimize in Quantum XL.
Let's assume that the force to open the phone is mainly a function of four key critical design parameters: Ramp Angle (degrees), Plateau Height (mm), Spring Constant (K), and Misalignment during manufacturing (degrees). By performing a designed experiment, we have obtained a model for the Force to Open as a function of the Critical Design Parameters (CDPs).
Force to Open = 395.5625+25.175*Ramp Angle -17.8125*Plateau Height -9.1875*Spring Constant -0.00625*Misalignment+1.945*Spring Constant*Misalignment
I should note that it is not important that you understand this design. The key is that we have a model that represents some metric that is important to us. If you have a model and some latitude on where to set the inputs for that model, then you can optimize using Quantum XL.
Each of the inputs has a certain amount of variation that we can model with Quantum XL. The distribution and parameters for each of the inputs is in the table below.
|Ramp Angle (degrees)||N(17, 0.12)||Normal distribution, Mean = 17, SD = .1|
|Plateau Height (mm)||N(32, 0.12)||Normal distribution, Mean = 32, SD = .1|
|Spring Constant (K)||N(10, 0.12)||Normal distribution, Mean = 10, SD = .1|
|Misalignment (degrees)||U(0,20)||Uniform distribution from 0 to 20|
The factor Misalignment falls into the category of Modeled Noise. During assembly, the alignment of the hinge could be off by as much as 20 degrees. The ideal mounting error would be zero; however, keeping the misalignment at or near zero would be cost prohibitive. We therefore need to be robust to misalignment.
Running a Monte Carlo simulation on the model using Quantum XL results in the following histogram and statistics. Regardless if you use the Normal Distribution statistics with 657,000 dpm or the Observed Defect estimate of 743,000 defects, more than half of the hinges will be out of specification.
Thus far, this article has been a straight-forward modeling of a hinge. Our objective now is to take this one step further to find the optimal values for Ramp Angle, Plateau Height, and Spring Constant that will optimize the force to open the phone.
For each of the inputs, we need to define a range of nominal (mean) values that we are willing and able to change our set points to in order to improve the performance of the design. Since the goal of the optimizer is to find the optimal set points for Ramp Angle, Plateau Height, and Spring Constant, we must define a range that the optimizer is able to search in. It wouldn't do to have a Ramp Angle less than zero or greater than 360 degrees, as these values wouldn't make sense in the physical design. Therefore, we need to constrain the optimizer to look in a range for each of the variables.
The table below has the lows and highs that we are willing to allow the optimizer to use for each of the inputs.
|Ramp Angle (degrees)||17||10||20|
|Plateau Height (mm)||32||30||40|
|Spring Constant (K)||10||2||10|
Note that the Misalignment does not have a low and high value specified. Since Misalignment is a noise variable, we do not want the optimizer to pick an optimal value. Therefore, we will not let the optimizer change the distribution of Misalignment.
To optimize this, select "Quantum XL" - "Optimize (Param Design)" from the menu or click on the icon that looks like a magic wand. You will be greeted with the "Define Parameter Ranges" window below. This window allows you to set the low and high for the location parameter (mean) for each of the inputs in the model. For example, currently Ramp Angle is set to a low of 10 and a high of 20. Note the graphic at the top of the window gives a visual representation of the range in which the optimizer can search. The blue bell curve represents the minimum and the green represents the maximum. A key concept with the optimizer is that the only thing that is allowed to change during optimization is the mean; the standard deviation stays the same. The standard deviation of Ramp Angle was originally defined as .1 and during optimization it will continue to have a value of .1.
Misalignment is a noise variable and as such we don't want the optimizer to change its mean or mid point. However, we do want Misalignment to have variation during the optimization. Therefore, we set the Misalignment low =10 and the high = 10 (the center of a distribution that is uniform from 0 to 20 =10). The picture of this is in the window below. Note that Misalignment is still going to vary from 0 to 20; however, its mid point or average value is not allowed to change during optimization.
After defining the range of the inputs, click "Next" to move onto the next step.
We are now ready to define the optimization type and weight (see below). The type is either "dpm" or "Count Out of Spec". Remember that the ultimate goal of the optimizer is to reduce the defects to as few as possible. To do this, we need to define which type of dpm calculation should be used. If we select "dpm", then the defects are calculated from the Normal Distribution. If we select "Count out of Spec", the defects are calculated from the actual number of observations out of spec. In general, when the output is non-normal we use "dpm", and when the output is normal we use "Count out of Spec".
The weight value allows us to prioritize which outputs are more important when we are optimizing more than one output at the same time. In this case, as there is only one output, the weight value is not important.
Quantum XL will now switch to a real time optimization window. The optimization window will show you how the optimization is proceeding. For simple models such as this one, the optimization occurs so quickly that you may not have time to get a good look at it. You can pause the optimizer using the button in the lower right corner.
On the left side you can see the current distributions of the optimal input values. For example, visually it appears that the best current value for Ramp Angle = 18.5, Plateau Height = 30, and Spring Constant = 2. Note that Misalignment's mid point isn't changing but it has variation from 0 to 20.
On the right you can track the progress of the optimizer. The upper right line graph shows the dpm for all outputs as well as the average dpm for the outputs. In this case, since there is only one output, the dpm for force is equal to the average dpm.
When the optimizer senses that it can no longer improve the solution or when you press the "Stop Optimization and Save Results" button, you will be asked if you would like to overwrite the current parameters with the optimized values.
If you choose Yes, then the mean values in the spreadsheet model will be replaced with the new optimal ones. In this case, I pressed yes and the model has been updated. Below is a screen shot of the model inputs before and after optimization. Note that the values for Ramp Angle, Plateau Height, and Spring Constant have all changed.
|Input Before Optimization||Inputs After Optimization|
A final Monte Carlo simulation predicts the defects after optimization. The results of the Monte Carlo before and after simulation are in the table below. The observed defects dropped from 743,020 to 550 as a result of finding the new optimal set points. The main reason for this reduction in dpm is due to a reduction in standard deviation.
|Monte Carlo Before Optimization||Monte Carlo After Optimization|
The optimization in Quantum XL performs a true stochastic (with variation) optimization. The goal of the optimizer is to reduce the number of defects in the outputs. Optimization using Excel's solver or in DOE software performs a deterministic optimization. A deterministic optimization does not include variation in the input and therefore can't effectively optimize on defects. To demonstrate this, I have used Excel's solver to find the optimal solution to this model with Misalignment at the low, middle, and high. The table below displays the results of the three solutions as well as the histograms for the outputs. The best solver solution is 308,000 dpm which is far worse than Quantum XL's solution with 550 dpm.
The main reason for this difference isn't a problem in solver, it is that solver doesn't understand that the inputs have variation. Solver can't model Misalignment as a Uniform distribution from 0 to 20, it can only set misalignment at one value.
Without modeling the distributions of the inputs, it is not possible to effectively predict and/or optimize the number of defects in a model. If you are using DOE software or Excel's solver to perform optimization, you are not fully optimizing the model.
|Ramp Angle||Plateau Height||Spring Constant||Misalignment||Defects||Histogram|
Your process of model building and optimization will have similarities and differences from this article. To help you get started in optimization of your own models, here are some tips.
Build your model in Excel with your inputs and outputs.
Assign distributions to each of the inputs - Typically noise variables (items you can't control such as temperature, humidity, misalignment) are modeled as uniform from the lower to upper bound.
Perform a Monte Carlo optimization to baseline the current performance.
Consider the optimization bounds for the inputs - How low and high can you allow each input to vary.
Start the optimizer and enter the bounds for each input - Do not allow the mid point of noise variables to change. (Quantum XL defaults to this for any Uniform distributions.)
Choose the type defects to optimize - If your output is Normal, then use dpm. If it is not normal, use Count out of Spec.
Allow the optimizer to run and write the results to the worksheet.
Perform another Monte Carlo simulation to evaluate the new optimal solution.
Quantum XL's optimizer provides a quick and powerful optimization that can perform a true stochastic optimization. The goal of Quantum XL's optimizer is to reduce the defects of the output(s) by shifting the location parameter (mean) of the inputs.