incorporating geometric variation with kinematic tolerance...
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
Master of Science
Department of Mechanical Engineering
Brigham Young University
December 2001
Copyright © 2001 Jeffrey G. Dabling
All Rights Reserved
BRIGHAM YOUNG UNIVERSITY
GRADUATE COMMITTEE APPROVAL
of a thesis submitted by
Jeffrey G. Dabling
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.
viii
TABLE OF CONTENTS
CHAPTER 1 Introduction .............................................................................................1
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
CHAPTER 2 Tolerance Analysis Background ............................................................9
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.1.1 Vector Loops and DRF ................................................................322.3.1.2 Equivalent Variational Sources ...................................................332.3.1.3 Equivalent Variational Joints .......................................................35
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
3.4 Conclusion ........................................................................................................67
CHAPTER 4 3D Equivalent Variational Mechanisms .............................................69
4.1 Vector Loops.....................................................................................................694.2 Equivalent Variational Sources ........................................................................704.3 3D Equivalent Variational Joints ......................................................................714.4 Complete EVM Examples ................................................................................76
4.4.1 Crank Slider EVM ................................................................................764.4.2 Swash Plate EVM .................................................................................79
4.5 Overview...........................................................................................................834.6 Conclusion ........................................................................................................85
CHAPTER 5 Including Geometric Variation in EVMs............................................87
5.1 Geometric Equivalent Variational Joints ..........................................................885.2 GEVM Examples ..............................................................................................98
5.2.1 Crank Slider GEVM .............................................................................985.2.2 Printhead GEVM ................................................................................101
5.3 Conclusion ......................................................................................................105
x
CHAPTER 6 Analytical Examples............................................................................107
6.1 Crank Slider Analysis .....................................................................................1076.1.1 Gathering Model Parameters ..............................................................1086.1.2 Forming Partial Derivative Matrices ..................................................1106.1.3 Calculating Sensitivities .....................................................................1136.1.4 Modeling Issue....................................................................................114
6.2 Swash Plate Analysis ......................................................................................1156.2.1 Gathering Model Parameters ..............................................................1156.2.2 Forming Partial Derivative Matrices ..................................................1176.2.3 Calculating Tolerance Sensitivities ....................................................119
6.3 Printhead Analysis ..........................................................................................1206.3.1 Gathering Model Parameters ..............................................................1206.3.2 Calculating Closed-Loop Sensitivities................................................1226.3.3 Calculating Open-Loop Sensitivities ..................................................126
6.4 Conclusion ......................................................................................................130
CHAPTER 7 Implementation in ADAMS................................................................131
7.1 Modeling in ADAMS .....................................................................................1317.2 Crank Slider ....................................................................................................134
7.2.1 Initial Setup.........................................................................................1347.2.2 Create Links ........................................................................................1357.2.3 Adding EVJs .......................................................................................1397.2.4 Static Analysis ....................................................................................1427.2.5 Kinematic Analysis.............................................................................144
7.3 Swash Plate .....................................................................................................1467.4 Printhead .........................................................................................................1477.5 Modeling Tips.................................................................................................149
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
F.4.1 Creating Measures ..............................................................................193F.4.2 Static Assemblies...............................................................................196F.4.3 Kinematic Mechanisms ......................................................................198
F.5 Extracting Sensitivities ...................................................................................200F.5.1 Exporting Results from Static Assemblies .........................................201F.5.2 Exporting Results from Kinematic Mechanisms................................204
APPENDIX G Macro for Creation of EVMs in ADAMS.......................................205
xii
LIST OF TABLES
TABLE 2.1 Explanation of Modes of Geometric Variation in Assemblies . . . . . . . . . 16
TABLE 2.2 Rotational and translational variations associated with corresponding geometric feature tolerance-kinematic joint combinations in 3D. . . . . . . 18
TABLE 2.3 Manufactured dimensions for wedge problem . . . . . . . . . . . . . . . . . . . . . 23
TABLE 2.4 Kinematic assembly variables for wedge problem . . . . . . . . . . . . . . . . . . 23
TABLE 2.5 Geometric tolerance variables for the wedge example. . . . . . . . . . . . . . . 25
TABLE 2.6 Comparison of Kinematic and Tolerance Analyses . . . . . . . . . . . . . . . . . 31
TABLE 2.7 Nominal dimensions and tolerances for the clutch model (modified from Faerber 1999) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
TABLE 3.1 Manufactured dimensions for crank slider problem . . . . . . . . . . . . . . . . . 58
TABLE 3.2 Kinematic assembly variables for crank slider problem. . . . . . . . . . . . . . 58
TABLE 3.3 Global coordinates and orientations for crank slider vector loop joints . . 64
TABLE 5.1 Rotational and translational variations associated with corresponding geometric feature tolerance-kinematic joint combinations in 3D. . . . . . . 89
TABLE 6.1 Manufactured dimensions for crank slider problem . . . . . . . . . . . . . . . . 108
TABLE 6.2 Kinematic assembly variables for crank slider problem. . . . . . . . . . . . . 109
TABLE 6.3 Geometric tolerance variables for crank slider problem. . . . . . . . . . . . . 109
TABLE 6.4 Global coordinates and orientations for crank slider vector loop joints . 110
TABLE 6.5 Kinematic assembly variables for Swash Plate problem . . . . . . . . . . . . 115
TABLE 6.6 Independent dimensions for Swash Plate problem . . . . . . . . . . . . . . . . . 116
TABLE 6.7 Global coordinates and orientations for Swash Plate vector loop joints and nodes, measured from tail of vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
xiii
TABLE 6.8 Independent dimensions for Printhead problem . . . . . . . . . . . . . . . . . . . 121
TABLE 6.9 Dependent variables for Printhead problem . . . . . . . . . . . . . . . . . . . . . . 121
TABLE 6.10 Geometric tolerance variables for Printhead problem . . . . . . . . . . . . . . 122
TABLE 6.11 Global coordinates and orientations for Printhead vector loop joints . . 123
TABLE 7.1 Modeling Information for the Crank Slider . . . . . . . . . . . . . . . . . . . . . . 136
TABLE 7.2 Data for creating GEVJs in the crank slider assembly . . . . . . . . . . . . . . 140
TABLE 7.3 Data for creating Measures for the crank slider assembly . . . . . . . . . . . 142
TABLE 7.4 Proper velocity function configuration for analyses. . . . . . . . . . . . . . . . 143
TABLE 7.5 Comparison of kinematic ADAMS results to Global Coordinate Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
TABLE E.1 Table of variable entries for forming transformation matrices............... 178
TABLE F.1 Sample output of numeric results ........................................................... 203
xiv
LIST OF FIGURES
Figure 1.1 Kinematic adjustments due to component dimension variations [Chase 1999] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 1.2 Kinematic Adjustments due to geometric shape variation [modified from Chase 1999] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 2.1 3D Kinematic Joint Types, with the number of Degrees of Freedom indicat-ed [Chase et al. 1996] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figure 2.2 3D Effects of Geometric Variation [Chase et al. 1996] . . . . . . . . . . . . . . 17
Figure 2.3 Degrees of Freedom for kinematic motions and geometric feature variations [Chase et al. 1996] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figure 2.4 Geometric tolerances in wedge problem . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 2.5 Vector loop for wedge problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 2.6 Graphical representation of propagation of geometric variation . . . . . . . 26
Figure 2.7 One-way clutch assembly with DRFs. [modified from Faerber 1999]. . . 33
Figure 2.8 Vector loop used to analyze the one-way clutch model. [Faerber 1999] . 33
Figure 2.9 Equivalent elements representing independent linear and angular variation. [modified from Faerber 1999] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figure 2.10 Equivalent variational joints for use in EVM vector models [modified from Faerber 1999] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Figure 2.11 Equivalent Variational Mechanism for one-way clutch. [modified from Faerber 1999] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figure 3.1 Variation measured at the local joint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Figure 3.2 Variation measured at global origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Figure 3.3 3D crank slider and its vector loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
xv
Figure 4.1 Equivalent Variational Sources for incorporating independent variation in kinematic models [modified from Faerber 1999] . . . . . . . . . . . . . . . . . . . 71
Figure 4.2 Explanation of elements used in EVMs . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Figure 4.3 3D Parallel Cylinders Joint and its EVJ . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Figure 4.4 3D Edge Slider joint and its EVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Figure 4.5 3D Cylindrical Slider joint and its EVJ . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Figure 4.6 3D Point Slider and its EVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Figure 4.7 3D Spherical Slider and its EVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Figure 4.8 3D Crossed Cylinder Joint and its EVJ . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Figure 4.9 Crank Slider model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Figure 4.10 Datums used in Crank Slider model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Figure 4.11 Vector loop for 3D Crank Slider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Figure 4.12 EVM for 3D Crank Slider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Figure 4.13 Swash Plate mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Figure 4.14 DRFs for the Swash Plate model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Figure 4.15 Vector loop for Swash Plate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Figure 4.16 EVM for Swash Plate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Figure 4.17 3D Kinematic Joint Types, with the Degrees of Freedom indicated [Chase et al. 1996] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Figure 4.18 3D Equivalent Variational Joints, with the kinematic DOFs indicated [Chase et al. 1996] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Figure 5.1 Rigid Joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Figure 5.2 Prismatic Joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Figure 5.3 Revolute Joint and its GEVJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Figure 5.4 3D Parallel Cylinders Joint and its EVJ and GEVJ . . . . . . . . . . . . . . . . . 92
Figure 5.5 Cylindrical Joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Figure 5.6 Spherical Joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
xvi
Figure 5.7 Planar Joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Figure 5.8 3D Edge Slider joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Figure 5.9 3D Cylindrical Slider joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . 95
Figure 5.10 Point Slider joint and its GEVJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Figure 5.11 Spherical Slider joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Figure 5.12 Crossed Cylinder joint and its GEVJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Figure 5.13 Crank Slider model with geometric tolerance callouts . . . . . . . . . . . . . . . 99
Figure 5.14 GEVM for Crank Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Figure 5.15 Vector loop for the printhead model. . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Figure 5.16 GEVM for Printhead assembly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Figure 6.1 GEVM for Crank Slider model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Figure 6.2 EVM for the Swash Plate model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Figure 6.3 GEVM for Printhead assembly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Figure 7.1 Representation of a part in ADAMS [modified from Faerber 1999] . . . 132
Figure 7.2 Sublink and slider EVM representation [modified from Faerber 1999]. 133
Figure 7.3 Crank Slider GEVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Figure 7.4 Crankslider model as seen after creation of A link. . . . . . . . . . . . . . . . . 137
Figure 7.5 Complete EVM loop in ADAMS. Icons removed from model for clarity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Figure 7.6 Swash Plate vector loop on right, and completed ADAMS model on left. Icons removed from ADAMS model for clarity. . . . . . . . . . . . . . . . . . . 147
Figure 7.7 Printhead vector loop and ADAMS model. Icons removed from ADAMS model for clarity.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Figure D.1 A 3D vector loop with perturbation δL3 . . . . . . . . . . . . . . . . . . . . . . . . 172
Figure D.2 A 3D vector loop with angle perturbation δθ3z . . . . . . . . . . . . . . . . . . . 173
Figure D.3 Components of ∆X caused by δθ3z . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
xvii
Figure F.1 Representation of marker placement on sublinks with slider joint [modified from Faerber 1999] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Figure F.2 I moves relative to J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Figure F.3 ADAMS joints used in EVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Figure F.4 Joint Measure Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Figure F.5 Translational Measure Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Figure F.6 Analysis Submenu in Main Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Figure F.7 Export Numeric Results Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Figure F.8 Selecting Results for Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Figure G.1 Macro Panel Interface for Independent EVM Macro . . . . . . . . . . . . . . 207
1
CHAPTER 1 INTRODUCTION
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.
Current specialized tolerance analysis software applications are capable of graphi-
cally creating an assembly tolerance model, automatically generating assembly functions,
and solving for predicted variation of critical features. These applications are highly auto-
mated, and have analysis algorithms built in. However, the number of seats of commer-
cial tolerancing software is relatively small compared to the amount of CAD and
kinematic/prototyping software currently in use. In an effort to greatly increase the capa-
bility of variation analysis in industry, Paul Faerber [Faerber 1999] developed the TAKS
method (Tolerance Analysis Using Kinematically-Derived Sensitivities), allowing the cre-
ation of a tolerance model from a kinematic mechanism using equivalent variational
2
mechanisms (EVMs). Such a model can then utilize a common kinematic software pack-
age to perform tolerance analysis on an assembly, and even increment the position of the
mechanism 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.
1.1 Variation Example
Manufacturing fluctuations result in dimensional variation of the parts of an
assembly, such as the cylinder and groove shown in Figure 1.1. As small ∆ are added to
the nominal dimensions of R, A, and θ, the cylinder must seek a new contact position.
Manufacturing variations propagate kinematically through the assembly and accumulate
to create variation ∆U in the dependent assembly variable U when the parts are assembled.
Variation in manufacturing can also cause geometric form and feature variation, as seen in
Figure 1.2. The form variations in circularity, angularity, and flatness cause additional
assembly variation in the placement of the cylinder (∆U).
Thus, both dimensional and geometric variations propagate kinematically through-
out an assembly, and accumulate statistically. Geometric variations can contribute signif-
icantly to the performance of an assembly, and should be considered in any
comprehensive analysis.
3
1.2 Review of Previous Research
Tolerance analysis of mechanical assemblies has been developed for some time to
predict the effects of variation on product performance and quality. This section presents
a review of literature that relates to the work of this thesis, to better demonstrate the need
for this research and its place among existing work.
[Marler 1988] implemented a 2D method for linearized vector-based tolerance
analysis, the Direct Linearized Method (DLM). The DLM provided a relatively simple
method for linearizing the vector loop equations of a tolerance model using a first order
Taylor expansion, and then extracting the sensitivities and solving for dependent assembly
variables using matrix algebra. [Robison 1989] and [Gao 1993] expanded this work to
3D, and [Goodrich 1991] and [Gao 1993] also developed methods for incorporating geo-
metric variation in the DLM tolerance analysis. These methods provide a basis for the 3D
tolerance analysis discussed in this thesis.
U
θ + ∆θ
θ
A
A
+
∆ A
U + ∆ U
R R + ∆ R
U
θ
A
U + ∆ U
R R
Figure 1.1 Kinematic adjustments due to component dimension variations [Chase 1999]
Figure 1.2 Kinematic Adjustments due to geometric shape variation [modified from Chase 1999]
4
[Gao, Chase & Magleby 1998a] then developed a method for simplifying the cal-
culations of sensitivities in vector loop equations with the Global Coordinate Method
(GCM). The Global Coordinate Method can be used with the DLM to allow the use of
simplified closed-form solutions for the derivatives. Instead of numerically evaluating the
derivatives, expressions derived in the GCM are evaluated using direction cosines of vec-
tors and global coordinates of joints in the loop. This method is efficient and is shown to
be very accurate. The GCM is used in conjunction with the DLM to simplify the evalua-
tion of derivatives for the analysis methods presented in this thesis.
[Faerber 1999] developed the TAKS (Tolerance Analysis using Kinematic Sensi-
tivities) to provide a link between the kinematic analysis and variation analysis. The result
was a method for modifying a conventional kinematic vector model to represent dimen-
sional variation in an assembly and allow extraction of tolerance sensitivities for variation
analysis. He showed that a commercial kinematic software package can be used to con-
duct tolerance analysis on mechanical assemblies, either static or kinematic. This method
was developed only in 2D, without accounting for geometric variation in the assembly.
Similar to the research presented in [Gao 1993], [Whitney, Gilbert and Jastrzebski
1994] developed a method for conducting vectorial tolerance analysis of 3D assemblies
with 4x4 transformation matrices that incorporates some geometric feature variation. This
method characterizes tolerance zones with kinematic parameter boundaries. Then, like
the DLM, variabilities are included in the matrix transform for specific degrees of free-
dom, depending on the joint. A probability function is generated to estimate the position
and orientation of the variable within the tolerance zone. However, the emphasis of the
5
paper is tolerance analysis for assembly sequence evaluation, for the purpose of analyzing
the way assemblies are assembled. Because of this, these authors do not include individ-
ual geometric variation types such as those specified by form or circular size tolerances,
explaining that these types of geometric variations cannot be modeled easily with matrix
transforms using their method. Additionally, their methods are not applied to mecha-
nisms.
[Desrochers and Riviere 1997] contribute a 3D transformation matrix method for
tolerancing and clearance calculation. This method is based on the TTRS structure (Tech-
nologically and Topologically Related Surfaces), which create composite surfaces and
datums within and between the parts of an assembly upon which all tolerancing is based.
They define and categorize tolerance zones and elementary surface types for use with the
TTRS methodology, which determine what degrees of freedom are available for different
mating conditions, similar to what is done with the DLM method in Chapter 2 (Table 2.2).
All forms of geometric variation can be included in this matrix method, and although their
paper does not delineate a method specifically for tolerance analysis, it can be easily
adapted to include tolerance stack-up analysis. However, it does not allow for statistical
tolerance analysis. Again, this method does not encompass kinematic mechanisms in
motion, but only static assemblies.
The research area for this thesis has not been widely explored. Very few have
looked at incorporating geometric variation into 3D vector models, and none have
expanded such work to include the ability to analyze variation of mechanisms using kine-
matic software.
6
1.3 Objectives
The purpose of this research is to develop a 3D kinematic analogy for tolerance
analysis of mechanisms. Specifically, the objective is to:
1. Expand upon Faerber’s kinematic analogy to perform tolerance analysis of
assemblies using 3D mechanisms, modified to include dimensional and geo-
metric variation.
2. Create a library of 3D equivalent kinematic joints for use in tolerance analysis.
3. Create a library of equivalent joints to allow inclusion of geometric variation in
analysis.
4. Demonstrate the kinematic analogy by employing commercial kinematic soft-
ware to perform tolerance analysis of both static assemblies and mechanisms.
1.4 Research Approach
The objectives of this research are accomplished in a systematic manner. First,
techniques for modeling 3D assemblies in kinematic equations are developed using the
direct linearized method and the global coordinate method, combined with Faerber’s
work. These techniques are demonstrated with two examples that incorporate many dif-
ferent joint types. Geometric variation is then incorporated into this system, again demon-
strated by example. The method for conducting analysis with these three kinematic and
geometric equivalent variational mechanisms is demonstrated using the Global Coordi-
nate method. The modeling techniques are then implemented in ADAMS to verify the
7
previous three problems, demonstrating the utility of the methodology in commercial soft-
ware.
1.5 Research Scope
The thesis will define a method for performing 3D tolerance analysis, including
geometric variation, that is based upon kinematic equations and sensitivities. This
research explores a linear, or 1st-order analysis method, and does not delve into the 2nd-
order analysis techniques. Additionally, the research concentrates on enabling the model
to account for variation due to geometric form and feature variation, not to mathematically
model or approximate the full implications of a geometric tolerance callout; such as MMC
or RFS modifiers.
1.6 Thesis Results
This research enables statistical tolerance analysis of kinematic assemblies in 3D.
Techniques have been developed to allow inclusion of geometric variation in 3D vector
assemblies. A library of 3D equivalent variational mechanism was defined to allow mod-
eling of tolerance analysis problems in modified kinematic assemblies. An additional
library was defined for EVMs that include geometric variation. With these libraries and
modeling techniques, tolerance analysis of a mechanism or static assembly can be per-
formed in commercial kinematic software, allowing automated tolerance analysis of a
mechanism at various positions, if desired.
8
1.7 Thesis Overview
The remaining chapters in this thesis proceed as follows: Chapter 2 presents the
tolerancing background from Jinsong Gao and Paul Faerber. Chapter 3 presents back-
ground in 3D kinematics, comparing different methods for obtaining sensitivities from an
assembly model. Chapter 4 contains the techniques for implementing the new library of
equivalent variational mechanisms (EVMs) developed in 3D for this thesis. Chapter 5
demonstrates techniques for a similar library of GEVMs for modeling geometric variation.
Analytical examples showing the methods for conducting tolerance analysis using these
new modeling techniques and EVMs are illustrated in Chapter 6. Example assemblies
demonstrating how these modeling techniques are implemented in ADAMS are shown in
Chapter 7. Finally, Chapter 8 contains concluding statements and recommendations for
future research.
9
CHAPTER 2 TOLERANCE ANALYSIS BACKGROUND
This thesis draws from and expands upon previous research in the areas of toler-
ance analysis. [Gao 1993] presented improved methods for performing a linearized toler-
ance analysis in 3D which also incorporates geometric variation. [Faerber 1999]
established an analogy between kinematic velocity analysis and tolerance analysis. These
research topics have been expanded and blended together to accomplish the objectives of
this thesis.
2.1 Direct Linearization Method
Analysis of variation for complex assemblies often results in implicit functions in
3D which normally produce a set of non-linear equations. This makes the analysis tedious
and complicated. Linearizing the equations can reduce the complexity and can be justified
as a reliable method of analysis by the fact that dimensional variations are generally orders
of magnitude smaller than the physical dimensions of the assembly. The geometry is not
changed sufficiently to modify the sensitivities significantly. Linearization is therefore a
10
proper method for simplifying the analysis, and provides an excellent approximation to
the solution.
The Direct Linearization Method (DLM) was first developed by [Marler 1988] in
2D and subsequently expanded to 3D by [Robison 1989] and [Gao 1993]. The constraints
in an assembly are described by vector loops in 2D or matrix loops in 3D, which are
formed into kinematic constraint equations. These consist of a concatenation of homoge-
neous transformation matrices that describes the vector path in terms of rotations about
local x, y, and z axes, and translations along the vector path (x-axis by definition). Trans-
formation matrices for a 3D assembly are shown in Equations (2.1):
(2.1)
where φx, φy, and φz are relative rotations about their corresponding axes, and Tx, Ty, Tz are
localized components of the translation vector between nodes of the vector loop. The
transformation matrices are concatenated together to form assembly constraint equations
Rx
1 0 0 00 φxcos φxsin– 0
0 φxsin φxcos 0
0 0 0 1
= T
1 0 0 Tx
0 1 0 Ty
0 0 1 Tz
0 0 0 1
=
Ry
φycos 0 φysin 0
0 1 0 0φysin– 0 φycos 0
0 0 0 1
=
Rz
φzcos φzsin– 0 0
φzsin φzcos 0 0
0 0 1 00 0 0 1
=
11
that represent the rotations and translations that occur along the path of the vector loop
that characterizes the assembly and its critical features. Such constraint equations appear
as shown in Equation (2.2). [Rf] is the final loop closure rotation matrix. For a closed
loop assembly, [H]=[I], where [I] represents the identity matrix. For an open loop assem-
bly, [H] represents the clearance or gap in the assembly.
(2.2)
The constraint equations in (2.2) are nonlinear. The DLM uses a first-order Taylor
expansion to linearize the equations as an approximation of the dimensional variations. If
a small variation or perturbation is assumed for each assembly member, the approximation
is very good. Using the linearized Taylor expansion, only first derivatives need to be cal-
culated.
[Robison 1989] introduced a perturbation method for extracting derivatives. The
small perturbations ∆L and ∆φ are added one at a time to the translation and rotation matri-
ces, respectively, in Equation (2.2) at the point where the variations occur. Then the
matrix multiplications in Equation (2.2) are carried out. Note that when the perturbations
are included in the constraint equations, the loop will no longer close, resulting in a clo-
sure error vector {∆X ∆Y ∆Z 1}T. Once the constraint equations for the assembly loop
have been written, the following numerical partial derivatives of the equations may be
approximated for each length and angle variation in the loop:
R1[ ] T1[ ] R2[ ] T2[ ]… Ri[ ] Ti[ ]… Rn[ ] Tn[ ] Rf[ ] H[ ]=
12
(2.3)
where ωx, ωy and ωz are the direction cosine angles of the axis of the rotation φi; while Hx,
Hy and Hz are the sum of vectors in the global X, Y, and Z directions; and Hθx, Hθy and Hθz
are the sum of rotations about the X, Y, and Z axes, respectively [Gao, Chase and Magleby
1998b].
The assembly constraint equation (2.2) can then be linearized using a first order
Taylor expansion, producing matrix equation (2.4):
(2.4)
where {δH} is the vector of clearance variations,
{δX} is the vector of the variations for the manufactured variables,
{δU} is the vector of the variations for the assembly variables,
[A] is the matrix of the first order partial derivatives with respect to the manufac-
tured variables, and
Length Variation
∂Hx∂Li---------- ∆X
∆Li--------≅
∂Hy∂Li---------- ∆Y
∆Li--------≅
∂Hz∂Li--------- ∆Z
∆Li--------≅
∂Hθx∂Li
------------- 0=
∂Hθy∂Li
------------- 0=
∂Hθz∂Li
------------ 0=
Angular Variation
∂Hx∂φi---------- ∆X
∆φ-------≅
∂Hy∂φi---------- ∆Y
∆Li--------≅
∂Hz∂φi--------- ∆Z
∆Li--------≅
∂Hθx∂φi
------------- ωx=
∂Hθy∂φi
------------- ωy=
∂Hθz∂φi
------------ ωz=
δH{ } A[ ] δX{ } B[ ] δU{ }+ 0{ }= =
13
[B] is the matrix of the first order partial derivatives with respect to the assembly
variables.
Matrices [A] and [B] are obtained using the derivatives in Equations (2.3), and are
used with open or closed-loop systems. The columns of [A] have the form:
(2.5)
where xi is the ith manufactured dimension or angle. The columns of [B] are also obtained
using the format in Equation (2.5), but with ui in place of xi, where ui is the ith assembly
variable. To obtain these matrices, it is important to determine which dimensions in the
assembly loop are dependent or independent variables. The manufactured dimensions for
use in [A] are independent variables, where the assembly values in [B] are dependent.
Equation (2.4) can be evaluated for a closed-loop system ({δH} = {0}), assuming
that [B] is a square matrix, and then solved for {δU}:
(2.6)
Equation (2.6) describes the small adjustments {δU} which take place in the assembly in
response to small dimensional variations {δX}. For an assembly where [B] is not square,
this equation must be modified to include a least-squares fit solution to the inverse, as
shown below:
(2.7)
Ai{ }δHxδxi----------
δHyδxi----------
δHzδxi---------
δHθxδxi
-------------δHθyδxi
-------------δHθzδxi
------------, , , , , T
=
δU{ } B[ ] 1– A[ ] δX{ }–=
δU{ } B[ ]T B[ ]( )1–
B[ ]T A[ ] δX{ }–=
14
The -[B]-1[A] matrix in Equation (2.6) (or the -([B]T[B])-1[B]T[A] portion of Equa-
tion (2.7)) contains the sensitivities of the dependent assembly variables to the indepen-
dent manufacturing dimensions.
For an open-loop, the close-loop solution should first be solved for {δU} and then
utilized in Equation (2.8) to solve for the open-loop kinematic variations:
(2.8)
where {δΦp} is the vector of variations of open loop assembly variables,
[C] is the matrix of the partial derivatives with respect to the manufactured vari-
ables of the open loop, and
[D] is the matrix of the partial derivatives with respect to the open-loop assembly
variables.
When [B] is a square matrix, the open-loop equation is solved for {δV}:
(2.9)
When [B] is singular, another least-squares method must be used, as shown below:
(2.10)
In the above equations, the ([C]-[D][B]-1[A]) or ([C]-[D]([B]T[B])-1[B]T[A]) por-
tions of the solution represent the sensitivities of the dependent variables to the indepen-
dent open-loop variables. They are the tolerance sensitivities used in evaluating the
assembly variations and rejects for closed loop assemblies [Gao, Chase and Magleby
1998b].
δΦp{ } C[ ] δX{ } D[ ] δU[ ]+=
δΦp{ } C[ ] D[ ] B[ ]– 1– A[ ]( ) δX{ }=
δΦp{ } C[ ] D[ ] B[ ]T B[ ]( )– 1– B[ ]T A[ ]( ) δX{ }=
15
2.2 Incorporating Geometric Variation into Vector Models
The methods for incorporating geometric variation in vector loop models were
explained in [Chase et al. 1996]. Geometric variation only propagates through an assem-
bly at the contact points between mating parts. To represent this in a vector model, a zero-
length vector with a specified variation is inserted into the vector loop at the point of sur-
face contact where the geometric variation applies. The zero-length vectors are indepen-
dent variation sources for the model, introducing linear or angular variation depending on
the nature of the contact between the mating surfaces.
2.2.1 Effects of Geometric Form Variation in Assemblies
The various types of mating conditions for 3D assemblies may be represented as
kinematic joints, as shown in Figure 2.1. The arrows indicate the unconstrained degrees
of freedom in each joint. Depending on the joint used, variation will propagate through
different rotational and translational directions associated with the joint axes. The direc-
tions of variation propagation may be different for each axis, as demonstrated in Figure
2.2. Using an example of surface waviness due to geometric variation in flatness, the two
modes of variation can be explained in Table 2.1.
To correctly incorporate geometric variation in a tolerance model, the types of spe-
cific variation for each joint type must be understood, as well as how the joint affects the
variation. Each joint type has specific kinematic degrees of freedom that allow certain
types of motion, as seen in Figure 2.1. Where kinematic degrees of freedom (K) exist, no
16
Figure 2.1 3D Kinematic Joint Types, with the number of Degrees of Freedom indicated [Chase et al. 1996]
Rigid (no motion) Prismatic (1) Revolute (1) Parallel Cylinders (2)
Cylindrical (2) Spherical (3) Planar (3) Edge Slider (4)
Cylindrical Slider (4) Point Slider (5) Spherical Slider (5) Crossed Cylinders (5)
Z
Y
X
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
---------------------------------------------------------------------- =
21
Using the DLM, the assembly constraint equation with geometric feature variables
can be linearized using a Taylor expansion as was done in Equation (2.4). However, the
equations have been modified to account for the geometric variation. The linearized equa-
tion becomes:
For a closed loop (2.12)
For an open loop (2.13)
where [F], [G] are the partial derivative matrices with respect to the geometric feature
variables, and {δα} contains the variations of the geometric feature variables. Note that
[G] is specifically for partial derivatives with respect to geometric feature variables that
occur exclusively in the open loop. The form of [F] or [G] will be similar to that of [A] or
[B] in Equation (2.5), replacing xi or ui with αi for the geometric variables. {δH}, {δΦp},
{δX}, {δU}, [A], [B], [C] and [D] are as defined for Equations (2.4) and (2.8).
Solving for{δU}, Equation (2.12) becomes:
(2.14)
Substituting {δU} from Equation (2.14), and solving for {δΦp}, Equation (2.13)
becomes:
(2.15)
δH{ } A[ ] δX{ } B[ ] δU{ } F[ ] δα{ }+ + 0{ }= =
δΦp{ } C[ ] δX{ } D[ ] δU{ } G[ ] δα{ }+ +=
δU{ } B[ ]– 1– A[ ] δX{ } B[ ] 1– F[ ] δα{ }–=
δΦp{ } C[ ] D[ ]– B[ ] 1– A[ ]( ) δX{ } G[ ] D[ ] B[ ] 1– F[ ]–( ) δα{ }+=
22
In Equation (2.14), there are two sensitivity matrices. The sensitivity matrix for the
dimensional variables [Sd] and the matrix for the geometric feature variables [Sα], are
shown in Equation (2.16).
For closed loops (2.16)
The open-loop equation also has two sensitivity matrices analogous to those shown in
Equation (2.16), which are shown below:
For open loops (2.17)
The sensitivity matrices in Equations (2.16) and (2.17) can then be used to esti-
mate the kinematic and assembly variations as well as the assembly reject rate, as shown
in the root sum square equation in (2.18),
(2.18)
where Told is the tolerance vector for the dimensional variables,
Tolα is the tolerance vector for the geometric feature variables,
n is the number of dimensional variables,
m is the number of geometric feature variables,
and TASM is the design limit for assembly variation ∆Ui.
In Equation (2.18), ∆Ui2 is an estimate of the statistical variance of Ui [Chase et al. 1996].
Sd[ ] B[ ]– 1– A[ ]=
Sα[ ] B[ ]– 1– F[ ]=
Sd[ ] C[ ] D[ ] B[ ] 1– A[ ]–( )=
Sα[ ] G[ ] D[ ] B[ ] 1– F[ ]–( )=
∆Ui Sijd Tolij
d( )2 SijαTolij
α( )2
j 1=
m
∑+
j 1=
n
∑ TASM≤=
23
2.2.4 Example DLM Solution with Geometric Variation - Wedge Problem
Following is a simple example to demonstrate the DLM using 2D vector loops.
The wedge problem consists of a rectangular block with a rounded corner that is assem-
bled into a groove. Table 2.3 and Table 2.4 describe the manufactured and assembly vari-
ables, respectively, with their nominal values and tolerances, where applicable.
Figure 2.4 demonstrates the layout of the wedge example, illustrating the various
dimensions and geometric tolerances imposed on the assembly. Given these dimensions
and geometric variations, a vector loop for the assembly can be created, as shown in Fig-
ure 2.5. This vector loop is not the only possible vector loop for this configuration.
Depending on the function of the assembly, the dimensioning scheme, or the method used
for determining acceptance or rejection of the parts, the vector loop may follow a different
TABLE 2.3 Manufactured dimensions for wedge problem
Variable Description Nominal Dim. Tolerance
A Height of wall 0.75" ± 0.01"
H Height of block 1.375" ± 0.005"
R1 Radius of curve 0.75" ± 0.01"
R2 Radius of curve 0.75" ± 0.01"
R3 Radius of curve 0.75" ± 0.01"
θ Angle of overhang 35° ± 1.0°
TABLE 2.4 Kinematic assembly variables for wedge problem
Variable Description Nominal Dim. Design Spec.
Ul Horizontal position of block
0.379" ± 0.05"
U2 Angular distance to contact point
0.853" N/A
φ Contact angle 35° N/A
24
path. Notice that the vector loop passes only through known manufactured dimensions
(A, R, θ) or adjustable assembly dimensions (U1, U2, φ).
In addition to the dimensional and assembly variation described in Tables 2.3 and
2.4, the geometric variation corresponding to the specified form tolerances must be con-
sidered. Table 2.5 presents these variations. The type of physical variation introduced
into the model is associated with the specific tolerance and joint type, as determined from
Table 2.2.
While the flatness callout for the bottom surface of the groove and the block both
have tolerance values that indicate a rectangular tolerance zone, the actual variation intro-
duced into the model is rotational, per Table 2.2. Therefore, the rotational variation due to
these tolerances was calculated from Equation (2.11) and are included in Table 2.5.
Notice that the width of the block corresponds to the characteristic length in Equation
(2.11) and must be known, even though this length is independent of the vector loop. The
value specified for this contact length was twice the value of R, or 1.5 inches.
A
.01
φ
U 1
θ
R
U 2
H
.02
.01
.01
U1
θ
A
H
U2
φ
R3
R2
R1
Figure 2.4 Geometric tolerances in wedge problem Figure 2.5 Vector loop for wedge problem
25
The form tolerances at the point of contact between the round corner of the block
and the angled surface of the groove introduce only translational variation. The value for
the variation is simply plus or minus one half the width of the tolerance zone specified on
the drawing, as explained in Section 2.2.3.
The [F] matrix, from Equation (2.12), is obtained by taking partial derivatives of
the loop equations with respect to each geometric variation, one at a time. Since it is a
partial derivative, all other dimensions and geometric variables are held fixed.
Figure 2.6 demonstrates the effect of the partial derivative with respect to the flat-
ness variation of the bottom groove surface. The induced rotational variation, ∆β1, propa-
gates kinematically throughout the entire assembly as if the vector loop was transformed
as a rigid body from that point on. Figure 2.6 describes the effect of the partial derivative
with respect to β1 not the complete response of all the loop variables.
TABLE 2.5 Geometric tolerance variables for the wedge example
Variable Description Nominal Variation
β1 Variation in flatness on bottom surface of groove
0 ±0.38197°
β2 Variation in flatness on bottom surface of block
0 ±0.38197°
α3 Tolerance for profile variation on round of block
0 ±0.005”
α4 Tolerance for flatness variation on angular surface of groove
0 ±0.005”
26
Given the vector loop and geometric variations, the equations for the vector loop
can be produced for the x, y and θ components as shown in Equations (2.19), (2.20) and
(2.21), respectively:
(2.19)
(2.20)
(2.21)
Notice that the geometric variations β1 and β2 are introduced in vector H and
appear in each term throughout the remainder of the vector loop equations from the point
they were inserted. A small change in β1 or β2 not only causes vector H to rotate, but also
each vector following H in the loop. The result is a rigid body rotation of the vectors as a
∆β1 ∆Y
∆X
Figure 2.6 Graphical representation of propagation of geometric variation
Hx U1 0( ) R1 0( ) H 90 β1 β2+ +( ) R2 270 β1 β2+ +( ) +cos+cos+cos+cos=
R3 90 φ β1 β2+ + +( ) α3 90 φ β1 β2+ + +( ) α4 90 φ β1 β2+ + +( ) +cos+cos+cos
U2 180 φ β1 β2+ + +( ) A 270 β1 β2+ +( )cos+cos 0=
Hy U1 0( ) R1 0( ) H 90 β1 β2+ +( ) R2 270 β1 β2+ +( ) +sin+sin+sin+sin=
R3 90 φ β1 β2+ + +( ) α3 90 φ β1 β2+ + +( ) α4 90 φ β1 β2+ + +( ) +sin+sin+sin
U2 180 φ β1 β2+ + +( ) A 270 β1 β2+ +( )sin+sin 0=
Hθ 0 0 90 β1 β2 180 180 φ 90 90 θ– 90+ + + + + + + + + + 0= =
or…φ θ=
27
block, as shown in Figure 2.6. This will also result in a very large number of terms in [F],
where the derivatives of the loop equations are taken with respect to β1 and β2.
Also note in the Hθ equation (2.21), it is shown that φ is equivalent to θ, which
would also signify that δφ=δθ, and thus φ is no longer an unknown dependent variable, as
its variation is always known from θ. So, θ is substituted for φ throughout Equations
(2.19) and (2.20), and the Hθ equation becomes unnecessary and can be dropped from the
partial derivative matrices shown below, as is the φ column from [B]. The matrix [A] is
reduced to:
(2.22)A[ ]
∂hx∂R1---------
∂hx∂H--------
∂hx∂R2---------
∂hx∂R3---------
∂hx∂θ--------
∂hx∂A--------
∂hy∂R1---------
∂hy∂H--------
∂hy∂R2---------
∂hy∂R3---------
∂hy∂θ--------
∂hy∂A--------
=
28
where:
(2.23)
Then the matrix [B] of partial derivatives with respect to dependent variables is
formed below:
(2.24)
where:
(2.25)
∂hx∂R1--------- 0( )cos 1= =
∂hy∂R1--------- 0( )sin 0= =
∂hx∂H-------- 90 β1 β2+ +( )cos=
∂hy∂H-------- 90 β1 β2+ +( )sin=
∂hx∂R2--------- 270 β1 β2+ +( )cos=
∂hy∂R2--------- 270 β1 β2+ +( )sin=
∂hx∂R3--------- 90 θ β1 β2+ + +( )cos=
∂hy∂R3--------- 90 θ β1 β2+ + +( )sin=
∂hx∂θ--------
R3– 90 θ β1 β2+ + +( ) –sin
α3 90 θ β1 β2+ + +( ) –sin
α4 90 θ β1 β2+ + +( ) –sin
U2 180 θ β1 β2+ + +( )sin
= ∂hy∂θ--------
R3 90 θ β1 β2+ + +( ) +cos
α3 90 θ β1 β2+ + +( ) +cos
α4 90 θ β1 β2+ + +( ) +cos
U2 180 θ β1 β2+ + +( )cos
=
∂hx∂A-------- 270 β1 β2+ +( )cos=
∂hy∂A-------- 270 β1 β2+ +( )sin=
B[ ]
∂hx∂U1----------
∂hx∂U2----------
∂hy∂U1----------
∂hy∂U2----------
=
∂hx∂U1---------- 0( )cos 1= =
∂hx∂U2---------- 180 θ β1 β2+ + +( )cos=
∂hy∂U1---------- 0( )sin 0= =
∂hy∂U2---------- 180 θ β1 β2+ + +( )sin=
29
The matrix [F] of partial derivatives with respect to geometric variations is as
shown below:
(2.26)
where:
(2.27)
When [A], [B] and [F] are formed, the nominal values of the dependent and inde-
pendent variables are inserted into the matrices for use in calculations, remembering that
F[ ]
∂hx∂β1---------
∂hx∂β2---------
∂hx∂α3---------
∂hx∂α4---------
∂hy∂β1---------
∂hy∂β2---------
∂hy∂α3---------
∂hy∂α4---------
=
∂hx∂β1---------
H 90 β1 β2+ +( ) R2 270 β1 β2+ +( ) R3 90 θ β1+ + β2+( ) +sin+sin+sin[–
α3 90 θ β1 β2+ + +( ) α4 90 θ β1 β2+ + +( ) +sin+sin
U2 180 θ β1 β2+ + +( )sin A+ 270 β1 β2+ +( )sin ]
=
∂hx∂β2---------
H 90 β1 β2+ +( ) R2 270 β1 β2+ +( ) R3 90 θ β1+ + β2+( ) +sin+sin+sin[–
α3 90 θ β1 β2+ + +( ) α4 90 θ β1 β2+ + +( ) +sin+sin
U2 180 θ β1 β2+ + +( )sin A+ 270 β1 β2+ +( )sin ]
=
∂hy∂β1---------
H 90 β1 β2+ +( ) R2 270 β1 β2+ +( ) R3 90 θ β1+ + β2+( ) +cos+cos+cos
α3 90 θ β1 β2+ + +( ) α4 90 θ β1 β2+ + +( ) +cos+cos
U2 180 θ β1 β2+ + +( )cos A+ 270 β1 β2+ +( )cos
=
∂hy∂β2---------
H 90 β1 β2+ +( ) R2 270 β1 β2+ +( ) R3 90 θ β1+ + β2+( ) +cos+cos+cos
α3 90 θ β1 β2+ + +( ) α4 90 θ β1 β2+ + +( ) +cos+cos
U2 180 θ β1 β2+ + +( )cos A+ 270 β1 β2+ +( )cos
=
∂hx∂α3--------- 90 θ β1 β2+ + +( )sin–=
∂hy∂α3--------- 90 θ β1 β2+ + +( )cos=
∂hx∂α4--------- 90 θ β1 β2+ + +( )sin–=
∂hy∂α4--------- 90 θ β1 β2+ + +( )cos=
30
the geometric variation variables have nominal values of zero. The results are shown in
their evaluated forms in Equations (2.28), (2.29) and (2.30).
(2.28)
(2.29)
(2.30)
From Equation (2.16), the sensitivity matrices can now be calculated,
(2.31)
(2.32)
and then used to calculate the assembly variation in the model using Equation (2.18).
2.3 Tolerance Analysis using Kinematic Sensitivities
The TAKS method (Tolerance Analysis using Kinematic Sensitivities) developed
by [Faerber 1999] employed an analogy which relates tolerance sensitivities to kinematic
velocity sensitivities. This velocity/variation analogy was developed previously by [Huo
1995]. Faerber developed methods for extracting tolerance sensitivities from a modified
kinematic analysis using equivalent variational mechanisms (EVMs). These EVMs
exploited the relationship between the kinematic velocity equations and the tolerance
A[ ] 1 0 0 0.573576– 0.125103– 00 1 1– 0.819152 1.128919– 1–
=
B[ ] 1 0.819152–0 0.573576–
=
F[ ] 0.000103– 0.000103– 0.819152– 0.819152–1.128919– 1.128919– 0.573576– 0.573576–
=
Sd B[ ] 1– A[ ]– 1– 1.428148 1.428148– 1.743447 1.487160– 1.428148–0 1.743447 1.743447– 1.428148 1.968210– 1.743447–
= =
Sα B[ ] 1– F[ ]– 1.612160– 1.612160– 0 01.968210– 1.968210– 1– 1–
= =
31
analysis equations. Table 2.6 demonstrates a comparison between kinematic and toler-
ance analyses.
Input velocities are introduced in the kinematic model corresponding to dimen-
sional variation in the assembly model, enabling the analysis of tolerances using kinematic
equations. The TAKS method and associated EVMs made possible the use of kinematic
software, not only to perform tolerance analysis of mechanisms through the full range of
motion, but also the analysis of static mechanical assemblies.
The TAKS method consists of four main steps. The first step is to characterize the
assembly geometry by identifying datum reference frames and independent and dependent
variables, and create a vector loop. The second is to create an EVM, as described briefly
in Section 2.3.1. The third step is to perform a kinematic analysis of the EVM. Normally,
this analysis would be done in a kinematic software package, like ADAMS. However, a
detailed example of the kinematic analysis for the EVM of a one-way clutch will be dem-
onstrated numerically in Section 2.3.2. The last step after the kinematic analysis is to
extract the sensitivities and calculate the predicted assembly variation.
TABLE 2.6 Comparison of Kinematic and Tolerance Analyses
Kinematic Analysis Tolerance Analysis
Model: Vector loop w/ kinematic joints Vector loop w/ kinematic joints
Describes: Instantaneous velocities Probable assembly variations
Input: Link positions and input link velocities
Dimensional variations in angles and link lengths
Outputs Output link velocities Dependent assembly varia-tions in angles and link lengths
Angles: Absolute Relative
Sensitivities Kinematic velocity sensitivities Tolerance sensitivities
32
2.3.1 Equivalent Variational Mechanisms
To enable the kinematic analogy, Faerber developed EVMs. An EVM is a modi-
fied mechanism that is theoretically and analytically equivalent to the original mechanism.
It has only been modified to allow dimensional variation to be introduced into the model,
and to facilitate the modeling of the mechanism in kinematic software. This section will
explain the different elements that make up the equivalent variational mechanisms used to
model variation in kinematic assemblies. The methods for creating the vector loop, the
sources of the variation, and the equivalent joints for the EVM will be discussed.
2.3.1.1 Vector Loops and DRF
A proper vector loop is required for developing a successful analysis of an EVM.
As the vector loop for the assembly passes through the part, it must first pass through the
datum reference frame (DRF) of each part. The DRF of a part or a feature is a local coor-
dinate system upon which all the part geometry is defined. The vectors leading to and
from the DRF correspond to physical dimensions and kinematic variables in the assembly.
Figure 2.7 shows a one-way clutch assembly, with the part and feature DRF
shown. The one-way clutch is an assembly with a hub that is designed to spin freely,
being disengaged from the ring when rotated in one direction. In the other direction, the
rollers provide friction that engages the hub to the ring, allowing rotation to be transmitted
from hub to ring. Note that the part DRFs for the hub and the ring are coincident. Due to
symmetry, only one fourth of the clutch need be analyzed. Therefore, Figure 2.8 illus-
33
trates one quarter of the clutch assembly, with a vector loop that passes through each part
DRF and each feature DRF.
2.3.1.2 Equivalent Variational Sources
All sources of variation for the assembly need to be included in the EVM. There
are independent and dependent variation sources. Independent variation sources come
from dimensional or geometric variation in the parts. These two sources of variation are
independent of each other, but both can contribute significantly to the assembly variation.
Faerber’s work did not encompass form variation, and thus a major objective of this thesis
is the incorporation of geometric variation into the kinematic tolerance modeling process.
The variations are modeled by including equivalent variational elements in the
EVM. Independent linear variations are modeled by splitting a link in the vector model
into two sublinks and joining them with a translational joint and applying a unit linear
velocity. Independent angular variations are modeled by creating a pin joint at the point of
variation, and applying a unit angular velocity. As velocity is analogous to variation, a
hub
ring
roller
spring
= Cylindrical DRF
21
"c1
M
a
c2
c1
"b
"f
b
f
"c2
Figure 2.7 One-way clutch assembly with DRFs. [modified from Faerber 1999]
Figure 2.8 Vector loop used to analyze the one-way clutch model. [Faerber 1999]
34
specified velocity must be included in the assembly for every dimension with specified
variation. The equivalent elements allow for dimensional variation to be introduced using
traditional kinematic elements. Figure 2.9 shows representations of these equivalent ele-
ments for independent linear and angular variation.
Dependent dimensional variations will have the same equivalent elements, but
with unknown velocity functions. This is because the variation of a dependent joint is an
unknown variable to be solved for in the tolerance analysis. The kinematic adjustments
that occur at the time of part assembly are dependent variations. They depend upon the
dimensional and geometric variations of the individual parts that determine how the
assembly fits together.
Figure 2.9 Equivalent elements representing independent linear and angular variation. [modified from Faerber 1999]
2 ± d2 d2dt
Equivalent elementEquivalent elementAngular dimension
d2dt
2
Pin Joint
dl
Equivalent elementEquivalent elementLength dimension
l ± dl
dldt
Slider Joint
35
2.3.1.3 Equivalent Variational Joints
In addition to the variation sources, the EVM must include equivalent joints to
properly model the geometry and constraints of the assembly. The equivalent joints
developed by Faerber can be seen in Figure 2.10. Each joint simulates a type of contact in
a 2D mechanical assembly by replicating its degrees of freedom with an equivalent skele-
ton model joint. The skeleton model permits inclusion of varying length and angular
dimensions in the joints. Similar to this collection of 2D equivalent joints, a library of 3D
equivalent joints has been developed for this thesis that allow the variation and degrees of
freedom of a mechanical assembly to be properly modeled in a skeleton model described
by vector equations. These equivalent joints are demonstrated in Chapter 4. An addi-
Figure 2.10 Equivalent variational joints for use in EVM vector models [modified from Faerber 1999]
PlanarJoint
Joint SkeletonModel
EquivalentJoint
CylindricalSlider Joint
Edge SliderJoint
ParallelCylinders
Jointcenter of curvature
36
tional library that allows for inclusion of geometric variation in the model is included in
Chapter 5.
When the vector loop has been incorporated with the equivalent variational ele-
ments and joints, a complete EVM can be constructed. Figure 2.11 displays the Equiva-
lent Variational Mechanism for the one-way clutch, with the vector loop and all equivalent
variational elements and joints, overlaid on the clutch geometry. Note that the indepen-
dent dimensional variation vectors a, c1, c2, and f become links in the equivalent mecha-
nism, containing translational joints with prescribed input velocities added to
appropriately model the dimensional variation. The dependent assembly variation vector b
has no specified velocity applied, as discussed in Section 2.3.1.2. Also note that since
Faerber’s work did not include geometric variation, the model does not include cylindric-
ity or circularity variation. Therefore, the radius of this cylinder must be considered uni-
form, and c1 = c2. In addition, the variation of each radius vector must be identical, thus
, for which will be substituted.
Figure 2.11 Equivalent Variational Mechanism for one-way clutch. [modified from Faerber 1999]
a
b
c2
f
Rigid JointRevolute Joint
Prismatic Joint
Slider Jointc1
..
.
.
c·1 c2·= c·
37
2.3.2 Example EVM Solution - One-Way Clutch
Faerber included in his thesis the analysis of a one-way clutch, with the full classi-
cal tolerance solution in addition to the EVM solution for comparison. The EVM solution
is included here for demonstration. Figure 2.7 shows the one-way clutch assembly. The
only position of interest in this clutch is the engaged position, and thus can be modeled as
a static assembly. The proper vector loop for this analysis is shown in Figure 2.8, with the
pressure angle, Φ, as the critical assembly feature. The dimensions and tolerances for this
assembly are found in Table 2.7.
A few points must be clarified about the EVM in Figure 2.11 before the analysis is
presented. Since form variation is neglected in this model, it must be assumed that c2 and
f are always colinear. To enforce this in the model, rigid joints have been placed between
the c2 and f links, allowing no relative motion between the two. We can then form the fol-
lowing equation in terms of absolute angles for the vector loop demonstrated in Figure
2.8.
(2.33)
TABLE 2.7 Nominal dimensions and tolerances for the clutch model (modified from Faerber 1999)
Dimension Nominal SizeInitial
Tolerance (+/-)
1/2 hub radius, a 27.645 mm .050 mm
roller radius, c 11.430 mm .010 mm
1/2 ring radius, f 50.800 mm .0125 mm
roller contact, b 4.8105 mm unknown
pressure angle, φ 7.0184 unknown
aeiθ1 beiθ1 c1eiθc1 c2eiθc2 feiθf+ + + + 0=
38
Equation (2.33) has been shown in absolute angles, which is the traditional form
for kinematic equations. However, tolerances are relative variations. A dimensional or
form variation in a part is relative to the datum surfaces used in producing the part. Small
changes in part length or form due to manufacturing variations propagate throughout an
assembly. With this characteristic of manufacturing variation, it is advantageous to con-
duct analyses in relative angles to avoid the necessity of conversions later on. Noting the
following relationships between absolute angles θi and relative angles αi in the one-way
clutch,
(2.34)
Equation (2.33) is converted to relative angles in Equation (2.35), with the additional sub-
stitution of , as the assembly constraint is on φ, and not αc2. The remainder of
the analysis will be conducted in relative terms.
(2.35)
The first step in the analysis is now to differentiate this position equation with respect to
time, noting that θ1, αb, αc1, and αf are constant terms. This yields the velocity equation:
(2.36)
Equation (2.36) is partitioned into real and imaginary components as:
θb θ1 αb+= θc2 θ1 αb αc1 αc2+ + +=
θc1 θ1 αb αc1+ += θf θ1 αb αc1 αc2 αf+ + + +=
φ αc2–=( )
aeiθ1 bei θ1 αb+( ) c1ei θ1 αb αc1+ +( ) c2ei θ1 αb αc1 φ–+ +( )+ + + +
fei θ1 αb αc1 φ– αf+ + +( ) 0=
a· eiθ1 b·ei θ1 αb+( ) c· ei θ1 αb αc1+ +( ) ei θ1 αb αc1 φ–+ +( )+( )+ + +
f·ei θ1 αb αc1 φ– αf+ + +( ) φ·– ciei θ1 αb αc1+ +( ) fiei θ1 αb αc1 φ– αf+ + +( )+( ) 0=
39
(2.37)
Equation (2.37) is then displayed in matrix format,
(2.38)
where [A] and [B] are defined as follows:
(2.39)
(2.40)
a· θ1cos b· θ1 αb+( )cos c· θ1 αb αc1+ +( )cos θ1 αb αc1 φ–+ +( )cos+( )+ + +
φ· c θ1 αb αc1 φ–+ +( )sin f θ1 αb αc1 φ– αf+ + +( )sin+( ) +
f· θ1 αb αc1 φ– αf+ + +( )cos 0=
a· θ1sin b· θ1 αb+( )sin c· θ1 αb αc1+ +( )sin θ1 αb αc1 φ–+ +( )sin+( )+ + +
φ· c– θ1 αb αc1 φ–+ +( )cos f– θ1 αb αc1 φ– αf+ + +( )cos( ) +
f· θ1 αb αc1 φ– αf+ + +( )sin 0=
A[ ]a·
c·
f·
B[ ]b·
φ·
+ 0=
A[ ]θ1( )cos θ1 αb αc1+ +( )cos θ1 αb αc1 φ–+ +( )cos+[ ] θ1 … αf+ +( )cos
θ1( )sin θ1 αb αc1+ +( )sin θ1 αb αc1 φ–+ +( )sin+[ ] θ1 … αf+ +( )sin=
B[ ]θ1 αb+( )cos c θ1 αb αc1 φ–+ +( )sin f θ1 αb αc1 φ– αf+ + +( )sin+[ ]
θ1 αb+( )sin c– θ1 αb αc1 φ–+ +( )cos f– θ1 αb αc1 φ– αf+ + +( )cos[ ]=
40
When Equation (2.38) is solved for the dependent variables and , Equation (2.41)
results.
(2.41)
Using the nominal dimensions as in Table 2.7:
(2.42)
The [-B-1A] matrix is a Jacobian matrix which contains the kinematic sensitivities for the
one-way clutch. They express the dependent velocities, and , in terms of the indepen-
dent velocities, , and . As the kinematic equations for the EVM were carried out in
terms of relative equations, these kinematic sensitivities are exactly equal to the tolerance
sensitivities for the variations on the clutch. These sensitivities can then be used in a root-
sum-squares expression or in a worst-case model, to analyze the tolerances of the clutch
[Faerber 1999].
2.4 Conclusion
The Direct Linearized Method provides a solid background for performing a lin-
earized vector loop tolerance analysis of assemblies. Using additional techniques with the
DLM, geometric variation can be included in vector models. Applying the analogy
between kinematic velocity and variation, Faerber developed techniques for using 2D
b· φ·
b·
φ·
B 1–– A[ ]a·
c·
f·
=
b·
α· c2 8.122– 16.3068– 8.184
0.2078– 0.414– 0.2063
a·
c·
f·
=
b· φ·
a· c· f·
41
kinematics of mechanisms to perform 2D tolerance analysis of assemblies. These analysis
methods and modeling techniques provide a fundamental background to the research pre-
sented in this thesis.
42
43
CHAPTER 3 3D KINEMATICS BACKGROUND
An important objective of this research is to show that classical 3D kinematic anal-
ysis methods can be used to obtain tolerance sensitivities. The Derivative Operator Matrix
method (DOM) in [Sandor and Erdman 1984] is a well-established analytical 3D kine-
matic method which has been implemented in commercial software. This chapter presents
two methods for sensitivity extraction, the kinematics-based DOM, and a tolerance-based
method called the Global Coordinate Method (GCM) [Gao, Chase and Magleby 1998a],
and compares them using a 3D kinematic example.
The DOM uses homogeneous transformation matrices and derivative operator
matrices to arrive at closed-form sensitivities. The GCM similarly arrives at closed-form
sensitivities, but does so with vector loop equations instead of matrix loop equations. The
results of the two methods for arriving at sensitivities are presented and compared in this
chapter.
44
3.1 3D Kinematics
[Sandor and Erdman 1984] demonstrate a method for performing kinematic analy-
sis in 3D that lends itself to automation by computer. The method uses Derivative Opera-
tor Matrices that reduce the work in evaluating derivatives to a simple matrix
multiplication.
3.1.1 Coordinate System Transformations
The DOM method uses 4x4 homogeneous transformation matrices to traverse the
vector loop of the kinematic model. It is necessary to establish a local coordinate system
for each link in the vector loop. Therefore, the transformation matrices locate and orient
the local coordinate system for each link relative to the previous link. The basic transfor-
45
mation matrices used are the same as in the DLM, and are reprinted from Equation (2.1) as
Equation (3.1), below:
(3.1)
These basic transformation matrices can be concatenated together to form matri-
ces for several different possible transformations, such as those in the following equations.
Equations (3.2) through (3.5) are four of the seven elementary transformation cases
Rx
1 0 0 00 φxcos φxsin– 0
0 φxsin φxcos 0
0 0 0 1
= T
1 0 0 Tx
0 1 0 Ty
0 0 1 Tz
0 0 0 1
=
Ry
φycos 0 φysin 0
0 1 0 0φysin– 0 φycos 0
0 0 0 1
=
Rz
φzcos φzsin– 0 0
φzsin φzcos 0 0
0 0 1 00 0 0 1
=
46
explained on page 587 of [Sandor and Erdman 1984], where x, y, z are the translation vari-
ables, and θx, θy, and θz are the rotation variables about the X, Y, and Z axes, respectively.
Type 1: Translation, with rotation about x-axis (3.2)
Type 2: Translation, with rotation about y-axis (3.3)
Type 3: Translation, with rotation about z-axis (3.4)
Type 4: Translation only (3.5)
As in the 3D DLM, the DOM method uses a type of matrix loop equation. In the
DOM, the matrix loop is described by a sequence of general transformation matrices, [Lij],
necessary to locate and orient the local coordinate system of each link relative to the next.
(Note that Sandor uses [Sij] in his notation, but this was changed to avoid later confusion
with the derivative matrix [S].) The [Lij] general coordinate transformation is a concatena-
tion of all elementary transformation matrices [Tij] required to define the coordinate sys-
tem j relative to the coordinate system i. Such a loop equation, for a closed-loop system
Tij1[ ]
1 0 0 x0 θxcos θxsin– y
0 θxsin θxcos z
0 0 0 1
=
Tij2[ ]
θycos 0 θysin x
0 1 0 yθysin– 0 θycos z
0 0 0 1
=
Tij3[ ]
θzcos θzsin– 0 x
θzsin θzcos 0 y
0 0 1 z0 0 0 1
=
Tij4[ ]
1 0 0 x0 1 0 y0 0 1 z0 0 0 1
=
47
with n local coordinate systems, would appear as in Equation (3.6), where [Ln0] represents
the transformation from the nth coordinate system to coordinate system 0, and [L00] repre-
sents the entire loop starting at system 0 and ending again at system 0 [Sandor and Erdman
1984].
(3.6)
3.1.2 Elementary Derivative Operator Matrices, Qlm
To simplify the evaluation of derivatives, Sandor and Erdman express the evalua-
tion of a partial derivative as a product of matrices. To accomplish this, the partial deriva-
tive of a general elementary matrix [Lij] is defined as:
(3.7)
where qm is the variable quantity with respect to which the partial derivative is being
taken. [Qlm] is a derivative operator matrix associated with the matrix [Lij]. There is a
distinct elementary derivative operator matrix [Qlm] for each type of elementary transfor-
mation matrix in equations (3.2) through (3.5). The subscript l on the [Qlm] matrix indi-
cates which type of elementary transformation matrix it is associated with, while the m
subscript indicates which variable the partial derivative is taken with respect to. The deri-
vation of these matrices is shown in APPENDIX A.
L00[ ] L01L12L23…L n 1–( )nLn0 I[ ]= =
∂ Lij qm( )[ ]
∂qm-------------------------- Lij qm( )[ ] Qlm[ ]=
48
3.1.3 Loop Derivative Operator Matrices, Dm
Once the elementary derivative operator matrices for each of the elementary matri-
ces have been defined, the derivative of the entire loop equation can be evaluated. To
facilitate this, another type of derivative operator matrix, [Dm], will be designated. From
[Sandor and Erdman 1984], the derivative of the general loop closure equation can be
shown:
(3.8)
The derivation of Equation (3.8) is shown in APPENDIX B, where [Dm] is defined as the
derivative operator matrix of the loop equation relative to the mth variable in the loop, as
shown in Equation (3.9). The derivation of the [Dm] matrices is shown in APPENDIX C.
(3.9)
The matrices and techniques developed in the previous sections and appendices
can be used in the analysis of a mechanism, as is shown in the next section.
3.1.4 Kinematic Position Analysis
Using the methods defined in the previous sections, [Sandor and Erdman 1984]
outlined a method for performing a kinematic position analysis of a mechanism.
Referring to the loop-closure equation in Equation (3.6), note that [L00] only pro-
duces a closed-loop equation, and thus equals the identity matrix [I] when all dependent
variables are set to the correct values. This characteristic can be used to solve for
∂ L00[ ]
∂qm---------------- Dm[ ] L00[ ]=
Dm[ ] L01L12…L k 1–( )k( ) Qim[ ] L01L12…L k 1–( )k( ) 1–=
qD{ }
49
the dependent variables. Rewriting Equation (3.6) in terms of its independent and
dependent variables gives:
(3.10)
Using a non-linear solution method, Equation (3.10) can be solved for its roots,
giving the dependent variable values. A Newton-Raphson solution is shown below.
Using a small initial estimate of dependent variables , Equation (3.10) can be solved
to obtain a correction value used to iterate until an appropriate solution is found.
Going through a Newton-Raphson procedure, [Sandor and Erdman 1984] shows that
Equation (3.10) can be linearized to obtain:
(3.11)
where m is the total number of all independent and dependent variables. The procedure is
continued to show how scalar equations can be pulled out of this 4x4 matrix equation.
The derivative operator matrices beginning at Equation (C.5) have, for the mth variable,
the general form:
(3.12)
qI{ }
L00 qD qI,( )[ ] I[ ]– 0=
q̂D{ }
∆qD{ }
Di[ ] ∆qi{ }
i 1=
m
∑ L001– I–[ ]=
Dm[ ]
0 D12mD13m
D14m
D21m0 D23m
D24m
D31mD32m
0 D34m
0 0 0 0
=
50
Not all of these elements are needed. Only six elements are needed to form the
independent scalar equations, D13, D21, D32, D14, D24, and D34. Only certain elements
are needed from the right side of Equation (3.11) as well, which is shown below:
(3.13)
From Equation (3.13), only the E11, E13, E14, E21, E22, E24, E32, E33, and E34 terms are
used in the formation of the scalar equations. Note that when the correct values are input
for the dependent variables in the system, Equation (3.13) will be largely zero, or close to
it. These scalar equations can be written as:
(3.14)
[Sandor and Erdman 1984] shows how Equation (3.14) can be partitioned and sim-
plified. Where r is the number of dependent variables, [SD] is the top-left section of
L001– I–[ ]
E111– E12 E13 E14
E21 E221– E23 E24
E31 E32 E331– E34
0 0 0 0
=
D131D132
… D13m
D211D212
… D21m
D321D322
… D32m
D141D142
… D14m
D241D242
… D24m
D341D342
… D34m
∆q1
………
∆qm
E13 E11 E33 2–+ +
E21 E11 E22 2–+ +
E32 E22 E33 2–+ +
E14
E24
E34
=
or S[ ] ∆q{ } R{ }=
r r×
51
[S], and {R1}is the top r section of {R}. Then a simplified partitioning of Equation (3.14)
can be represented as:
(3.15)
To solve for {∆qD}, its equation is first written out:
(3.16)
Then, because the independent variables are not changed, {∆qI} is zero, and Equation
(3.16) can be solved for {∆qD}:
(3.17)
Then {∆qD} is added to , which results in a new estimate . Iteration is contin-
ued, where both [L00] and are updated until the correction values are small and [L00]
approaches the identity matrix [Sandor and Erdman 1984]. The final values of are
the nominal values necessary to close the loop in response to inputs . This is a draw-
back to this method, as it is computationally intensive to recalculate the entire matrix con-
catenation equation [L00] in every iteration.
3.1.5 Kinematic Velocity Analysis
Once the position analysis is complete, the velocity analysis may begin, which
involves finding the dependent velocity variables, , given the independent velocity
SD SI
A B
∆ qD
∆ qI R1
R2
=
SD[ ] ∆ qD{ } SI[ ] ∆ qI{ }+ R1{ }=
∆qD{ } SD[ ] 1– R1{ }=
q̂D{ } q̂D{ }
q̂D{ }
qD{ }
qI{ }
q· D{ }
52
variables . Taking the derivative of the loop equation (3.6) with respect to time
yields:
(3.18)
Recognizing that [L00]=[I] once the dependent variables of the position analysis
have been determined, the partial derivative in Equation (3.18) can be replaced with a
derivative operator from Equation (3.7) to form:
(3.19)
The scalar equations resulting from this matrix equation are:
(3.20)
where [S] is the same matrix as in Equation (3.14). Again, [Sandor and Erdman 1984]
shows that this can be partitioned to solve for the dependent variables . Where r
again is the number of dependent variables, and s is the number of independent variables,
[SI] is the top-right portion of the [S] matrix. The solution for the dependent vari-
ables can then be expressed as:
(3.21)
q· I{ }
d L00[ ]
dt----------------
∂ L00[ ]
∂ qi{ }----------------
d qi{ }
dt--------------
i 1=
m
∑ 0= =
Di[ ] L00[ ] q· i{ }
i 1=
m
∑ Di[ ] q· i{ }
i 1=
m
∑ 0= =
S[ ] q·{ } 0=
q· D{ }
r s×
q· D{ } SD[ ] 1– SI[ ] q· I{ }–=
53
Notice the correlation between Equation (3.21) and Equation (2.6) from the DLM
(reprinted in Equation (3.22)):
(3.22)
Remember that {δU} is the vector of dependent variables, and {δX} is the vector of inde-
pendent variables, for small changes from the nominal. [A] and [B] are the matrices of the
partial derivatives of the closed loop assembly equations with respect to the independent
and dependent variables, respectively, and are equal to the tolerance sensitivities when
combined as -[B]-1[A]. These matrices correlate to what is shown in Equation (3.21), if
relative angles are used in the kinematic model.
It can thus be seen that the DOM method results in kinematic sensitivities of a
form very similar to what was shown with the DLM, but with a considerably different path
taken to arrive at that point.
3.2 Global Coordinate Method
Another method for calculating sensitivities is presented here, to be contrasted
with the DOM shown previously. The Global Coordinate Method (GCM) was presented
by [Gao 1993] as a simplified way of evaluating derivatives and extracting sensitivities
from tolerance models. It derives closed-form sensitivities by approximating the effect of
small perturbations on the loop closure equation. It is used together with the DLM to ana-
lyze the tolerances of an assembly using vector loops instead of transformation matrices.
δU{ } B[ ] 1– A[ ] δX{ }–=
54
The Global Coordinate Method in 3D represents assemblies by vector loops and
relative rotations between vectors, and can be derived starting from the differentiation of
the 3D vector expression.
(3.23)
Let X, Y, Z and {i}, {j}, {k} be functions of the variable u. Then, differentiating
results in [Chisholm 1978]:
(3.24)
where:
(3.25)
and {ω}={ωx, ωy, ωz}, which are the direction cosine angles of the local axis of rotation to
the origin. The first three terms of Equation (3.25) are due to change in length of {V},
while the cross product in the last term is from rotation of {V} about its tail.
To evaluate derivatives with respect to a translational variable, the substitution
u=Li is made in Equation (3.24). When the equation is evaluated for a translational deriv-
ative, the non-translational components drop out, such as the cross-product term. Addi-
tionally, to evaluate the derivatives with respect to a rotational variable, the substitution
u=φi is made in Equation (3.24). When the rotational derivatives are evaluated, similarly,
the non-rotational components drop out, meaning the first three terms of the equation dis-
appear. Equation (3.25) gives the derivatives of the assembly functions with respect to the
angular variable. In Equation (3.24), the rotation is applied at the tail of vector {V}, and
V{ } X i{ } Y j{ } Z k{ }+ +=
d V{ }du
-------------- dXdu------- i{ } dY
du------ j{ } dZ
du------ k{ } ω V×{ }+ + +=
ω V×{ } ωyZ ωzY–( ) i{ } ωzX ωxZ–( ) j{ } ωxY ωyX–( ) k{ }+ +=
55
the variation is similarly measured at the joint instead of at the origin of the global coordi-
nate system, as shown in Figure 3.1. If the rotation is about the tip of {V} and the varia-
tions are referenced from the global coordinate system, as shown in Figure 3.2, the signs
of the first three angular variations are reversed, as shown below:
Y
X
∆ y ∆ x
θ R
ω
(x,y,z)
V δβ
V δβ θ V
∆X V– δβ θV( )sin Y– δβ= =
∂X∂β------ Y–=
……………∆Y Vδβ θV( )cos Xδβ= =
∂Y∂β------ X=
Y
X ∆ y
∆ x
θ V
θ V
ω
(x,y,z) V
δβ
∆X Vδβ θV( )sin Yδβ= =
∂X∂β------ Y=
……………∆Y V– δβ θV( )cos X– δβ= =
∂Y∂β------ X–=
Figure 3.1 Variation measured at the local joint Figure 3.2 Variation measured at global origin
56
(3.26)
where cosα, cosβ, and cosγ are the direction cosines of the vector Li to the global origin;
ωx, ωy and ωz are the direction cosines of the axis of the rotation φi; X, Y and Z are the glo-
bal coordinates of the joints; Hx, Hy and Hz are the sum of vectors in the global X, Y and Z
directions; and Hθx, Hθy and Hθz are the sum of rotations about the X, Y and Z axes,
respectively. A more detailed derivation is shown in APPENDIX D [Gao, Chase and
Magleby 1998a].
If the global coordinates of the joints and the direction cosines of the vectors and
local joint axes in an assembly are known, the derivatives with respect to both transla-
tional and rotational variables can be obtained very easily. These derivatives could then
be inserted into [A] and [B] used in the DLM to arrive at sensitivities, as described below.
Length Variation
∂Hx∂Li---------- αcos=
∂Hy∂Li---------- βcos=
∂Hz∂Li--------- γcos=
∂Hθx∂Li
------------- 0=
∂Hθy∂Li
------------- 0=
∂Hθz∂Li
------------ 0=
Angular Variation
∂Hx∂φi---------- ωzY ωyZ–=
∂Hy∂φi---------- ωxZ ωzX–=
∂Hz∂φi--------- ωyX ωxY–=
∂Hθx∂φi
------------- ωx=
∂Hθy∂φi
------------- ωy=
∂Hθz∂φi
------------ ωz=
57
For a specific assembly, the derivatives from Equation (3.26) that reference the
independent variables are organized in [A], as described in Section 2.1 and Equation (2.5)
of Chapter 2. The derivatives that reference the dependent variables are organized to form
[B]. Then, the sensitivities can be calculated, and the unknown (dependent) variables can
be solved for as shown in Equation (2.6), reprinted below:
(3.27)
Thus, the Global Coordinate Method enables the sensitivities to be obtained using
Equation (3.26) in a closed-form manner. This simplifies the analysis and amount of nec-
essary calculations by eliminating the concatenation of transformation matrices.
3.3 3D Example: Crank Slider Assembly
This section will demonstrate both the Derivative Operator Matrix and Global
Coordinate methods in deriving the sensitivities for the 3D Crank Slider example. The
ease of use, efficiency, and accuracy of both methods will be evaluated and compared.
The crank slider is shown in Figure 3.3, along with its vector loop. In this figure,
the independent and dependent variables are also illustrated. Table 3.1 further describes
the independent variables, and Table 3.2 describes the dependent variables for the loop.
Note that the rotational dependent variables in Table 3.2 represent nominally zero-degree
rotations about the final joint coordinate system. There are intermediate non-zero rota-
tions required to arrive at these final joint coordinate systems, and these angles are
described in APPENDIX E, along with all other information necessary to model the crank
δU{ } B[ ] 1– A[ ] δX{ }–=
58
X ZY
a
b
c
d
eu
φ1 φ2
Crank
Base
Link
Slider
2
1
3
4
5
6
φ3 φ4 φ5
Figure 3.3 3D crank slider and its vector loop
TABLE 3.1 Manufactured dimensions for crank slider problem
Variable Description Nominal Dim.
a Height to cylinder 20 cm
b Length of cylinder 12 cm
c Length of crank 15 cm
d Length of link 43 cm
e Height of slider 5 cm
TABLE 3.2 Kinematic assembly variables for crank slider problem
Variable Description
φl Rotation about local Y axis of Joint 4
φ2 Rotation about local Z axis of Joint 4
φ3 Rotation about local Y axis of Joint 5
φ4 Rotation about local Z axis of Joint 5
φ5 Rotation about local X axis of Joint 5
u Length of gap from Joint 6 to origin
59
slider assembly. However, once the final joint coordinate system is arrived at, the depen-
dent variables used to describe these final rotation axes have nominal angles of zero, so as
not to change the final joint coordinate system in its nominal position.
3.3.1 Crank slider using Derivative Operator Matrix method
The first step in using Sandor’s Derivative Operator Matrix method is to form the
general transformation matrices that describe the matrix loop for the model. Although a
transformation matrix can be made to include both a translation and a rotation variable in
one matrix, it is best to create a separate transformation matrix for each translation and
each rotation in the loop. This facilitates the creation of derivative operator matrices later.
This requires that there be more than one matrix for a transformation between joints, so an
extra subscript is added to distinguish between the different transformation matrices.
The loop starts from the global origin (Node 1), and proceeds first to Node 2, as
indicated on Figure 3.3. Therefore, the first transformation is a -90° rotation about the
global Y axis, as shown in Equation (3.28), which was calculated from Equation (3.3).
(3.28)L12RY[ ] T12
2[ ]
0 0 1– 00 1 0 01 0 0 00 0 0 1
= =
60
The next transformation in the loop needs to translate up the newly transformed X
axis, along the length of the a vector, which is accomplished in Equation (3.29). This was
calculated from Equation (3.5).
(3.29)
Another rotation about the Y axis occurs at Joint 2 and is shown below:
(3.30)
The remaining transformation matrices are formed in a similar manner to com-
pletely traverse the vector loop shown in Figure 3.3. Table E.1 in APPENDIX E contains
the information necessary to form all twenty-one transformation matrices. These transfor-
mation matrices are concatenated together to form the loop matrix equation [L00]=[I], as
was shown in Equation (3.6).
The next step in the DOM method is to form the loop derivative operator matrices,
as shown in APPENDIX C. The concatenations for each variable in the matrix must be
formed so that the loop DOMs can be formed as shown below:
(3.31)
After the concatenation is formed up until the variable of interest (k), the inverse of
the concatenation is formed as described in APPENDIX C. Then, it is a simple matter to
L12TX[ ] T12
4[ ]
1 0 0 200 1 0 00 0 1 00 0 0 1
= =
L12RY[ ] T12
2[ ]
0 0 1– 00 1 0 01 0 0 00 0 0 1
= =
Dm[ ] L01L12…L k 1–( )k[ ] Qim[ ] L01L12…L k 1–( )k[ ] 1–=
61
apply the proper [Qim] matrix from APPENDIX A as shown in Equation (3.31). How-
ever, this is not necessary, as APPENDIX C shows the loop DOM equations in closed
form, such that once the concatenation for the kth variable is calculated, specific terms
from that concatenation are inserted into the closed form equations to produce the loop
DOM.
For example, the first operation in the loop is the Ry in the [L12ry] matrix. As this
is the first matrix, the concatenation to this point is simply itself:
(3.32)
such that the loop derivative operator matrix for this Type 2 rotation (about the Y axis) is
taken from the closed-form Equation (C.5) to create:
(3.33)
L12[ ]
0 0 1– 00 1 0 01 0 0 00 0 0 1
=
D12[ ]
0 0 1 00 0 0 01 0 0 00 0 0 0
=
62
For a variable further down the loop, such as the φ4 rotation (the 12th variable in
the loop), the same procedure is followed. The concatenation is calculated to that point, as
shown below:
(3.34)
Then, as this variable is a rotation about the Z axis, the Type 3 transformation
matrix (i = 3) form of Equation (C.5) is used to produce:
(3.35)
The remaining [Dm] matrices are formed similarly. As the loop derivative opera-
tor matrices are individually formed, specific elements from each matrix are extracted to
assemble the [S] matrix, as shown in Equation (3.14).
At this point, this example departs somewhat from the standard DOM, as the point
of this example is to simply extract the kinematic sensitivities as shown in Equation
(3.21). Thus, instead of solving for the values of the {∆q} vector in Equation (3.14), this
example will simply partition the [S] matrix to obtain the tolerance sensitivities by matrix
L12RYL12TX
…L45RZ[ ]
0 0.3452– 0.9385 53.439–0 0.9385 0.3452 01– 0 0 5
0 0 0 1
=
D123[ ]
0 0 0.3452 1.7260–0 0 0.9385– 4.6925
0.3452– 0.9385 0 18.4471–0 0 0 0
=
63
operations. From the comparison between Equation (3.21) and Equation (3.22), it is
shown that:
(3.36)
or, in the case of the crank slider, where [SD] is not square:
(3.37)
Where r is the number of independent variables, and s is the number of dependent
variables, the top left portion of [S] is named [SD]; and the top right portion
of [S] is named [SI].
These partitioned matrices are then manipulated as shown in Equation (3.36) to
obtain the sensitivities as shown:
(3.38)
3.3.2 Crank slider using Global Coordinate method
The first step in using the global coordinate method for analyzing an assembly is to
create a vector loop that characterizes the assembly and describes the unknown kinematic
variables, such as the loop in Figure 3.3. Once this is obtained, the next step is to obtain
the coordinates of each node in the loop, referenced to the global origin. In addition, the
STol SD[ ] 1– SI[ ]–=
STol SD[ ]t SD[ ]( )1–
SD[ ]t SI[ ]–=
r r×( ) r s×( )
a b c d e
STOL
φ1φ2φ3φ4φ5u
0.0161– 0 0.0234 0.0025– 0.01610.0170– 0 0 0.0059 0.0170
0.0233 0 0.0166– 0.0023– 0.0233–0.0024 0 0 0.0009– 0.0024–0.0006 0 0.0165 0.0060– 0.0006–0.1060– 1 0.1060– 1.038 0.1060
=
64
direction cosines of each vector and for the axis of each rotational variable must be found,
referenced to the global origin. This information can easily be obtained from a CAD sys-
tem if the assembly has been modeled in such software. The coordinates and orientations
for the crank slider model are presented in Table 3.3. Note that the sensitivities that we
take for rotations should be about the final joint coordinates. In the Global Coordinate
Method, any chosen axis can easily be used, as only the direction cosines of that axis must
be know before it can be used. However, in the DOM method, normally, sensitivities are
only taken about the intermediate rotations. Therefore, a few changes were made to the
matrices when the crank slider was evaluated with the DOM, as shown in APPENDIX E.
TABLE 3.3 Global coordinates and orientations for crank slider vector loop joints
Part-Node Name Orientations (ωx,ωy,ωz)
Global Joint Coordinates (X,Y,Z)
a node 1 (0, 0, 1) (0, 0, 0)
b node 2 (-1, 0, 0) (0, 0, 20)
c node 3 (0, 0.7071, -0.7071) (-12, 0, 20)
d node 4 (-0.9637, -0.2467, -0.1022) (-12, 10.6066, 9.3934)
φl node 4 (y) (-0.2453, 0.6669, 0.7036) (-12, 10.6066, 9.3934)
φ2 node 4 (z) (-0.1054, 0.7032, -0.7032) (-12, 10.6066, 9.3934)
e node 5 (0, 0, -1) (-53.439, 0, 5)
φ3 node 5 (y) (-0.3452, 0.9385, 0) (-53.439, 0, 5)
φ4 node 5 (z) (0.9385, 0.3452, 0) (-53.439, 0, 5)
φ5 node 5 (x) (0, 0, -1) (-53.439, 0, 5)
u node 6 (1, 0, 0) (-53.439, 0, 0)
65
Using the data gathered in Table 3.3, the closed-form derivatives from Equation
(3.26) for both the independent and dependent variables can be evaluated, as shown in
Equations (3.39) and (3.40):
(3.39)A[ ]
∂Hx∂A
----------∂Hx∂B
----------∂Hx∂C----------
∂Hx∂D----------
∂Hx∂E
----------
∂Hy∂A
----------∂Hy∂B
----------∂Hy∂C----------
∂Hy∂D----------
∂Hy∂E
----------
∂Hz∂A---------
∂Hz∂B---------
∂Hz∂C---------
∂Hz∂D---------
∂Hz∂E---------
∂Hθx∂A
-------------∂Hθx∂B
-------------∂Hθx∂C
-------------∂Hθx∂D
-------------∂Hθx∂D
-------------
∂Hθy∂A
-------------∂Hθy∂B
-------------∂Hθy∂C
-------------∂Hθy∂D
-------------∂Hθy∂D
-------------
∂Hθz∂A
------------∂Hθz∂B
------------∂Hθz∂C
------------∂Hθz∂D
------------∂Hθz∂E
------------
0 1– 0 0.9637– 00 0 0.7071 0.2467– 01 0 0.7071– 0.1022– 1–0 0 0 0 00 0 0 0 00 0 0 0 0
= =
66
(3.40)
The next step is to use the DLM equations to calculate the assembly sensitivity
matrix. As [B] is a square matrix, the DLM Equation (2.6) will be used, as represented
below:
(3.41)
B[ ]
∂Hx∂φ1----------
∂Hx∂φ2----------
∂Hx∂φ3----------
∂Hx∂φ4----------
∂Hx∂φ5----------
∂Hx∂U----------
∂Hy∂φ1----------
∂Hy∂φ2----------
∂Hy∂φ3----------
∂Hy∂φ4----------
∂Hy∂φ5----------
∂Hy∂U----------
∂Hz∂φ1---------
∂Hz∂φ2---------
∂Hz∂φ3---------
∂Hz∂φ4---------
∂Hz∂φ5---------
∂Hz∂U---------
∂Hθx∂φ1
-------------∂Hθx∂φ2
-------------∂Hθx∂φ3
-------------∂Hθx∂φ4
-------------∂Hθx∂φ5
-------------∂Hθx∂U
-------------
∂Hθy∂φ1
-------------∂Hθy∂φ2
-------------∂Hθy∂φ3
-------------∂Hθy∂φ4
-------------∂Hθy∂φ5
-------------∂Hθy∂U
-------------
∂Hθz∂φ1
------------∂Hθz∂φ2
------------∂Hθz∂φ3
------------∂Hθz∂φ4
------------∂Hθz∂φ5
------------∂Hθz∂U
------------
= =
1.1983 14.0640– 4.6925– 1.7260– 0 16.1390 9.4285– 1.7260– 4.6925 53.4390– 05.4010– 7.3205– 50.1525– 18.4471– 0 00.2453– 0.1054– 0.3452– 0.9385 0 0
0.6669 0.7032 0.9385 0.3452 0 00.7036 0.7032– 0 0 1– 0
S[ ] B[ ] 1– A[ ]–=
67
where [S] is the sensitivity matrix for any assembly with a square [B]. Thus, the sensitivi-
ties for the crank slider assembly can readily be calculated:
(3.42)
Comparing these results with those shown in Equation (3.38), it is clear that the
results from the DOM and GCM are identical.
3.4 Conclusion
The DOM method is a standard method of kinematic analysis. It uses a perturba-
tion method for arriving at sensitivities from closed-form derivatives using homogeneous
transformation matrices. The GCM for determining sensitivities also uses closed-form
derivatives and sensitivities. Both methods assume small variations about the nominal
values, and that sensitivities remain constant for any one position of a mechanism.
In the preceeding example, both methods were compared computationally to more
objectively determine which method requires more effort to calculate sensitivities. In
terms of similarities, it should again be noted that both methods eliminate the need to
numerically solve for derivatives, as closed-form derivative equations are supplied in
APPENDICES A and C for the DOM method, and in Equation (3.26) for the GCM.
a b c d e
S[ ]
φ1φ2φ3φ4φ5u
0.0161– 0 0.0234 0.0025– 0.01610.0170– 0 0 0.0059 0.0170
0.0233 0 0.0166– 0.0023– 0.0233–0.0024 0 0 0.0009– 0.0024–0.0006 0 0.0165 0.0060– 0.0006–0.1060– 1 0.1060– 1.038 0.1060
=
68
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
may not be available in some kinematic modelers.
Parallel Cylinders (2) Equivalent Variational Joint
R1
R2 R2
R1
Figure 4.3 3D Parallel Cylinders Joint and its EVJ
Edge Slider (4) Equivalent Variational Joint
Figure 4.4 3D Edge Slider joint and its EVJ
74
Cylindrical Slider: The cylindrical slider is similar to the edge slider, except that
the line of contact is characterized by a cylinder instead of a prism or edge. Therefore, the
EVJ will also be similar, except that the revolute joint is no longer in-plane with the planar
joint, but offset by the radius of the cylinder. The radius R is the dimensional variable, and
its variation is represented by a slider joint. The cylindrical slider and its EVJ are shown
in Figure 4.5.
Point Slider: The point slider allows translation in both directions of the plane of
contact, as well as rotations about each of these axes. Additionally, it allows the slider to
rotate about its own vertical axis. The equivalent for the point slider includes a planar
joint at the plane of contact, to allow the translations along the plane. A spherical joint is
also added, such that the center of the sphere is at the point of contact, to allow for rota-
tions about all three axes. Note that the rotational degree of freedom in the planar joint
must be removed, or restricted, to ensure that too many degrees of freedom are not intro-
duced into the equivalent mechanism. Again, note that no dimensional variation is con-
tributed by this joint, and its EVJ is included only because the joint type may not be
available in all kinematic modelers. The point slider and its EVJ are shown in Figure 4.6.
Cylindrical Slider (4) Equivalent Variational Joint
R
Figure 4.5 3D Cylindrical Slider joint and its EVJ
75
Spherical Slider: The spherical slider is very similar to the point slider, except
that the spherical joint is offset from the contact plane by the distance R, the radius of the
sphere. The spherical radius requires a slider joint to representing its dimensional varia-
tion within the joint. Again, the rotational degree of freedom in the planar joint must be
deactivated. The spherical slider is shown along with its EVJ in Figure 4.7.
Crossed Cylinders: The crossed cylinders joint allows five degrees of freedom,
similar to the point and spherical slider joints shown previously. Rotation is allowed
about the axis of each cylinder, in addition to the rotation of the cylinders with respect to
each other about an axis normal to the contact point. Translation is allowed along the axis
of each cylinder. The EVJ for this joint therefore includes a planar joint, which allows for
translation along the contact plane between the cylinders, and allows one cylinder to rotate
about an axis normal to the contact plane relative to the other cylinder. Then, extended
Point Slider (5) Equivalent Variational Joint
Figure 4.6 3D Point Slider and its EVJ
Spherical Slider (5) Equivalent Variational Joint
R R
Figure 4.7 3D Spherical Slider and its EVJ
76
from the contact plane at distances of R1 and R2, respectively, are pin joints oriented to
allow rotation about the axis of each cylinder. R1 and R2 require slider joints for dimen-
sional variation, as in the parallel cylinders joint. The crossed cylinders joint and its
equivalent are shown in Figure 4.8.
4.4 Complete EVM Examples
This section will detail the construction of EVMs for the Crank Slider model and
the Swash Plate model.
4.4.1 Crank Slider EVM
The Crank Slider model is shown in Figure 4.9. The first step in developing an
EVM for this model is to establish the datums for the assembly. Figure 4.10 shows the
critical Datum Reference Frames (DRFs) for the Crank Slider assembly. The global ori-
gin (X, Y, Z) marks the central DRF of the assembly. The other, smaller coordinate sys-
tems (x, y, z) represent local DRFs for each part. For added clarity, some DRFs and
datums have not been shown. The part and assembly DRFs form the basis for the vector
loop model.
Crossed Cylinders (5) Equivalent Variational Joint
R1
R2
R1
R2
Figure 4.8 3D Crossed Cylinder Joint and its EVJ
77
The next important determination in the vector loop model is locating and identify-
ing joint types used in the assembly. A vector loop is then constructed which passes
through the joints and datum features of the parts in the assembly. It is important to follow
Figure 4.9 Crank Slider model
X Z
Y
x
x
x
xx
y
y
y
y
z
zy
z
z
z
Figure 4.10 Datums used in Crank Slider model
78
the rules cited in Section 4.1 for creating vector loops. Figure 4.11 demonstrates a vector
loop created for this assembly which passes through each part, joint and DRF.
Next, modifications are made to the vector loop to allow the inclusion of dimen-
sional variation. According to the equivalent variational elements shown in Figure 4.2,
schematic slider joints for independent dimensional variation are inserted into each vector
representing an independent dimension. Although this model has none, at this step hollow
pin joint symbols would be added to represent any independent angular dimensional vari-
ation. The proper EVMs can then be inserted into the model. The joint between the crank
and the base at vector b is best modeled with a pin joint, as there is rotation without trans-
lation. Spherical joints will be placed at both ends of the link. The joint between the
slider and the base, where vector e connects with u, will be represented by a simple pris-
matic joint. No rotation of the slider is permitted, and translation is limited to one axis.
X ZY
a
b
c
d
eu
φ1 φ2
Crank
Base
Link
Slider
2
1
3
4
5
6
φ3 φ4 φ5
Figure 4.11 Vector loop for 3D Crank Slider
79
There will also be fixed joints placed at the junction of vectors a & b, and a & u, as they
each make up part of the base. This completes the EVM for the Crank Slider, which is
shown in Figure 4.12.
4.4.2 Swash Plate EVM
The Swash Plate assembly shown in Figure 4.13 is a type of follower mechanism.
The angled plate is attached to the central shaft and rotates about the axis of the shaft. The
cylinder pivots about the follower, which also pivots from the arm, allowing the mecha-
nism to maintain contact with the swash plate.
Figure 4.14 shows the DRFs for the Swash Plate model. Some DRFs have been
removed for improved clarity and simplicity. The global coordinate axes are the main
DRF for the assembly, while the axes and DRFs shown are the main reference frames for
X
Y
Z
b
a
Crank
u e
d
c
Link
Slider
φ1 φ2
φ3 φ4 φ5
Figure 4.12 EVM for 3D Crank Slider
80
the individual parts of the assembly. In addition to the DRFs, the joints in the assembly
must be identified and located. The rules of vector loop creation require specific paths
through specific joint types, following the joint axes. When the joints have been properly
identified, the DRFs and joints are then used to form the vector loop, which is shown in
Figure 4.15. Note that the j vector is nominally zero, and describes the movement of the
Figure 4.13 Swash Plate mechanism
X
Y
Z
x z
xx
x
xx
y
yy
y
y
y
z
z
z
zz
Figure 4.14 DRFs for the Swash Plate model
81
cylinder along the swashplate normal to the k vector. The k vector then simply describes
the movement of the cylinder along the Z-axis of the swash plate.
The vector loop can then be modified to show the EVM for the Swash Plate. The
four parts in the mechanism can be assembled using only three joint types in the EVM. As
every mechanism is treated as a static assembly during a tolerance analysis, the kinematic
degree of freedom that allows the arm to rotate about the shaft in the cylindrical joint will
be turned off. The joint between the Arm and the Follower allows only simple kinematic
rotation, and can be represented as a pin joint (φ1). The joint between the Follower and the
Cylinder can similarly be represented as a pin joint, as the Cylinder can rotate about an
axis colinear with the g vector (φ2). The joint between the Cylinder and the Swash Plate
exhibits sliding of the cylinder along the plate, and is best represented as a Cylindrical
Slider joint.
Y
ZX
da
bc
e
fg
i jk
l
φ 2
φ1
φ 3
h
Figure 4.15 Vector loop for Swash Plate
82
While all of the degrees of freedom associated with the Cylindrical joint are
needed in this model, some of these DOFs are represented by other aspects of the EVM
and are necessarily turned off to maintain the mechanism at zero DOFs for a static toler-
ance analysis at each position of the mechanism. Thus, the X and Y translational DOFs of
the planar joint in the Cylindrical Joint EVM are deactivated. The DOF for rotation about
the cylindrical axis allowing the i vector to be maintained normal to the swashplate is still
intact, and is represented with φ3. The DOF for rotation about the Z axis (j vector) of the
planar joint is not needed, as the j vector will stay perpendicular to k throughout any vari-
ation from its nominal. Therefore, any variation in the contact point of the cylinder in the
global X direction will be characterized by variation in length of j. Any variation in the
contact point in the global Z direction will be characterized by a change in length of k.
The EVM is thus formed by inserting the equivalent joints and variational sources into the
vector loop, as shown in Figure 4.16.
Figure 4.16 EVM for Swash Plate
83
4.5 Overview
As a summary of the concepts presented in this chapter, classic 3D kinematic
joints can be modified to include dimensional variation in the joint. This results in equiv-
alent variational joints, which are used to form equivalent variational mechanisms.
The kinematic joint types included in this thesis are common joints often found in
mechanism design. The joints are shown in Figure 4.17 (reprinted from Figure 2.1). It is
important to remember that not all joint types require an equivalent joint. The equivalent
joints that are required are summarized in Figure 4.18.
Figure 4.17 3D Kinematic Joint Types, with the Degrees of Freedom indicated [Chase et al. 1996]
Rigid (no motion) Prismatic (1) Revolute (1) Parallel Cylinders (2)
Cylindrical (2) Spherical (3) Planar (3) Edge Slider (4)
Cylindrical Slider (4) Point Slider (5) Spherical Slider (5) Crossed Cylinders (5)
Z
Y X
84
The purpose of the EVJ is to allow a kinematic model of a mechanical joint to
include dimensional variation that might occur in the joint. However, some joint types do
not generate any dimensional variation within the joint. This can best be evaluated by
examining the vector loop that would pass through the joint. For example, a pin joint has
one vector entering and one vector exiting the joint, where both vectors are joined by a
rotational degree of freedom. While the external vectors entering and exiting the joint
could have dimensional variation, the joint itself is represented by the rotational degree of
freedom, which can generate no dimensional variation. Another example would be the
cylindrical joint. This joint consists of two cylinders which are everywhere in contact.
Since there is no clearance in the joint, it behaves much the same as the pin joint, provid-
Figure 4.18 3D Equivalent Variational Joints, with the kinematic DOFs indicated [Chase et al. 1996]
Rigid (no motion) Prismatic (1) Revolute (1) Parallel Cylinders (2)
Cylindrical (2) Spherical (3) Planar (3) Edge Slider (4)
Cylindrical Slider (4) Point Slider (5) Spherical Slider (5) Crossed Cylinders (5)
No Change R2
R1
R R
No Change
No Change
No Change
No Change
No Change
R1
R2
85
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-
Equivalent Variational Joint
Geometric EVJ (4 feature DOFs)
No Change f
f
Revolute (1)
Y
X
Z f
f
Figure 5.3 Revolute Joint and its GEVJ
Parallel Cylinders (2) Equivalent Variational Joint
R1
R2 R2
R1
Geometric EVJ (2 feature DOFs)
R2
R1 f
f
d
d X
Z
Y
Figure 5.4 3D Parallel Cylinders Joint and its EVJ and GEVJ
93
matic joint, denoted by an f to distinguish it from the dimensional slider joints denoted by
d.
Cylindrical Joint: Similar to the revolute joint, the cylindrical joint has no
dimensional EVJ. From Table 5.1, however, it can be seen that geometric variation is
propagated through this joint by translation in the X and Z directions, and through rotation
about the same. There is a spherical joint with a kinematic prismatic acting along the Y
axis, and two slider joints for translation in the X and Z axes. The prismatic joint and the
spherical rotation about the Y axis provide the original kinematic degrees of freedom. The
two slider joints and spherical rotations about the X and Z axes provide for the propagation
of geometric variation, for which all the nominal values are zero. Note that the transla-
tions along the X and Z axes represent the variation in the location of the Y axis, where the
rotations about the X and Z axes represent variation in the orientation of the Y axis. Again,
as in the revolute joint, notice that the slider joint for feature variation in the X direction is
added to the tip of the Z slider joint vector, such that there can only be one vector path
through the joint. The cylindrical joint and its GEVJ are illustrated in Figure 5.5.
Spherical Joint: While the spherical joint does not generate dimensional varia-
tion, it does generate geometric variation through translation in all three axes. The GEVJ
Equivalent Variational Joint
Geometric EVJ (4 feature DOFs)
No Change
f
f
Y
X
Z f
f Cylindrical (2)
Figure 5.5 Cylindrical Joint and its GEVJ
94
for this joints includes a planar joint to provide two degrees of translation, and a slider
joint between the spherical and planar joints to provide the last degree of translation. The
slider joint vector has a nominal value of zero, such that the spherical joint is normally
coincident with the center of the planar joint and the contact point of the two mating parts.
The rotational DOF of the planar joint must be removed to avoid introducing too many
DOFs. The spherical joint and its GEVJ are shown in Figure 5.6. Note that the GEVJ for
the spherical joint is nearly identical to that for the rigid joint. The only differences are
which DOFs are kinematic and which are geometric. In the spherical GEVJ, only the
translational DOFs are geometric.
Planar Joint: The GEVJ for the planar joint is again identical to that used by the
spherical or rigid joint. The axes which propagate geometric variation in this joint are
translation along Y and rotation about X and Z. The planar joint in the GEVJ would intro-
duce an additional rotational DOF, so this must be removed. The GEVJ for the planar
joint is shown in Figure 5.7. Again, notice that the slider joint vector between the planar
and spherical joints is nominally zero-length.
Edge Slider: The edge slider GEVJ includes two additional degrees of freedom to
introduce geometric variation in translation along the Y axis and rotation about the X axis.
Equivalent Variational Joint
Geometric EVJ (3 feature DOFs)
No Change
f f
f
Spherical (3)
X Y
Z
Figure 5.6 Spherical Joint and its GEVJ
95
The slider and pin joints are simply added on the underside of the planar joint, as seen in
Figure 5.8. The placement of the pin joint below has been exaggerated somewhat for vis-
ibility, but technically it is centered upon the planar joint, and is maintained coincident
with the planar joint and the original kinematic revolute joint, such that the rotations about
the X and Z axes and the translations along the X, Y and Z axes all occur at the same point
in space.
Cylindrical Slider: The GEVJ for the cylindrical slider is only modified from the
dimensional EVJ by adding a pin joint and slider joint, as shown in Figure 5.9. Geometric
Equivalent Variational Joint
Geometric EVJ (3 feature DOFs)
No Change f
f f
Planar (3)
X
Z
Y
Figure 5.7 Planar Joint and its GEVJ
Figure 5.8 3D Edge Slider joint and its GEVJ
Geometric EVJ (2 feature DOFs)
f f
Edge Slider (4) Equivalent Variational Joint
X
Z
Y
Figure 5.9 3D Cylindrical Slider joint and its GEVJ
Geometric EVJ (2 feature DOFs)
Equivalent Variational Joint
Cylindrical Slider (4)
R
f f
R d X
Z
Y
96
variation can be introduced through rotation about the X axis and translation in the Y axis.
Notice that the nominal value of the dimensional slider is still equal to the radius of the
cylinder, as it was in the dimensional EVJ.
Point Slider: The point slider can propagate geometric variation only through
translation in the Y axis. Thus, the transition from the standard EVJ to a GEVJ is quite
simple. A translational slider joint is added to represent the geometric propagation, where
the nominal length for this vector is zero. The rotational degree of freedom in the planar
joint is removed. The point slider and its GEVJ are shown in Figure 5.10.
Spherical Slider: The spherical slider GEVJ is very similar to the point slider
GEVJ and includes the same axis of geometric variation propagation. However, as the
spherical joint is offset from the contact plane by the radius of the spherical part, there
exists both dimensional and geometric variation between the spherical joint and the planar
joint. The vector representing the spherical radius R requires a slider joint, representing
dimensional variation within the joint, as was included in the EVM, and is marked with a
d. The slider joint included to provide for propagation of geometric feature variation in
the translation along Y is marked with an f, and has a nominal length of zero. The two
vectors are connected with a rigid joint (the lock icon) to ensure the variation sources
Figure 5.10 Point Slider joint and its GEVJ
Geometric EVJ (1 feature DOF)
Equivalent Variational Joint
f
Point Slider (5)
X
Y
Z
97
remain colinear. Again, the rotational degree of freedom in the planar joint must be deac-
tivated. The spherical slider is shown along with its GEVJ in Figure 5.11.
Crossed Cylinders: Again, the GEVJ for the crossed cylinders joint require only
one additional DOF for propagation of geometric variation, translation in Y. Similar to the
spherical slider GEVJ, the geometric variation is added at the same point as the dimen-
sional variation, and thus there are two vectors connected together with a rigid joint (sym-
bolized by the small lock icon) to ensure the two variation sources remain colinear.
Again, the nominal lengths of the dimensional variation vectors are equal to R1 and R2,
respectively, while the nominal length of the geometric variation vector f is zero. The
crossed cylinders joint and its equivalent are shown in Figure 5.12.
Note, there could be two feature DOFs, one for each cylinder. Although each of
these two possible feature DOFs represent a single constrained directions, there are two
Figure 5.11 Spherical Slider joint and its GEVJ
Geometric EVJ (1 feature DOF)
f
Spherical Slider (5) Equivalent Variational Joint
R R
Y
X
Z
R d
Figure 5.12 Crossed Cylinder joint and its GEVJ
Geometric EVJ (1 feature DOF)
Crossed Cylinders (5) Equivalent Variational Joint
R1
R2
R1
R2 R2
R1 f
d X
Y
Z
98
sources for the DOF. Recall, in general, when two surfaces mate, each is subject to sur-
face variations which contribute variation to the assembly.
5.2 GEVM Examples
To demonstrate the GEVMs developed in this chapter, the Crank Slider example
will be revisited, but with geometric tolerance callouts added to introduce geometric vari-
ation. A model of a simple printhead assembly will also be shown. Since the process for
developing a full EVM, starting with DRFs and vector loops, was explained in Chapter 4,
the full process will not be included here. Each example will show the model and a few
sample geometric tolerance callouts and then introduce the GEVM for those callouts.
5.2.1 Crank Slider GEVM
The Crank Slider model is again shown in Figure 5.13 with a few geometric toler-
ance callouts. Note that in a standard mechanical assembly, many more geometric toler-
ances may be applied. Additionally, a geometric tolerance should be called for each
mating surface of a joint where any callout is used. However, for simplicity and clarity of
these examples, callouts will be applied to only two joints, and only one per mating sur-
face of each joint.
In this Crank Slider example, a concentricity callout has been applied to the Crank.
This callout is used to ensure the inner surface of the Crank’s cylindrical feature is con-
centric with the datum axis through the cylindrical post on the Base, such that the Crank
will rotate about the center axis of the cylindrical post. The tolerance zone given for this
99
callout is 0.001 cm. A flatness callout with a tolerance of 0.001 cm is applied to the bot-
tom surface of the slider that interfaces with the Base.
With these callouts added, the EVM is changed only slightly to form the GEVM,
shown in Figure 5.14. The GEVJ that replaces the Revolute joint consists only of a spher-
ical joint. The GEVJ has two nominally zero-length vectors (α1 and α2) that are shown in
the inset figure, and contribute translational variation in the local y and x directions of the
joint, respectively (out from the crank orthogonal to c, and down the length of c). The
inset figure presents the geometric variation variables α1 and α2 as introducing variation
into the vector loop, causing the c vector and the rest of the loop afterwards to be adjusted
from their nominal positions. However, when α1 and α2 assume their nominal zero val-
ues, no modification is transmitted to the vector loop.
X ZY
a
b
c
d
eu
φ1 φ2
Crank
Base
Link
Slider
2
1
3
4
5
6
φ3 φ4 φ5
.001
.001
Figure 5.13 Crank Slider model with geometric tolerance callouts
100
Although the general GEVJ of the revolute joint allows rotation about all axes in
addition to the translations included here, the concentricity callout in this model only indi-
cates geometric variation propagation in the translational axes of the local x and y direc-
tions. Thus, the rotations of the spherical joint about the local x and y axes were removed,
as only rotation about the local z axis (about b) is required for the kinematic joint.
The flatness callout on the prismatic joint between the slider and the base results in
the GEVJ shown at that point: a spherical joint fixed to the end of the existing prismatic
joint. This GEVJ introduces geometric rotational variation about the local x, y and z axes,
which are represented by the angular variables β1, β2 and β3, respectively. The angular
variables have nominal values of zero. A tolerance analysis can be performed on the
X
Y
Z
b
a
Crank
u e
d
c
Link
Slider
φ1,φ2
φ3,φ4,φ5
b
a
cα2
α1
Tx
Ty
inset
β1
β3Ry
Rx
β2
Rz
Figure 5.14 GEVM for Crank Slider
101
GEVM to solve for the sensitivities of the assembly (φ1, φ2, φ3, φ4, u) variables due to the
geometric (α1, α2, β1, β2, β3) and dimensional (a, b, c, d, e) variables.
5.2.2 Printhead GEVM
The Printhead model used in this research is a simplified model of a printhead as
might be seen in a typical inkjet printer. The vector loop used for this model is illustrated
in Figure 5.15. The placement of some vectors has been offset to enhance visibility of the
two loops. There are two loops used with this mechanism. The first loop is closed, and
locates all the parts and joints for this model. The second loop is open and is used to
describe the critical assembly feature for this model, φ2, the angle of the printhead plat-
form (vector h) to the horizontal base datum. In a printer, a print cartridge would be
mounted on this platform and would need to be kept at a very specific distance from the
printing surface.
Z
XYa
b
cde
f
g
h
ij
k
l
Loop 2(Open)
Loop 1(Closed)
φ3
φ2
.001
.001
φ1
q
1
PrintheadPlatform
Printhead Body
Contact PostBase
SupportRod
Figure 5.15 Vector loop for the printhead model
θ
102
Loop 1 starts at the global origin with vector a. It travels up and along the cylindri-
cal support rod through b and through the dependent variable c, where it enters the crossed
cylinders joint through the support rod radius d. At this point, the dependent variable φ1 is
introduced, which is the rotation of the two cylinders with respect to each other about the
axis of the support rod denoted by the vector c. A crossed cylinders joint will normally
have a similar rotation about the axis of the mating cylinder, but in this vector loop such a
rotation is not possible, so that DOF has been removed. The DOF allowing the cylinders
to rotate with respect to each other about the axis normal to the contact point (d) between
them has also been removed, as such a motion is similarly not possible in this simplified
configuration.
Loop 1 leaves the crossed cylinders joint through the radius e of the contact post.
The loop then travels backward through the post and through the printhead body along
dependent variable f and independent variable g to the centerline of the cylindrical feature
in the printhead. The cylindrical feature forms a cylindrical joint with the base unit. Nor-
mally, this cylindrical joint allows the printhead to translate along the cylindrical axis (j),
but as the mechanism needs to be held at a single position for tolerance analysis, this DOF
has been removed.
The vector loop then leaves the cylindrical joint through the end of the cylinder,
passing through i and j. At this point, another dependent angle φ3 appears, which repre-
sents the rotation of the printhead about the cylindrical axis (j). Then the loop passes back
down to the bottom surface of the base through k and closes at the origin with l. As the
103
printhead and the base are the only two parts in this assembly, the crossed cylinders and
the cylindrical joint are the only two kinematic joints encountered.
The open loop is rather simple, and follows the same vectors as the first loop from
a to the tip of g. Here, the open loop deviates from the first loop by traveling up the print-
head platform in h. An additional dimensioned angle θ1 is introduced, which defines the
position of the platform, and thus h, relative to the printhead body. The h vector is used to
define the assembly angle φ2, as discussed earlier.
The geometric tolerances applied to this model include a true position and a cylin-
dricity callout. A position callout with a tolerance of 0.001 cm as shown in Figure 5.15 is
placed on the hole feature of the base, which mates with the cylindrical feature of the
printhead. This position callout affects the cylindrical joint there, and thus introduces geo-
metric translational variation at the junction of vectors j and k in the local y and x axes of
the k vector. The cylindricity callout is placed on the contact cylinder of the printhead
(feature described by f), which is part of the crossed cylinders joint, and has a diametral
tolerance zone of 0.001 cm. The geometric variation introduced by a cylindricity callout
on a crossed cylinders joint is translational. It occurs in the direction normal to the contact
point between the two cylinders, and is introduced at the contact point between vectors d
and e.
Again, in addition to the GEVJs that will be introduced due to the joint types and
geometric tolerance callouts above, a slider joint representing dimensional variation will
be placed on every independent dimension in the model, and a hollow pin joint (see Figure
104
4.2) representing the dimensional variation of θ1 will be placed between g and h. The
complete GEVM is shown in Figure 5.16, where the redundant vectors for the open vector
loop have been removed for clarity.
In the GEVM shown, the cylindrical joint is replaced by a prismatic joint on j with
a spherical joint and two nominally zero-length slider joints. Again note that the transla-
tional DOF that would allow rigid-body translation has been removed, such that j is
treated as a simple independent dimension. Inset A demonstrates the geometric slider
joints α2 and α3, which are shown disturbing the vector loop, although their nominal
lengths are zero.
The crossed cylinders joint is represented with a planar joint, a revolute joint, and
three slider joints. Again note that two rotational kinematic DOFs in this joint have been
deactivated as mentioned in the description of the vector loop because they do not physi-
Z
XYa
b
cd
g
h
ij
k
l
φ1c
B
Loop 2(Open)
Loop 1(Closed)
φ2
j
k
φ3
α3
A
α2
Inset B
Inset A
φ3
θ1
ef
α1
d
fe
Figure 5.16 GEVM for Printhead assembly
105
cally occur in this model. Two of the slider joints represent the dimensional variation of
the radius vectors d and e of the contacting cylinders. The third slider joint, α1 represents
the degree of geometric translational variation in the joint. Notice that the geometric
translational variation must necessarily be inline with the radii of the cylinders, and thus is
fixed to the top radius vector with a fixed joint. The planar joint contains two translational
degrees of freedom, which are represented in the kinematic vectors c and f. That is, the
kinematic variation that would occur in vectors c and f will be taking place in the planar
joint.
5.3 Conclusion
With the addition of a few degrees of freedom to account for geometric variation
propagation, the equivalent variational joints of Chapter 4 are transformed into geometric
equivalent variational joints. This new library of equivalent joints enables a kinematic
model of a mechanical assembly (either kinematic or static) to include geometric variation
as well as dimensional variation.
106
107
CHAPTER 6 ANALYTICAL EXAMPLES
The previous two chapters introduced the kinematic and geometric 3D Equivalent
Variational Mechanisms and demonstrated how the equivalent mechanisms are con-
structed. This chapter will demonstrate the analysis of each of the examples set forth in
Chapters 4 and 5. The Crank Slider and Printhead analyses will include geometric varia-
tion as shown in Chapter 5. The analysis for the Swash Plate will be conducted without
geometric variation, as shown in Chapter 4. It should be understood that even for a mech-
anism, a tolerance analysis is conducted at a single position, and thus each of these mech-
anisms will be held at a fixed position for their analyses.
6.1 Crank Slider Analysis
The Crank Slider example was demonstrated in Chapter 5 with geometric varia-
tion, using the Direct Linearization Method. The same example will be shown again here,
108
with delineated steps for analyzing as an Equivalent Variational Mechanism. The Crank
Slider is shown again in Figure 6.1, with the geometric callouts shown as αi and βi.
6.1.1 Gathering Model Parameters
The first step in analyzing any mechanism is to create the vector loop and GEVM,
as demonstrated previously in Chapter 4 and Chapter 5. The manufactured, assembly, and
geometric variables for the loop are shown again in Table 6.1, Table 6.2, and Table 6.3,
respectively.
X
Y
Z
b
a
Crank
u e
d
c
Link
Slider
φ1 φ2
φ3 φ4 φ5
b
a
cα2
α1
Tx
Ty
inset
β1
β3Ry
Rx
β2
Rz
1
23
4
5
6
Figure 6.1 GEVM for Crank Slider model
TABLE 6.1 Manufactured dimensions for crank slider problem
Variable Description Nominal Dim.
a Height to cylinder 20 cm
b Length of cylinder 12 cm
c Length of crank 15 cm
d Length of link 43 cm
e Height of slider 5 cm
109
Recall that the amount of variation introduced by the geometric variations are cal-
culated according to Equation (2.11) and the associated paragraphs. That section of Chap-
ter 2 explains that the variation of a translational geometric variable is equal to ±α/2,
where α is the tolerance zone, and that the variation of a rotational geometric variable is
related to the width of the tolerance zone and the length of the contact between the two
parts. Therefore, the dimensions of the slider part in the X and Y directions must be
known, although they do not directly affect the vector loop dimensionally. The dimension
of the slider in the global Y direction is 15 cm, while the dimension in the global X direc-
tion is 24 cm. The corresponding variations are thus calculated, and are included in Table
TABLE 6.2 Kinematic assembly variables for crank slider problem
Variable Description
φl Rotation about local y-axis of Joint 4
φ2 Rotation about local z-axis of Joint 4
φ3 Rotation about local y-axis of Joint 5
φ4 Rotation about local z-axis of Joint 5
φ5 Rotation about local x-axis of Joint 5
u Length of gap from slider to origin
TABLE 6.3 Geometric tolerance variables for crank slider problem
Variable Description Nominal Dim.Tolerance
Zone Variation
αl Linear variation in local y-axis due to concentricity callout
0 cm 0.001 cm ± 0.0005 cm
α2 Linear variation in local x-axis due to concentricity callout
0 cm 0.001 cm ± 0.0005 cm
β1 Rotational variation about local x-axis due to flatness callout
0° 0.001 cm ± 0.00382°
β2 Rotational variation about local y-axis due to flatness callout
0° 0.001 cm ± 0.00239°
β3 Rotational variation about local z-axis due to flatness callout
0° 0.001 cm ± 0.00239°
110
6.3. After calculating variations, the coordinates of each joint in the loop are obtained,
referenced to the global origin. In addition, the direction cosine angles of each vector and
each axis of rotation are calculated. These coordinates and direction cosines are included
in Table 6.4
6.1.2 Forming Partial Derivative Matrices
Using the data in Table 6.4, the matrices from the Global Coordinate Method that
describe the assembly can be formed with the elements shown in Equation (3.26). The [A]
matrix is formed with partial derivatives of the six components of the 3D vector equations
TABLE 6.4 Global coordinates and orientations for crank slider vector loop joints
Part-Joint Name Orientations (ωx,ωy,ωz)
Global Joint Coordinates (X,Y,Z)
a joint 1 (0, 0, 1) (0, 0, 0)
b joint 2 (-1, 0, 0) (0, 0, 20)
c joint 3 (0, 0.7071, -0.7071) (-12, 0, 20)
α1 joint 3 (Ty) (0, 0.7071, 0.7071) (-12, 0, 20)
α2 joint 3 (Tx) (0, 0.7071, -0.7071) (-12, 0, 20)
d joint 4 (-0.9637, -0.2467, -0.1022) (-12, 10.6066, 9.3934)
φl joint 4 (Ry) (-0.2453, 0.6669, 0.7036) (-12, 10.6066, 9.3934)
φ2 joint 4 (Rz) (-0.1054, 0.7032, -0.7032) (-12, 10.6066, 9.3934)
e joint 5 (0, 0, -1) (-53.439, 0, 5)
φ3 joint 5 (Ry) (-0.3452, 0.9385, 0) (-53.439, 0, 5)
φ4 joint 5 (Rz) (0.9385, 0.3452, 0) (-53.439, 0, 5)
φ5 joint 5 (Rx) (0, 0, -1) (-53.439, 0, 5)
u joint 6 (1, 0, 0) (-53.439, 0, 0)
β1 joint 6 (Rx) (1, 0, 0) (-53.439, 0, 0)
β2 joint 6 (Ry) (0, 1, 0) (-53.439, 0, 0)
β3 joint 6 (Rz) (0, 0, 1) (-53.439, 0, 0)
111
Hx, Hy, Hz, Hθx, Hθy, and Hθz, with respect to the independent manufactured dimensions,
as shown in Equation (6.1).
(6.1)A[ ]
∂Hx∂A
----------∂Hx∂B
----------∂Hx∂C----------
∂Hx∂D----------
∂Hx∂E
----------
∂Hy∂A
----------∂Hy∂B
----------∂Hy∂C----------
∂Hy∂D----------
∂Hy∂E
----------
∂Hz∂A---------
∂Hz∂B---------
∂Hz∂C---------
∂Hz∂D---------
∂Hz∂E---------
∂Hθx∂A
-------------∂Hθx∂B
-------------∂Hθx∂C
-------------∂Hθx∂D
-------------∂Hθx∂D
-------------
∂Hθy∂A
-------------∂Hθy∂B
-------------∂Hθy∂C
-------------∂Hθy∂D
-------------∂Hθy∂D
-------------
∂Hθz∂A
------------∂Hθz∂B
------------∂Hθz∂C
------------∂Hθz∂D
------------∂Hθz∂E
------------
0 1– 0 0.9637– 00 0 0.7071 0.2467– 01 0 0.7071– 0.1022– 1–0 0 0 0 00 0 0 0 00 0 0 0 0
= =
112
The [B] matrix is formed of all the partial derivatives with respect to each of the
dependent variables, as shown in Equation (6.2):
(6.2)
B[ ]
∂Hx∂φ1----------
∂Hx∂φ2----------
∂Hx∂φ3----------
∂Hx∂φ4----------
∂Hx∂φ5----------
∂Hx∂U----------
∂Hy∂φ1----------
∂Hy∂φ2----------
∂Hy∂φ3----------
∂Hy∂φ4----------
∂Hy∂φ5----------
∂Hy∂U----------
∂Hz∂φ1---------
∂Hz∂φ2---------
∂Hz∂φ3---------
∂Hz∂φ4---------
∂Hz∂φ5---------
∂Hz∂U---------
∂Hθx∂φ1
-------------∂Hθx∂φ2
-------------∂Hθx∂φ3
-------------∂Hθx∂φ4
-------------∂Hθx∂φ5
-------------∂Hθx∂U
-------------
∂Hθy∂φ1
-------------∂Hθy∂φ2
-------------∂Hθy∂φ3
-------------∂Hθy∂φ4
-------------∂Hθy∂φ5
-------------∂Hθy∂U
-------------
∂Hθz∂φ1
------------∂Hθz∂φ2
------------∂Hθz∂φ3
------------∂Hθz∂φ4
------------∂Hθz∂φ5
------------∂Hθz∂U
------------
= =
1.1983 14.0640– 4.6925– 1.7260– 0 16.1390 9.4285– 1.7260– 4.6925 53.4390– 05.4010– 7.3205– 50.1525– 18.4471– 0 00.2453– 0.1054– 0.3452– 0.9385 0 0
0.6669 0.7032 0.9385 0.3452 0 00.7036 0.7032– 0 0 1– 0
113
Finally, the [F] matrix is formed, which contains the partial derivatives with
respect to each of the geometric variables in the assembly, shown in Equation (6.3).
(6.3)
6.1.3 Calculating Sensitivities
From these matrices, the tolerance sensitivities for both the dimensional and the
geometric variables can be found, using equations from the DLM. As the [B] matrix for
this model is square, the DLM equations for square matrices from Sections 2.1 and 2.2 are
used:
(6.4)
(6.5)
where [Sd] is the dimensional sensitivity matrix, and [Sα] is the geometric sensitivity
matrix. The sensitivity matrices are calculated and shown in the following equations:
F[ ]
∂Hx∂α1----------
∂Hx∂α2----------
∂Hx∂β1----------
∂Hx∂β2----------
∂Hx∂β3----------
∂Hy∂α1----------
∂Hy∂α2----------
∂Hy∂β1----------
∂Hy∂β2----------
∂Hy∂β3----------
∂Hz∂α1---------
∂Hz∂α2---------
∂Hz∂β1---------
∂Hz∂β2---------
∂Hz∂β3---------
∂Hθx∂α1
-------------∂Hθx∂α2
-------------∂Hθx∂β1
-------------∂Hθx∂β2
-------------∂Hθx∂β3
-------------
∂Hθy∂α1
-------------∂Hθy∂α2
-------------∂Hθy∂β1
-------------∂Hθy∂β2
-------------∂Hθy∂β3
-------------
∂Hθz∂α1------------
∂Hθz∂α2------------
∂Hθz∂β1
------------∂Hθz∂β2
------------∂Hθz∂β3
------------
0 0 0 0 00.7071 0.7071 0 0 53.4390.7071 0.7071– 0 53.439– 0
0 0 1 0 00 0 0 1 00 0 0 0 1
= =
Sd[ ] B[ ] 1– A[ ]–=
Sα[ ] B[ ] 1– F[ ]–=
114
(6.6)
(6.7)
The sensitivities can then be used with Equation (6.8) (reprinted from Equation
(2.18)) to estimate the variation ∆Ui for each critical assembly feature Ui.
(6.8)
6.1.4 Modeling Issue
As this chapter discusses the analysis of the models, it is appropriate to point out
an important modeling nuance. Although this published version of the crank slider model
includes three rotations at the second spherical joint (φ3, φ4, and φ5), previous modeling
attempts did not include the final rotation about the x-axis, φ5. However, without allowing
a b c d e
Sd[ ]
φ1φ2φ3φ4φ5u
0.0161– 0 0.0234 0.0025– 0.01610.0170– 0 0 0.0059 0.0170
0.0233 0 0.0166– 0.0023– 0.0233–0.0024 0 0 0.0009– 0.0024–0.0006 0 0.0165 0.0060– 0.0006–0.1060– 1 0.1060– 1.038 0.1060
=
α1 α2 β1 β2 β3
Sα[ ]
φ1φ2φ3φ4φ5u
0.0006 0.0234 0.0849– 0 00.0240– 0 0.0848 0 0
0.0163 0.0166– 0.3465 0.9386– 00.0035 0 0.9508– 0.3452– 00.0173 0.0165 0.1194– 0 10.2560– 0.1060– 1.2798 5– 0
=
∆Ui Sijd Tolij
d( )2 SijαTolij
α( )2
j 1=
m
∑+
j 1=
n
∑ TASM≤=
115
for this third rotation, the model did not appear to be kinematically valid, and the analysis
results did not correlate between the Global Coordinate Method and the velocity analyses
in ADAMS. Thus, the third rotation was added, and the results presented here were fur-
ther verified by an independent velocity analysis of the mechanism using hand calcula-
tions.
6.2 Swash Plate Analysis
The Swash Plate example was demonstrated in Chapter 4. The same example is
shown here again, with basic steps for performing the analysis using the Global Coordi-
nate method.
6.2.1 Gathering Model Parameters
Again, the first step of the analysis was to create the vector loop and EVM, as
shown in Chapter 4. The EVM developed previously in that chapter is shown again in
Figure 6.2. The dependent variables for this vector loop are shown in Table 6.5. The
independent variables are shown in Table 6.6. With the vector loop and the independent
TABLE 6.5 Kinematic assembly variables for Swash Plate problem
Variable Description Nominal Dim.
φl Rotation of Arm about d vector axis
18.4853°
φ2 Rotation of Cylinder about g vector
0°
φ3 Contact angle of Cylinder to Swash Plate
-8.4853°
j Distance of contact point travel from the nominal along length of arm
0"
k Distance from contact point to shaft
3.75"
116
and dependent variables defined, the coordinates of the tail of each vector and the direc-
tion cosines of each vector and each axis of rotation can be found. For the Swash Plate,
this data is shown in Table 6.7.
Figure 6.2 EVM for the Swash Plate model
TABLE 6.6 Independent dimensions for Swash Plate problem
Variable Description Nominal Dim.
a Height from top of shaft to Arm
1.5"
b Length of Arm 5"
c 1/2 Thickness of Arm 0.5"
d Distance from Arm to Follower
2.5"
e Width of Follower 1.25"
f Length of Follower 4.9413"
g Distance from Follower to Cylinder mount
0.6"
h Distance from Follower axis to Cylinder Axis
0.6"
i Radius of Cylinder 0.3751"
l Distance from contact point to top of shaft
4.6954"
117
6.2.2 Forming Partial Derivative Matrices
Using the data in Table 6.7, the matrices of the partial derivatives with respect to
the independent and dependent variables can be formed according to Equation (3.26) of
TABLE 6.7 Global coordinates and orientations for Swash Plate vector loop joints and nodes, measured from tail of vector
Part Name Orientations (ωx,ωy,ωz)Global Joint
Coordinates (X,Y,Z)
a (0, -1, 0) (0, 5, 0)
b (-1, 0, 0) (0, 3.5, 0)
c (0, -1, 0) (-5, 3.5, 0)
d (0, 0, 1) (-5, 3, 0)
e (0, 0, 1) (-5, 3, 2.5)
φ1 (Rx) (0, 0, 1) (-5, 3, 2.5)
f (0.9484, -0.3171, 0) (-5, 3, 3.75)
g (0.9484, -0.3171, 0) (-0.3137, 1.4333, 3.75)
h (-0.3171, -0.9484, 0) (0.2554, 1.2431, 3.75)
φ2 (Rx) (0.9484, -0.3171, 0) (0.2554, 1.2431, 3.75)
i (-0.1736, -0.9848, 0) (0.06514, 0.6741, 3.75)
φ3 (Rx) (0, 0, -1) (0.06514, 0.6741, 3.75)
j (0.9848, -0.1736, 0) (0, 0.3046, 3.75)
k (0, 0, -1) (0, 0.3046, 3.75)
l (0, 1, 0) (0, 0.3046, 0)
118
the Global Coordinate method. The [A] matrix of the independent variables is formed
below:
(6.9)
A[ ]
∂Hx∂A----------
∂Hx∂B
----------∂Hx∂C----------
∂Hx∂D----------
∂Hx∂E----------
∂Hx∂F
----------∂Hx∂G----------
∂Hx∂H----------
∂Hx∂I
----------∂Hx∂K----------
∂Hy∂A----------
∂Hy∂B
----------∂Hy∂C----------
∂Hy∂D----------
∂Hy∂E----------
∂Hy∂F
----------∂Hy∂G----------
∂Hy∂H----------
∂Hy∂I
----------∂Hy∂K----------
∂Hz∂A---------
∂Hz∂B---------
∂Hz∂C---------
∂Hz∂D---------
∂Hz∂E---------
∂Hz∂F---------
∂Hz∂G---------
∂Hz∂H---------
∂Hz∂I
---------∂Hz∂K---------
∂Hθx∂A
-------------∂Hθx∂B
-------------∂Hθx∂C
-------------∂Hθx∂D
-------------∂Hθx∂E
-------------∂Hθx∂F
-------------∂Hθx∂G
-------------∂Hθx∂H
-------------∂Hθx
∂I-------------
∂Hθx∂K
-------------
∂Hθy∂A
-------------∂Hθy∂B
-------------∂Hθy∂C
-------------∂Hθy∂D
-------------∂Hθy∂E
-------------∂Hθy∂F
-------------∂Hθy∂G
-------------∂Hθy∂H
-------------∂Hθy
∂I-------------
∂Hθy∂K
-------------
∂Hθz∂A
------------∂Hθz∂B
------------∂Hθz∂C
------------∂Hθz∂D
------------∂Hθz∂E
------------∂Hθz∂F
------------∂Hθz∂G
------------∂Hθz∂H
------------∂Hθz
∂I------------
∂Hθz∂K
------------
=
0 1– 0 0 0 0.9484 0.9484 0.3171– 0.1736– 01– 0 1– 0 0 0.3171– 0.3171– 0.9484– 0.9848– 1
0 0 0 1 1 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
=
119
The [B] matrix of dependent variables is formed here:
(6.10)
6.2.3 Calculating Tolerance Sensitivities
As shown in the Crank Slider example earlier, the tolerance sensitivity matrix for
this model can now be determined from the calculated [A] and [B] matrices. Since [B] is
not a square matrix, the version of the DLM equations from Section 2.1 for non-square
matrices must be used. The tolerance sensitivity matrix is calculated and shown below:
(6.11)
Then, once the sensitivities are calculated, they can be used to estimate the assem-
bly variation for the Swash Plate, using Equation (6.8).
B[ ]
∂Hx∂φ1----------
∂Hx∂φ2----------
∂Hx∂φ3----------
∂Hx∂J
----------∂Hx∂K----------
∂Hy∂φ1----------
∂Hy∂φ2----------
∂Hy∂φ3----------
∂Hy∂J
----------∂Hy∂K----------
∂Hz∂φ1---------
∂Hz∂φ2---------
∂Hz∂φ3---------
∂Hz∂J
---------∂Hz∂K---------
∂Hθx∂φ1
-------------∂Hθx∂φ2
-------------∂Hθx∂φ3
-------------∂Hθx
∂J-------------
∂Hθx∂K
-------------
∂Hθy∂φ1
-------------∂Hθy∂φ2
-------------∂Hθy∂φ3
-------------∂Hθy
∂J-------------
∂Hθy∂K
-------------
∂Hθz∂φ1
------------∂Hθz∂φ2
------------∂Hθz∂φ3
------------∂Hθz
∂J------------
∂Hθz∂K
------------
3 1.1890 0.6741– 0.9848 05 3.5565 0.06514 0.1736– 00 1.2599– 0 0 1–0 0.9484 0 0 00 0.3171– 0 0 01 0 1– 0 0
= =
a b c d e f g h i l
Sd[ ]
0.1826 0.0322 0.1826 0 0 0.02736 0.02736 0.1834 0.1855 0.1826–0 0 0 0 0 0 0 0 0 0
0.1826 0.0322 0.1826 0 0 0.02736 0.02736 0.1834 0.1855 0.1826–0.4314– 0.9394 0.4314– 0 0 1.0277– 1.0277– 0.1113– 0.2617– 0.4314
0 0 0 1 1 0 0 0 0 0
=
120
6.3 Printhead Analysis
The Printhead assembly was first introduced in Chapter 5, where the vector loop
was shown with geometric tolerance callouts and the GEVM developed. The Printhead is
demonstrated again here, where the steps for completing the variation analysis of this
assembly using the Global Coordinate method is presented. The GEVM for this model is
shown again in Figure 6.3.
6.3.1 Gathering Model Parameters
The first few steps of the analysis are identifying the joint types and DRFs in the
assembly to properly form the vector loop, and then creating the GEVM as was shown in
Chapter 5. Once these have been established, the independent, dependent and geometric
variables must be identified. The independent (dimensioned) and dependent (kinematic)
Z
XYa
b
cd
g
h
ij
k
l
φ1c
B
Loop 2(Open)
Loop 1(Closed)
φ2
j
k
φ3
α3
A
α2
Inset B
Inset A
φ3
θ1
ef
α1
d
fe
Figure 6.3 GEVM for Printhead assembly
121
variables for the Printhead assembly are shown in Figure 6.8 and Table 6.9, respectively.
The geometric variables and their variations are included in Table 6.10.
As was mentioned with the analysis of the Crank Slider in Section 6.1, the amount
of variation due to each geometric callout must be calculated from the specified tolerance
zone. For these simple translational variations, the values are equal to half of the specified
TABLE 6.8 Independent dimensions for Printhead problem
Variable Description Nominal Dim.
a 0.600 cm
b 0.500 cm
d Radius of support rod 0.125 cm
e Radius of connecting cylinder 0.125 cm
g Distance from cylindrical axis to front face of printhead
3.65 cm
h Distance from cylindrical axis to top of platform
2.00 cm
θ1 Angular dimension from printhead body to platform
90°
i 2.00 cm
j Distance from edge of print-head to side face of base
1.00 cm
k 0.750 cm
l 4.75 cm
TABLE 6.9 Dependent variables for Printhead problem
Variable Description Nominal Dim.
c Distance from side face of assembly to cylindrical con-tact point
3.00 cm
φl Rotation of cylinders wrt each other about c
0°
f Distance from cylindrical contact point to front face of printhead
0.500 cm
φ2 Angle from printhead plat-form (h) to horizontal datum
90°
φ3 Angle of rotation of print-head about j
0°
122
tolerance zone. The values are included in Table 6.10. Also note again that the nominal
values for all geometric variables are zero.
Once the variables and their nominal values have been collected, they are used to
assemble the table of global direction cosines for each vector and dependent revolution
axis, as well as the global coordinates for the dependent angles. This data is summarized
for the Printhead in Table 6.11.
6.3.2 Calculating Closed-Loop Sensitivities
With the information in Table 6.11, the matrices for the partial derivatives of the
model can be formed according to the Global Coordinate method. The [A] matrix for the
TABLE 6.10 Geometric tolerance variables for Printhead problem
Variable Description Nominal Dim. Variation
αl Linear variation in local x-axis due to cylindricity callout
0 cm ± 0.0005 cm
α2 Linear variation in local x-axis due to position callout
0 cm ± 0.0005 cm
α3 Linear variation in local y-axis due to position callout
0 cm ± 0.0005 cm
123
TABLE 6.11 Global coordinates and orientations for Printhead vector loop joints
Part Name Orientations (ωx,ωy,ωz)Global Joint
Coordinates (X,Y,Z)
a (0, 1, 0) (0, 0, 0)
b (0, 0, 1) (0, 0.6, 0)
c (1, 0, 0) (0, 0.6, 0.5)
d (0, 0, 1) (3, 0.6, 0.5)
φl (Ry) (-1, 0, 0) (3, 0.6, 0.5)
α1 (Tx) (0, 0, 1) (3, 0.6, 0.5)
e (0, 0, 1) (3, 0.6, 0.625)
f (0, 1, 0) (3, 0.6, 0.75)
g (0, 1, 0) (3, 1.1, 0.75)
h (0, 0, 1) (3, 4.75, 0.75)
θ1 (Ry) (-1, 0, 0) (3, 4.75, 0.75)
φ2 (Ry) (-1, 0, 0) (3, 4.75, 0.75)
i (-1, 0, 0) (3, 4.75, 0.75)
j (-1, 0, 0) (1, 4.75, 0.75)
k (0, 0, -1) (0, 4.75, 0.75)
φ3 (Rz) (-1, 0, 0) (0, 4.75, 0.75)
α2 (Tx) (0, 0, -1) (0, 4.75, 0.75)
α3 (Ty) (0, -1, 0) (0, 4.75, 0.75)
l (0, -1, 0) (0, 4.75, 0)
124
partial derivatives with respect to the independent variables for the closed loop is shown
below:
(6.12)
A[ ]
∂Hx∂A
----------∂Hx∂B
----------∂Hx∂D----------
∂Hx∂E
----------∂Hx∂G----------
∂Hx∂I
----------∂Hx∂J
----------∂Hx∂K----------
∂Hx∂L
----------
∂Hy∂A
----------∂Hy∂B
----------∂Hy∂D----------
∂Hy∂E
----------∂Hy∂G----------
∂Hy∂I
----------∂Hy∂J
----------∂Hy∂K----------
∂Hy∂L
----------
∂Hz∂A---------
∂Hz∂B---------
∂Hz∂D---------
∂Hz∂E---------
∂Hz∂G---------
∂Hz∂I
---------∂Hz∂J
---------∂Hz∂K---------
∂Hz∂L
---------
∂Hθx∂A
-------------∂Hθx∂B
-------------∂Hθx∂D
-------------∂Hθx∂E
-------------∂Hθx∂G
-------------∂Hθx
∂I-------------
∂Hθx∂J
-------------∂Hθx∂K
-------------∂Hθx
∂L-------------
∂Hθy∂A
-------------∂Hθy∂B
-------------∂Hθy∂D
-------------∂Hθy∂E
-------------∂Hθy∂G
-------------∂Hθy
∂I-------------
∂Hθy∂J
-------------∂Hθy∂K
-------------∂Hθy
∂L-------------
∂Hθz∂A
------------∂Hθz∂B
------------∂Hθz∂D
------------∂Hθz∂E
------------∂Hθz∂G
------------∂Hθz
∂I------------
∂Hθz∂J
------------∂Hθz∂K
------------∂Hθz
∂L------------
=
0 0 0 0 0 1– 1– 0 01 0 0 0 1 0 0 0 1–0 1 1 1 0 0 0 1– 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
=
125
The [B] matrix for the partial derivatives with respect to the dependent variables
for the closed loop is formed below:
(6.13)
The [F] matrix for the partial derivatives with respect to the geometric variables
for the closed loop is formed below:
(6.14)
B[ ]
∂Hx∂C----------
∂Hx∂φ1----------
∂Hx∂F
----------∂Hx∂φ3----------
∂Hy∂C----------
∂Hy∂φ1----------
∂Hy∂F
----------∂Hy∂φ3----------
∂Hz∂C---------
∂Hz∂φ1---------
∂Hz∂F---------
∂Hz∂φ3---------
∂Hθx∂C
-------------∂Hθx∂φ1
-------------∂Hθx∂F
-------------∂Hθx∂φ3
-------------
∂Hθy∂C
-------------∂Hθy∂φ1
-------------∂Hθy∂F
-------------∂Hθy∂φ3
-------------
∂Hθz∂C
------------∂Hθz∂φ1
------------∂Hθz∂F
------------∂Hθz∂φ3
------------
1 0 0 00 0.5– 1 0.75–0 0.6 0 4.750 1– 0 1–0 0 0 00 0 0 0
= =
F[ ]
∂Hx∂α1----------
∂Hx∂α2----------
∂Hx∂α3----------
∂Hy∂α1----------
∂Hy∂α2----------
∂Hy∂α3----------
∂Hz∂α1---------
∂Hz∂α2---------
∂Hz∂α3---------
∂Hθx∂α1
-------------∂Hθx∂α2
-------------∂Hθx∂α3
-------------
∂Hθy∂α1
-------------∂Hθy∂α2
-------------∂Hθy∂α3
-------------
∂Hθz∂α1------------
∂Hθz∂α2------------
∂Hθz∂α3------------
0 0 00 0 1–1 1– 00 0 00 0 00 0 0
= =
126
With the partial derivative matrices formed, the sensitivities for the closed loop
variables can be calculated. As [B] is not square, similar to the Crank Slider example, the
same sensitivity equations used there must be used here. From Equations (6.4) and (6.5),
the dimensional and geometric sensitivity matrices are calculated and shown below:
(6.15)
(6.16)
6.3.3 Calculating Open-Loop Sensitivities
The sensitivity matrices above were calculated for the closed loop in the Printhead
model. The open loop in the model requires calculation of separate sensitivities. The
equations for open-loop sensitivity calculation were originally presented in Sections 2.1
and 2.2. Equation (2.8) demonstrated how the variation of the open-loop assembly vari-
able is calculated, and is reprinted below:
(6.17)
a b d e g i j k l
Sd[ ]closed
cφ1f
φ3
0 0 0 0 0 1 1 0 00 0.2410 0.2410 0.2410 0 0 0 0.2410– 01– 0.0602– 0.0602– 0.0602– 1– 0 0 0.0602 1
0 0.2410– 0.2410– 0.2410– 0 0 0 0.2410 0
=
α1 α2 α3
Sα[ ]closed
cφ1f
φ3
0 0 00.2410 0.2410– 00.0602– 0.0602 10.2410– 0.2410 0
=
δΦp{ } C[ ] δX{ } D[ ] δU{ }+=
127
This can be expanded to include the solution for {δU} from the closed-loop analy-
sis:
(6.18)
However, due to the geometry of this printhead assembly and the simplified vector
loop chosen, the entirety of Equation (6.18) is not necessary. Equation (6.18) is composed
of six rows of equations; one equation for each direction of translation and rotation in 3D.
This open loop only has sensitivities to rotations about the global X axis, or the local Z axis
relative to the open-loop assembly variable φ2. Therefore, this equation can be reduced as
shown below:
(6.19)
where δθ1 is the only relevant independent variable from the open-loop {δX} vector, and
δφ3 is the only relevant section of the {δU} vector. The simplified components of Equa-
tion (6.18) used to arrive at Equation (6.19) are explained below.
Before the simplified equations are explained, it should be noted that, in general,
the general form of the solution shown in Equation (6.18) should be followed. As there
may be dependencies of the closed-loop dependent variables upon the open-loop indepen-
dent variables, a simplified equation such as that shown in Equation (6.18) may contain
two variables that are not completely independent of each other. Such a circumstance
would result in an incorrect solution for the assembly variation, as the root-mean square
equation (shown in Equation (6.8)) assumes each of the components used are completely
δΦp{ } C[ ] δX{ } D[ ] B[ ]t B[ ]( )–1–
B[ ]t A[ ] δX{ } B[ ]t B[ ]( )–1–
B[ ]t F[ ] δα{ } +=
δφ2 δθ1 δφ3+=
128
independent of each other. However, as there is no such dependency of φ3 to θ1, this sim-
plified solution may be used.
The term δθ1 is obtained from [C]{δX}. The basic [C] matrix for open-loop equa-
tions contains partial derivatives with respect to only the independent variables of the
open loop. However, to facilitate the matrix operations that take place in Equation (6.18),
columns of zeroes will be added to [C] in the locations of all the independent variables of
the closed loop in [A], and {δX} will similarly be augmented to include all independent
variables from the closed and open loops. The augmented [C] matrix is then reduced to
include only the row corresponding to the equation for rotation about the Z axis, with
zeroes in every position except that for θ1, such that the simplified [C]{δX} is shown
below:
(6.20)
The δφ3 term is then calculated from the expanded [D]{δU} product shown in
Equation (6.18). The -([B]T[B])-1[B]T[A] and -([B]T[B])-1[B]T[F] portions of that product
are initially obtained from Equations (6.15) and (6.16), respectively. From both of these
are taken only the fourth row, which contain the sensitivities for φ3. {δX} is the standard
vector of all the independent variables for the closed loop, while {δα} is the vector of all
the geometric variables for the closed loop. [D] is the matrix of dependent variables for
a b … l θ1C[ ] δX{ } 0 0 … 0 1 δa
δb…δl
δθ1 δθ1= =
129
the open loop with a fourth column added for φ3. The row corresponding to the rotation
equation about Z is all that is included from this matrix, consisting of zeroes in all but the
φ3 position.
(6.21)
Thus, using Equations (6.19) through (6.21), the variation for the assembly con-
straint angle φ2 can be calculated. It should be noted that with this type of solution for
open-loop equations, the sensitivities come out directly; no matrix inversion operations
are necessary to obtain the sensitivities as were required for the closed loop. The coeffi-
cients for δθ1 and δφ3 in Equation (6.19) are the sensitivities, which both equal unity.
This is of course confirmed by intuition from looking at the model that the amount of vari-
ation on the angle from the platform is going to be directly related to the dimensioned
angle of the printhead platform and the kinematic angle of the entire printhead. The 3σ
tolerance values can be inserted into the {δX} and {δα} vectors to be used in a root-mean
squares statistical equation (as in Equation (6.8)) to calculate a 3σ value for the assembly
variation in φ2.
D[ ] B[ ]t B[ ]( )–1–
B[ ]t A[ ] δX{ } B[ ]t B[ ]( )–1–
B[ ]t F[ ] δα{ } =
c φ1 f φ30 0 0 1
a b … l
1– 0.0602– … 1
δaδb…δl
α1 α2 α3
0.2410– 0.2410 0
δα1
δα2
δα3
–
δφ3=
130
6.4 Conclusion
Using the methods outlined in this thesis, a thorough tolerance analysis can be con-
ducted for any mechanical assembly, even those including geometric variation. The anal-
ysis is fairly simple and easy to perform when using the Global Coordinate Method.
However, while this analysis was not difficult, the preferred method would be to have it
automated in some fashion.
131
CHAPTER 7 IMPLEMENTATION IN ADAMS
The EVMs and GEVMs developed in this thesis will now be applied, demonstrat-
ing the ability to perform tolerance analysis in the commercial kinematic/dynamic model-
ing package ADAMS. The version of ADAMS used in this research is 10.1.
First, a brief explanation of the methods used in modeling EVMs in ADAMS will
be presented. Then, each of the assemblies analyzed in Chapter 6 will be modeled in
ADAMS, allowing for verification of the results previously presented. For brevity, only
the Crank Slider will be shown in full detail with an explanation on how the model was
implemented in ADAMS, including the analysis results obtained. The Swash Plate and
Printhead will be presented with their results from ADAMS and descriptions of any mod-
eling intricacies found in the development of those EVMs/GEVMs.
7.1 Modeling in ADAMS
There exist a few basic concepts in ADAMS that, once grasped, make the compre-
hension of the modeling process much easier. [Faerber 1999] gave a basic background to
132
the ADAMS modeling environment, much of which is summarized here. Additionally,
the underlying theory for most of the ADAMS modeling concepts presented in this chap-
ter originated with Faerber, specifically in his fifth chapter. Thus, the reader is encour-
aged to refer to his work.
Two elements in ADAMS are referred to most often, and determine the location
and orientation of all other elements of an ADAMS model. The first is the part. A part is
simply a local coordinate system defined in space. Inherently, there is no geometry, and
no mass. The part is represented by a triad at some location and orientation, as shown in
Figure 7.1. Child to the part is the marker. Markers are used to locate points on a part,
and is a triad in space, with no inherent form. The representation of a marker is identical
to the part triad shown. While a part triad defines the coordinate system for the entire part,
markers are used to define the extents and geometry of the part. Markers are used to
locate and orient joints and motions between parts, and all measurements in ADAMS of
velocity, position, or otherwise are based on markers.
Y
Z
X
Figure 7.1 Representation of a part in ADAMS [modified from Faerber 1999]
133
With an understanding of the importance of markers and their relationships to
parts, the concepts behind modeling EVMs can be developed. The basic procedure for
creating EVMs in ADAMS (the same procedure applies for GEVMs) consists of creating
link geometry in the same position and orientation as the vector loop used to describe the
assembly. The links consist of two sublink parts joined by a prismatic joint. Together, the
sublinks form one major link, or the equivalent of one vector from the assembly vector
model. The split between the two sublinks could occur at any point along the length of the
vector, but for convenience in modeling, the joint between the two will be placed at the
tail of the vector. Therefore, the first sublink is a zero-length link. The two markers defin-
ing it, as well as the first marker defining part 2, are necessarily all coincident. A repre-
sentation of these sublinks and the markers used to define them is shown in Figure 7.2.
The prismatic joints enable the link to include translational dimensional variation if it rep-
resents an independent vector. If the link represents a dependent vector, the prismatic
joints allow it to absorb assembly variation.
0
3
21
LinkSchematicRepresentation
MarkerPlacement
Part 1
Part 2
Figure 7.2 Sublink and slider EVM representation [modified from Faerber 1999]
134
Once links have been created to represent the vector loop, the EVM is completed
by placing Equivalent Variational Joints to properly constrain the links of the model. The
analysis of the EVM is conducted by activating a unit velocity on a joint representing one
independent variable, and measuring the output velocities on each of the dependent vari-
ables. These output velocities will equal the tolerance sensitivities, if the EVM has been
developed correctly, and unit input velocities are used. Detailed methods for correctly
implementing EVMs and performing analyses in ADAMS are included in APPENDIX F,
with macros described in APPENDIX G which can automate some of the procedures.
7.2 Crank Slider
The following description of the creation of the crank slider model in ADAMS is
based on the assumption of at least a basic understanding of the ADAMS interface and the
modeling details contained in APPENDIX F. Additionally, the modeling techniques
described here will make use of the macros described in APPENDIX G. The reader
should refer to both APPENDICES F and G for more detailed description of modeling
EVMs/GEVMs in ADAMS.
7.2.1 Initial Setup
To properly model the crank slider in ADAMS, a few setup procedures should
come first. The units for all angles during modeling should be set to DEGREES. The
units can be changed from the SETTINGS - UNITS menu. The default coordinate system
for this model should be set to Body-Fixed 231, which can be done from the SETTINGS -
COORDINATE SYSTEM menu. This specifies that all rotations entered are taken to be
135
relative to the local body coordinate system, where the first rotation is applied about the y-
axis, the second is applied about the new z-axis, and the last is applied about the final x-
axis. The name of the model database in ADAMS should be renamed to “crankslider”,
which is done under the BUILD - MODEL - RENAME menu. Select the model that cur-
rently exists, which is most likely named “.model”, and rename it to “crankslider”. Next,
two markers will be created for convenience in later modeling. The first will be named
“.ground.ground_marker”, and will be created at an orientation of “180,0,-90” relative to
“.crankslider.ground”. The second marker will be named “.ground.fixed_a”, and will be
created at a location of “0,0,0” and an orientation of “-90,0,0” relative to “.crank-
slider.ground.ground_marker”.
7.2.2 Create Links
Modeling a EVM/GEVM in ADAMS requires specific knowledge about the posi-
tion and orientation of each part relative to each other. As the EVM or GEVM should
have already been designed before modeling in ADAMS, all such information will already
be known. The GEVM for the crankslider is shown in Figure 7.3, with the pertinent mod-
eling information displayed in Table 7.1.
From the model information in Table 7.1, the equivalent links for each of the vec-
tors can be created using the modeling macros defined in APPENDIX G. The
evm_independent macro is activated, and “a” is entered for the “Part Name” field. The
value “20” is entered for “Link Length”, with “0,0,0” in the “Position” field. As this is the
first part to be created, it must be oriented relative to the ground marker established ear-
136
lier, thus an orientation of “-90,0,0” is entered for “Initial Orientation”, with “.crank-
slider.ground.ground_marker” in the “Relative To What” field. The width and depth
fields may be left at their defaults, although values of “40” will be entered into both fields
for purposes of better visibility in this example. The “End Orientation” field defines the
orientation of the a3 marker to assist in orienting the next link in the loop, and thus is filled
X
Y
Z
b
a
Crank
u e
d
c
Link
Slider
φ1,φ2
φ3,φ4,φ5
b
a
cα2
α1
Tx
Ty
inset
β1
β3Ry
Rx
β2
Rz
Figure 7.3 Crank Slider GEVM
TABLE 7.1 Modeling Information for the Crank Slider
Variable Type LengthFinal
Orientation
a I 20 cm (-90, 0, 0)
b I 12 cm (90, 45, 0)
α1 I 0 cm (0, 90, 0)
α2 I 0 cm (0, 0, 0)
c I 15 cm (96.051985, -14.280631, 0)
d I 43 cm (-81.732552, -44.720313, 0)
e I 5 cm (-90, -20.194857, 0)
u D 53.439 cm (0, 0, 0)
137
with “-90,0,0”. At this time, the velocity field may be left at “0*time”. Click OK. At this
point, the model will appear as shown in Figure 7.4.
What has been created by the macro, although it is not well seen in the figure, are
one zero-length sublink a1 connected to a 20 cm sublink a2 by a slider joint. The slider
joint has a velocity function applied, which is actually a displacement function currently
set at “0*time”. Four markers have been created, where the markers a0 and a1 belong to
part a1, and are both at the origin, along with marker a2, which belongs to part a2. Then,
markers a_geom and a3 were created at the end of the vector, where a3 is oriented to align
with the next part to be created. Finally, geometry was added to both parts, along with
mass properties.
The b link is created next, again using the macro. Into the “Part Name” field is
entered “b”, with “12” entered in the length field, and “90,45,0” entered in the “End Ori-
entation” field. For the remainder of the links in the mechanism, including b, all informa-
Figure 7.4 Crankslider model as seen after creation of A link
138
tion needed in the macro that is not given in Table 7.1 will be entered the same for each
link. Every part will be located with “0,0,0” for both the “Position” and “Initial Orienta-
tion” fields, with the *3 marker of the *2 part from the link last created in the “Relative To
What” field. All geometry will be given values of “40” to coincide with the values given
for a. Thus, the fields for b will be entered after this manner, with “.crankslider.a2.a3” in
the “Relative To What” field. The entries for a were different because it was the first link
in the model, and thus did not have a previous part to establish its orientation with a *3
marker.
The remaining parts, except for u, are created using the macro according to this
method and the information in the table. Note that α1 and α2, being geometric variables,
are zero-length vectors. Therefore, although they are created using the same methods, it
can’t be verified as readily (by visual inspection) whether the parts were actually created
correctly. Care should be taken to ensure all vectors are created in the correct orientations.
For u, the vector is dependent, where all others are independent. Thus, it should
not have a velocity function applied to its slider joint. If the dependent variant of the
macro is used, no change is necessary in the method of locating it and orienting it relative
to the other parts in the assembly. If the same independent EVM macro is used, the user
will need to go in afterwards and delete the velocity function that would be applied by the
macro.
For model verification when all is completed, the u part should line up with the
ground_marker, and the u2.u3 marker should be completely coincident with
139
ground_marker. Some correction may be needed in the end to make this happen, due to
the effect of any small round-off error earlier in the model which propagates through the
vector chain. The completed assembly of EVM links for the crank slider model is shown
in Figure 7.5.
7.2.3 Adding EVJs
After all of the links, or equivalent vectors, have been created in the model, Equiv-
alent Variational Joints are added to properly constrain the links. It does not matter what
order the joints are added, but it is typically easier to create all joints of one type at the
same time. All the joints to be added can be seen in the crank slider GEVM in Figure 7.3.
Notice that although the original mechanism had four joint types, including a revolute
joint, the GEVM has reduced this to three due to the replacement of the revolute joint with
a spherical joint in placing that GEVJ.
Figure 7.5 Complete EVM loop in ADAMS. Icons removed from model for clarity.
140
The first joints to be created are the fixed joints. These will be added between vec-
tors that make up the same assembly part, and thus should not move relative to one
another, and between vectors where the constraints of the assembly simply dictate that no
movement occur between the parts. From the Command Navigator, select CON-
STRAINT - CREATE - JOINT - FIXED. The fixed joint menu will appear, enabling the
user to create fixed joints as defined in APPENDIX F. Fixed joints can then be placed
using “Position by Using Markers”. The information necessary for creating the required
fixed joints is found in Table 7.2.
Next to be added are the spherical joints. Go to CONSTRAINT - CREATE -
JOINT - SPHERICAL in the Command Navigator. The spherical joints can also be cre-
ated using “Position By Using Markers”, as indicated in APPENDIX F. The information
required to place these joints is also found in Table 7.2. Some additional information,
however, is required to properly constrain the spherical joints.
With the “spherical_b_alpha” joint, note that not all of the DOFs available in the
generic EVJ for the revolute joint are used here, due to the specific geometric callout used,
Joint Type Joint Name I marker J marker
Fixed fixed_ab b1.b0 a2.a3
Fixed fixed_alpha12 alpha21.alpha20 alpha12.alpha13
Fixed fixed_alpha2c c1.c0 alpha22.alpha23
Fixed fixed_u_ground ground.ground_marker u2.u3
Fixed fixed_a_ground a1.a0 ground.fixed_a
Spherical spherical_b_alpha alpha11.alpha10 b2.b3
Spherical spherical_cd d1.d0 c2.c3
Spherical spherical_de e1.e0 d2.d3
Spherical spherical_eu u1.u0 e2.e3
TABLE 7.2 Data for creating GEVJs in the crank slider assembly
141
and thus the rotations about the x and y-axes should be turned off. In addition, as it is
desired to hold the crank at one position during the static analysis, the rotation about the z-
axis should also be turned off. This is done by selecting the joint once it is created, click-
ing on the MODIFY context menu that appears, and then clicking IMPOSE MOTIONS.
In this interface, simply set the DOF type for ROTX, ROTY, and ROTZ to “Disp(time)=”,
and the default function “0*time” will appear in the “f(time)” field. This will freeze the
spherical joint from any rotation about its local x, y, or z-axes.
For the “spherical_cd” joint, another motion constraint must be added, as the rota-
tion of the link shaft about its lengthwise axis is an idle degree of freedom that does not
contribute to the analysis. Thus, to keep the model at zero degrees of freedom, ROTX for
the “spherical_cd” joint will be turned off.
In the “spherical_eu” joint, rotational velocity functions are added for the β1, β2,
and β3 geometric rotational variables that exist at this point. Just as with the independent
translational velocities, the displacement functions applied here will each be “0*time”,
until the analysis for each one is conducted, where the velocities will then be temporarily
changed to “1*time”. These input velocities are applied to ROTX, ROTY, and ROTZ,
through the MODIFY - IMPOSE MOTIONS context menu as described above.
Note that another prismatic joint does not have to be added to u for the GEVJ as
one was already created in that position when the link was formed using the macro.
142
7.2.4 Static Analysis
With the GEVJs properly placed to constrain the links in the model, and velocity
functions created on all necessary parts, the model is ready to have measures created for
the dependent variables. Once that is accomplished, the model is ready for analysis.
In ADAMS, a “measure” is quite simply an instruction commanding the model to
record, or measure, some characteristic between two angles, whether it be a force, angle,
velocity, or nearly any other measurable characteristic. A measure will be created for
each dependent variable, and thus, although it is possible to measure many characteristics
in ADAMS, all measures created for EVM analyses will measure rotational or transla-
tional velocities. Section F.4.1 explains in detail how measures are created, and that infor-
mation will not be repeated here. It is sufficient to state here that rotational joint measures
should be created on the spherical_cd and spherical_de joints, and a translational joint
measure will be created on the trans_u joint. The information necessary to create these
joints according to the instructions in the appendix are contained in Table 7.3.
Now that the measures are created, an analysis must be run in ADAMS, where all
of the constraints and velocities are applied, calculations performed, and the results for the
Measure Name Joint Name Measure Type
Relative To:
Measured Axis From/At:
phi1 spherical_cd rotational velocity d1.d0 Y N/A
phi2 spherical_cd rotational velocity d1.d0 Z N/A
phi3 spherical_de rotational velocity e1.e0 Y N/A
phi4 spherical_de rotational velocity e1.e0 Z N/A
phi5 spherical_de rotational velocity e1.e0 X N/A
u trans_u translational velocity u1.u1 X u1.u1
TABLE 7.3 Data for creating Measures for the crank slider assembly
143
measures are recorded at each time step. The analyses are run with unit velocities set at
each independent variation, one at a time. Starting at a, set the displacement function to
“1*time”. Run the analysis with an “end time” of 1, and 1 for “step size”. These analysis
settings will apply the velocities and calculate the results starting at time zero, ending at
time one, with only one analysis step. When the first run is complete, modify the
LAST_RUN analysis to the name “static_trans_a” to save the results. For the next Run,
set the displacement function at a back to “0*time”, and set the function for b to “1*time”.
Run the analysis again. Save the results again, as “static_trans_b”. Reset the function on
b to “0*time”. This process is repeated for each independent variation source, both
dimensional and geometric, as shown in Table 7.4.
When all the analyses have been run, the results from each of the applied measures
will have been stored internally in ADAMS. Currently, because there is no variation anal-
ysis add-on or interface for ADAMS, the measured results, or sensitivities, must be
extracted before they can be used in externally performed assembly variation calculations.
Following the instructions in Section F.5.1, export the results from all the analyses. The
Run A B C D E α1 α2 β1 β2 β3
1 1*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time
2 0*time 1*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time
3 0*time 0*time 1*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time
4 0*time 0*time 0*time 1*time 0*time 0*time 0*time 0*time 0*time 0*time
5 0*time 0*time 0*time 0*time 1*time 0*time 0*time 0*time 0*time 0*time
6 0*time 0*time 0*time 0*time 0*time 1*time 0*time 0*time 0*time 0*time
7 0*time 0*time 0*time 0*time 0*time 0*time 1*time 0*time 0*time 0*time
8 0*time 0*time 0*time 0*time 0*time 0*time 0*time 1*time 0*time 0*time
9 0*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time 1*time 0*time
10 0*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time 0*time 1*time
TABLE 7.4 Proper velocity function configuration for analyses
144
columns formed by the data at time zero from a, b, c, d, and e are assembled together to
form the [Sd] matrix of sensitivities for dimensional variation, and the columns from α1,
α2, β1, β2, and β3 are assembled to form the [Sα] matrix of sensitivities due to geometric
variation. These results for the crankslider assembly are shown in Equations (7.1) and
(7.2), respectively:
(7.1)
(7.2)
7.2.5 Kinematic Analysis
One of the advantages to performing tolerance analysis in ADAMS is its ability to
automatically increment the position of the mechanism and perform an analysis at each
position. This section will demonstrate such an analysis for the crank slider, run for 45
degrees from the default position of the crank slider to the bottom-dead-center (BDC)
position, where the crank is pointing straight down. The results from ADAMS will be
verified against results from the Global Coordinate Method at both the nominal 45° crank
a b c d e
Sd[ ]
φ1φ2φ3φ4φ5u
0.01609– 0 0.02339 0.00254– 0.016090.01697– 0 0 0.00592 0.01697
0.02325 0 0.01662– 0.00231– 0.02325–0.00244 0 0 0.00085– 0.00244–0.00061 0 0.01646 0.00595– 0.00061–
0.1060– 1 0.1060– 1.03768 0.1060
=
a b c d e
Sα[ ]
φ1φ2φ3φ4φ5u
0.00063 0.02339 0.08490– 0 00.02400– 0 0.08484 0 0
0.01626 0.01662– 0.3465 0.9386– 00.00345 0 0.9508– 0.3452– 00.01732 0.01646 0.1194– 0 1
0.2560– 0.1060– 1.2798 5– 0
=
145
position and the BDC position. Again, the methods for performing analyses on kinematic
mechanisms are well defined in Section F.4.3, and therefore, what is stated there will not
be entirely repeated here.
The first change to the model to prepare it for kinematic analysis is to change the
rotational motion constraint on the z-axis (ROTZ) of the joint spherical_balpha1 from
“0*time” to “-1d*time” to allow the larger kinematic motion of the crank, verifying that
the negative sign will move the crank counter-clockwise from 45° to BDC. Verify that all
other input velocities in the model are set to zero. Then, run the analysis with “end time”
set to 45, and “step size” set to “0.01”. Save the results under a unique name. Now, mod-
ify the current “0*time” displacement function on a to a velocity of “cos(20*pi*time)”.
Perform the analysis again with the same settings. Save these results. The cosine velocity
function applied as the input dimensional variation ensures the assembly geometry will be
returned to nominal for each analysis time-step. A detailed explanation of the use of this
cosine function is included in Section F.4.3.
Following the instructions in APPENDIX F, export the data from each analysis.
Normally, to obtain sensitivities, the analyses would be repeated for each independent
variation, but for brevity, only the results for the input variation on A will be shown here.
A comparison between the results from ADAMS at two of the positions in the
analysis and the corresponding values from the Global Coordinate Method is shown in
Table 7.5. It is noted that in addition to some small round-off error in the results, it is
apparent that there is some significant error in a few of the results from ADAMS at the
146
BDC end position. This results from the integration error that accumulates as the analysis
progresses. [Faerber 1999] noted this error source, and explains that it comes from the
numerical methods ADAMS uses to solve for the position of the mechanism at each new
time step. This error can be reduced by decreasing the step size of the analysis, which can
greatly increase the time required to perform the analysis, or restart the analysis at a new
position of the mechanism. It can be seen that the results are identical between ADAMS
and the GCM at the initial 45° position of the analysis. Additionally, when a static analy-
sis is restarted at the BDC position, the results also come out identical to the GCM results
at BDC as shown in Table 7.5.
7.3 Swash Plate
The Swash Plate assembly and its completed ADAMS model are shown in Figure
7.6. The joint icons and markers have been removed for clarity.
The sensitivity results from the velocity analysis in ADAMS are presented in
Equation (7.3). The results obtained from ADAMS are identical to the dimensional toler-
ADAMS Global Coordinate
VariableStart
Position: 45°End:BDC
Restart @BDC 45° BDC
φ1 -0.01609 -0.02326 -0.01609 -0.01609 -0.02326
φ2 -0.01697 0 -0.01697 -0.01697 0
φ3 0.02325 0.02183 0.02325 0.02325 0.02326
φ4 0.00244 0.00803 0.00244 0.00244 0
φ5 0.00060 0 0.00060 0.00061 0
u -0.10607 0.00043 -0.10607 -0.10602 0
TABLE 7.5 Comparison of kinematic ADAMS results to Global Coordinate Method
147
ance sensitivities obtained in Chapter 6 (Equation (6.11)) using the Global Coordinate
Method.
(7.3)
7.4 Printhead
The completed model of the Printhead in ADAMS is shown in Figure 7.7 along-
side the vector loop used to build the model. With the completed model built in ADAMS,
velocity analyses were performed to extract the closed-loop sensitivities shown in Equa-
tions (7.4) and (7.5):
Figure 7.6 Swash Plate vector loop on right, and completed ADAMS model on left. Icons removed from ADAMS model for clarity.
Y
ZX
da
bc
e
fg
i jk
l
φ 2
φ1
φ 3
h
a b c d e f g h i l
S[ ]
φ1φ2φ3jk
0.1826 0.0322 0.1826 0 0 0.02736 0.02736 0.1834 0.1855 0.1826–0 0 0 0 0 0 0 0 0 0
0.1826 0.0322 0.1826 0 0 0.02736 0.02736 0.1834 0.1855 0.1826–0.4314– 0.9394 0.4314– 0 0 1.0277– 1.0277– 0.1113– 0.2617– 0.4314
0 0 0 1 1 0 0 0 0 0
=
148
(7.4)
(7.5)
where [Sd] contains the dimensional sensitivities, and [Sα] is the matrix of geometric sen-
sitivities.
Note that angular variation for φ2 does not appear in the sensitivity matrices shown
above. In Chapter 6, it was shown that the open-loop assembly variation δφ2 could be
Z
XYa
b
cde
f
g
h
ij
k
l
φ3
φ2
φ1
q
1
Figure 7.7 Printhead vector loop and ADAMS model. Icons removed from ADAMS model for clarity.
θ
a b d e g i j k l
Sd[ ]closed
cφ1fφ3
0 0 0 0 0 1 1 0 00 0.2410 0.2410 0.2410 0 0 0 0.2410– 01– 0.0602– 0.0602– 0.0602– 1– 0 0 0.0602 1
0 0.2410– 0.2410– 0.2410– 0 0 0 0.2410 0
=
α1 α2 α3
Sα[ ]closed
cφ1fφ3
0 0 00.2410 0.2410– 00.0602– 0.0602 10.2410– 0.2410 0
=
149
determined from Equation (7.6), where the variation sensitivities are equal to unity, or the
coefficients of δθ1 and δφ3:
(7.6)
where δθ1 represents a manufactured (independent) variable, and δφ3 represents a kine-
matic variable. In this equation, the variation in the assembly variable φ2 is due to the
variation in φ3 and θ1. The φ3 variation can be found from the closed loop sensitivity
matrices, and the θ1 variation is defined by the manufacturing process used to make the
features that determine θ1.
7.5 Modeling Tips
This section includes helpful hints for modeling in ADAMS. They do not apply
directly to any one model, but are helpful for improving general EVM modeling practice.
7.5.1 Query Select
When modeling complex assemblies in ADAMS, joint symbols, part symbols,
markers, and motion constraints all get placed on top of each other. This makes it difficult
to select the appropriate element when needed. It should be remembered that ADAMS
has built in a type of “Query Select” picking menu. If a desired item is in a crowded area
of the model, simply right-click near the item, and a menu will come up with all the model
elements near that point. Selecting the appropriate element from this menu will then bring
up a context menu with choices specific to that element, enabling that item to be selected,
modified, or measured.
δφ2 δθ1 δφ3+=
150
7.5.2 Use of Dummy Parts in EVJs
On some of the Equivalent Variational Joints, it will be necessary to create small
’dummy’ parts to facilitate the joint creation. These zero-length parts will be necessary
for any equivalent joint that requires two kinematic joints to be mated directly together,
with no vectors in between them. Examples of where this would be needed include the
Edge Slider, where the pin joint must be connected directly to the planar joint, and the
Point Slider, where the spherical joint must be directly attached to the planar joint. In
ADAMS, two joints cannot be directly connected in this manner, but must have a part to
connect them. A simple zero-length part can be created through the PART-CREATE
interface in the Command Navigator. At least one marker should be added, although addi-
tional markers may be necessary if it is desirable to connect markers to the two joints at
different orientations.
7.5.3 Multiple Vector Loops
It is important to note that redundant vectors from assemblies with multiple vector
loops are eliminated in the ADAMS model. Creating redundant vectors, simply because
that vector is part of multiple loops, serves no purpose in ADAMS.
7.5.4 Measuring Direction Cosines in ADAMS
When modeling an assembly in ADAMS, it is often beneficial to verify the model
by measuring the direction cosines and comparing against the model specifications. Mea-
suring the direction cosines in ADAMS requires creating an Orientation Measure. This is
accomplished by clicking BUILD - MEASURE - ORIENTATION - NEW. The orienta-
151
tion measure window will appear. After the name field is entered, “Direction Cosines” is
selected from the “Characteristic” menu. The “To Marker:” field should be filled with the
name of the local marker whose direction cosines are to be measured. The “From
Marker:” should be filled with the name of a marker representing the global coordinate
system for the model, such as .ground.ground_marker from the previous crank slider
example.
To better facilitate the completion of the “Component” field, a bit of background is
given on how ADAMS refers to the direction cosines. In ADAMS, it is possible to mea-
sure nine different direction cosines. In general, a direction cosine is the cosine of an
angle measured from one axis to another. Specifically, ADAMS calculates these angles
from one coordinate system to another, measuring angles from each of the three axes of
one coordinate system to each of the three axes in the other, resulting in nine cosines. The
orientation measure refers to each of these nine cosines by their location in a matrix
formed internal to ADAMS. Then, assuming a ground marker in the “From Marker:”
field as described above, a representation of this matrix of cosines is shown in
Equation (7.7):
(7.7)
where the (i,j)th element of the matrix represents the direction cosine from the local axis
represented by the jth column to the global axis represented by the ith row. Thus, the (2,3)
3 3×
Local
Global
X
Y
Z
x y z
αx αy αz
βx βy βz
γx γy γz
152
component represents the cosine from the local z-axis to the global Y-axis. With this nota-
tion, it can be seen that the first column represents all three direction cosines for the x-axis
of the local coordinate system, which should be the vector path, if the model is setup
according to the ADCATS convention.
Thus, the orientation measure is finished by choosing the appropriate element from
the direction cosine matrix in the “Component” field. To obtain the three cosines for one
axis will require three measures.
153
CHAPTER 8 CONCLUSIONS AND RECOMMENDATIONS
The purpose of this thesis has been to extend the existing analogy between kine-
matic velocity and variation to 3D assemblies that incorporate geometric as well as dimen-
sional variation. This chapter will examine the objectives of this thesis and discuss how
they were met, and discuss what conclusions can be drawn from the results. Recommen-
dations for future research stemming from this thesis will also be presented.
8.1 Contributions and Results
The specific objectives of this research were originally outlined in the introduction
to this thesis and are included again below, with a description of how they were accom-
plished.
1. “Expand upon Faerber’s kinematic analogy to perform tolerance analysis of
assemblies using 3D mechanisms, modified to include dimensional and geo-
metric variation.” The TAKS method developed in 2D by Faerber has been
implemented successfully in 3D assemblies using the Direct Linearized
154
Method for describing the model with kinematic equations in vector form, and
using the Global Coordinate Method to allow simple extraction of the toler-
ance sensitivities for both dimensional and geometric variation.
2. “Create a library of 3D equivalent kinematic joints for use in tolerance analy-
sis.” A library of new Equivalent Variational Joints was developed for com-
monly used 3D kinematic joint types, and was implemented with examples to
explain their use to form Equivalent Variational Mechanisms (EVMs).
3. “Create a library of equivalent joints to allow inclusion of geometric variation
in analysis.” Added to the standard EVJ library was a group of modified joint
types, Geometric Equivalent Variational Joints (GEVJs), that allow the kine-
matic model to include both geometric and dimensional variation in a velocity
analysis.
4. “Demonstrate the kinematic analogy by employing commercial 3D kinematic
software to perform tolerance analysis of both static assemblies and mecha-
nisms.” Examples of both EVMs and GEVMs were modeled using the com-
mercial kinematic modeler ADAMS, demonstrating the viability of the
equivalent mechanism approach. Additionally, the advantages of tolerance
modeling in kinematic software were highlighted by showing the ability of the
software to automatically step through the position of a mechanism, perform-
ing tolerance analyses at each position.
Both the EVMs and the GEVMs give the capability to accurately model variation
in a kinematic assembly. The Global Coordinate Method used to analyze these mecha-
155
nisms was compared to the Derivative Operator Matrix method by Sandor, and was shown
to be much easier to perform and much more efficient. The analysis of the EVMs and
GEVMs using the Global Coordinate Method produced sensitivities which match those of
a tolerance analysis conducted on the standard assembly.
8.2 Conclusions
This research has further developed the velocity/variation analogy by Faerber to
3D models that include geometric variation. The ability to perform tolerance analysis on a
kinematic model has wide applications. As the use of kinematic modeling software is
much more widespread than that of variation analysis software, the ability to use kine-
matic software to perform tolerance analysis of a mechanism can have great impact on the
quality of mechanism design. Both geometric and dimensional variation can be included
in a kinematic model of a mechanism or a static assembly to allow for analysis of variation
during the design of the assembly.
8.3 Recommendations
The EVMs and GEVMs set forth in this thesis were very successful. However,
they are fairly complex, and thus difficult to implement manually in a standard kinematic
modeler. Further work is encouraged to produce software that would automate the imple-
mentation of the equivalent mechanisms in a kinematic software package. Such software
could allow the user to automate the task of creating the multiple links and slider joints
necessary to implement variation in a mechanism. Additionally, it could allow the user to
156
include or remove geometric variation from the model and its joint types by a simple
menu pick. It would be useful to allow the user to access the individual degrees of free-
dom in a joint, and set specific degrees of freedom to be either kinematic or geometric, or
constrained.
The research in this thesis applies to rigid assemblies and mechanisms. It is rec-
ommended that this variation/velocity analogy be expanded to include analysis of flexible
assemblies. Additionally, work should be done to include geometric variation in flexible
assembly analysis.
Finally, one of the delimitations set forth in this research was to look at the first-
order sensitivities only. Previous to this research, work was done in developing a second-
order TAKS analogy linking acceleration analysis with the higher statistical moments,
including skewness and kurtosis. This work involved only 2D assemblies, and did not
encompass geometric variation. Further work should be done to expand this second-order
analogy to 3D, and include geometric variation in the methods used.
157
APPENDIX
158
159
APPENDIX A DERIVATION OF QLM
The derivation of the elementary derivative operator matrices, [Qlm] is given in this
appendix, as taken from page 614 of [Sandor and Erdman 1984].
The partial derivative of the elementary transformation matrix is formed by replac-
ing each entry in the matrix by its partial derivative. For a Type 1 matrix, taking the deriv-
ative with respect to θ gives:
(A.1)
If the elementary derivative operator matrix, , is utilized in forming the partial
derivative as in Equation (3.7), then Equation (A.2) becomes:
(A.2)
∂ Tij1[ ]
∂θ---------------
0 0 0 00 θsin– θcos– 00 θcos θsin– 00 0 0 0
=
Q1θ[ ]
∂ Tij1[ ]
∂θ--------------- Tij
1[ ] Q1θ[ ]
0 0 0 00 θsin– θcos– 00 θcos θsin– 00 0 0 0
= =
160
As was shown in Equation (3.2), the Type 1 elementary transformation matrix is:
Type 1: Translation, with rotation about x-axis (A.3)
Substituting from Equation (A.3),
(A.4)
Equation (A.4) can then be solved for , producing the following:
(A.5)
In a similar manner, the elementary derivative operator matrices with respect to θ
for Type 2 and Type 3 transformations can also be found:
(A.6)
(A.7)
Tij1[ ]
1 0 0 a0 θxcos θxsin– b
0 θxsin θxcos c
0 0 0 1
=
∂ Tij1[ ]
∂θ--------------- Tij
1[ ] Q1θ[ ]
1 0 0 a0 θcos θsin– b0 θsin θcos c0 0 0 1
Q1θ[ ]
0 0 0 00 θsin– θcos– 00 θcos θsin– 00 0 0 0
= = =
Q1θ[ ]
Q1θ[ ]
0 0 0 00 0 1– 00 1 0 00 0 0 0
=
Q2θ[ ]
0 0 1 00 0 0 01– 0 0 0
0 0 0 0
=
Q3θ[ ]
0 1– 0 01 0 0 00 0 0 00 0 0 0
=
161
For the Type 4 transformation, three elementary derivative operator matrices are
shown, with respect to translation in the x, y, and z direction:
(A.8)
(A.9)
(A.10)
Q4x[ ]
0 0 0 10 0 0 00 0 0 00 0 0 0
=
Q4y[ ]
0 0 0 00 0 0 10 0 0 00 0 0 0
=
Q4z[ ]
0 0 0 00 0 0 00 0 0 10 0 0 0
=
162
163
APPENDIX B DERIVATIVE OF THE GENERAL LOOP CLOSURE EQUATION
The derivation of the derivative of the general loop closure equation is shown in this
appendix, as taken from [Sandor and Erdman 1984].
The general loop closure equation is show in Equation (B.1), where the variable in
question qm, with respect to which the partial derivative shall be taken, is contained in the
[L(k-1)k] matrix.
(B.1)
Since the variable in question is contained in only one of the elementary matrices
[Lij], taking the partial derivative only affects that matrix, as shown in Equation (B.2).
(B.2)
L00[ ] L01[ ] L12[ ]… L k 1–( )k qm( )[ ] Lk k 1+( )[ ]… L n 1–( )n[ ] Ln0[ ]=
∂ L00[ ]
∂qm---------------- L01[ ] L12[ ]…
∂ L k 1–( )k qm( )[ ]
∂qm---------------------------------------- Lk k 1+( )[ ]… L n 1–( )n[ ] Ln0[ ]=
164
Thus, as with Equation (3.7), this partial derivative will be replaced by a matrix
product:
(B.3)
This derivative evaluation can be further simplified if the Identity matrix formed
with the concatenation and its inverse is considered, as in Equation (B.4),
(B.4)
which can then be substituted back into Equation (B.3) to obtain the following:
(B.5)
From Equation (B.1), the product of the last two concatenations in Equation (B.5) are
equal to [L00], and thus the equation can simplify to:
(B.6)
where
(B.7)
[Dm] is defined as the derivative operator matrix of the loop equation relative to the mth
variable in the loop. The derivation of the [Dm] matrices is shown in APPENDIX C.
∂ L00[ ]
∂qm---------------- L01[ ] L12[ ]… L k 1–( )k qm( )[ ] Qim[ ] Lk k 1+( )[ ]… L n 1–( )n[ ] Ln0[ ]=
I[ ] L01L12…L k 1–( )k[ ] 1– L01L12…L k 1–( )k[ ]=
∂ L00[ ]
∂qm---------------- L01L12…L k 1–( )k qm( )[ ]Qim L01…L12…L k 1–( )k[ ] 1– L[ 01L12…=
…L k 1–( )k ] Lk k 1+( )…L n 1–( )nLn0[ ]
∂ L00[ ]
∂qm---------------- Dm[ ] L00[ ]=
Dm[ ] L01L12…L k 1–( )k[ ] Qim[ ] L01L12…L k 1–( )k[ ] 1–=
165
APPENDIX C DERIVATION OF DM
The derivation of the loop derivative operator matrices, [Dm] is given in this appendix, as
taken from [Sandor and Erdman 1984].
In Section 3.1.3, it is shown that the partial derivative of the general loop closure
equation (Equation (3.9)) is shown to be of the form demonstrated in Equation (C.1):
(C.1)
where:
(C.2)
There is a unique [Dm] for each rotation and translation in the loop, as it is defined
as the derivative operator matrix of the loop equation relative to the mth variable in the
loop. The concatenation [L01L12...L(k-1)k] shown in Equation (C.2) is the concatenation of
all transformation matrices up until the transformation including the mth variable in the
loop, which is the matrix [L(k-1)k]. To facilitate finding the inverse in Equation (C.2), the
∂ L00[ ]
∂qm---------------- Dm[ ] L00[ ]=
Dm[ ] L01L12…L k 1–( )k[ ] Qim[ ] L01L12…L k 1–( )k[ ] 1–=
166
[L01L12...L(k-1)k] concatenation is shown in Equation (C.3) to retain the general form of a
transformation matrix, where the 3x3 [R] matrix is a concatenation of rotations and the
fourth column with the ∆ terms is a translation concatenation.
(C.3)
The 3x3 rotational [R] portion is orthogonal, thus the inverse of that portion is equal to its
transpose. Thus, by common linear systems theory, the inverse of Equation (C.3) can be
written in closed form, without resorting to matrix inversion:
(C.4)
The inverse is thus found simply by taking the appropriate terms of the [L01L12...L(k-1)k]
concatenation (as shown in Equation (C.3)) and arranging them as shown in Equation
(C.4). Using the equations for [Qlm] defined in APPENDIX A (Equations (A.5) through
(A.10)) and Equations (C.3) and (C.4) to form the concatenation and its inverse, Equation
(C.2) can be derived for the various types of transformations. The general form of these
loop derivative operators for each type of elementary transformation matrix are shown in
Equations (C.5) through (C.8), into which the specific terms of the [L01L12...L(k-1)k] con-
catenation for the kth variable are inserted to form the loop derivative operator matrix for
this variable.
L0k[ ]
r11 r12 r13 ∆x
r21 r22 r23 ∆y
r31 r32 r33 ∆z
0 0 0 1
=
L0k1–[ ]
r11 r21 r31 ∆xr11 ∆yr21 ∆zr31+ +( )–
r12 r22 r32 ∆xr12 ∆yr22 ∆zr32+ +( )–
r13 r23 r33 ∆xr13 ∆yr23 ∆zr33+ +( )–
0 0 0 1
=
167
The derivative operators with respect to θ for the elementary transformation matri-
ces, [T1], [T2], and [T3] are shown in Equation (C.5), where i represents which transforma-
tion matrix is being evaluated [Sandor and Erdman 1984].
(C.5)
For the type 4 translational matrix, the derivative operators are shown below with respect
to the x, y, and z directions [Sandor and Erdman 1984].
Derivative with respect to x direction (C.6)
Derivative with respect to y direction (C.7)
Derivative with respect to z direction (C.8)
Dmi[ ] L0k[ ] Qiθ[ ] L0k
1–[ ]
0 r3i– r2i ∆yr3i ∆zr2i–
r3i 0 r1i– ∆zr1i ∆xr3i–
r– 2i r1i 0 ∆xr2i ∆yr1i–
0 0 0 0 i 1 2 3, ,=
= =
Dm4x[ ] L0k[ ] Q4x[ ] L0k
1–[ ]
0 0 0 r11
0 0 0 r21
0 0 0 r31
0 0 0 0
= =
Dm4y[ ] L0k[ ] Q4y[ ] L0k
1–[ ]
0 0 0 r12
0 0 0 r22
0 0 0 r32
0 0 0 0
= =
Dm4z[ ] L0k[ ] Q4z[ ] L0k
1–[ ]
0 0 0 r13
0 0 0 r23
0 0 0 r33
0 0 0 0
= =
168
169
APPENDIX D DERIVATION OF GLOBAL COORDINATE METHOD
The following is the derivation of the Global Coordinate Method as shown in
[Gao, Chase and Magleby 1998a].
The Global Coordinate Method in 3D represents assemblies by vector loops and
relative rotations between vectors, and can be derived starting from the differentiation of
the 3D vector expression.
(D.1)
Let X, Y, Z and i, j, k be functions of the variable u. Then, differentiating results in
[Chisholm 1978]:
(D.2)
where:
(D.3)
and {ω}={ω1, ω2, ω3}, which are the direction cosine angles of the axis of rotation.
V{ } X i{ } Y j{ } Z k{ }+ +=
d V{ }du
-------------- dXdu------- i{ } dY
du------ j{ } dZ
du------ k{ } ω V×{ }+ + +=
ω V×{ } ω2Z ω3Y–( ) i{ } ω3X ω1Z–( ) j{ } ω1Y ω2X–( ) k{ }+ +=
170
D.1 Derivative with Respect to a Length Variable
Where {V} represents a vector loop, the derivative with respect to a length variable
can be obtained by letting u=Li in Equation (D.3). From Equation (D.2), the last term is
due to rotation of {V}, while the first three terms are due to its change in length. When the
derivative is taken with respect to a length variable, that last term drops out, as there is no
rotation:
(D.4)
The terms do not change for any variation δLi along the vector Li.
Thus the derivatives of the assembly function are constant terms, and are equal to the
direction cosine angles of the vector, measured in the global coordinate system. These
derivatives appear as:
(D.5)
where α, β, γ are the direction cosine angles of vector Li and variation vector δLi in the X,
Y and Z directions, respectively; Hx, Hy, and Hz are the scalar sum of vectors in the global
X, Y and Z directions; and Hθx, Hθy and Hθz are the sum of X, Y and Z rotations.
∂ V{ }∂Li
-------------- δXδLi-------- i{ } δY
δLi-------- j{ } δZ
δLi-------- k{ }+ +
δLi 0→
lim=
δXδLi-------- δY
δLi-------- δZ
δLi--------, ,
Translational Equations
∂Hx∂Li---------- αcos=
∂Hy∂Li---------- βcos=
∂Hz∂Li--------- γcos=
Rotational Equations
∂Hθx∂Li
------------- 0=
∂Hθy∂Li
------------- 0=
∂Hθz∂Li
------------ 0=
171
D.2 Derivative with Respect to a Rotation Variable
To obtain the derivative with respect to a rotation variable from Equation (D.2), let
u=φi, where φi is a rotation about one of the axes of the local joint coordinate system.
Again, several terms from Equation (D.2) drop out. As the first three terms of this equa-
tion are only related to translations, they are all zeros for the derivative with respect to
rotation. Only the cross product term needs to be determined. Equation (D.3) gives the
derivatives of the assembly functions with respect to the angular variable. In that equa-
tion, the rotation is applied at the joint and the variation is similarly measured at the joint,
instead of at the origin of the global coordinate system. If the variations are to be con-
verted to be referenced from the global coordinate system, only the signs need to be
reversed:
(D.6)
From Equation (D.6), it is easy to derive the derivatives for the translational con-
straint equations in terms of the global coordinates X, Y, and Z of joint i and the direction
cosines of the rotation:
(D.7)
∂ V{ }∂φi
------------- ω3Y ω2Z–( ) i{ } ω1Z ω3X–( ) j{ } ω2X ω1Y–( ) k{ }+ +=
Translational Equations
∂Hx∂φi---------- ω3Y ω2Z–≅
∂Hy∂φi---------- ω1Z ω3X–≅
∂Hz∂φi--------- ω2X ω1Y–≅
Rotational Equations
∂Hθx∂φi
------------- ω1=
∂Hθy∂φi
------------- ω2=
∂Hθz∂φi
------------ ω3=
172
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
210
!part create rigid_body mass_properties part_name=$'part_name'2 material_type=steel!constraint create joint translational joint_name="trans_$part_name" &i_part_name=$'part_name'2 j_part_name=$'part_name'1 location=0,0,0 orientation=90,90,0 &relative_to=$'part_name'1!constraint create motion_generator motion_name="slider_$part_name" &joint_name="trans_$part_name" function=$velocity_function:D=0.0*time &type_of_freedom=translational time_derivative=displacement!----------------------------------------------------------
211
REFERENCES
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.
Chase, K.W., Gao, J., Magleby, S.P., Sorensen, C.D., 1996, “Including Geometric FeatureVariations in Tolerance Analysis of Mechanical Assemblies,” IIE Transactions (Instituteof Industrial Engineers), Vol. 28, No. 10, Oct. 1996, pp. 795-807.
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.