I haven’t had the time to develop a mock chassis to show an example of a real world tolerance analysis. I’m tired of writing about tolerance analysis anyway, and you are probably tired of reading about it. Let’s examine a different problem.
For a tolerance analysis, the tolerance or loop equation, is simple addition or subtraction and looks something like this
Xtotal = X1 + X2 + … + Xn
Suppose we have mathematical descriptions that are more complex. For example
f(X) = X1X2
f(x) = mX + b
T(t) = Ti + Tf(1 – e-t/τ)
How do we go about analyzing the quality of our design with these types of mathematical relationships? Let look at a simple example.
Anyone, with even a modicum of technical training, is familiar with the spring force equation, or Hooke’s law. (Hooke was commissioned to develop a reliable time piece to help ships more accurately estimate their longitudinal location, and he did so using a spring). The spring equation is
F = kΔX
What would be the minimum and maximum force? We could say the spring constant, k, varies by +/- 10% and hence the force varies +/- 10%. We could also say the ΔX varies by +/- 10% and hence the force varies by +/- 10%. Or, we could say both k and ΔX vary by +/- 10%, and hence the force would vary by +/- 21% (1.1 X 1.1 = 1.21). Although these may be good guesses, and follow a logical line of thinking, these guesses are not technically correct. We can do better.
There are two methods that we can use to solve this type of problem (two methods to which I am aware anyway). One is using a Monte Carlo simulation. I am going to wait for a future post to talk about Monte Carlo simulations, but it is an iterative method for estimating the variation for complex problems – not terribly different than Finite Element Analysis (FEA), or Computational Fluid Dynamics (CFD) modeling. The most popular Monte Carlo Simulation software is called Crystal Ball and was developed by Precision Engineering and runs on top of MS Excel. Precision Engineering was acquired by Oracle, so it you want to buy it, you have to go through Oracle. (If you really understand how Monte Carlo simulation works, and you are good with spread sheets and macros, you can develop your own Monte Carlo simulator without shelling out a bunch of money). It depends on whether you have more time than money. One of the more popular applications for Monte Carlo simulation is in the financial industry, where financial institutions invest a considerable amount of manpower and hardware (computers) in an effort to predict the economic future.
The other method is more theoretical and manual, and it requires a basic understanding of differential calculus. This is the method that I will explain in this post. Don’t be scared. It is not as difficult as it sounds. The good thing about this method is that if a system can be described by a linear equation (linear equation does not mean a straight line), and if the equation can be differentiated explicitly, we can estimate the standard deviation of the system, regardless of its complexity. Once we have an estimate of the standard deviation, and the specification limits, we can estimate the quality of our design. Let’s jump in.
Let’s examine the following generic equation
f(X) = f(X1, X2,… Xn); f(x) is the same as y.
Equations like this mean that the result, f(x), is dependent on several independent inputs, Xn. You are already familiar with one example. In a tolerance analysis, the tolerance equation looks like this
XTotal = X1 + X2 + … Xn
The result depends on the length or distance of the parts of loop. You see, you are already on your way to solving more complex problems.
The standard deviation of the system can be described as follows
σ2Total = (∂(f(X1,X2, … Xn)/∂X1)2σ12 + (∂(f(X1,X2, … Xn)/∂X2)2σ22 + … + (∂(f(X1,X2, … Xn)/∂Xn)2σn2
I can imagine your reaction. This is way too complicated!! Wait a minute, Hileman, you’re supposed to make complex stuff simple!! You betrayed us!! Don’t worry, I will simplify this.
You should notice a couple of things about this equation. The standard deviation is not necessarily a single number. The standard deviation depends on where you are within the solution space. The first differentiation of any function is the slope. In this equation, we are essentially taking the first differentiation of a function, and hence, the standard deviation is the slope of the function.
The previous equation is called partial differentiation. Before we can appreciate partial differentiation, let’s look at regular differentiation.
What is differentiation? Differentiation is nothing more that determining the slope, or grade, of a line. It’s simply rise over run.
Slope = Δy/Δx
If we make Δy very small, infinitesimally small, and we make Δx small, infinitesimally small, then we can determine the slope anywhere on a line, regardless of whether the line is straight or curved.
Mathematically
Slope = dy/dx, or d(f(x)/dx
Here an example of differentiation of some popular functions
Let f(x) = C, or a constant
Df(x)/dx = d(C)/dx = 0. The slope of a constant is 0. It’s a horizontal line where Δy always = 0.
f(x) = X
df(x)/dx = d((X)/dx = 1 As X changes, f(x), or y, changes by the exact same amount.
f(X) = mX
df(x)/dx = d(mX)/dx = m As X changes f(x) changes more or less than X depending on whether m is greater or less than 1.
f(x) = xn
df(x)/dx = d(xn)/dx = nxn-1
Commonly d(x2)/dx = 2x
Other common function
d(ex)/dx = ex This is the only function where the slope is equal to f(x).
d(ln(x))/dx = 1/x
d(sin(x))/dx = cos(x)
d(cos(x))/dx = -sin(x)
Differentiation can get more complex when functions are embedded in other functions, but we don’t need to go into that here, and, for the most part, we rarely encounter these types of functions in basic engineer.
Now that we know a little about regular differentiation, we can look at partial differentiation. When we perform partial differentiation, we differentiate with respect to one of the independent variables, and all other variables as treated as constants. As we saw earlier, the slope of a constant is zero.
Here’s an example
f(X) = X1 + X2
∂(f(x)/∂X1 = 1
X2 is treated as a constant, and the slope of a constant is zero. d(X1)/dx = 1, as we saw before.
Now let’s apply what we know to a simple example and estimate the systems standard deviation.
We have three elements with lengths X1, X2. and X3. The standard deviation of these components is σ1, σ2 and σ3 respectively.
The total length can be described as
XTotal = X1 + X2 + X3
The system standard deviation can be described as
σTotal2 = (∂(= X1 + X2 + X3)/∂(X1))2σ12 + (∂(X1 + X2 + X3)/∂(X2))2σ22 + (∂(X1 + X2 + X3)/∂(X3))2σ32
When we follow the rules we have established, we end up with
σTotal2 = σ12 + 2σ22 + 2σ32
σTotal = (σ12 + 2σ22 + 2σ32 )1/2
This should look familiar. The total standard deviation of a system, when the elements are simply added or subtracted, is the square root of the sum of the squares of the element’s standard deviations.
Now, let’s get back to the spring force problem.
F = kΔX
The spring constant, k, is not really constant. It has some variation. In a coiled spring, the spring constant is dependent on the wire diameter to the 4th power, inversely dependent on the coil diameter to the 3rd power, and dependent on the material’s torsion stiffness. If there is no variation in any of these elements, then yes the spring constant in constant. But the elements do vary, and the spring constant is not constant.
The system standard deviation is
σF Total2 = (∂(kΔX)/∂(k))2σk2 + (∂(kΔX)/∂(ΔX))2σΔX2
σF Total2 = ΔX2σk2 + k2σΔX2
σF Total = (ΔX2σk2 + k2σΔX2 )1/2
Let’s examine this relationship a little. The standard deviation of the spring force is not constant. Even if the standard deviation of the spring constant is constant, and the standard deviation of the spring deflection is constant, the total standard deviation is not! The more the spring deflects, the greater the influence the standard deviation of the spring constant has on the spring force. The greater the spring constant, the more influence the standard deviation of the spring deflection has on the spring force. This result may be more intuitive to some, and less intuitive to others. One thing is true we now have an accurate estimate for the standard deviation of the spring force.
I should also note that this method has an advantage over Monte Carlo simulation because we can see how the system’s components influence the system standard deviation. It’s more difficult to pick this information out of a Monte Carlo simulation. Some experts feel that a Monte Carlo simulation is faster, but I have done a lot of analysis both ways, and I am not convinced that Monte Carlo simulation saves that much time.
It took a little bit of effort to get here, but with some imagination, we can now apply this method to heat sink attachment, system level cooling, kinematics, dynamics, stress analysis … You could also apply this method when using FEA of CFD models. You could vary the nominal input variables to obtain a mathematical relationship for stress or temperature. You may need to use some type of linear regression, or multiple regression to get there, but it can be done. Minitab is a great software package for regression analysis. You can also use a simple fractional factorial to do pretty much the same thing, (and you can do it in a spread sheet). I will discuss fractional factorials in a later post.
In my next post, my discussion will move from theoretical predictions to using data to help us predict quality when we actually start building stuff.



















