INCORPORATING GEOMETRIC FEATURE VARIATION WITH KINEMATIC TOLERANCE ANALYSIS OF 3D ASSEMBLIES by Jeffrey G. Dabling A thesis submitted to the faculty of Brigham Young University in partial fulfillment of the requirements for the degree of Master of Science Department of Mechanical Engineering Brigham Young University December 2001
229
Embed
Incorporating Geometric Variation with Kinematic Tolerance ...adcats.et.byu.edu/Publication/01-2/Dabling01-2.pdf · INCORPORATING GEOMETRIC FEATURE VARIATION WITH KINEMATIC TOLERANCE
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
INCORPORATING GEOMETRIC FEATURE VARIATION WITH
KINEMATIC TOLERANCE ANALYSIS OF 3D ASSEMBLIES
by
Jeffrey G. Dabling
A thesis submitted to the faculty of
Brigham Young University
in partial fulfillment of the requirements for the degree of
This thesis has been read by each member of the following graduate committee and bymajority vote has been found to be satisfactory.
_________________________ ___________________________________Date Kenneth W. Chase, Chair
_________________________ ___________________________________Date Larry L. Howell
_________________________ ___________________________________Date Alan R. Parkinson
BRIGHAM YOUNG UNIVERSITY
As chair of the candidate’s graduate committee, I have read the thesis of Jeffrey G.Dabling in its final form and have found that (1) its format citations, and bibliographicalstyle are consistent and acceptable and fulfill university and department style require-ments; (2) its illustrative materials including figures, tables, and charts are in place; and(3) the final manuscript is satisfactory to the graduate committee and is ready for submis-sion to the university library.
_________________________ ___________________________________Date Kenneth W. Chase
Chair, Graduate Committee
Accepted for the Department
___________________________________Brent L. AdamsGraduate Coordinator
Accepted for the College
___________________________________Douglas M. ChabriesDean, College of Engineering and Technology
ABSTRACT
INCORPORATING GEOMETRIC FEATURE VARIATION WITH
KINEMATIC TOLERANCE ANALYSIS OF 3D ASSEMBLIES
Jeffrey G. Dabling
Department of Mechanical Engineering
Master of Science
As technology increases and performance requirements continually tighten, the
cost and required precision of assemblies increase as well. There exists a strong need for
increased attention to tolerance analysis to enable high-precision assemblies to be manu-
factured at lower cost. Methods for tolerance analysis of 2D and 3D assemblies have been
developed and are in use in both research and commercial applications. These methods
are usually very complex, and are usually best implemented in some type of automated
software. However, existing variation analysis software does not yet have an industry-
wide user base. In an effort to greatly increase the proportion of companies with variation
analysis capability, Paul Faerber [Faerber 1999] developed the TAKS method (Tolerance
Analysis Using Kinematically-Derived Sensitivities), allowing the creation of a tolerance
model from a kinematic mechanism using equivalent variational mechanisms (EVMs).
Such a model can then utilize much more widely used kinematic analysis software to per-
form tolerance analysis on an assembly, and even increment the position of the mecha-
nism for conducting analyses at every desired position very quickly. However, the TAKS
method was limited to 2D and did not incorporate geometric feature variation. This thesis
expands upon Faerber’s work to develop a kinematic analogy to 3D tolerance analysis that
also allows for inclusion of geometric feature variation sources. Libraries of 3D EVMs
are introduced that incorporate both dimensional and geometric variation in a kinematic
model. Methods of incorporating these equivalent joints into a kinematic model are set
forth and analysis techniques are explained. The use of a commercial kinematic software
package to automate the analysis is also demonstrated.
ACKNOWLEDGMENTS
I would like to thank my wife, Denette, for her patience and willingness to help me
accomplish this goal, and for her understanding of why this was so important to me. I will
always be indebted to Dr. Chase for his wonderful guidance and great friendship that truly
made it an enjoyable experience to pursue this thesis. Additionally, I would like to
acknowledge the help of Geoff Carlson for his work in preparing code to conduct analyses
with the Sandor method. Finally, I thank my Heavenly Father for His ever-vigilant care
and the love with which He guides me in all aspects of my life, including this research.
1.1 Variation Example ..............................................................................................21.2 Review of Previous Research .............................................................................31.3 Objectives ...........................................................................................................61.4 Research Approach .............................................................................................61.5 Research Scope ...................................................................................................71.6 Thesis Results .....................................................................................................71.7 Thesis Overview .................................................................................................8
2.1 Direct Linearization Method...............................................................................92.2 Incorporating Geometric Variation into Vector Models...................................15
2.2.1 Effects of Geometric Form Variation in Assemblies............................152.2.2 Statistical Tolerance Analysis and the Envelope Rule .........................192.2.3 Using Geometric Variation with the DLM ...........................................192.2.4 Example DLM Solution with Geometric Variation - Wedge Problem 23
2.3 Tolerance Analysis using Kinematic Sensitivities............................................302.3.1 Equivalent Variational Mechanisms.....................................................32
2.3.2 Example EVM Solution - One-Way Clutch .........................................372.4 Conclusion ........................................................................................................40
ix
CHAPTER 3 3D Kinematics Background..................................................................43
3.1 3D Kinematics ..................................................................................................443.1.1 Coordinate System Transformations ....................................................443.1.2 Elementary Derivative Operator Matrices, Qlm....................................473.1.3 Loop Derivative Operator Matrices, Dm...............................................483.1.4 Kinematic Position Analysis.................................................................483.1.5 Kinematic Velocity Analysis ................................................................51
3.2 Global Coordinate Method ...............................................................................533.3 3D Example: Crank Slider Assembly...............................................................57
3.3.1 Crank slider using Derivative Operator Matrix method .......................593.3.2 Crank slider using Global Coordinate method .....................................63
7.5.1 Query Select........................................................................................1497.5.2 Use of Dummy Parts in EVJs .............................................................1507.5.3 Multiple Vector Loops........................................................................1507.5.4 Measuring Direction Cosines in ADAMS ..........................................150
CHAPTER 8 Conclusions and Recommendations ..................................................153
8.1 Contributions and Results ...............................................................................1538.2 Conclusions.....................................................................................................1558.3 Recommendations...........................................................................................155
xi
APPENDIX A Derivation of Qlm ...............................................................................159
APPENDIX B Derivative of the General Loop Closure Equation.........................163
APPENDIX C Derivation of Dm ................................................................................165
APPENDIX D Derivation of Global Coordinate Method .......................................169
D.1 Derivative with Respect to a Length Variable ...............................................170D.2 Derivative with Respect to a Rotation Variable ............................................171D.3 Geometric Interpretation of the Derivatives ..................................................172
APPENDIX E Crank Slider Example Supplement .................................................177
APPENDIX F ADAMS Modeling Methods..............................................................181
F.1 Modeling the Vector Loop as an EVM ..........................................................182F.1.1 Creating Parts .....................................................................................182F.1.2 Creating Markers ................................................................................183F.1.3 Creating Geometry .............................................................................185F.1.4 Creating Mass Properties....................................................................185F.1.5 Applying a Slider Joint .......................................................................186F.1.6 Finishing the Vector Loop..................................................................186
F.2 Joint Location and Orientation .......................................................................187F.3 Modeling Equivalent Variational Sources......................................................192F.4 Conducting the Analysis.................................................................................193
TABLE 2.1 Explanation of Modes of Geometric Variation in Assemblies
Variation Type Cause of Variation
Translational Results from line contact, such as a cylinder on a plane. The cylinder could rest on a peak or down in a valley of the surface waviness (as shown in Figure 2.2), resulting in vertical changes in the cylinder position from one assembly to the next.
Rotational Results from surface contact. The corner of a block could rest on a peak or down in a valley of the surface waviness (as shown in Figure 2.2), resulting in rotation of the block from one assembly to the next.
17
propagation of geometric variation will occur, as shown in Figure 2.3. In those directions
where motion is constrained, however, the possibility exists for propagation of geometric
variation (F). This will occur when the mating surfaces are subject to errors in shape or
Figure 2.2 3D Effects of Geometric Variation [Chase et al. 1996]
The effect of feature variations in 3D depends upon the joint type and which joint axis you are looking down.
3D cylindrical slider joint
View looking down the cylinder axis
View normal to the cylinder axis
x
y
z
Nominal Circle
Cylindricity Tolerance Zone
Translational Variation
Flatness Tolerance Zone
Flatness Tolerance Zone
Rotational Variation
x y
z
K
K
F
F
K Kinematic Motion F Geometric Feature Variation
x y
z
K
K K
F
F
K K
F
Cylindrical Slider Joint Planar Joint
Figure 2.3 Degrees of Freedom for kinematic motions and geometric feature variations [Chase et al. 1996]
18
orientation. Understanding the constrained degrees of freedom, it is possible to map the
variation that will occur due to specific geometric variation types corresponding to each
3D kinematic joint. Such a mapping is shown in Table 2.2, where the most common com-
binations of joint types and geometric variations are included. This data has been devel-
oped by [Goodrich 1991] and [Ward 1992], and updated in the publication [Chase et al.
1996]. Note that from Figure 2.3, the total number of kinematic and geometric DOFs for
any joint should sum to six. Therefore, in the most general case, the number of geometric
varations shown in Table 2.2 would be equal to the number of kinematic DOFs for that
TABLE 2.2 Rotational and translational variations associated with corresponding geometric feature tolerance-kinematic joint combinations in 3D
Joints
Geom Tol
Revolute
Cylindrical
Prismatic
Planar
Crscyl
Spherical
Parcyl
Edgsli
Cylsli
Pntsli
Sphsli
R x R z R x R z R x R z R x R z R x R z R x R z R x R z T y
R x R z R x R z R x R z R x R z R x R z R x R z R x R z T x T z T x T z
R x R z R x R z R x R z R x R z R x R z R x R z R x R z T x T z T x T z
R x R y R z
R x R z
R x R z
R x R y R z R x R y R z R x R y R z R x R y R z R x R y R z
T x T y T z T x T y T z T x T y T z T x T y T z T x T y T z
T y T y T y T y T y T y
T y T y R x T y R x T y R x T y R x R x T y R x R x R x
E P
P
P
P
C
Pt
S
T y R x T y R x T y R x
T y R x T y R x T y R x T y R x T y R x T y R x
T y R x T y R x T y R x T y
T y R x T y R x T y R x
T y R x T y R x T y R x T y R x T y R x T y R x
T y R x T y R x T y R x T y T y R x T y R x T y R x
T y T y T y T y T y T y T y T y
T y T y T y T y T y T y T y T y
T y T y T y
n Table 2.2 Note: Crscyl = Crossed CylindersParcyl = Parallel CylindersEdgsli = Edge slider (E for edge, P for plane)Cylsli = Cylindrical slider (C for cylinder, P for plane)Pntsli = Point slider (Pt for point, P for plane)Sphsli = Spherical slider (S for sphere, and P for plane)
19
joint subtracted from six. However, the table as shown is not in the most generalized
form, and has neglected some variations thought to be less significant or more easily
attributed to dimensional variation.
2.2.2 Statistical Tolerance Analysis and the Envelope Rule
ANSI Y14.5M-82 defines Rule #1 as: “the surface of a feature shall not extend
beyond the boundary (envelope) of perfect form at MMC.” This is also known as the
Envelope Rule. It is important to note in this discussion of geometric feature variation that
the Envelope Rule applies only to worst case tolerance analysis.
The Envelope Rule, and Geometric Dimensioning & Tolerancing modifiers MMC
and LMC, were established for 100% inspections, to allow for inspection with “go/nogo”
gages. Statistical methods do not require 100% inspection. In an inspection with a “go/
nogo” gage, the only concern is whether the part will pass or fail, with no regard for where
the part lies in a theoretical distribution. This rule requires that all features of a part must
lie within a specified boundary (tolerance zone) established relative to the maximum
material condition (MMC). Thus, the rule does not allow any parts to be outside the speci-
fication at this condition, while a statistical analysis will always predict that some percent-
age of the assemblies will fail. Therefore, the envelope rule cannot be applied to statistical
tolerance analysis [Goodrich 1991].
2.2.3 Using Geometric Variation with the DLM
Once the effects of the geometric feature variation have been characterized in the
assembly, they can be incorporated into the tolerance model using the DLM. For a geo-
20
metric feature that induces a rotational variation at a joint as indicated in Table 2.2, a rota-
tional matrix using rotation variables φx, φy, or φz is inserted into the assembly constraint
Equation (2.2) as shown in Equation (2.1). Where Table 2.2 indicates a translational vari-
ation for the specific joint, a translational matrix using the variables Tx, Ty, or Tz is
inserted into the assembly constraint equation.
In conventional tolerance analysis, variation is approximated by the dimensional
tolerances by assuming each tolerance represents 3σ, or half the process capability. So, in
like manner, the geometric variation will be assumed to be equal to the geometric toler-
ances by setting the geometric tolerance band equal to ±3σ of the process capability.
The variables used for geometric feature variation have nominal values of zero and
variation corresponding to the specified tolerance value. For example, the rotational vari-
ation due to flatness variation in a joint between two planar surfaces depends on the allo-
cated flatness tolerance value and the characteristic length, which is the length of contact
between the two surfaces. This variation is shown in Equation (2.11),
(2.11)
where ±∆β is the rotational variation caused by flatness variation in a planar joint. The
translational variation in a joint between a cylinder and a plane is equal to ±α/2, where α
is the width of the tolerance zone. Once the assembly constraint equation has been written
to include the geometric variation variables, derivatives can be approximated using Equa-
tions (2.3).
∆β tan 1– Flatness Tolerance ZoneCharacteristic Length
However, referencing the amount of matrix operations necessary, there is a large
difference between the two methods. Using the number of matrix multiplications required
just for the Crank Slider model, the two methods can be compared. To form the loop
derivative operator matrices ([Dm]), it is required to complete 47 matrix concatenations.
That is, according to Equation (3.9), the first loop DOM is formed with two matrix multi-
plications by multiplying the first concatenation (simply the first transformation matrix in
the loop) by [Qim], and then by a closed-form inverse of the concatenation to that point.
The next DOM is formed through three matrix multiplications, multiplying one more
transformation matrix onto the loop concatenation, and then again by [Qim], and then by
the closed-form inverse of the concatenation to that point. The remainder of the 16 trans-
formation matrices are treated the same way, totalling in 47 matrix multiplication opera-
tions.
For the Global Coordinate method, the model is treated as an assembly of vectors.
Once the information about the joint coordinates and direction cosines is gathered for the
model, the sensitivity matrices are assembled according to the closed-form equations in
Equation (3.26). No matrix multiplications are necessary.
The two methods were compared in this chapter using the crank slider example,
showing the Global Coordinate Method to be more efficient and easier to use. Although
both methods were used for verification for all cases presented in this thesis, the results
were identical, thus only the Global Coordinate Method results are shown in Chapter 6,
where the full analysis of each example is presented.
69
CHAPTER 4 3D EQUIVALENT VARIATIONAL MECHANISMS
A key to the modeling of mechanical assemblies using a kinematic analogy is the
proper use of equivalent variational mechanisms (EVMs) in the kinematic model. Chapter
2 demonstrated the concept of EVMs, which were equivalent mechanisms designed to
allow the modeling of mechanical assemblies that incorporate dimensional variation. In
that chapter, the 2D EVMs developed by [Faerber 1999] were demonstrated, which
allowed dimensional variation to be incorporated into both mechanisms and static assem-
blies. This chapter will present a comprehensive set of 3D EVMs and detail the necessary
techniques for incorporating them into kinematic models. The objective of these EVMs is
to create a kinematic model which can correctly calculate sensitivities to dimensional vari-
ation using conventional kinematic modeling techniques.
4.1 Vector Loops
The first step to proper modeling of an assembly or mechanism with EVMs is the
development of the vector loop. A few of the basic rules in developing vector loops are
described below, from [Chase 1999]:
70
• First, the set of loops must pass through every part and joint in the assembly.
• As a vector loop traverses a part, it must enter the part through a joint, and pass through the part’s DRF (see Section 2.3.1.1), and then exit through a joint to the next part.
• Additionally, no single loop may pass through a part or joint more than once; but it may start and end in the same part.
• There must be enough vector loops to solve for all the kinematic vari-ables: one loop for every three variables in a 2D assembly, or for every six variables in a 3D assembly.
• Finally, the paths of a vector loop must follow part dimensions or kine-matic variables.
4.2 Equivalent Variational Sources
A successful EVM includes kinematically equivalent joints that allow the inclu-
sion of variational elements. From Section 2.3.1.2, in the background discussion of
Equivalent Variational Sources, [Faerber 1999] showed that as velocity can be made anal-
ogous to variation, velocity elements should be added to the EVMs to allow variation to be
included.
The elements used in the EVMs to represent dimensional variation are illustrated
in Figure 4.1. All vectors in an EVM in which linear variation could occur are given slider
(prismatic) joints to allow linear variation. Thus, each vector, or link, in the assembly is
modeled with two sublinks joined by a slider joint. Where angular dimensional variation
could occur, a pin joint is inserted. The input velocities shown in Figure 4.1 are applied
only when the corresponding variation source is independent, such as a dimension or
angle created by a production process. When equivalent variational elements are included
in kinematic models, to allow small adjustments due to kinematic (dependent) variation,
71
no input velocity is applied. Also note, if prismatic or pin joints already exist in the model
in the appropriate places, duplicate joints are not created, as these equivalent variational
sources do not replace existing joints [Faerber 1999]. Figure 4.2 demonstrates these ele-
ments, plus all other elements used in the creation of the EVMs and explains their pur-
pose.
4.3 3D Equivalent Variational Joints
Note that equivalent variational joints (EVJs) are only necessary for those joints
which, if modeled with vectors, would have vectors with dimensioned variables passing
through points of contact between the two parts, such that dimensional variation could be
physically introduced into the assembly through the joint. Therefore, the following joints
2 ± d2d2dt
Equivalent elementAngular dimension
2
dl
Equivalent elementLength dimension
l ± dl
Figure 4.1 Equivalent Variational Sources for incorporating independent variation in kinematic models [modified from Faerber 1999]
72
do not need EVJs, or in other words, are identical in EVM form: rigid, prismatic, revolute,
cylindrical, spherical, and planar.
Parallel Cylinders Joint: The parallel cylinders joint has only two degrees of
freedom. One degree of rotation where the cylinders are free to rotate about each other,
and the other DOF is the freedom of the cylinders to translate along their cylindrical axes
with respect to each other. This joint does have an EVJ, as dimensional variation can be
introduced into this joint. The parallel cylinders joint and its proposed EVJ are shown in
Figure 4.3. The EVJ represents the translational degree of freedom with a prismatic joint
at the point of contact, which allows translation between the cylinders along the cylindri-
A Prismatic Joint shows a translational kinematic DOF
A hollow Pin Joint shows a variation source for angular dimensional variation
A Planar Joint shows translational kinematic DOFs in two directions, with a rotational DOF
A Spherical Joint shows rotational kinematic DOFs about all 3 axes
A schematic slider joint represents an additional prismatic joint used as an equivalent variation source for linear dimensional variation
A 3D representation of a Pin Joint shows a rotational kinematic DOF
A lock symbol indicates a Rigid Joint, which eliminates any DOFs between two parts.
Figure 4.2 Explanation of elements used in EVMs
73
cal axes while constraining the cylinders to remain parallel. Then, pin joints are added at
the equivalent centers of the cylinders (separated from the point of contact by R1 and R2,
respectively), which allow rotation only about the cylindrical axes. R1 and R2 include
slider joints, added to represent dimensional variation in the cylinder radii.
Edge Slider: The edge slider joint allows translation along the plane of contact (in
both directions), rotation about the line of contact, and rotation about the axis normal to
the plane of contact. The EVJ is therefore constructed with a planar joint to allow the
translational and the second rotational degree of freedom, with a revolute joint coincident
with the center point of contact to allow rotation about the line of contact. The edge slider
joint and its equivalent are shown in Figure 4.4. Notice that this joint type will allow no
dimensional variation to propagate. An EVJ is thus included only because this joint type
ing rotation about the centerline. The radii of the inner and outer cylinders do not intro-
duce variation either internally or externally. An internal vector allows translation
between the two cylinders. This translation, however, is kinematic and does not generate
nor does it propagate dimensional variation. By contrast, the parallel cylinders joint does
require a distinct EVJ. As can be seen in Figure 4.18, the parallel cylinders EVJ includes
two vectors internal to the equivalent joint which represent R1 and R2 of the cylinders. It
is necessary to model this joint with an EVJ so that variation can be introduced into these
radii.
An additional reason to have an EVJ for some joints is the possibility that a kine-
matic modeler may not include a specific joint type in its joint library. ADAMS does not
include a parallel cylinders joint, or an edge slider, or any of the other kinematic joint
types that have been represented by EVJs in this research. Thus, it is required to model
these joints with equivalent joints, even though perhaps no dimensional variation is gener-
ated within the joint, as is the case with the edge slider.
4.6 Conclusion
With the development of Equivalent Variational Mechanisms, the dimensional
variation in a 3D mechanical assembly can be included in a kinematic velocity analysis of
the equivalent mechanism. An EVM is simply constructed of equivalent variational
sources and equivalent variational joints. Use of the EVM allows the use of kinematic
software to model assemblies with dimensional variation and solve for the tolerance sensi-
86
tivities. Additionally, the kinematic software can analyze not just mechanisms, but also
static assemblies when using EVMs.
87
CHAPTER 5 INCLUDING GEOMETRIC VARIATION IN EVMS
The previous chapter introduced a comprehensive set of Equivalent Variational
Mechanisms (EVMs) for including dimensional variation in kinematic models of mechan-
ical assemblies. However, as was shown in the background sections of this thesis, geo-
metric variation, not just dimensional variation, can contribute significantly to the total
assembly variation. Therefore, this chapter will illustrate how geometric variation can be
accounted for using modified versions of the EVMs presented in Chapter 4. A Geometric
Equivalent Variational Mechanism (GEVM) can be created simply by adding specific
degrees of freedom to the equivalent variational joints demonstrated in Chapter 4.
Only form variations occurring in mating contact surfaces between parts of assem-
blies can introduce variation, which can then accumulate statistically and propagate kine-
matically. Surface variations at any other location will not contribute to assembly
variation. The kinematic degrees of freedom between mating parts also occur between the
mating surfaces, and are modeled as kinematic joints located at the points of contact. The
88
joint axes are aligned with the kinematic degrees of freedom, which can adjust in response
to variation. Motion constraints are also described by kinematic joints.
5.1 Geometric Equivalent Variational Joints
When the dimensional EVJs were presented in Chapter 4, it was noted that not all
of the included kinematic joint types generate dimensional variation. Thus, not all joint
types required an EVJ. However, all of the kinematic joint types can introduce and propa-
gate geometric variation. Thus, each will have a geometric equivalent variational joint
(GEVJ). The modifications to the EVJs were accomplished by adding to the EVJ the
degrees of freedom that are able to introduce geometric variation. This differs according
to joint type and geometric tolerance callout, as shown in Table 5.1 (reprinted from Table
2.2).
The specific directions of rotations and translations shown in this table assume the
joints to be in the orientations shown later in this chapter. To apply this data to an actual
joint, the DOFs cited in the table must be referenced to the orientation of the generic joints
in this chapter and then reoriented according to the local coordinate system of the actual
joint to be analyzed. Also note that although there are 121 different possible combinations
of joint/geometric tolerance combinations in Table 5.1, there exist only eight unique vari-
ation configurations. That is, several joint/tolerance combinations exhibit the same
“RxRz” variation configuration, while several others exhibit the “TyRx” configuration.
This enhances the ability to automate the use of geometric variation, as only these eight
configurations need be programmed.
89
The following GEVJs include all degrees of freedom introduced by any of the tol-
erance callouts in Table 5.1. However, when modeling, care must be taken to remove the
degrees of freedom that do not apply to the specific situation. For example, when model-
ing a Planar joint which has an angularity callout applied to it, there is no geometric fea-
ture variation in the Ty axis according to the table. Thus, that geometric variation degree
of freedom could be removed for that situation, even though the generic GEVJ includes it.
Rigid Joint: The rigid joint had no EVJ for dimensional variation. Additionally,
it has zero kinematic degrees of freedom. From Figure 2.3, it was shown that in any axis
TABLE 5.1 Rotational and translational variations associated with corresponding geometric feature tolerance-kinematic joint combinations in 3D
Joints
Geom Tol
Revolute
Cylindrical
Prismatic
Planar
Crscyl
Spherical
Parcyl
Edgsli
Cylsli
Pntsli
Sphsli
R x R z R x R z R x R z R x R z R x R z R x R z R x R z T y
R x R z R x R z R x R z R x R z R x R z R x R z R x R z T x T z T x T z
R x R z R x R z R x R z R x R z R x R z R x R z R x R z T x T z T x T z
R x R y R z
R x R z
R x R z
R x R y R z R x R y R z R x R y R z R x R y R z R x R y R z
T x T y T z T x T y T z T x T y T z T x T y T z T x T y T z
T y T y T y T y T y T y
T y T y R x T y R x T y R x T y R x R x T y R x R x R x
E P
P
P
P
C
Pt
S
T y R x T y R x T y R x
T y R x T y R x T y R x T y R x T y R x T y R x
T y R x T y R x T y R x T y
T y R x T y R x T y R x
T y R x T y R x T y R x T y R x T y R x T y R x
T y R x T y R x T y R x T y T y R x T y R x T y R x
T y T y T y T y T y T y T y T y
T y T y T y T y T y T y T y T y
T y T y T y
n Table 5.1 Note: Crscyl = Crossed CylindersParcyl = Parallel CylindersEdgsli = Edge slider (E for edge, P for plane)Cylsli = Cylindrical slider (C for cylinder, P for plane)Pntsli = Point slider (Pt for point, P for plane)Sphsli = Spherical slider (S for sphere, and P for plane)
90
of a joint for which a kinematic degree of freedom did not exist, geometric feature varia-
tion would propagate. As the rigid joint has no kinematic degrees of freedom, it must
propagate geometric feature variation through all six available axes. Thus, the equivalent
joint must allow for translational geometric variation in X, Y and Z, and rotational geomet-
ric variation about these same axes. It is modeled by using a spherical joint attached to a
planar joint through a slider joint. The nominal value of the translational vector between
the spherical and planar joints may be zero, such that all rotational and translational varia-
tion nominally occurs at the contact point between the two parts. Additionally, the rota-
tional degree of freedom on the planar joint must be disabled to avoid introducing too
many degrees of freedom into the joint. The rigid joint and its GEVJ are shown in Figure
5.1, where all axes that generate geometric feature variation are marked with an f.
Note that the added planar joint does not respond kinematically to absorb dimen-
sional variation. The vectors in the sliding plane represent process variations, such as a
block welded or bolted to a plate, where locating errors may occur before the welding
operation takes place. The result is a 2D position error which varies from assembly to
assembly. It is a variation source that can propagate through the assembly along with
dimensional variation.
Equivalent Variational Joint
Geometric EVJ (6 feature DOFs)
Rigid (no motion)
No Change
f f
f f
f f X Y
Z
Figure 5.1 Rigid Joint and its GEVJ
91
Prismatic Joint: The prismatic joint also has no dimensional EVJ. However, a
GEVJ does exist. From Table 2.2, it is shown that rotations about the X, Y and Z axes can
propagate as geometric variation through this joint. Therefore, the only modification to
the original joint is to add a spherical joint to one end of the prismatic joint. In modeling
practice, there would be no distance between the prismatic and spherical joints, such that
the rotational variations occurred at the point of contact between the two parts. This new
GEVJ and the original prismatic joint are illustrated in Table 5.2, where the axes through
which geometric variation can propagate are denoted by f.
Revolute Joint: Once again, the revolute joint has no EVJ for dimensional varia-
tion. The GEVJ, however, adds an additional four degrees of freedom to the joint, per
Table 2.2. The revolute joint can propagate geometric variation through translations in the
X and Z axes, and rotations about the same. The GEVJ for the revolute joint is a simple
mechanism composed of a spherical joint with two translational slider joints. The rotation
about the Y axis of the spherical joint supplies the original kinematic degree of freedom,
while the additional two rotations and two translations provide the ability to propagate
geometric feature variation. The X and Z translations represent the variation in the Y axis
location, while the X and Z rotations represent the variation in the Y axis orientation.
Equivalent Variational Joint
Geometric EVJ (3 feature DOFs)
Prismatic (1)
No Change f
f f
X Y
Z
Figure 5.2 Prismatic Joint and its GEVJ
92
Notice that the slider joint for translation in the X direction is added at the end of the slider
joint for the Z translation, such that there is only one vector path through the part. How-
ever, the X rotation is still about the X axis of the spherical joint, and not about the relo-
cated slider joint vector for the x-direction. The nominal length for both of these slider
joint vectors is zero. The Revolute joint and its GEVJ are shown in Figure 5.3.
Parallel Cylinders Joint: The parallel cylinders joint does have an EVM from
Chapter 4, which is shown in Figure 5.4. The geometric variation/joint combination table
specifies that the parallel cylinders joint only allows geometric variation to propagate
through translation in the Y axis and rotation about the X axis. Therefore, an equivalent
pin joint is added that rotates about the X axis, where the kinematic rotation is about the Z
axis. The additional slider joint vector has a nominal length of zero (as do all geometric
tolerance variables) and is added between the additional pin joint and the original pris-
Again, it is noted that the ωi terms are the direction cosine angles of the axes of
rotation, such that if an axis of rotation is considered a vector, the derivatives in Equation
(D.7) of the rotation equations are analogous to the derivatives of the translational equa-
tions in Equation (D.5).
D.3 Geometric Interpretation of the Derivatives
To further illustrate the derivation of the derivatives demonstrated in this Appen-
dix, the geometric interpretation of the same is shown here, as taken from [Gao 1993].
Figure D.1 shows a 3D vector loop with a perturbation δL3 along the vector L3. ∆X, ∆Y,
and ∆Z are the resultant variations at the end point of the last vector. When these varia-
X
Y
∆ Y ∆ X ∆ Z
Z
δ L
L
L
L
L
L
1 2
3 3 4
5
Figure D.1 A 3D vector loop with perturbation δL3
173
tions are divided by δL3, the results are the derivatives with respect to L3. Thus the deriv-
atives with respect to a translational variable δL3 can be obtained simply, as shown:
(D.8)
where α, β, γ are the direction cosine angles of vector L3, or the angles between L3 and the
global X, Y and Z axes, respectively.
For a rotational variation, the derivatives are harder to illustrate, but the process for
arriving at the derivatives is similar. Equation (D.2) shows a 3D vector loop with an angle
variation δθ3z around a local z axis. This angle variation at Joint 3 will produce transla-
tional variations ∆X, ∆Y and ∆Z as well as rotational variations ∆Θx, ∆Θy, ∆Θz at the glo-
Translational Equations
∂Hx∂L3---------- ∆X
δL3---------≅ αcos=
∂Hy∂L3---------- ∆Y
δL3--------- βcos=≅
∂Hz∂L3--------- ∆Z
δL3--------- γcos=≅
Rotational Equations
∂Hθx∂L3
------------- 0=
∂Hθy∂L3
------------- 0=
∂Hθz∂L3
------------ 0=
X
Y
Z
L
L
L
L
L x
y
z δθ
Joint 3
1
2
3 4
5
3z
Figure D.2 A 3D vector loop with angle perturbation δθ3z
174
bal coordinate origin. It is easy to obtain the resultant angle variations at the global
coordinate system, if we place a unit vector ω representing the rotational variation, whose
components in the global X, Y, and Z directions are ω1, ω2 and ω3 respectively. Then:
(D.9)
If the angle variable δθ3z is considered as a vector, ω1, ω2 and ω3 have the same
meanings as directions cosines that have been discussed in the translational variable case.
So the remaining work is to find out ∆X, ∆Y, and ∆Z caused by δθ3z.
Figure D.3 illustrates how ∆X is calculated. From the figure, it can be seen that
only rotations about Y1 and Z1 affect ∆X.
Thus:
(D.10)
∆Θx ω1δθ3z=
∆Θy ω2δθ3z=
∆Θz ω3δθ3z=
X
Y
Z
x
y
z δθ
Y
X
Z
(X Y Z)
∆Θ = ω δ θ
∆Θ = ω δ θ
∆Θ = ω δ θ
Y ω δ θ
− Z ω δ θ ∆ X
1
1
1
y
x z
3z 2 3 z
1 3 z 3 3 z
3 3 z
2 3 z
Figure D.3 Components of ∆X caused by δθ3z
∆X Yω3δθ3z Zω2δθ3z–=
175
In the same way, ∆Y and ∆Z can be found:
(D.11)
So the derivatives can be expressed as:
(D.12)
∆Y Zω1δθ3z Xω3δθ3z–=
∆Z Xω2δθ3z Yω1δθ3z–=
Translational Equations
Hx∂
θ3z∂----------- ∆X
δθ3z-----------≅ Yω3 Zω2–=
Hy∂
θ3z∂----------- ∆Y
δθ3z-----------≅ Zω1 Xω3–=
Hz∂
θ3z∂----------- ∆Z
δθ3z-----------≅ Xω2 Yω1–=
Rotational Equations
Hθx∂
θ3z∂------------
∆Θxδθ3z-----------≅ ω1=
Hθy∂
θ3z∂------------
∆Θyδθ3z-----------≅ ω2=
Hθz∂
θ3z∂------------
∆Θzδθ3z-----------≅ ω3=
176
177
APPENDIX E CRANK SLIDER EXAMPLE SUPPLEMENT
This appendix contains supplemental information for the Crank Slider example
analyzed in Chapter 3 using the Derivative Operator Matrix method.
Table E.1 contains the values for each rotation and translation necessary to create a
matrix loop of the Crank slider model. The general notation for a transformation matrix in
this appendix is [Lij,m], where i represents the origination node for the transformation, j
represents the destination node, and m differentiates which among the transformations Tx,
Rx, Ry, or Rz are indicated for that matrix. Therefore, the transformation for the translation
in X between nodes 1 and 2 is [L12,tx], and is described in the second row of the table. The
transformation for the rotation about the Y axis between nodes 4 and 5 is [L45,ry], and is
described in the eleventh row in the table.
The table also provides additional information necessary to understand the model.
In the “Matrix #, Variable (Type)” column is a simple number index used for convenience
in referring to the matrices in the table and the names of each of the independent and
178
dependent variables in the loop. A transformation described with a “c” in this column is a
constant, and no variation is input and no derivative operator matrix is used on this vari-
able. No variable names are assigned to these constant values. A matrix followed by a
variable name and an “i” indicates an independent variable, and is a source of variation in
the model. A variable with a “d” indicates a dependent variable, or one which responds to
the variation in the independent variables. It is the dependent variables whose values are
TABLE E.1 Table of variable entries for forming transformation matrices
Matrix #,Variable (Type)
Transformation Matrix
Type 4 X
Type 1 θx
Type 2 θy
Type 3 θz
Node 1 1, c Ry -90°
2, A (i) Tx 20 cm
3, c Ry -90°
Node 2 4, B (i) Tx 12 cm
5, c Ry -90°
6, c Rz 45°
Node 3 7, C (i) Tx 15 cm
8, c Ry 96.051985°
9, c Rz -14.280631°
10, φ1 (d) Ry 0°
11, φ2 (d) Rz 0°
Node 4 12, D (i) Tx 43 cm
13, c Ry -81.732552°
14, c Rz -44.720313°
15, φ3 (d) Ry 0°
16, φ4 (d) Rz 0°
17, φ5 (d) Rx 0°
Node 5 18, E (i) Tx 5 cm
19, c Ry -90°
20, c Rz -20.194857°
Node 6 21, U (d) Tx 53.439 cm
179
iterated to find proper loop closure when a position analysis is performed using the DOM
method.
To form transformation matrices from this table, the variable value in that row is
inserted into the appropriate elementary transformation matrix from Equations (3.2)
through (3.5). Therefore, to form the fourth matrix, as the variable is in the “Type 4 - X”
column, the Type 4 matrix from Equation (E.1) (reprinted from Equation (3.5)) is used,
and 12 cm is input for the X variable in that matrix, resulting in Equation (E.2). The rest
of the matrices are formed similarly.
(E.1)
(E.2)
Of special interest in this table are the matrices 8 through 11, and 13 through 17.
They bring to light an important characteristic of the DOM method. In its standard use,
sensitivities can only be calculated for those variables contained in the transformation
matrices necessary to traverse the matrix loop describing the mechanism.
For example, if a rotation φ1 is made about the local y-axis in one transformation,
and then a rotation φ2 is made about the newly-transformed z-axis in the next transforma-
tion to arrive at a new coordinate system, the DOM provides for taking sensitivities about
Tij4[ ]
1 0 0 x0 1 0 y0 0 1 z0 0 0 1
=
L23 tx,[ ]
1 0 0 120 1 0 00 0 1 00 0 0 1
=
180
φ1 and φ2, not about the axes of the final coordinate system. However, in conducting a tol-
erance analysis, it is always proper to measure sensitivities about the final joint coordi-
nates, not about the intermediate rotations used to arrive at the coordinate system.
Therefore, matrices 8 and 9 in Table E.1 represent the rotations necessary to arrive
at the final joint coordinate system for the spherical joint at Node 4 (see Figure 3.3).
Matrices 10 and 11 then contain dependent, nominally 0° rotation variables about the final
y- and z-axes of the joint, respectively. As matrix 10 is nominally zero, it will not change
the coordinate system, and matrix 11 will represent the z-axis of the same coordinate sys-
tem. The sensitivities taken about the final y- and z-axes of the joint, φ1 and φ2, respec-
tively, are then actually represented in matrices 10 and 11, while matrices 8 and 9 must
remain as constants so as to not change the desired coordinate system of the joint. Matri-
ces 13 and 14 are followed by 0° rotation matrices for the same reason.
181
APPENDIX F ADAMS MODELING METHODS
This appendix contains a manual for properly modeling EVMs in ADAMS. These
methods were followed when creating and analyzing the mechanisms demonstrated in
Chapter 7. As this section will only serve useful to those who are attempting to model
EVMs and GEVMs in ADAMS, it will be assumed that the reader has already become
somewhat familiarized with the ADAMS interface through the on-line documentation
such as “Getting Started Using ADAMS/View”, or “Learning ADAMS/View Basics”.
To summarize what is contained in this appendix, the first step to modeling an
EVM is to locate and orient the local coordinate systems of each part in the assembly, or
each vector in the loop. Each of these parts are then augmented with markers that define
the extents of the parts. Markers serve as local coordinate systems that allow parts to be
joined, and allow displacement and velocity between parts to be tracked. Once the parts
and markers are created, geometry is added to give visibility to the parts. Until then, the
parts are only identified by coordinate system triads in space. Then, as explained in Sec-
tions 2.3.1.2 and 4.2, each vector in the loop is represented by two sublinks in ADAMS
182
which are joined by a slider joint. Once the slider joints are added, the remaining Equiva-
lent Variational Joints and Geometric Equivalent Variational Joints (Chapters 4 and 5) are
assembled to the model to properly constrain the links with respect to each other. This
appendix will show how to model the basic joint types which are used in the creation of
the EVJs and GEVJs, but does not actually show how to build those equivalent joints spe-
cifically. See Chapters 4 and 5 on how the basic joint types are used together to form
equivalent joints. Velocity functions are then added to the slider joints on the independent
links, and measures are created to track the velocities of the dependent links. The analyses
are performed, and finally the sensitivities are extracted.
F.1 Modeling the Vector Loop as an EVM
The basic steps for modeling EVMs were outlined in [Faerber 1999] along with a
suitable naming convention for the associated parts and links. The naming convention
defined by Faerber will be used here, with only small modification, and the reader is
encouraged to read Chapter 5 of his thesis for any questions regarding this convention. As
a newer version of ADAMS (10.1) with a much improved interface is being used with this
research, these basic modeling steps will be updated in this section, although Faerber’s
underlying methods are still the same.
F.1.1 Creating Parts
Parts can be created in ADAMS by clicking PART - CREATE - RIGID_BODY -
NAME_AND_POSITION in the Command Navigator. As described by Faerber, it is
convenient to create the first sublink of the EVM with zero length. For an EVM represent-
183
ing the vector “A” of the tolerance vector loop, the first part is named “.model.a1”, where
“model” is the name of the model in ADAMS. “0,0,0” is entered into the “Location”
field, and normally “0,0,0” is entered into the “Orientation” field. The location and orien-
tation are relative to some object or marker, whose name is entered in the “Relative To”
field. For the first link in the EVM, the model or the ground part is selected for the “Rela-
tive To” field. Note that the convention used here is that the length of the vector is defined
as being along the local x-axis of the link. If the orientation of the ground part or whatever
marker is being referenced in the “Relative To” field is not oriented in this manner, the
“Orientation” field of part a1 should be changed to reflect that.
The second sublink for the A vector is now created and named “.model.a2”. As
the first sublink is to be zero-length, the second is placed directly on top of it. Thus, the
“Relative To” field is entered with the name “.model.a1”, and the “Location” and “Orien-
tation” fields are again entered as “0,0,0”.
F.1.2 Creating Markers
At least two markers are created on each part to define the linear extent of the part.
As discussed in Faerber’s naming convention, the two markers which define the extents of
part a1 are named a0 and a1, and are both coincident with the initial position of part a1, as
it is a zero-length part. They can be created by clicking MARKER - CREATE in the
Command Navigator. The “Marker Name” field will be entered with “.model.a1.a0” for
the a0 marker, and “.model.a1.a1” for the a1 marker. The “Relative To” field is entered
with the part “a1” (“.model.a1”) for both markers, in addition to “0,0,0” for the location
and orientation of both markers.
184
The part a2 will have three markers; two will define the extents of the part and the
third will define the orientation of the next link in the vector chain. A representation of the
placement of these markers is shown in Figure F.1. The markers a2 and a_geo_mar (or
some other suitable name) are oriented identically, and are used to define the extents of the
part. The markers a2 and a_geo_mar are created similarly to a0 and a1, but based on part
a2, such that the name for each marker will be “.model.a2.a2” and
“.model.a2.a_geo_mar”. Marker a2 is placed coincident with the first two markers, and
thus its location and orientation are “0,0,0” relative to marker a1. Although the orientation
of a_geo_mar is also “0,0,0” relative to a1, as it defines the extent of this vector A, its
location will be entered as “X,0,0”, where X is the length of the vector A as defined in the
vector loop.
The final marker, a3, will be placed at the same location as a_geo_mar relative to
marker a1, but will be oriented differently. It is generally much more convenient to orient
a3 to align with the orientation of the next link in the vector chain. Therefore, the orienta-
0
3
21
LinkSchematicRepresentation
MarkerPlacement
Part 1
Part 2 Geo_mar
Figure F.1 Representation of marker placement on sublinks with slider joint [modified from Faerber 1999]
185
tion for a3 will be entered such that its local coordinate system corresponds to the desired
orientation for the next link in the vector loop, remembering to enter the values in
body231 sequence.
F.1.3 Creating Geometry
Geometry is created for the sublink parts to make them visible. This is accom-
plished by selecting GEOMETRY - CREATE - SHAPE - LINK. A standard name, such
as “.model.a1.geom” could be created for the geometry that will be attached to the a1 part.
The names of the I and J markers that define the part will be entered, which would be
“.model.a1.a1” and “.model.a1.a0”, respectively, for the a1 part geometry. The width and
depth may be entered as whatever values seem visually appealing to the user. This same
process is repeated for the a2 part, where the geometry is based on markers a2 and
a_geo_mar. The a_geo_mar was created specifically as a reference for the geometry, as
the two markers which define the geometry must have the same orientation, while marker
a3 is given a different orientation. Note that due to the way geometry is created by
ADAMS, even the zero-length sublinks will be visible once geometry is added.
F.1.4 Creating Mass Properties
Although mass properties should not be necessary in ADAMS for a strictly kine-
matic analysis, they may be needed if the model has more than zero kinematic degrees of
freedom, which would require running a dynamic analysis. Note that the resulting veloc-
ity sensitivities should be the same regardless of whether dynamic or kinematic is chosen
for the analysis type. The process for applying mass properties starts with selecting PART
186
- CREATE - RIGID_BODY - MASS_PROPERTIES. The part name to which the mass
properties will be applied is selected, and “Calculated Mass Properties” and “Material
Type” are selected. Then the user may double-click the field to the right of “Material
Type”, and select one of the materials there. It does not matter which material type is cho-
sen.
F.1.5 Applying a Slider Joint
To finish the EVM link, a slider joint must be applied between the two sublinks.
This translational joint is added by selecting CONSTRAINT - CREATE - JOINT -
TRANSLATIONAL. The joint could be named “a_trans”, or something similar, identify-
ing both the joint type and the part name. The translational joint is then positioned using
coordinates, as discussed in Section F.2, using part a1 as the “I Part”, and part a0 as the “J
Part”. The location is “0,0,0” and the orientation is “90,90,0” relative to “.model.a1.a1”.
If this is to be an independent link, then a velocity function will be added, as described in
Section F.3.
F.1.6 Finishing the Vector Loop
The previous sections have shown how to model a single EVM link for a tolerance
vector loop. Finishing the model simply requires repeating this process for subsequent
vectors. If the final marker for each link, the a3 marker as discussed above, is properly
oriented to align with the next link, then the initial orientations and locations of all parts *1
and *2, and all markers *0, *1, and *2, will always be “0,0,0” relative to the previous
marker. The only modification between links need be the position and orientation of the
187
geometry marker and the *3 marker, to properly represent the length of the vector, and the
orientation of next vector in the loop. Note that it is usually convenient to have the *3
marker of the last vector in the loop align with the ground marker. It should also be noted
that manually creating these EVM links is tedious, and can be a source for introducing
error into the model if not done precisely. For this purpose, macros were created to auto-
mate the process of building the links as described in Sections F.1.1 through F.1.5, and are
described in APPENDIX G.
After completing each of the individual links, joints are added to constrain the
links together to properly model the EVM or GEVM, as discussed in the next section.
F.2 Joint Location and Orientation
Although there are multiple ways of creating and orienting joints in ADAMS, the
explanations in this section will demonstrate the creation of joints using the “Command
Navigator” in ADAMS, accessed through the TOOLS - COMMAND NAVIGATOR
menu. The joint creation menus can be found in the Command Navigator by choosing
CONSTRAINT - CREATE - JOINT. The methods explained below allow more precise
control over the exact placement and orientation of joints than do other methods, and are
thus more convenient for constructing EVMs. Also note that all orientations are entered in
the Body-fixed 231 coordinate system, where the first rotation is made about the local y-
axis, the second rotation is made about the newly-transformed local z-axis, and the third
rotation is made about the newest local x-axis. This coordinate system is chosen by click-
188
ing SETTINGS - COORDINATE SYSTEM, and choosing “231” for rotation sequence,
and clicking “Body-Fixed”.
PIN JOINT: The pin (revolute) joint, by default, is oriented such that rotation
occurs about the z-axis of the marker it is oriented with respect to. If rotation about the z-
axis of an existing marker is desirable, the pin joint should be modeled using “Position by
Using Markers” under the CREATE - JOINT - REVOLUTE menu. In ADAMS, the
adopted convention is that “I” is located/oriented relative to “J”. Thus, the “I Marker
Name” field should be filled with the marker of the part that will be moving relative to the
other part. The “J Marker Name” field should then be filled with the marker with respect
to which the rotation is occurring. The relationship between the I and J markers is
depicted in Figure F.2. The z-axis of both the I and the J markers should be colinear with
the desired axis of rotation.
However, if the desired rotation is to be about an axis not represented by an exist-
ing marker, the joint should be oriented using “Position by Using Coordinates”, whereby
coordinates are input which give a specific orientation relative to an existing marker. The
j i
Vrel
MovingPart
Figure F.2 I moves relative to J
189
part with respect to which the rotation will occur should be entered in the “J Part Name”
field, with the “I Part Name” field containing the part which will rotate with respect to the
“J Part”. The “Relative To” field is filled with the name of a marker with respect to which
the pin joint will be located and oriented. The “Location” and “Orientation” fields are
then filled with the relative coordinates and orientation angles of the joint. If a marker is
chosen which is coincident to the desired location of the joint, then “0,0,0” is entered in
the “Location” field. To align the axis of rotation of the pin joint with the x-axis of the
specified “Relative To” marker, enter the orientation as “90,0,0”. To align the axis of
rotation with the y-axis of the specified marker, enter the orientation as “0,0,90”. The pin
joint, in addition to each of the joints discussed in this section, can be seen as represented
in ADAMS in Figure F.3.
TRANSLATIONAL JOINT: The translational joint should always be modeled
using “Position by Using Coordinates” to orient the axis of translation along the x-axis of
the appropriate part, which is a convention used in the ADCATS research group. This is
P in Tr a n s la t io n a l S p he r ic a l
F ixe d P la n a r C ylin d r ic a lFigure F.3 ADAMS joints used in EVMs
190
achieved by entering “90,90,0” as the orientation. This rotation is necessary because the
joint will be created with the translational degree of freedom occurring about the local z-
axis. The other fields are filled as described in the “Position by Using Coordinates” para-
graph of the Pin Joint section.
SPHERICAL JOINTS: Spherical joints can be easily oriented using the “Position
Using Markers” method. The I and J markers for the two parts being joined are preferably
coincident, with all three axes of the markers’ coordinate systems colinear, but it need not
be so if the spherical joint will be used exclusively for dependent angles. However, for
applying angular velocities to the joint axes for dimensional or geometric variation, the
two markers should be identical in orientation.
FIXED JOINTS: Fixed joints can be placed using any convenient method. If they
are placed using the “Command Navigator” and “Position Using Markers”, the marker
from each part to be joined must have exactly the same orientation for the X, Y, and Z axes.
The icon that is displayed defaults to displaying the joint in the XY plane of the chosen
markers. It should not make a difference in the way the constraint is treated, but if it is
desired to display the joint icon in a different plane or orientation, “Position by Using
Coordinates” may be used with satisfactory results.
Additionally, the fixed joint may be placed using the graphical joint menu in the
Main Toolbox, and “2 Bod - 1 Loc” construction. Here, the user selects the first part to be
joined, then the second (where the first part is constrained relative to the second), and then
the marker at which the joint is to be placed. If “Normal to Grid” is selected, the joint icon
191
will simply appear facing normal to the model grid, which is most likely desirable. If
“Pick Feature” is selected, after picking the two parts (“bodies”) and location, the user is
prompted to select the orientation of the joint by selecting an axis which the joint face will
be normal to. Again, the orientation of a fixed joint is inconsequential with regard to the
functionality of the constraint or the axes that will be constrained, but these methods may
be used to orient the icon for the convenience of the user.
PLANAR JOINTS: Planar joints are oriented by default, such that the two transla-
tional degrees of freedom are along the local x and y-axes, or that the “plane” of the planar
joint is in the XY plane of the local markers. “Position by Using Markers” should nor-
mally be used, but if the local markers are not oriented such that this would give correct
placement of the joint, then “Position by Using Coordinates” should be used. The orienta-
tion should be set such that the XY plane of the joint is in the plane of the desired transla-
tional degrees of freedom.
CYLINDRICAL JOINT: The cylindrical joint is oriented such that the translation
occurs along the local z-axis. If the existing local markers are oriented such that this is
desirable, then “Position by Using Markers” is the easiest method of creation. However, if
the cylindrical joint needs to be oriented along an axis not represented by the z-axis of an
existing marker, then “Position by Using Coordinates” should be used. The instructions in
the Pin Joint sections regarding this apply to the cylindrical joint as well.
192
Once all of the proper Equivalent Variational Joints have been added to the model,
Equivalent Variational Sources must be added to the degrees of freedom which represent
independent and geometric variation, as explained in the next section.
F.3 Modeling Equivalent Variational Sources
The steps for modeling Equivalent Variational Sources consist of adding velocity
functions to the independent and geometric variables as described in Section 4.2.
To avoid problems with initial conditions (ICs), all velocity functions should be
modeled as displacement functions per time. For example, with length and time units set
to centimeters and seconds respectively, a velocity function of “1” will give a velocity of 1
cm/s, while an analogous displacement function of “1*time” will also give 1 cm/s. The
use of the displacement function forces ADAMS to input a velocity of 1cm/s, with all ini-
tial conditions set to zero. If a velocity function is used, there exist initial conditions that
are usually left undetermined, and ADAMS may set these ICs to any “convenient” values
to allow the model to assembly properly just prior to a kinematic analysis. Such undeter-
mined ICs can lead to inaccurate analysis results.
The displacement function can be added to any joint that has been used to model
dimensional or geometric variation in the model. Once the joint has been selected, a right-
click will bring up a context menu from which the MODIFY menu should be selected.
From this menu, IMPOSE MOTION is selected. From the IMPOSE MOTION menu, the
appropriate degree of freedom TYPE should be set to “disp(time)”, and the F(TIME)
193
should be entered as “1*time”. Note that this same procedure is followed for both transla-
tional and angular variation sources, inputting the same function for both cases.
F.4 Conducting the Analysis
A simulation, or analysis is performed on the model in ADAMS which actually
applies the input velocities and measures the output velocities. One of the advantages of
using ADAMS to conduct the tolerance analysis is its ability to perform such analyses on
assemblies at one static location, or automate a series of analyses at multiple positions of a
mechanism.
F.4.1 Creating Measures
After the whole EVM/GEVM has been created, measures must be put on the
dependent variables to measure the output velocities. The process is fairly straightfor-
ward. For a rotational dependent variable, regardless of whether it is a revolute, spherical,
or even cylindrical joint, simply right-click near the joint that describes the dependent
variable and select the proper joint from the menu. Select the MEASURE menu, which is
shown in Figure F.4. It is most convenient to give the measure the same name as the
dependent variable it is measuring. The “Joint” field will be filled automatically. Only
the “Characteristic” field needs to be changed from the default to show “Relative Angular
Velocity”. Then the component must be chosen, defining whether the rotation being mea-
sured is about the X, Y, or Z local axis. The “From/At” field will affect which direction is
considered positive. Normally, the marker specified as the “J” marker when defining the
194
joint will be the appropriate choice. The last issue is defining which marker this measure
is being oriented by, which is defined in the “Represent Coordinates In:” field. It is the
marker specified in this field that determines which coordinate system will be referred to
in measuring about the axis specified in the “Component” field. It is best to select the *0
marker of the part which exits the joint. For example, in the first spherical joint in the
crank slider, between parts C and D (specifically C2 and D1), the *0 marker for D1 will be
chosen, “.d1.d0”, as shown in Figure F.4. Thus, as the D part is moved about, the measure
will accurately record the appropriate rotations. Finally, ensure that the “Create Strip
Chart” box is checked so that a real-time plot will be superimposed on the model, and
click “OK”.
For a translational dependent variable, the measure can be created as described
above, by right-clicking near the joint, selecting the joint from the available choices, and
Figure F.4 Joint Measure Menu
195
then selecting the MEASURE menu. The resulting Joint Measure menu shown in Figure
F.5 is actually identical to that shown in Figure F.4, except that different options are avail-
able when “Relative Velocity” is appropriately chosen from the “Characteristic” field
instead of the “Relative Angular Velocity” chosen for the rotational variables. This trans-
lational measure should similarly be named for the dependent variable it is to measure.
The “Joint:” field is again already filled. The “Component” field for a translational vari-
able should always be selected as X, with the “Represent coordinates in:” and the “Do time
derivatives in:” fields filled with the name of the *0 marker for the translational joint
being measured. The “From/At:” field should again be chosen to be the marker created on
the “J” part specified when creating the translational joint, which is normally the *1 part.
Again, verify the “Create Strip Chart” box is checked, and click “OK”. The procedures
here should be repeated to create a measure for every dependent variable in the model.
Figure F.5 Translational Measure Menu
196
F.4.2 Static Assemblies
The contributions to variation are isolated by activating a unit velocity in one of
the independent dimensional or geometric vector links and setting all other input veloci-
ties to zero. The only exception to this procedure is the case where more than one velocity
is controlled by a single dimension, such as if two vectors described the radius of a cylin-
der as shown in the clutch example in Chapter 2, Figure 2.11. In such a case, both vectors
describe the same radius, and their velocities would be always equal if no geometric vari-
ation is considered, such that any sensitivity analysis run on that radius would be con-
ducted with an equal input velocity on both vectors.
The dependent variable output velocities resulting from the analysis will be equal
to the tolerance sensitivities for the variable with the active unit velocity. Each analysis
will thus form a column of the sensitivity matrix for the model, showing the sensitivities
of each dependent variable to that independent variable. One such analysis must be con-
ducted for each dimensional variable to form the entire -[B]-1[A] dimensional sensitivity
matrix, and one for each geometric variable to form the entire -[B]-1[F] geometric sensi-
tivity matrix [Faerber 1999].
To simplify the model and aid in debugging any possible problems, the model
should be restricted to zero kinematic degrees of freedom, and the analysis should be run
in kinematic mode. The number of idle degrees of freedom in the model can be checked
by clicking TOOLS - MODEL VERIFY. The resulting display will describe whether the
model is perfectly constrained with zero degrees of freedom, underconstrained with idle
197
kinematic degrees of freedom, or overconstrained. Note that if the model has fewer than
six dependent variables, then the model will likely be shown as overconstrained, as there
are fewer variables than equations in the 3D environment. This is acceptable, and the
model can still be analyzed in kinematic mode. If the model verification shows extra
degrees of freedom, the model is underconstrained and should be inspected to find any
parts that are still free to move. For example, it is shown in Chapter 7 that the crankslider
has an idle degree of freedom. It was removed by imposing a displacement function of
“0.0*time” on the x-axis of the spherical_cd joint, which prevents the link from spinning
freely along its axis between the two spherical joints.
Once the proper velocities have been applied and measures created, the analysis
can be run. The analysis menu shown in Figure F.6 can be accessed by clicking on the
calculator icon in the Main Toolbar. Select “Kinematic” for analysis type, and enter an
end time of “1” second. Enter “1” for the step size. Then click the Start button, indicated
in Figure F.2. The analysis will run through its calculations and the sensitivities will be
ready for extraction. The results at time zero are the correct sensitivities, as the partial
Figure F.6 Analysis Submenu in Main Toolbox
Start Button
198
derivatives in the sensitivity calculations are small instantaneous changes. Each new anal-
ysis is by default named LAST_RUN. As the analysis LAST_RUN is always overwritten
with the results from the last analysis conducted, the current results should be saved by
selecting ANALYSIS - MODIFY from the Command Navigator. Select this in the “Anal-
ysis Name” field, then type in a new name in the “New Analysis Name” field to uniquely
identify the analysis that has been run.
F.4.3 Kinematic Mechanisms
For a mechanism, a series of analyses must be run at incremental positions of the
input crank. ADAMS can fully automate the analyses with the incrementing of the input
crank to create a tolerance analysis solution at every position of mechanism. For such
analysis, there are two types of motions. There are the small kinematic adjustments due to
dimensional and geometric variation in the model, and there are larger kinematic motions
due to inputs in the mechanisms such as the rotational motion of the crank in the crank
slider assembly. Therefore, an analysis of the mechanism first needs to be run, where the
only input velocity is on the input crank. The displacement function used to apply veloc-
ity on the larger kinematic motion is usually specified as “1d*time”, which, for a rota-
tional input, will result in a constant velocity of 1 degree per second, assuming the unit for
time is specified as seconds. This is a benchmark, performed at each position of the input
crank to determine the contribution of the input crank motion to the assembly variation.
Then, with the larger kinematic motion still active, the analyses for the individual inde-
pendent variations are conducted one at a time, and the sensitivities due to the larger kine-
matic motion are subtracted from the sensitivities due to the smaller independent
199
variations [Faerber 1999]. Note, if the variation due to error in the input crank angle is
desired, a unit velocity would be applied to the crank in a static analysis as described in the
previous section, and the sensitivities to each output variable would be calculated.
The critical modification is in the velocity applied to the independent variables. In
a static assembly, when only one analysis is run, a constant velocity can be applied to the
link, as only the result at time zero matters. However, in a mechanism, where multiple
analyses will be conducted, it is important that the links of the mechanism return to their
nominal lengths at each position, so the analysis at each position can then be run at the
nominal lengths. To get the link with the input “variation” to return to its nominal length
at each position of interest, the input variation is simulated with an oscillating velocity
function.
This process is detailed in Chapter 5 of [Faerber 1999], however the basic theory is
to set the period of the velocity function equal to the step size of the analysis. When a
cosine function is used, this results in the link returning back to nominal length with a unit
velocity at every analysis step. Equation (F.1) demonstrates the proper velocity function
as entered in ADAMS for use with an analysis that has a step size of 1 second. Where
more resolution in the analysis is desired, the step size can be decreased, which would
require modifying the cosine function. For example, a step size of 1/10th of a second
would require a cosine function as shown in Equation (F.2).
(F.1)
(F.2)
2 pi time⋅ ⋅( )cos
20 pi time⋅ ⋅( )cos
200
The first analysis is run with only the velocity applied to the larger kinematic
motions. The step size should be modified according to the required resolution and the
period of the oscillating velocity functions that will be run subsequently. The analysis end
time should then be modified to allow the mechanism to move through the desired range
of motion. For example, a desired travel of 90 degrees would be obtained by setting the
end time (or duration) to 90 seconds if the analysis is set with a step size of one second,
and the velocity applied to the kinematic motion is 1 degree/second. It is important that
each of the analyses, both of the larger kinematic motion and of each of the smaller kine-
matic adjustments, have the same number of analysis steps, such that the column of data
for each analysis is the same length. This will be important when exporting the results.
Run the analysis, then save this analysis by modifying the name of the
LAST_RUN analysis as described at the end of Section F.4.2. Then, when each of the
independent variation source analyses are run with their oscillating velocity functions,
each one should be saved off to a unique and identifiable analysis name.
F.5 Extracting Sensitivities
When the velocity sensitivities are properly extracted from ADAMS, they will be
equal to the tolerance sensitivities, because of the velocity/variation analogy. The sensi-
tivities are extracted by performing multiple analyses, one for each dimensional and geo-
metric variation, as detailed in Section F.4. If the analyses were properly saved which
contain the dependent velocities caused by each independent input velocity, then extract-
201
ing the sensitivities requires little more than selecting the desired results and exporting a
text file from ADAMS.
F.5.1 Exporting Results from Static Assemblies
Once each analysis has been run and saved, go to the REVIEW - POSTPROCESS-
ING menu, which will bring up the ADAMS/PostProcessor interface. Note that returning
to the standard ADAMS/View modeling interface is accomplished by selecting FILE -
CLOSE PLOT WINDOW. From the PostProcessor, select FILE - EXPORT - NUMERIC
DATA. This will bring up the Export interface, as shown in Figure F.7.
In the “File Name” field, any desired file name may be used, although a *.txt
extension should probably be used when working in a MS Windows environment. The
“Sort By” field should be set to “Time”, and the “Order” set to “ascending”. The “Results
Data” field is where the results from each measure from each analysis are selected so that
Figure F.7 Export Numeric Results Menu
202
all the sensitivities can be output in one file. Double-clicking on the blank “Results Data”
field brings up a Database Navigator window, as shown in Figure F.8. All the saved anal-
yses will be available. When each analysis is expanded one level, the names of the mea-
sures from the model will be visible at this level, in addition to many other joints and
components of the analysis. Simply expand each applicable measure name so that the
measure components Q and TIME are visible, as shown in Figure F.8. The Q component
is the numeric result. Expand the measures for each analysis, and then select one TIME
component (it doesn’t matter which, as all will be identical) and each Q component for
Figure F.8 Selecting Results for Export
203
every measure of each analysis. Hold down the CTRL button in Windows to select multi-
ple components. Once all of the components have been selected, click OK.
The resulting file can be imported into MS Excel, or viewed in any standard text
viewer, and should appear as partially shown in Table F.1. ADAMS outputs numeric data
only five columns at a time. So, after the first five sets of data, it starts a new row. Each
row of data is preceded by a legend of sorts that explains what result is included in which
column. The legend for the first set of data in Table F.1 explains that the first column is
the Time index, showing the first row of the data to be at time zero. It shows also that the
remaining four columns of data in this first group are the sensitivities of φ1, φ2, φ3, and φ4
to the input of a. As was mentioned earlier, only the first row of numbers, at time zero,
represent the sensitivities of the dependent variables to the independent variables. The
numbers can then be pulled out of this file to form the sensitivity matrices for the dimen-
sional variations in -[B]-1[A] and for the geometric variations in -[B]-1[F].
A. .crankslider_43.static_a_trans.TIME (sec) B. .crankslider_43.static_a_trans.phi1.Q (rad/sec) C. .crankslider_43.static_a_trans.phi2.Q (rad/sec) D. .crankslider_43.static_a_trans.phi3.Q (rad/sec) E. .crankslider_43.static_a_trans.phi4.Q (rad/sec) A B C D E 0.000000E+000 -1.609298E-002 -1.696848E-002 2.325045E-002 2.443767E-003 1.000000E+000 -1.603477E-002 -1.711457E-002 2.333839E-002 2.195408E-003 A. .crankslider_43.static_a_trans.phi5.Q (rad/sec) B. .crankslider_43.static_a_trans.trans_u_MEA_1.Q (cm/sec) C. .crankslider_43.static_trans_b.phi1.Q (rad/sec) D. .crankslider_43.static_trans_b.phi2.Q (rad/sec) E. .crankslider_43.static_trans_b.phi3.Q (rad/sec) A B C D E 5.982019E-004 -1.060714E-001 -1.573668E-006 2.507410E-007 9.430637E-007 7.729214E-004 -1.305217E-001 -1.573668E-006 2.507403E-007 9.430638E-007
TABLE F.1 Sample output of numeric results
204
F.5.2 Exporting Results from Kinematic Mechanisms
Exporting the results for a kinematic mechanism is essentially the same, with one
important step added. As mentioned in the analysis section, the sensitivities due to the
larger kinematic motions must be subtracted from each set of results from the dimensional
and geometric input analyses. So, the results saved from the larger kinematic motion and
from each of the analyses with the dimensional and geometric input velocities are
exported from ADAMS using the process described in the previous section. Notice now
that instead of having data for time zero and time one, data will exist for the full range of
motion specified during the analysis. If the exported data is taken into Excel, the columns
of results can be manipulated to bring out the tolerance sensitivities at each position spec-
ified in the analysis. Although there is a function for performing subtraction of data
curves in the ADAMS postprocessor, it is easier to handle all of that data in Excel after-
wards. The individual columns of data from the larger kinematic motion results need to be
subtracted from the corresponding columns of the results from each of the independent
variation source analyses. The resulting columns are the tolerance sensitivities through
the whole range of motion.
205
APPENDIX G MACRO FOR CREATION OF EVMS IN ADAMS
The creation of EVM linkages manually in ADAMS can be repetitive and tedious.
To alleviate such monotony, macros were created to automate the basic tasks of building
independent and dependent EVM links in ADAMS. The macros, of course, work identi-
cally for EVMs or GEVMs.
Included at the end of this appendix is the full text of the macro for creating inde-
pendent EVM links. The macro for creating dependent EVM links is not included, as it is
identical to the independent macro, except it does not contain the last three lines of func-
tional code that pertain to creating the velocity function on the slider joint, and the
USER_ENTERED_COMMAND is “evm_dependent”, instead of “evm_independent”.
Once this macro has been copied to a text file named with a *.cmd extension, such
as “evm_independent.cmd”, it may be readily imported into ADAMS. The procedure for
doing so starts with selecting TOOLS - MACRO - READ from the menu bar on the top of
the ADAMS screen. Under “Macro Name”, any desirable name may be entered. It is by
this name that the macro will be referred to in ADAMS. In the “File Name” field, type or
206
select the path of the *.cmd macro file. It is recommended to select “YES” under “WRAP
IN UNDO”, so that the entire EVM may be deleted with a single UNDO command if a
mistake is made. Also, “CREATE PANEL” should be set to “YES”. Click OK. Now, the
macro will be available through the Command Navigator. If the Command Navigator was
open during the creation of the macro, it will have to be closed and re-opened to refresh its
listing. Where the name of the macro is found in the Command Navigator, it may be dou-
ble-clicked to bring up a menu panel interface created for this macro. It will appear as
shown in Figure G.1.
Use of the macro is fairly simple. In the PART NAME field, the name of the vec-
tor should be input. Such that if the vector loop model contains a dimension “A” which
will be modeled by an EVM link, then “A” will be input as the part name. The macro will
automatically create the two distinct parts named “A1” and “A2”. The desired vector
length, or link length of the EVM should be input in the LINK LENGTH field. The POSI-
TION field describes the initial position of the A1 part and the A0 marker relative to what-
ever part or marker is described in the RELATIVE TO WHAT field. This field will
normally be filled with the *3 marker of the previous link. Normally, the POSITION will
be set to “0,0,0”, but it may be necessary or desirable at times to do otherwise. The INI-
TIAL ORIENTATION field likewise describes the orientation of the EVM relative to the
prescribed marker. This will also normally be “0,0,0”, as the *3 marker of the previous
link is usually oriented to align with the next link in the vector loop, but sometimes it may
be chosen otherwise. An example of when this would be used is at the beginning of the
207
vector loop, where the first vector does not travel down the length of the global X-axis, an
initial orientation must be entered to properly orient the EVM link.
The GEOM WIDTH and GEOM DEPTH fields simply determine the size of the
geometry link that is created to give the EVM links form. Any values convenient to the
user may be chosen, as they do not affect the analysis or model in any way.
The END ORIENTATION field will set the orientation of the *3 marker. Nor-
mally, this is prescribed such that the marker will be oriented to the next vector in the
loop. In addition to simplifying the creation of the next EVM, as it can then simply be
located and oriented exactly as is this *3 marker, but for Fixed Joints and some other joint
types, it will be necessary to have a marker on each part that are perfectly aligned and
Figure G.1 Macro Panel Interface for Independent EVM Macro
208
coincident. If the END ORIENTATION field is set properly, then the *3 marker of one
link and the *0 marker of the next link can be used for such purposes.
The VELOCITY FUNCTION field is used to impart a velocity to the independent
links to represent dimensional or geometric variation. As described in Section F.3, a dis-
placement function is actually preferred, to avoid initial condition issues. The field name
says VELOCITY to reflect the purpose of the function, while the macro will actually cre-
ate a displacement function. As such, the function should be entered as either “1*time” or
“0*time” to create a velocity from the displacement function. As all of the EVM links are
being built, it is probably easiest to leave all the functions at “0*time”, and then simply go
modify the one function that will be used as the input variation for that analysis. The dis-
placement function is named “slider_A”, for a vector named “A”, and can be modified by
selecting the motion (represented by an arrow outline), right-clicking, and choosing
MODIFY.
Even when all of the EVM links representing the vectors in the vector loop have
been created using this macro, the EVM is not yet complete. Afterwards, the Equivalent
Variational Joints must be inserted between the EVM links to properly constrain the
model. For GEVMS, appropriate velocities must be added to represent geometric varia-
tion inputs. And, measures must be created to record data from the dependent variables.
While the macros do not complete the entire EVM, they greatly simplify the building pro-
cess and reduce the modeling time.
209
NOTE: Sometimes, when creating a part using the macros, especially when creat-
ing zero-length parts, the *.cm marker which locates the center of mass for the part, is ori-
ented in some strange manner. This does not affect the outcome of the analysis, and
doesn’t appear to affect the mechanism in any way.
Macro Code:
!------------evm_independent.cmd------------------------------------------!USER_ENTERED_COMMAND evm_independent!HELP_STRING This macro is to create a EVM part with a joint(parts 1 and 2)!Parameter: $part_name!Parameter: $link_length:t=real!part create rigid_body name_and_position part_name=$'part_name'1 &location=$position orientation=$initial_orientation &relative_to=$relative_to_what!marker create marker_name="$'part_name'0" location=0,0,0 orientation=0,0,0 &relative_to=$'part_name'1!marker create marker_name="$'part_name'1" location=0,0,0 orientation=0,0,0 &relative_to=$'part_name'1!geometry create shape link link_name="link_$'part_name'1" i_marker="$'part_name'1" &j_marker="$'part_name'0" width=$geom_width:U=.5 depth=$geom_depth:U=.1!part create rigid_body mass_properties part_name=$'part_name'1 material_type=steel!part create rigid_body name_and_position part_name=$'part_name'2 &location=0,0,0 orientation=0,0,0 relative_to=$'part_name'1!marker create marker_name="$'part_name'2" location=0,0,0 orientation=0,0,0 &relative_to=$'part_name'2!marker create marker_name="$'part_name'3" location=$'link_length',0,0 &orientation=$'end_orientation' relative_to=$'part_name'2!marker create marker_name="$'part_name'_geom_marker" location=$'link_length',0,0 &orientation=0,0,0 relative_to=$'part_name'2!geometry create shape link link_name="link_$'part_name'2" &i_marker="$'part_name'_geom_marker" &j_marker="$'part_name'2" width=$geom_width depth=$geom_depth
ANSI (American National Standard Institute), 1982, Dimensioning and Tolerancing,ANSI Y14.5M - 1982. New York: American Society of Mechanical Engineers (ASME).
Chase, K.W., 1999, "Multi-Dimensional Tolerance Analysis." Chapter in Dimensioning &Tolerancing Handbook, ed. Paul J. Drake, Jr., New York: McGraw Hill.
Chisolm, J.S.R., 1978, “Vectors in Three-Dimensional Space,” Cambridge UniversityPress.
Desrochers, A., Riviere, A., 1997, “Matrix Approach to the Representation of ToleranceZones and Clearances,” International Journal of Advanced Manufacturing Technology,Vol. 13, No. 9, pp. 630-636.
Faerber, P., 1999, “Tolerance Analysis of Assemblies Using Kinematically-DerivedSensitivities,” M.S. Thesis, Brigham Young University, Provo, Utah.
Gao, J., 1993, “Nonlinear Tolerance Analysis of Mechanical Assemblies,” Ph.D. Disserta-tion, Brigham Young University, Provo, Utah.
Gao, J., Chase, K.W., Magleby, S.P., 1998a, “Global Coordinate Method for DeterminingSensitivity in Assembly Tolerance Analysis,” Proceedings of the ASME InternationalMechanical Engineering Conference and Exposition, Anaheim, California.
Gao, J., Chase, K.W., Magleby, S.P., 1998b, “Generalized 3-D Tolerance Analysis ofMechanical Assemblies with Small Kinematic Adjustments,” IIE Transactions (Instituteof Industrial Engineers), Vol. 30, No. 4, April 1998, pp. 367-377.
Goodrich, C.G., 1991, “Representation and Modeling of Geometric Form Variations for3-D Tolerance Analysis,” M.S. Thesis, Brigham Young University, Provo, Utah.
Huo, H., 1995, “New Tolerance Analysis Methods for Preliminary Design in MechanicalAssemblies,” Ph.D. Dissertation, Brigham Young University, Provo, Utah.
Marler, J.D., 1988, “Nonlinear Tolerance Analysis Using the Direct LinearizationMethod,” M.S. Thesis, Brigham Young University, Provo, Utah.
212
Robison, R.H., 1989, “A Practical Method for Three-Dimensional Tolerance AnalysisUsing a Solid Modeler,” M.S. Thesis, Brigham Young University, Provo, Utah.
Sandor, G., and Erdman, A., 1984, Advanced Mechanism Design: Analysis and Synthesis,Vol. 2, New Jersey: Prentice Hall.
Ward, K., 1992, “Integrating Geometric Form Variations into Tolerance Analysis of 3-DAssemblies,” M.S. Thesis, Brigham Young University, Provo, Utah.
Whitney, D.E., Gilbert, O.L., Jastrzebski, M., 1994, "Representation of Geometric Varia-tions Using Matrix Transformations for Statistical Tolerance Analysis in Assemblies,"Research in Engineering Design, Vol. 6, pp. 191-210.