Object-Oriented Representation of Electro-Mechanical Assemblies Using UML
NISTIR 7057
1. Object-Oriented Representation of Electro-Mechanical Assemblies Using UML
Sudarsan Rachuri
Young-Hyun Han
Shaw C Feng
Utpal Roy
Fujun Wang
Ram D Sriram
Kevin W Lyons
NIST
National Institute of Standards and Technology
Technology Administration, U.S. Department of Commerce
NISTIR 7057
2. Object-Oriented Representation of Electro-Mechanical Assemblies Using UML
Sudarsan Rachuri
Young-Hyun Han
Shaw C Feng
Utpal Roy
Fujun Wang
Ram D Sriram
Kevin W Lyons
October 03
The seal of the U.S. Department of Commerce is circular. It features an eagle with spread wings perched atop a shield. The shield contains a ship. The words "DEPARTMENT OF COMMERCE" are written in a circle around the top, and "UNITED STATES OF AMERICA" around the bottom, separated by two stars.
U.S. DEPARTMENT OF COMMERCE
Donald L. Evans, Secretary
TECHNOLOGY ADMINISTRATION
Phillip J. Bond, Under Secretary of Commerce for Technology
NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
Arden L. Bement, Jr., Director
3. Table of Contents
| 1 | INTRODUCTION..... | 2 |
| 2 | PREVIOUS WORK..... | 3 |
| 2.1 | ISO STANDARD FOR PRODUCT DATA REPRESENTATION ..... | 3 |
| 2.2 | ISO WORKING GROUP PROPOSAL ..... | 6 |
| 2.3 | RESEARCH AT NIST..... | 8 |
| 2.3.1 | Open Assembly Design Environment Project..... | 9 |
| 2.3.2 | Design for Tolerancing of Electro-mechanical Assemblies Project..... | 10 |
| 2.3.3 | NIST Core Product Model..... | 11 |
| 2.3.4 | Other Systems..... | 12 |
| 3 | UML REPRESENTATION OF THE OAM ASSEMBLY ..... | 14 |
| 3.1 | OVERVIEW ..... | 14 |
| 3.2 | MAIN SCHEMA OF THE ASSEMBLY MODEL..... | 14 |
| 3.3 | ASSEMBLY ASSOCIATION..... | 15 |
| 3.4 | ARTIFACT ASSOCIATION ..... | 16 |
| 3.5 | OAMFEATURE ..... | 18 |
| 3.6 | ASSEMBLY FEATURE..... | 19 |
| 3.7 | ASSEMBLY FEATURE ASSOCIATION REPRESENTATION ..... | 20 |
| 3.8 | PARAMETRIC ASSEMBLY CONSTRAINTS ..... | 21 |
| 3.9 | KINEMATIC PAIR..... | 22 |
| 3.10 | KINEMATIC PATH..... | 24 |
| 3.11 | TOLERANCE ..... | 25 |
| 3.11.1 | Form Tolerance ..... | 28 |
| 3.11.2 | Profile Tolerance ..... | 29 |
| 3.11.3 | Location Tolerance ..... | 29 |
| 3.11.4 | Orientation Tolerance..... | 30 |
| 3.11.5 | Runout Tolerance..... | 31 |
| 3.11.6 | Statistical Tolerance ..... | 31 |
| 4 | EXAMPLE AND INDUSTRIAL CASE STUDY..... | 32 |
| 4.1 | COMPONENTS IN PLANETARY GEAR SYSTEM..... | 33 |
| 4.2 | ASSEMBLY HIERARCHY ..... | 35 |
| 4.3 | ASSEMBLY RELATIONSHIPS ..... | 36 |
| 4.3.1 | Output Housing Assembly..... | 37 |
| 4.3.2 | Ring Gear Assembly..... | 39 |
| 4.3.3 | Planet Carrier Assembly..... | 41 |
| 4.3.4 | Planet Gear-carrier Assembly ..... | 42 |
| 4.3.5 | Planetary gear system Assembly..... | 43 |
| 4.4 | KINEMATIC INFORMATION REPRESENTATION ..... | 53 |
| 4.5 | TOLERANCE CHAINS IN THE PLANETARY GEAR SYSTEM DESIGN ..... | 61 |
| 4.6 | GEOMETRIC TOLERANCES IN THE PLANETARY GEAR SYSTEM DESIGN ..... | 69 |
| 5 | CONCLUSIONS AND FUTURE WORK..... | 79 |
| 6 | ACKNOWLEDGEMENTS ..... | 80 |
| 7 | DISCLAIMER..... | 80 |
| 8 | REFERENCES..... | 80 |
4. List of Figures
| Figure 1: ISO 10303 Part Structure in UML Notation ..... | 5 |
| Figure 2: Assembly Model Proposed by JNC. Source [2]..... | 8 |
| Figure 3: Entities in the Core Product Model (relationships among entities not shown) ..... | 12 |
| Figure 4: Main Schema of Assembly ..... | 15 |
| Figure 5: Assembly Association..... | 16 |
| Figure 6: Artifact Association ..... | 17 |
| Figure 7: OAMFeature..... | 18 |
| Figure 8: Assembly Feature..... | 19 |
| Figure 9: Assembly Feature Association Representation..... | 20 |
| Figure 10: Parametric Assembly Constraints ..... | 22 |
| Figure 11: Kinematic Pair..... | 23 |
| Figure 12: Derived Kinematic Pairs ..... | 23 |
| Figure 13: Revolute Pair Class Diagram..... | 24 |
| Figure 14: Kinematic Path ..... | 25 |
| Figure 15: Tolerance Package ..... | 27 |
| Figure 16: Form Tolerance Package ..... | 28 |
| Figure 17: ProfileTolerance Package ..... | 29 |
| Figure 18: LocationTolerance Package ..... | 30 |
| Figure 19: OrientationTolerance package..... | 30 |
| Figure 20: RunoutTolerance Package..... | 31 |
| Figure 21: StatisticalTolerance Package ..... | 32 |
| Figure 22: Solid Model of a Planetary Gear..... | 33 |
| Figure 23: Exploded View of the Planetary Gear Model..... | 33 |
| Figure 24: Assembly Hierarchy of Planetary Gear System..... | 35 |
| Figure 25: Instance Diagram of Main Assembly Hierarchy..... | 36 |
| Figure 26: Artifact Associations ..... | 37 |
| Figure 27: Output Housing Assembly..... | 38 |
| Figure 28: Instance Diagram of Output Housing Assembly ..... | 39 |
| Figure 29: Ring Gear Assembly ..... | 40 |
| Figure 30: Instance Diagram of Output Housing Assembly ..... | 40 |
| Figure 31: Planet Carrier Assembly..... | 41 |
| Figure 32: Instance Diagram of Planet Carrier Assembly ..... | 42 |
| Figure 33: Planet Gear Carrier Assembly ..... | 42 |
| Figure 34: Instance Diagram of Planet Gear-Carrier Assembly..... | 43 |
| Figure 35: Planetary gear system Assembly ..... | 44 |
| Figure 36: Output Housing Assembly and Planet Gear-Carrier Assembly ..... | 44 |
| Figure 37: Output Housing Assembly and Planet Gear-Carrier Assembly Instance Diagram ..... | 45 |
| Figure 38: Sun gear And Planet Gear-Carrier Assembly ..... | 46 |
| Figure 39: Sun gear and Planet Gear-Carrier Assembly-Instance Diagram ..... | 48 |
| Figure 40: Ring Gear Assembly and Planet Gear-Carrier Assembly ..... | 49 |
| Figure 41: Ring Gear Assembly and Planet Gear-Carrier Assembly-Instance Diagram ..... | 50 |
| Figure 42: Output Housing Assembly, Ring Gear Assembly, and Screws ..... | 50 |
| Figure 43: Output Housing Assembly, Ring Gear Assembly, and Screws-Instance Diagram ..... | 52 |
| Figure 44: Input Housing, Ring Gear Assembly, and Screws ..... | 52 |
| Figure 45: Input Housing, Ring Gear Assembly, and Screws-Instance Diagram ..... | 54 |
| Figure 46: Kinematic Diagram of Planetary Gear System ..... | 55 |
| Figure 47 (a), (b): Coordinate Systems Assigned To Kinematic Pairs ..... | 56 |
| Figure 48: Instance Diagram of Planetary Gear System ..... | 59 |
| Figure 49: Instance Diagram of RevolutePair (RP1: RevolutePair) ..... | 60 |
| Figure 50: Instance Diagram of GearPair (GP1: GearPair) ..... | 60 |
| Figure 51: The assembly relationship between the sun gear and the planetary gear holder ..... | 61 |
| Figure 52: Sun gear Tolerances ..... | 62 |
| Figure 53: Tolerance Instance Diagram ..... | 63 |
| Figure 54 Sun gear Part Instance Diagram ..... | 64 |
| Figure 55: Tolerance Instance Diagram ..... | 65 |
| Figure 56: Planetary Gear Tolerances ..... | 65 |
| Figure 57: Planetary Gear Part Instance Diagram ..... | 66 |
| Figure 58: Ring Gear Tolerances ..... | 67 |
| Figure 59: Tolerance Instance Diagram ..... | 67 |
| Figure 60: Ring gear part instance diagram ..... | 68 |
| Figure 61: Geometric Tolerances In The Planetary Gear System Design ..... | 70 |
| Figure 62: Planetary Gear Holder Tolerances ..... | 71 |
| Figure 63: Tolerance Instance Diagram ..... | 71 |
| Figure 64: Planetary Gear Holder Part Instance Diagram ..... | 72 |
| Figure 65: Input Housing Tolerances ..... | 73 |
| Figure 66: Tolerance Instance Diagram ..... | 73 |
| Figure 67: Input Housing Part Instance Diagram ..... | 74 |
| Figure 68: Output Housing Tolerances ..... | 76 |
| Figure 69: Tolerance Instance Diagram ..... | 77 |
| Figure 70: Output Housing Instance Diagram ..... | 78 |
5. List of Tables
| Table 1: Part List of the Planetary Gear System..... | 34 |
| Table 2: Assembly relationships of the output end of the planetary gear system..... | 39 |
| Table 3: Assembly Relationships of Ring Gear Assembly..... | 40 |
| Table 4: Assembly Relationships of Planet Carrier Assembly..... | 41 |
| Table 5: Assembly Relationships of Planet Gear-Carrier Assembly..... | 43 |
| Table 6: Assembly Relationships Between Output Housing Assembly and Planet Gear-Carrier Assembly..... | 45 |
| Table 7: Assembly Relationships Between Sungear and Planet Gear-Carrier Assembly | 47 |
| Table 8: Assembly Relationships Between Ring Gear Assembly and Planet Gear-Carrier Assembly..... | 49 |
| Table 9: Assembly Relationships Between Output Housing Assembly, Ring Gear Assembly, and Screws..... | 51 |
| Table 10: Assembly Relationships Between Input Housing, Ring Gear Assembly, and Screws..... | 53 |
| Table 11: Kinematic Pairs and Associated Parts (Links) of Planet Gear System..... | 55 |
| Table 12: Frames of Each Kinematic Pair..... | 57 |
| Table 13: Frames Associated with Each Link (Part)..... | 58 |
| Table 14: Tolerance Table For The Sungear..... | 65 |
| Table 15: Tolerance Table For A Planetary Gear..... | 66 |
| Table 16: Tolerance table for the ring gear..... | 68 |
| Table 17: Tolerance Table For The Planetary Gear Holder..... | 72 |
| Table 18: Tolerance Table For The Input Housing..... | 75 |
| Table 19: Tolerance Table For The Output Housing..... | 79 |
6. List of Acronyms
| ASME | American Society of Mechanical Engineers |
| BOM | Bill of Materials |
| CAD | Computer Aided Design |
| CAM | Computer Aided Manufacturing |
| CPM | Core Product Model |
| DAG | Directed Acyclic Graph |
| DFT | Design For Tolerancing |
| ESPRIT | European Strategic Program on Research in Information Technology |
| FAB | Function Assembly Behavior |
| FEM | Finite Element Method |
| ISO | International Organization for Standardization |
| MOKA | Methodology and tools Oriented to Knowledge based engineering Applications |
| NIST | National Institute of Standards and Technology |
| OAM | Open Assembly Model |
| OpenADE | Open Assembly Design Environment |
| SIMA | System Integration for Manufacturing Applications |
| STEP | STandards for the Exchange of Product model data |
| UML | Unified Modeling Language |
| VADE | Virtual Assembly Design Environment |
7. Abstract
The important issue of mechanical assemblies has been a subject of intense research over the past several years. Most electromechanical products are assemblies of several components, for various technical as well as economic reasons. This report provides an object-oriented definition of an assembly model called the Open Assembly Model (OAM) and defines an extension to the NIST Core Product Model (NIST-CPM). The assembly model represent the function, form, and behavior of the assembly and defines both a system level conceptual model and associated hierarchical relationships. The model provides a way for tolerance representation and propagation, kinematics representation, and engineering analysis at the system level. The assembly model is open so as to enable plug-and-play with various applications, such as analysis (FEM, tolerance, assembly), process planning, and virtual assembly (using VR techniques). With the advent of the Internet more and more products are designed and manufactured globally in a distributed and collaborative environment. The class structure defined in OAM can be used by designers to collaborate in such an environment.
The proposed model includes both assembly as a concept and assembly as a data structure. For the latter it uses STEP. The model captures the assembly evolution from the conceptual to the detailed design stages.
It is expected that the proposed OAM will enhance the assembly information content in the STEP standard.. A case study example is discussed to explain the Usecase analysis of the assembly model.
8. 1 Introduction
The design of complex engineering systems is increasingly becoming a collaborative task among designers or design teams that are physically, geographically, and temporally distributed. The complexity of modern products is such that a single designer or design team can no longer manage the complete product development effort. Hence, companies are increasingly staffing only their core competencies in-house and are depending on other firms to provide the complementary design knowledge and design effort needed for a complete product. Designers are no longer merely exchanging geometry data, but also more general knowledge about design and the product development process, including specifications, design rules, constraints, design rationale, etc. Furthermore, this exchange of knowledge more and more often crosses corporate boundaries. As design become increasingly knowledge-intensive and collaborative, the need for computational frameworks to support product engineering in industry becomes more critical. Although CAD vendors have developed many different ways to model parts and represent design information as constraints between parts, it is not clear that all of these representations are capturing the same level of information. The issue of exchanging part and assembly information between heterogeneous modeling systems is critical for unrestricted exchange of product data. However, little has been done in terms of developing standard representations that specify design information and product knowledge.
An assembly information model contains information regarding parts and their assembly relationships. Hence, we wish to emphasize the nature and information requirements for these part features and for these assembly relationships. Furthermore, we need to address the evolution of their corresponding information models during the conceptual and detailed design stages. In this report, we propose an integrated information model for assembly representation that is important for the exchange of information between modeling, analysis and planning systems.
The report is organized as follows. In Section 2, we discuss the existing ISO Standard for product data representation and exchange, ISO TC 184/SC4 [1], the Japanese National Committee (JNC) proposal for a STEP assembly model of products [2] and previous NIST efforts and current works towards assembly representations [3], [4], [5-7]. In Section 3, we present the object-oriented representation of electro-mechanical assemblies using UML [8]. We use bold face notation for classes. The various class definitions including, assembly, feature, kinematics, and tolerance are discussed. In Section 4, we present a Usecase analysis of the assembly model with a planetary gear system and explain how to use OAM in kinematic and tolerance representations. Object diagrams explaining the relationships, as well as the geometric and related data are also provided. Finally, conclusions and recommendations for further research work are presented in Section 5.
9. 2 Previous Work
In this section we discuss the various research efforts toward developing assembly models, product representations, and standards. In Section 2.1, we describe the assembly representation in the ISO 10303 [9] standards. In Section 2.2, we discuss the recent proposal by an ISO working group towards enhancing the assembly representation in ISO 10303. In Section 2.3, we describe the relevant research projects at NIST, including Design for Tolerancing and the Core Product Model. We also present a brief discussion of several other assembly and product representation models developed by other researchers.
9.1. 2.1 ISO Standard for Product Data Representation
ISO 10303-Part 44 [10] provides some limited assembly design representations that capture assembly structure and kinematic joint information during the design process. The assembly model establishes a neutral representation of assemblies of products, which are composed of sets of components. In this model, complete products are called “assemblies,” and the components of the lowest levels in the assemblies are called “parts.” The model focuses on the hierarchy of the product, and on the position and orientation between parts. The application fields of interest to the assembly model are the kinematic analysis of assemblies, the animation of assemblies for digital-mockup technologies, assembly/disassembly process planning from the viewpoint of CAD and CAM systems, and tolerance analysis and synthesis. The product (assembly) data representation is divided into three major schemas:
The Product structure schema defines a product in terms of a nested decomposition into its constituents. It also defines mechanisms for expressing the composition relationship. Product structures are modeled by directed acyclic graphs (DAG). Nodes represent product definitions (PD) and arcs represent relationships (PDRs). Refer to
Figure 1. Product definition usage (PDU) refers to part/whole or composed-of relationships. It is a subtype of PDR and defines two subtypes:
- – Assembly component usage (ACU) which establishes composed-of relationships between PDs.
- – Make from usage option – (MFUO), which represents the fact that any actual unit of one design can be manufactured by using or modifying an actual unit of another design.
The entity ACU defines the following subtypes:
- – quantified_ACU (QACU), which defines the relationship between component and assembly .
- – next_CUOccurrence (NCUO), which defines the immediate parent/child relationship.
- – specified_higher_usage_occurrence (SHUO), which defines the specified parent/child relationship.
- – promissory_usage_occurrence (PUO), which represents the relationship between a constituent and an ancestor assembly within an overall product structure without any specification of the intermediate assemblies being represented. The word “occurrence” is used in a sense to mean appearance/existence. The red lines in Figure 1 refer to the proposed ISO Part 109.
This product structure schema supports at least two forms of product structure:
- 1. Bill-of-Materials (BOM), and
- 2. Parts List Structure
The BOM data structure is used to represent the assembly aspects of a product structure. It includes only one instance of a single product definition for each kind of product that participates in the assembly structure. A part list structure is a specific form of a bill-of-material that can be represented by a tree (guided by the BOM's DAG structure). A bill-of-material structure may require a more general DAG. The parts list data structure individualizes the relationship between lower-level parts of the product structure with higher-level assemblies in which they are contained.
The diagram illustrates the ISO 10303 Part Structure in UML notation. It shows a hierarchy of entities and their relationships. Key entities include:
- ProductDefinitionContext (containing ApplicationContextPackage and ProductDefinition)
- ProductDefinition (related to ProductDefinitionContext via RelatingProductDefinition)
- ProductDefinitionRelationship (related to ProductDefinition via RelatingProductDefinition)
- ProductDefinitionUsage (related to ProductDefinitionRelationship)
- ComponentAssociation (related to ProductDefinitionRelationship)
- ComponentAssociationRelationship (related to ComponentAssociation)
- ShapeAspectRelationship (related to ProductDefinitionRelationship)
- AssemblyFeatureAssociation (related to ProductDefinitionRelationship)
- CharacterizedObject (related to ProductDefinitionUsage)
- ProductPropertyDefinition (related to ProductDefinitionUsage)
- ShapeAspect (related to ProductPropertyDefinition)
- FeatureDefinition (related to ShapeAspect)
- AssemblyFeature (related to FeatureDefinition)
- ACU (related to ProductDefinitionUsage)
- QACU (related to ACU)
- NAUO (related to ACU)
- SHUO (related to NAUO)
- PUO (related to NAUO)
- MFUO (related to ACU)
- RelativeMotion (related to ComponentAssociation)
- Connection (related to ComponentAssociation)
- RPO (related to ComponentAssociation)
- Movable (related to Connection)
- Intermittent (related to Connection)
- Fixed (related to Connection)
- PiecePartDefinition (related to ProductDefinitionRelationship)
- AssemblyDefinition (related to ProductDefinitionRelationship)
- ComponentAssociation (related to ProductDefinitionRelationship)
- ComponentShapeAssociation (related to ProductDefinitionRelationship)
- MainComponentUsage (related to ACU)
- AuxiliaryComponentUsage (related to ACU)
Legend: AF(A)P - AssemblyFeature(Association)Property
Figure 1: ISO 10303 Part Structure in UML Notation
Product concept schema describes a product as a set of specifications derived from customer needs analysis. It is limited to specification description only; it does not represent the product evolution process from the conceptual to the detailed design phase.
Configuration management schema manages the structure of the configuration of assemblies and components.
In summary, a primary feature of the entities defined in this part of ISO 10303 is that it provides the data modeler with various types of product structure data structures (e.g., BOM, parts list, etc.,) using the primitive entities. This facilitates meaningful information exchange between users without resorting to costly data model mapping tasks. However, ISO 10303 does not adequately address the following:
- 1) The relationship among different product definitions for the same product. For example, the relationship of a product definition for a component in a preliminary design to a corresponding product definition for the same component in a detailed design is not captured.
- 2) The change process for a product including the reasons for the change.
- 3) The decisions made and their rationale, throughout the entire product life cycle.
- 4) The physical connections among components of a product.
- 5) The properties that a product constituent may have.
- 6) The information for as-built manufacturing, manufacturing planning, and logistical structure and configurations.
- 7) Multiple versions of a single product that are not form (the shape of the product), fit (the fit is the way the product interfaces with other products), and function (the purpose that the product serves) equivalent.
9.2. 2.2 ISO Working Group Proposal
The ISO working group (TC 184/SC4/WG12) (JNC proposal [2]) has proposed1 several enhancements to STEP's assembly representation. In the WG12 proposal, the detailed geometric information not only for hierarchical relationships but for peer to peer relationships among component parts via an assembly feature is introduced. Geometric constraints among component parts at the detailed geometric element level are also enabled. The WG12 proposal introduces more information on component association and includes detailed information about appropriate assembly features involved in component association.2
Following ISO definitions, an assembly has been defined as a set of components and is represented in a similar hierarchical fashion. The assembly model includes:
- 1) Information about individual parts, which are piece parts defined by users and used in developing the assembly tree as required.
- 2) Information about standard parts, which refers to off-the-shelf standard parts such as nuts and bolts, keys, electric motors, etc. Standard parts can be of two
1 The scope of this proposal has been modified to address the kinematic and geometric constraints for assembly models and the current status of this proposal is explained in [20].
2 Assembly feature is defined as an element to specify the relationships between a pair of assembled components. For example, a hole and a cylinder are typical assembly features, which represent the physical connections between a bearing part and a shaft part.
- types: (i) standard parts as discussed in other ISO standard parts catalogues (Reference: ISO TC 184/SC4/WG2), and (ii) those defined by the users. Note that the parts are all “solid” parts and non-solid parts are not considered.
- 3) Product structure configuration, which represents the hierarchical relationship between the components (assemblies, sub-assemblies and piece parts). Nominal and tolerance values of position and orientation of every component (a part, subassembly, or an assembly) are explicitly defined in its “parent” component (subassembly or assembly).
- 4) Component association, which provides detailed information for component association (i) between every pair of physically connected components; (ii) between every pair of components that is not physically connected; and (iii) detailed information about assembly features that are needed to define technological information of component association.
- a. For a pair of physically connected components: depending on the type of the associations, it can be of the three subtypes:
- i. Fixed Connection, such as a rigid joint. The pair is physically connected and fixed.
- ii. Movable Connection, which describes the association when the pair is physically connected and movable. Shaft-bearing joints, slider-guideway joints, gear joints, etc. are examples. Kinematic joint definition is applicable for its representation. It describes the possible relative motions between a pair of components and the properties of the joints, which constrains the components.
- iii. Intermittent Connection, which describes the association when the pair is physically connected with each other with only intermittent contacts. Examples are limit switches, cam-follower, etc.
- b. For a pair of components that are not physically connected:
- i. Relative motion describes the constraints on the relative motion between a pair of components.
- ii. Relative position and orientation describes the constraints on the relative position and orientation of a component against another component.
- iii. Tolerance of the relative motions, positions, and orientations represents associated tolerances for relative motions, positions, and orientations.
- a. For a pair of physically connected components: depending on the type of the associations, it can be of the three subtypes:
- 5) Assembly Features, which represent a region of a component, that is of interest in the assembly context. Assembly features may have (i) a shape-aspect (super class) as defined in 10303, and (ii) an assembly-feature-association. The assembly
feature associations and the assembly features describe the details of the component's associations.
The basic structure of the working group's proposed assembly model is shown in Figure 2. In the figure, boxes describe the components (assemblies, sub-assemblies, and parts), open circles the hierarchical relationships among the component definitions, and filled circles the associations between components. Note in the figure that the component association between sub-assembly3 and sub-assembly4 could be derived from the specified component association between part4 and part1, and hence may be redundant.
The diagram illustrates the Assembly Model Proposed by JNC. It shows a hierarchical structure of components (assemblies, sub-assemblies, and parts) and their associations. The components are represented by boxes, and the relationships are represented by circles. Open circles indicate hierarchical relationships (Assembly_component_usage), and filled circles indicate associations between components (Components_association).
Legend:
- ○ Assembly_component_usage
- ● Components_association
Structure:
- assembly (box) is the root component.
- It has three children: sub-assembly1 (box), sub-assembly2 (box), and part1 (box).
- sub-assembly1 has two children: part2 (box) and sub-assembly3 (box).
- sub-assembly2 has three children: sub-assembly4 (box), sub-assembly5 (box), and part1 (box).
- sub-assembly3 has two children: part3 (box) and part4 (box).
- sub-assembly4 has two children: part1 (box) and part1 (box).
- sub-assembly5 has two children: part1 (box) and part1 (box).
- Assembly_feature_association (box) is a central node.
- It has two children: Assembly_feature1 (box) and Assembly_feature2 (box).
- It is associated with part4 (box) via a filled circle.
Associations (filled circles):
- sub-assembly2 is associated with part1 (child).
- sub-assembly3 is associated with sub-assembly4.
- sub-assembly4 is associated with sub-assembly5.
- part2 is associated with sub-assembly3.
- part3 is associated with part4.
- part4 is associated with part1 (child of sub-assembly4).
- part1 (child of sub-assembly4) is associated with part1 (child of sub-assembly5).
- part1 (child of sub-assembly5) is associated with part1 (child of sub-assembly5).
Figure 2: Assembly Model Proposed by JNC. Source [2].
It should be noted that the JNC proposal does not cover configuration management of the assemblies and components. Although the proposal outlines the possible applications of the proposed assembly representation in four fields - kinematic analysis of assemblies, animation of assemblies, assembly/disassembly process planning, and tolerance analysis and synthesis - actual application methodologies are not identified or reported.
9.3. 2.3 Research at NIST
NIST has been actively involved in identifying and developing representational methodologies for the next generation of assembly related standards. The Open
Assembly Design Environment (OpenADE) [7] project seeks ways to assist designers with assembly considerations throughout the different phases of the complete product realization process, from conception to assembly analysis and final process plan development. Readers are encouraged to refer to reference [11] for a brief summary of several ongoing research activities at NIST regarding assembly related activities. In the following sections, we discuss several projects relevant to the proposed OAM.
9.3.1. 2.3.1 Open Assembly Design Environment Project
The OpenADE project is an initiative at NIST to provide an integrated and augmented CAD environment for assembly design. The goals of the project are to: (1) identify representations and issues for the next generation of assembly-related standards; and (2) assist designers with assembly considerations throughout the phases of a product's design - from conception to the final process plan development. OpenADE's open architecture provides standard interfaces that allow it to link to commercial and non-commercial design tools, parametric design systems, virtual reality environments, assembly analysis tools, and assembly process planners. The OpenADE project has explored issues relating to knowledge representation, virtual reality, assembly-level tolerances, constraint-based specifications, and assembly process management. We briefly discuss the representational issues addressed in OpenADE.
Rajan et. al. [5; 6] have primarily emphasized the descriptions of mating constraints between parts (e.g., the description of relative motions between components, fit requirements, and joint strength requirements) in addressing assembly representation issues. In additions to the current ISO and JNC proposed representations, they have explicitly identified and captured the joint kinematics information for assembly modeling during the various stages of design. They propose that some of these kinematics constraints be generated during the conceptual design stage. In addition, other information can be generated by propagating/verifying this information during the preliminary and detailed design stages.
During the conceptual design stage, the designer may have little information to fully characterize a joint. Rajan et. al. [5; 6], suggest for rigid joints to describe the type of joint (welded, brazed, soldered, bolted, integral fastening, etc.), and some process parameters to capture pre- and post- process material characteristics (like strength, hardness, ductibility, surface properties, post-heat treatment and machining requirements, acceptable variations, etc.). For kinematic joints, one can specify the desired range of motion and motion profiles, joint location and orientation, and essential surface mating constraints in order to accomplish the desired kinematic joints (revolute, planar, cylindrical, prismatic, screw, spherical, surface, curve, gear, and rack and pinion). As the assembly process (i.e., the product development process) evolves, some more important process constraints are generally specified. The assembly representation model could be captured and used during the planning process. The mating constraints, joint attributes, and a relational structure (specifying positions and orientations of components in the assembly) explicitly embedded within the hierarchical assembly structure provide comprehensive assembly information and are useful for capturing information generated during the detailed design stage.
The Virtual Assembly Design Environment (VADE) [12] acts as an immersive CAD agent for OpenADE. Washington State University developed VADE under a grant from NIST to investigate the use of virtual reality for assembly design. VADE combines advanced CAD/CAM software with the latest in virtual reality technology to produce an environment that allows engineers to virtually assemble a series of components. This produces an augmented CAD system that provides the user with a fully immersive 3D environment for assembly design and analysis.
9.3.2. 2.3.2 Design for Tolerancing of Electro-mechanical Assemblies Project
Although Rajan et al stress that the assembly information model should be constructed in such a way that it would be useful in all phases of design (conceptual, preliminary and detailed), their proposed model primarily captures mating constraint information generated during the detailed design stage. As discussed before, important mating constraints, joint attributes, and a relational structure are explicitly embedded within the hierarchical assembly structure. The joint kinematic information and component degrees of freedom are readily available from the assembly model.
The design for tolerancing of electro-mechanical assemblies project group [3; 13] advocates a more general and unified assembly representation scheme for the proactive uses in conceptual and detailed design phases. This scheme includes function, behavior and tolerance information models, along with other assembly information, i.e., geometric, topological and mating constraints, in the assembly data model.
The primary goal of this project was to integrate comprehensive function, assembly (artifact) and behavior models. The Function-Assembly-Behavior (FAB) data model was developed to capture product development-related issues from the conceptual design stage to the detailed assembly building process. The proposed aggregate structure of function, behavior and assembly in this data model can support conceptual design as well as design for manufacturing and assembly, starting from an early design stage. The FAB model and the Design for Tolerancing (DFT) framework use both top-down and bottom-up approaches to product design. The FAB model is defined in such a way that the various definitions and concepts concerning tolerance already in use, as well as currently evolving standards, can be easily incorporated into the model. The FAB model can assist the standards community in specifying the representation for assembly models, tolerance, and assembly level tolerancing. The class structure (Function, Behavior, Artifact) defined in FAB helps in unifying the various current and evolving definitions, concepts, and standards.
9.3.3. 2.3.3 NIST Core Product Model
An integrated NIST Core Product Model (NIST-CPM) [4] has been developed to unify and integrate product or assembly information. The NIST-CPM provides a base-level product model that is: not tied to any vendor software; open; non-proprietary; expandable; independent of any one product development process; capable of capturing the engineering context that is most commonly shared in product development activities. The core model focuses on artifact representation including function, form, behavior, and material, physical, and functional decompositions, and relationships among these concepts. The model is heavily influenced by the Entity-Relationship data model; accordingly, it consists of two sets of classes, called object and relationship, equivalent to the UML [8] class and association class, respectively.
Figure 3 illustrates the principal entities of the NIST-CPM. An Artifact refers to a product or one of its components. It is the aggregation of Function, Form and Behavior. Form is the aggregation of Geometry and Material. In addition, an Artifact has attributes of Specification and Feature. Specification refers to the general information that contains all the design requirements pertaining to the artifact's function or form. Feature represents any information in the Artifact that is an aggregation of Function and Form; purely geometric constructs are not treated as features in the NIST-CPM. For more information on the NIST-CPM, including the relationships (associations) defined between the classes shown, please refer to [4]. The proposed assembly model in this report is based on the NIST-CPM.
9.3.4. 2.3.4 Other Systems
In the following subsections, we discuss several related assembly models. First, we discuss the model proposed by the MOKA [14] (Methodology and tools Oriented to Knowledge-based engineering Applications) consortium. This is followed by a brief review of other work conducted at various academic institutions.
classDiagram
class Specification
class Artifact
class Feature
class Behavior
class Function
class Form
class Geometry
class Material
Specification --> Artifact
Artifact --> Feature
Artifact --> Behavior
Artifact --> Function
Artifact --> Form
Feature --> Behavior
Feature --> Function
Feature --> Form
Behavior --> Function
Function --> Form
Form --> Geometry
Form --> MaterialFigure 3: Entities in the Core Product Model (relationships among entities not shown)
9.3.4.1. MOKA Consortium
The ESPRIT funded project known as MOKA [14] provides two models: (1) an informal model based on a structured, natural language representation of engineering knowledge using some pre-defined forms; and (2) a formal model using UML based graphical, object-oriented representation of engineering knowledge for artifact descriptions. The MOKA methodology intends to synchronize an artifact's lifecycle development process that includes roles, activities, artifact structure, etc., with the whole knowledge-based engineering (KBE) application development lifecycle. Next it covers the entire gamut of engineering knowledge related to an artifact. Knowledge is grouped into two distinct categories: 1) product knowledge which is the knowledge about the physical entity being designed; and 2) process knowledge which is the knowledge about the steps taken to design the product.
MOKA uses a term “Product Model” to describe a model of the entire product family (e.g., Airbus’ aircraft product family could be represented as a MOKA Product Model). The MOKA Product Model supports five distinct views of a product: structure, function, behavior, technology, and representation. These views represent different perspectives of the underlying product model and are as described below.
- • Structure defines the hierarchical decomposition of a product’s structure into parts, assemblies, and features. It can be either a physical, logical or conceptual structure at any stage of the design.
- • Function defines the functional decomposition of the product, and principles of solutions.
- • Behavior includes a state model of the various states of a product, and the transition from one state to another.
- • Technology includes materials and manufacturing process information.
- • Representation includes any other user defined technological information including some other geometrical information.
In short, the MOKA product representation model is similar in some aspects to the FAB and NIST-CPM models and it includes a considerable amount of assembly information. However, the MOKA system does not represent kinematics, tolerance, and assembly and parametric constraints. The constraints included in MOKA cannot handle mating, assembly, and parametric constraints. The proposed OAM model can handle these types of constraints, in addition to the constraints described in MOKA. These are essential for assembly, kinematics, and tolerance representations. Representations of the physical structure are supported within MOKA by the Representation View, which includes Geometry and Finite Element Method (FEM). A separate class structure for FEM may be useful in design-analysis integration. However, it is presently being used in MOKA more as a place holder.
There are some academic systems that offer limited facilities for representing assembly information. One such system developed by Whitney and Mantripragada [15] represents the high-level assembly information as “key characteristics”. The chains of dimensional relationships and constraints in a product are handled by the so-called Datum Flow Chain concept. Another system called Genesis [16] focuses on representing complex assemblies. The system of van der Net [17] focuses on designing assemblies taking into account requirements from the assembly process planning phase; the goal is to prevent design errors, reduce lead times, and be able to automate process planning. These requirements are captured in the assembly by specifying geometric, assembly and tolerance-specific relationships on and between the assembled parts.
10. 3 UML Representation of the OAM Assembly
We discuss in detail the class definitions and structure of the proposed OAM assembly model. We use UML notation and diagrams to explain the assembly model.
10.1. 3.1 Overview
This section introduces the OAM assembly model schema, represented as a UML class diagram. The assembly model's class diagram is made up of multiple sub-diagrams, each of which is represented by a Package. The concept of a UML Package is that of a collection of multiple classes [8] that can be used as a namespace. The following section defines the main schema of the assembly model which describes the relationships between Assembly, Artifact, AssemblyAssociation, Part, and OAMFeature. In the succeeding sections we describe the class diagrams of AssemblyAssociation, ArtifactAssociation, OAMFeature, AssemblyFeature, Tolerance, and AssemblyFeatureAssociationRepresentation. The lower level class hierarchies of these classes are also explained. The instance diagrams are provided in Section 4. These diagrams will further help illustrate the concepts presented here.
10.2. 3.2 Main Schema of the Assembly model
The main assembly model schema is shown in Figure 4. The model incorporates information about assembly relationship and component composition (part-of). The assembly relationship is represented by a class named AssemblyAssociation. This class is described in detail in the package AssemblyAssociation, shown at the bottom of the diagram and described in Section 3.3
The component composition of the assembly is modeled using the part-of relationship. An Assembly is decomposed into sub-assemblies and parts. A Part is the lowest level component which cannot be further decomposed. The diagram shows that an assembly or a subassembly is made up of at least two parts.
Each assembly component, whether subassembly or part, is made up of one or more features, represented in the model by the OAMFeature class, where OAM refers to Open Assembly Model. The details of the OAMFeature definition are described in the package OAMFeature. The Assembly and Part classes are sub-classes of the NIST-CPM Artifact class, inheriting its definition. OAMFeature is a sub-class of the NIST-CPM Feature class.
classDiagram
class Artifact["Artifact (from CoreModel)"]
class Assembly
class Part
class AssemblyAssociation["AssemblyAssociation (from AssemblyAssociation)"]
class OAMFeature["OAMFeature (from OAMFeature)"]
Artifact <|-- Assembly
Artifact <|-- Part
Assembly "0..n" --> "1" Assembly : +sub_assemblies
Assembly "1" --> "1" Assembly : +sub_assembly_of
Assembly "1" --> "2..n" Part : +part_of
Part "1" --> "2..n" Part : +parts
Assembly "1" --> "1" Assembly : +defined_assembly
Assembly "1" --> "1..n" OAMFeature : +feature_of
AssemblyAssociation "1" --> "1..n" Assembly : +assembly_relationship
OAMFeature "1..n" --> "1..n" OAMFeature : +features
OAMFeature "1..n" --> "1..n" OAMFeature : +features
Figure 4: Main Schema of Assembly
10.3. 3.3 Assembly Association
The package AssemblyAssociation, shown in Figure 5, represents the component assembly relationship of an assembly. It is the aggregation of one or more Artifact Associations. The class ArtifactAssociation is defined in the package ArtifactAssociation.
classDiagram
class AssemblyAssociation {
}
class ArtifactAssociation {
}
AssemblyAssociation "1..n" -- "*" ArtifactAssociation : +artifact_association
ArtifactAssociation --> ArtifactAssociation
Figure 5: Assembly Association
10.4. 3.4 Artifact Association
Figure 6 shows the package ArtifactAssociation which describes the assembly relationships between artifacts. An ArtifactAssociation class represents the assembly relationship between one or more artifacts. For most cases, the relationship involves two or more artifacts. In some cases, however, it may involve only one artifact to represent a special situation. Such a case may occur when an artifact is to be fixed in space for anchoring the entire assembly with respect to the ground. It can also occur when kinematic information between an artifact at an input point and the ground is to be captured. Such cases can be regarded as relationships between the ground and an artifact. Hence, we allow the artifact association with one artifact associated in these special cases. In Figure 6, this situation is denoted by the multiplicity at the Artifact end of the association with ArtifactAssociation. The detailed information of ArtifactAssociation is defined using assembly features, assembly feature associations, and assembly feature association representations, which will be described later in Section 3.6.
The ArtifactAssociation is further specialized into the following classes: PositionOrientation, RelativeMotion and Connection.
PositionOrientation represents the relative positions and orientation between two or more artifacts which are not physically connected to each other. This entity is used to describe constraints on the relative position and orientation of two or more artifacts.
RelativeMotion represents the relative motions between two or more artifacts which are not physically connected to each other directly. This entity is used to describe the constraints on the relative motions between two or more artifacts. For instance, the relative motion of a robot hand against the base of a robot can be represented by this class. In this case, the robot hand is not connected directly to the base.
classDiagram
class ArtifactAssociation
class Artifact["Artifact (from CoreModel)"]
class PositionOrientation
class RelativeMotion
class Connection
class FixedConnection
class MovableConnection
class IntermittentConnection
ArtifactAssociation "1..*" -- "0..*" Artifact
ArtifactAssociation <|-- PositionOrientation
ArtifactAssociation <|-- RelativeMotion
ArtifactAssociation <|-- Connection
Connection <|-- FixedConnection
Connection <|-- MovableConnection
Connection <|-- IntermittentConnection
The diagram illustrates the structure of Artifact Association. At the top, the ArtifactAssociation class is associated with the Artifact class (labeled as 'from CoreModel'). The association has a multiplicity of 1..* at the ArtifactAssociation end and 0..* at the Artifact end. Below ArtifactAssociation, three classes are shown: PositionOrientation, RelativeMotion, and Connection. These three classes inherit from ArtifactAssociation, as indicated by the hollow triangle arrows pointing from each to ArtifactAssociation. Further down, three more classes are shown: FixedConnection, MovableConnection, and IntermittentConnection. These three classes inherit from Connection, as indicated by the hollow triangle arrows pointing from each to Connection.
Figure 6: Artifact Association
Connection represents the connection between artifacts which are physically connected with each other. As Figure 6 shows, the Connection is further specialized as FixedConnection, MovableConnection or IntermittentConnection.
FixedConnection represents a connection in which the participating artifacts are physically connected and fixed. It is used to describe the type and/or properties of fixed joints. For example, attachment (fastening) with screw, pin, or rivet, bonding such as welding, adhering, brazing, or soldering, and fitting (clearance fit, tight or interference fit) are examples of fixed connections.
MovableConnection represents the connection in which the participating artifacts are physically connected and movable with respect to one another. It is used to describe the type and/or properties of kinematic joints. Typical examples of movable connections are kinematic pairs such as shaft-bearing joints or gear joints.
IntermittentConnection represents the connection in which the participating artifacts are physically connected only intermittently. It is used to describe the type and/or properties of intermittently-connected components. For example, limit switches, contacts using bimetal, or pressure valves with springs are examples of intermittent connection.
10.5. 3.5 OAMFeature
The class OAMFeature is a sub-class of the Feature class defined in NIST-CPM. It inherits the function and behavior information from Feature. OAMFeature has tolerance information which is represented by the class Tolerance. OAMFeature has two sub-classes: AssemblyFeature and CompositeFeature.
classDiagram
class Feature {
(from CoreModel)
}
class OAMFeature {
}
class AssemblyFeature {
(from AssemblyFeature)
}
class CompositeFeature {
}
class Tolerance {
(from Tolerance)
}
Feature <|-- OAMFeature
OAMFeature <|-- AssemblyFeature
OAMFeature <|-- CompositeFeature
OAMFeature o--> OAMFeature
OAMFeature --> Tolerance
CompositeFeature o--> Tolerance
The diagram illustrates the class structure for OAMFeature. At the top is the Feature class, noted as being from CoreModel. Below it is OAMFeature, which inherits from Feature (indicated by a hollow triangle arrow). OAMFeature has a self-referencing association (a line with an open diamond at one end connecting to the class box) and an association to the Tolerance class (a line with an open arrowhead). Below OAMFeature are two subclasses: AssemblyFeature and CompositeFeature, both inheriting from OAMFeature. AssemblyFeature is noted as being from AssemblyFeature. CompositeFeature has an association to the Tolerance class, indicated by a line with an open diamond at the end connecting to the class box. At the bottom, there are two separate boxes labeled AssemblyFeature and Tolerance, which appear to be base or related classes without further associations shown.
Figure 7: OAMFeature
CompositeFeature represents a composite feature that can be decomposed into multiple simple features.
AssemblyFeature specifies the relationships between a pair of assembled components (e.g., geometrical entities such as faces, edges or vertices of any parts of entities). It is a portion of a constituent and is used for defining the connectivity relationship between constituents of an assembly model.
10.6. 3.6 Assembly Feature
Figure 8 shows the relationship between classes that are related to assembly features. The class AssemblyFeatureAssociation refers to the assembly relationship between one or more assembly features. This assembly relationship is represented by the class AssemblyFeatureAssociationRepresentation. The diagram also shows that the ArtifactAssociation is the aggregation of AssemblyFeatureAssociation. Detailed description of these classes are given below.
classDiagram
class AssemblyFeature
class ArtifactAssociation["ArtifactAssociation (from ArtifactAssociation)"]
class AssemblyFeatureAssociation
class AssemblyFeatureAssociationRepresentation["AssemblyFeatureAssociationRepresentation (from RelationshipRepresentation)"]
class Tolerance["Tolerance (from Tolerance)"]
class RelationshipRepresentation
AssemblyFeature "1..*" -- "1..*" AssemblyFeatureAssociation
ArtifactAssociation -- AssemblyFeatureAssociation
AssemblyFeatureAssociation -- AssemblyFeatureAssociationRepresentation
Tolerance -- AssemblyFeatureAssociationRepresentation
RelationshipRepresentation -- AssemblyFeatureAssociationRepresentationThe diagram illustrates the relationships between several classes. At the top left is the AssemblyFeature class. A self-association arrow is drawn on it. Below it is the AssemblyFeatureAssociation class. A line connects AssemblyFeature to AssemblyFeatureAssociation with the multiplicity 1..* at the AssemblyFeature end. To the right of AssemblyFeatureAssociation is the ArtifactAssociation (from ArtifactAssociation) class. A line connects ArtifactAssociation to AssemblyFeatureAssociation with the multiplicity 1..* at the ArtifactAssociation end. Below AssemblyFeatureAssociation is the AssemblyFeatureAssociationRepresentation (from RelationshipRepresentation) class. A line connects AssemblyFeatureAssociation to AssemblyFeatureAssociationRepresentation. To the right of AssemblyFeatureAssociationRepresentation is the Tolerance (from Tolerance) class. A line connects Tolerance to AssemblyFeatureAssociationRepresentation. At the bottom is the RelationshipRepresentation class. A line connects RelationshipRepresentation to AssemblyFeatureAssociationRepresentation.
Figure 8: Assembly Feature
AssemblyFeature, a sub-class of OAMFeature, is defined to represent assembly features. Assembly features are a collection of geometric entities of artifacts. They may be partial shape elements of any artifact. For example, consider a shaft-bearing connection. A bearing's hole and a shaft's cylinder can be viewed as the assembly features that describe the physical connection between the bearing and the shaft. We can also think of geometric elements such as planes, screws and nuts, spheres, cones, and toruses as assembly features.
AssemblyFeatureAssociation represents the association between mating assembly features through which relevant artifacts are associated. Since associated artifacts can have multiple feature-level associations when assembled, one artifact association may have several assembly features associations at the same time. That is, an artifact association is the aggregation of assembly feature associations as shown in Figure 8. This relationship is also identified by the multiplicity symbol (see Figure 8). Any assembly feature association relates in general to two or more assembly features. However, as in the special case mentioned earlier (see Section 3.4) where an artifact association involves only one artifact, it may involve only one assembly feature when the relevant artifact association has only one artifact. Hence, the AssemblyFeature end of the association with AssemblyFeatureAssociation in Figure 8 is denoted by the multiplicity symbol , not by the multiplicity symbol .
10.7. 3.7 Assembly Feature Association Representation
The specific contents of any assembly feature association is described by the AssemblyFeatureAssociationRepresentation (see Figure 9). The assembly feature association representation is an aggregation of parametric assembly constraints, a kinematic pair, and/or a relative motion between assembly features as shown in Figure 9.
classDiagram
class AssemblyFeatureAssociationRepresentation {
}
class ParametricAssemblyConstraint {
}
class KinematicPair {
}
class KinematicPath {
}
class ParametricAssemblyConstraintBase {
}
class KinematicStructure {
}
class KinematicMotionRepresentation {
}
AssemblyFeatureAssociationRepresentation "0..*" o-- "0..1" ParametricAssemblyConstraint
AssemblyFeatureAssociationRepresentation "0..1" o-- "0..1" KinematicPair
AssemblyFeatureAssociationRepresentation "0..1" o-- "0..1" KinematicPath
ParametricAssemblyConstraint --|> ParametricAssemblyConstraintBase
KinematicPair --|> KinematicStructure
KinematicPath --|> KinematicMotionRepresentation
The diagram illustrates the structure of the AssemblyFeatureAssociationRepresentation class. It is an aggregation (indicated by hollow diamonds) of three other classes: ParametricAssemblyConstraint (multiplicity 0..*), KinematicPair (multiplicity 0..1), and KinematicPath (multiplicity 0..1). Each of these three classes is a specialization (indicated by hollow triangles) of a base class: ParametricAssemblyConstraint is a specialization of ParametricAssemblyConstraint, KinematicPair is a specialization of KinematicStructure, and KinematicPath is a specialization of KinematicMotionRepresentation. The text inside the boxes for the specialized classes indicates their inheritance: "(from ParametricAssemblyConstraint)" for ParametricAssemblyConstraint, "(from KinematicStructure)" for KinematicPair, and "(from KinematicMotionRepresentation)" for KinematicPath.
Figure 9: Assembly Feature Association Representation
ParametricAssemblyConstraint represents the parametric assembly constraints of assembly feature associations. It is used to specify explicit geometric constraints between artifacts of an assembled product. The parametric assembly constraints are intended to control the position and orientation of artifacts in an assembly. Parametric assembly constraints are defined in ISO 10303 Part 108 (under ballot) and a brief description is given in the next section.
KinematicPair defines the kinematic constraints between two adjacent artifacts (links) at a joint. The kinematic structure schema in ISO 10303 Part 105 defines the kinematic structure of a mechanical product in terms of links, pairs, and joints. The kinematic pair represents the geometric aspects of the kinematic constraints of motion between two assembled components. The description of the kinematic structure is given later in Section 3.9.
KinematicPath represents the relative motion between artifacts. The kinematic motion schema in ISO 10303 Part 105 defines kinematic motion. It is also used to represent the relative motion between artifacts. Details of this are provided in Section 3.10.
In Section 3.8, detailed descriptions of the parametric assembly constraint, kinematic pair, and kinematic path are provided. These three packages defined in the ISO standards are of considerable complexity, and thus the descriptions below are not exhaustive. Only the necessary portions are modeled using UML to explain how they can be utilized to represent electro-mechanical assemblies in conjunction with the proposed UML model. Note that we have introduced some new classes and used different class names from the original ones defined in ISO standards for increased clarity.
10.8. 3.8 Parametric Assembly Constraints
The classes in Figure 10 represent parametric assembly constraints. The parent class of Parametricassemblyconstraint defines the assembly constraints (position and orientation) between two parts in an assembly. From this class we specialize specific types of assembly constraints, as shown in Figure 10. The constrained geometric elements can be a point, a line, a circle, a plane, a cylindrical surface, a conical surface or a spherical surface of the constrained parts. Each type of assembly constraints applies to specific types of geometric elements. One of the two elements may be the reference element when applying the constraint.
Parallel specifies that two geometric elements are mutually parallel. ParallelWithDimension constrains two parallel elements with a distance. SurfaceDistanceWithDimension specifies the distance between two surfaces.
classDiagram
ParametricAssemblyConstraint <|-- FixedComponent
ParametricAssemblyConstraint <|-- Parallel
ParametricAssemblyConstraint <|-- ParallelWithDimension
ParametricAssemblyConstraint <|-- SurfaceDistanceWithDimension
ParametricAssemblyConstraint <|-- AngleWithDimension
ParametricAssemblyConstraint <|-- Perpendicular
ParametricAssemblyConstraint <|-- Incidence
ParametricAssemblyConstraint <|-- Coaxial
ParametricAssemblyConstraint <|-- Tangent
Figure 10: Parametric Assembly Constraints
The angle between two elements is constrained by AngleWithDimension. Perpendicular constrains two elements to be mutually perpendicular. Incidence represents that one of two elements is included in the other when it is considered as a point set. Coaxial means that the axes of the two elements are coincident. Tangent specifies that two elements are tangent to each other. Finally, FixedComponent is provided to fix the position and orientation of one part thus anchoring its own assembly in space. This constraint can be viewed as an exceptional case as it involves only one part; implicitly, the other part is the ground (i.e., the world coordinate system).
10.9. 3.9 Kinematic Pair
KinematicPair defines the kinematic constraints between two adjacent artifacts (links). Figure 11 shows the relationship between classes that are used to represent the kinematic constraints of kinematic pairs. Specific types of kinematic pairs are specialized from KinematicPair, PairValue, and PairRange.
KinematicPair defines the kinematic constraints between two adjacent links (artifacts) at a joint. PairRange specifies the allowable configuration range of the two links in the form of upper and lower bounds. PairValue specifies the current configuration (value) of the two links between the two bounds. PairFrame represents a coordinate system attached to a link. A kinematic pair needs two coordinate systems to describe its kinematic behavior. The two coordinate systems are attached to the two relevant links, respectively. Thus, the multiplicity at the PairFrame end is shown as 2 in Figure 11.
classDiagram
class KinematicPair {
+current configuration
}
class PairValue {
}
class PairRange {
+allowable range
}
class PairFrame {
}
KinematicPair "1" -- "1" PairValue
KinematicPair "1" -- "1" PairRange
KinematicPair "1" o-- "2" PairFrame : +pair placement
The diagram shows a KinematicPair class with an attribute +current configuration. It is associated with PairValue (1 to 1) and PairRange (1 to 1), with PairRange having an attribute +allowable range. It also has a composition relationship with PairFrame (1 to 2), labeled +pair placement.
Figure 11: Kinematic Pair
As mentioned above, specific classes of kinematic pairs are derived from the classes shown in Figure 11. Figure 12 shows the derived types of kinematic pairs. The kinematic pairs cover the following types: revolute, prismatic, screw, cylindrical, spherical, universal, planar, gear, rack and pinion, unconstrained, fully constrained, point on surface, sliding surface, rolling surface, point on planar curve, sliding curve, rolling curve.
classDiagram
class KinematicPair {
}
class UnconstrainedPair {
}
class FullyConstrainedPair {
}
class RevolutePair {
}
class PrismaticPair {
}
class CylindricalPair {
}
class PlanarPair {
}
class SphericalPair {
}
class ScrewPair {
}
class RackAndPinionPair {
}
class GearPair {
}
class UniversalPair {
}
class PointOnSurfacePair {
}
class PointOnPlanarCurvePair {
}
class PlanarCurvePair {
}
class SurfacePair {
}
class RollingCurvePair {
}
class SlidingCurvePair {
}
class RollingSurfacePair {
}
class SlidingSurfacePair {
}
KinematicPair <|-- UnconstrainedPair
KinematicPair <|-- FullyConstrainedPair
KinematicPair <|-- RevolutePair
KinematicPair <|-- PrismaticPair
KinematicPair <|-- CylindricalPair
KinematicPair <|-- PlanarPair
KinematicPair <|-- SphericalPair
KinematicPair <|-- ScrewPair
KinematicPair <|-- RackAndPinionPair
KinematicPair <|-- GearPair
KinematicPair <|-- UniversalPair
KinematicPair <|-- PointOnSurfacePair
KinematicPair <|-- PointOnPlanarCurvePair
KinematicPair <|-- PlanarCurvePair
KinematicPair <|-- SurfacePair
PlanarCurvePair <|-- RollingCurvePair
PlanarCurvePair <|-- SlidingCurvePair
SurfacePair <|-- RollingSurfacePair
SurfacePair <|-- SlidingSurfacePair
The diagram illustrates a hierarchical structure where KinematicPair is the base class. It has direct inheritance from UnconstrainedPair, FullyConstrainedPair, RevolutePair, PrismaticPair, CylindricalPair, PlanarPair, SphericalPair, ScrewPair, RackAndPinionPair, GearPair, UniversalPair, PointOnSurfacePair, and PointOnPlanarCurvePair. PlanarCurvePair and SurfacePair are also direct inheritors. PlanarCurvePair further inherits from RollingCurvePair and SlidingCurvePair. Similarly, SurfacePair inherits from RollingSurfacePair and SlidingSurfacePair.
Figure 12: Derived Kinematic Pairs
Each kinematic pair has two specific classes derived from PairValue and PairRange respectively, to represent the current configuration (value) and the allowable range of the pair variable. For example, the revolute pair class diagram in Figure 13 shows the derived classes RevolutePair, RevolutePairValue, RevolutePairRange, and their associations.
The classes RevolutePairValue and RevolutePairRange are specialized, respectively, from PairValue and PairRange. Other types of kinematic pairs also have specific type of derived classes defined for their own purpose.
classDiagram
class RevolutePair {
}
class RevolutePairValue {
}
class RevolutePairRange {
}
RevolutePair --> RevolutePairValue : +actual_rotation
RevolutePair --> RevolutePairRange : +limits
The diagram shows a class hierarchy. At the top is the RevolutePair class. Below it are two subclasses: RevolutePairValue and RevolutePairRange. A red line connects RevolutePair to RevolutePairValue with the label +actual_rotation. Another red line connects RevolutePair to RevolutePairRange with the label +limits. Each class is represented by a rectangle with a title bar and two empty slots for attributes or methods.
Figure 13: Revolute Pair Class Diagram
10.10. 3.10 Kinematic Path
KinematicPath, shown in Figure 14, provides the description of kinematic motion. It is the aggregation of path elements along which the motion is to take place. A path element can specify different types of paths, as explained below. Note that since the kinematic path is composed of a set of path elements, it can describe a composite path as well as a simple path.
PathElement is a path segment with two path nodes, which represent the "from" node and "to" node, respectively. PathNode is used to define the start and end locations of a path. At each path node, the position and rotation of a frame along the "path" need to be defined. This linear transformation is defined by Transformation, which can be expressed by a homogeneous transformation matrix.
The path element is further classified into different types of motion according to the intermediate motion characteristics between the "from" and "to" nodes, as shown in Figure 14. PointToPointPath allows free motion between the two nodes; it does not have a prescribed interpolation and leaves the determination of the intermediate motion to specific applications. LinearPath incorporates piecewise linear interpolation between the beginning and end nodes of the path element. CircularPath describes a circular arc path which passes through the beginning and end points of the path element, and also a third point (via point) supplied separately. CurveBasedPath describes the path using a predefined trajectory curve.
classDiagram
class RepresentationItem["RepresentationItem
(from Representation)"]
class KinematicPath
class PathElement
class CompositePath
class PathNode
class Transform
class Translation
class SpatialRotation["SpatialRotation
(from KinematicStructure)"]
class PathElementConnection
class PointToPointPath
class LinearPath
class CircularPath
class CurveBasedPath
class CartesianPoint["CartesianPoint
(from Geometry)"]
class Curve["Curve
(from Geometry)"]
RepresentationItem <|-- KinematicPath
KinematicPath <|-- PathElement
KinematicPath <|-- CompositePath
PathElement <|-- PathNode
PathElement <|-- PathElementConnection
PathElement <|-- PointToPointPath
PathElement <|-- LinearPath
PathElement <|-- CircularPath
PathElement <|-- CurveBasedPath
PathNode --> PathElement : +from & to (1 to 2)
PathNode --> Transform : +trans & orient (1 to 1)
Transform --> Translation : {Or}
Transform --> SpatialRotation : {Or}
PathElementConnection --> PathElement : +prev & next (2 to 1)
PathElementConnection --> CompositePath : +elements (1 to 1..*)
CompositePath --> CartesianPoint : +via point
CompositePath --> Curve : +path curve
The diagram illustrates the structure of a Kinematic Path. At the top is the RepresentationItem class, which is a base class for KinematicPath. KinematicPath is further specialized into PathElement and CompositePath. PathElement is specialized into PathNode, PathElementConnection, PointToPointPath, LinearPath, CircularPath, and CurveBasedPath. PathNode is associated with PathElement (1 to 2) via +from & to and with Transform (1 to 1) via +trans & orient. Transform is a base class for Translation and SpatialRotation (from KinematicStructure). PathElementConnection is associated with PathElement (2 to 1) via +prev & next and with CompositePath (1 to 1..*) via +elements. CompositePath is associated with CartesianPoint (from Geometry) via +via point and with Curve (from Geometry) via +path curve.
Figure 14: Kinematic Path
10.11. 3.11 Tolerance
Tolerancing is a critical issue in the design of electro-mechanical assemblies. Tolerancing includes both tolerance analysis and tolerance synthesis. In the context of electro-mechanical assembly design, tolerance analysis refers to evaluating the effect of variations of individual part or subassembly dimensions on designated dimensions or functions of the resulting assembly. Tolerance synthesis refers to allocation of tolerances to individual parts or sub-assemblies based on tolerance or functional requirements on the assembly. Tolerance design is the process of deriving a description of geometric tolerance specifications for a product from a given set of desired properties of the product. Existing approaches to tolerance analysis and synthesis entail detailed knowledge of the geometry of the assemblies and are mostly applicable only during advanced stages of design, leading to a less than optimal design. During the design of an assembly, both the assembly structure and the associated tolerance information evolve continuously; significant gains can thus be achieved by effectively using this information to influence the design of that assembly. Any proactive approach to assembly or tolerance analysis in the early design stages will involve making decisions with incomplete information models. In order to carry out early tolerance synthesis and analysis in the conceptual product design stage, we include function, tolerance, and behavior information in the assembly model; this will allow analysis and synthesis of tolerances even with the incomplete data set. In order to achieve this we define a class structure for tolerance specification and we describe this in Figure 15 .
DimensionalTolerance typically controls the variability of linear dimensions that describe location, size and angle, also known as tolerancing of perfect form. This class is included in the model to accommodate the ISO tolerance standard.
GeometricTolerance is the general term applied to the category of tolerances used to control shape, position, and runout. It enables tolerances to be placed on attributes of features, where a feature is one or more ‘pieces of part surface’; feature attributes include size (for certain features), position (certain features), form (flatness, cylindricity, etc.), and relationship (e.g. perpendicular-to).
FormTolerance is applicable to single features or elements of single features.
ProfileTolerance is applicable to profiles. A profile is the outline of an object in a given plane. Profiles are formed by projecting a three-dimensional figure onto a plane or by taking a cross section through the figure.
RunoutTolerance is a composite tolerance used to control the functional relationship of one or more features of a part to a datum axis.
classDiagram
class Tolerance {
+StatisticalControl (from StatisticalControl)
}
class DimensionalTolerance
class GeometricTolerance {
+MaterialCondition
+Geometry (from CoreModel)
}
class FormTolerance {
(from FormTolerance)
}
class ProfileTolerance {
(from ProfileTolerance)
}
class OrientationTolerance {
(from OrientationTolerance)
}
class LocationTolerance {
(from LocationTolerance)
}
class RunoutTolerance {
(from RunoutTolerance)
}
class Datum
class DatumFeature
class FeatureOfSize
class OAMFeature {
(from OAMFeature)
}
Tolerance <|-- DimensionalTolerance
Tolerance <|-- GeometricTolerance
GeometricTolerance --> MaterialCondition
GeometricTolerance --> Geometry : +tolerance, +tolerance_of
GeometricTolerance <|-- FormTolerance
GeometricTolerance <|-- ProfileTolerance
GeometricTolerance <|-- OrientationTolerance
GeometricTolerance <|-- LocationTolerance
GeometricTolerance <|-- RunoutTolerance
OrientationTolerance --> Datum
LocationTolerance --> Datum
RunoutTolerance --> Datum
Datum --> FeatureOfSize
DatumFeature --|> FeatureOfSize
DatumFeature --> Datum
Datum --> OAMFeature
Figure 15: Tolerance Package
OrientationTolerance is applicable to feature orientations. Angularity, parallelism, perpendicularity, and in some cases, profile are orientation tolerances applicable to two or more features. These tolerances control the orientation of a feature with respect to another feature.
LocationTolerance deals with the position, concentricity, and symmetry used to control the following relationships:
- • center distance between such feature as holes, slots, and tabs;
- • location of features as a group, from datum features, such as a plane and a cylindrical surface;
- • coaxiality of features; and
- • concentricity or symmetry of features.
10.11.1. Datum
Datum is a theoretically exact piece of geometry, such as a point, a line, and a plane, from which a tolerance is referenced.
10.11.2. DatumFeature
DatumFeature is a physical feature that is applied to establish a datum.
10.11.2.1. FeatureOfSize
A feature that is associated with a size dimension, such as the diameter of a spherical or cylindrical surface and the distance between two parallel planes.
10.11.3. 3.11.1 Form Tolerance
Figure 16 presents the form tolerance of a component.
10.11.3.1. StraightnessTolerance
Straightness is a condition where an element of a surface, or an axis, is straight line. StraightnessTolerance signifies the allowable variations from this condition.
classDiagram
class FormTolerance
class StraightnessTolerance
class FlatnessTolerance
class CylindricityTolerance
class CircularityTolerance
FormTolerance <|-- StraightnessTolerance
FormTolerance <|-- FlatnessTolerance
FormTolerance <|-- CylindricityTolerance
FormTolerance <|-- CircularityToleranceThe diagram illustrates a class hierarchy for form tolerances. At the top is the FormTolerance class. Below it, four subclasses are shown: StraightnessTolerance, FlatnessTolerance, CylindricityTolerance, and CircularityTolerance. Each subclass is connected to the base class by a vertical line with an open triangle arrowhead pointing towards the base class, indicating a generalization relationship.
Figure 16: Form Tolerance Package
10.11.3.2. FlatnessTolerance
Flatness is the condition of a surface having all elements in one plane. FlatnessTolerance signifies the allowable variations from this condition.
10.11.3.3. CircularityTolerance
Circularity is a condition of a surface where, for a:
- • feature other than a sphere, all points of the surface intersected by any plane perpendicular to an axis are equidistant from that axis;
- • sphere, all points of the surface intersected by any plane passing through a common center are equidistant from that center.
CircularityTolerance signifies the allowable variations from this circularity condition.
10.11.3.4. CylindricityTolerance
Cylindricity is a condition of a surface of revolution in which all points of the surface are equidistant from a common axis. CylindricityTolerance signifies the allowable variations from this condition.
10.11.4. 3.11.2 Profile Tolerance
Figure 17 presents the profile tolerance of a component .
classDiagram
class ProfileTolerance {
}
class ProfileLineTolerance {
}
class ProfileSurfaceTolerance {
}
ProfileTolerance <|-- ProfileLineTolerance
ProfileTolerance <|-- ProfileSurfaceTolerance
The diagram illustrates a class hierarchy for profile tolerances. At the top is the ProfileTolerance class, represented by a rectangle with a double-line border. Below it, two lines extend downwards to a horizontal line. From this horizontal line, two vertical lines descend to the top of two separate boxes. The left box is labeled ProfileLineTolerance and the right box is labeled ProfileSurfaceTolerance. Both boxes also have a double-line border. An open triangle arrow points upwards from the horizontal line to the bottom of the ProfileTolerance box, indicating inheritance.
Figure 17: ProfileTolerance Package
10.11.4.1. ProfileSurfaceTolerance
The tolerance zone established by the profile of a surface tolerance is three-dimensional, extending along the length and width of the considered feature or features.
10.11.4.2. ProfileofaLine
The tolerance zone established by the profile of a line tolerance is two-dimensional, extending along the length of the considered feature.
10.11.5. 3.11.3 Location Tolerance
Figure 18 presents the location tolerance of a component.
classDiagram
class LocationTolerance
class PositionTolerance
class ConcentricityTolerance
class SymmetryTolerance
LocationTolerance <|-- PositionTolerance
LocationTolerance <|-- ConcentricityTolerance
LocationTolerance <|-- SymmetryTolerance
Figure 18: LocationTolerance Package
PositionTolerance defines either :
- • a zone within which the center, axis, or center plane of a feature of size is permitted to vary from a true position, or
- • a boundary, defined as the virtual condition, located at the true position, that may not be violated by the surface or surface of the considered feature.
ConcentricityTolerance is a cylindrical tolerance zone whose axis coincide with the axis of the datum feature.
10.11.5.1. SymmetryTolerance
Symmetry is that condition where the median point of all opposed or correspondingly located elements of two or more feature surfaces are congruent with the axis or center plane of a datum feature.
10.11.6. 3.11.4 Orientation Tolerance
Figure 19 presents the orientation tolerances between components.
classDiagram
class OrientationTolerance
class AngularityTolerance
class PerpendicularityTolerance
class ParallelismTolerance
OrientationTolerance <|-- AngularityTolerance
OrientationTolerance <|-- PerpendicularityTolerance
OrientationTolerance <|-- ParallelismTolerance
Figure 19: OrientationTolerance package
10.11.6.1. AngularityTolerance
Angularity is the condition of a surface, a center plane, or an axis at a specified angle from a datum plane or an axis.
10.11.6.2. ParallelismTolerance
Parallelism is the condition of a surface or a center plane, equidistant at all points from a datum plane; or an axis, equidistant along its length from one or more datum planes or a datum axis.
10.11.6.3. PerpendicularityTolerance
Perpendicularity is the condition of a surface, center plane, or axis at a right angle to a datum plane or axis.
10.11.7. 3.11.5 Runout Tolerance
Figure 20 presents the runout tolerance of a component.
classDiagram
class RunoutTolerance
class CircularRunoutTolerance
class TotalRunoutTolerance
RunoutTolerance <|-- CircularRunoutTolerance
RunoutTolerance <|-- TotalRunoutToleranceThe diagram illustrates a class hierarchy for runout tolerances. At the top is the RunoutTolerance class. Below it, two subclasses are shown: CircularRunoutTolerance and TotalRunoutTolerance. A hollow triangle arrow points from the base of each subclass box up to the RunoutTolerance box, indicating inheritance.
Figure 20: RunoutTolerance Package
CircularrunoutTolerance provides control of circular elements of a surface. The tolerance is applied independently at each circular measuring position, as the part is rotated 360 degrees.
TotalrunoutTolerance provides composite control of all surface elements. The tolerance is applied simultaneously to all circular and profile measuring position, as the part is rotated 360 degrees.
10.11.8. 3.11.6 Statistical Tolerance
10.11.8.1. StatisticalControl
StatisticalControl is a tolerance that requires statistical process controls on the tolerated feature in manufacturing. ( See Figure 21).
10.11.8.2. RegularControl
RegularControl is a statistical tolerance that is defined by the mean and the standard deviation.
10.11.8.3. DistributedControl
DistributedControl is a statistical tolerance that is defined by a range of distributions of dimensional variations. For example, assume that the tolerance of a 100 mm shaft is mm. At least fifty percent of the produced shafts should be within the tolerance of mm. The remaining must be within the tolerance of mm.
10.11.8.4. Range
Range is the definition of the range of dimensional variations. For example, fifty percent of the produced shafts should be within the tolerance of mm.
classDiagram
class StatisticalControl
class RegularControl
class DistributedControl
class Range
StatisticalControl <|-- RegularControl
StatisticalControl <|-- DistributedControl
DistributedControl --> Range : +theRange 1..*The diagram illustrates the class hierarchy for the StatisticalTolerance Package. At the top is the StatisticalControl class. Below it are two subclasses: RegularControl and DistributedControl. Both RegularControl and DistributedControl inherit from StatisticalControl, as indicated by the hollow triangle arrows. The DistributedControl class has an association with the Range class, labeled with the attribute +theRange and the multiplicity 1..*.
Figure 21: StatisticalTolerance Package
11. 4 Example and Industrial Case Study
This section illustrates the assembly model with an industrial device: a planetary gear system. The model is generated using a Computer-Aided Design (CAD) system. The first Section 4.1 lists all the parts in the assembly. Section 4.2 describes the principal hierarchy of the assembly. Section 4.3 explains the assembly relationships such as artifact associations, assembly feature associations, assembly constraints, and kinematic pairs. Section 4.4 describes the kinematic relationships in detail. Finally, Section 4.5 illustrates the tolerances that are needed for assembly tolerance analysis.
11.1. 4.1 Components in Planetary Gear System
A planetary gear system is used to illustrate our model. The solid model of the planetary gear system is shown in Figure 22.
Figure 22: Solid Model of a Planetary Gear
The planetary gear system consists of many components. Figure 23 shows the exploded view of the above solid model.
Figure 23: Exploded View of the Planetary Gear Model
The list of all the components of the planetary gear system shown in Figure 23 is given in Table 1.
| ID | Name | Qty | Functional Description | Graphical Representation |
|---|---|---|---|---|
| 1 | Output Housing | 1 | Covers output shaft and protects the gears and shafts | |
| 2 | Bearing | 2 | Supports the output housing and serves as an interface between the output shaft and the housing | |
| 3 | Washer | 1 | Separate the two bearings inside the output housing | |
| 4 | Output shaft | 1 | Transmits power to the driven device. Also, connects to planetary gears. | |
| 5 | Planet gear pin | 3 | Holds a planetary gear and attaches it to the output shaft | |
| 6 | Planet gear | 3 | Delivers power from the sun gear to the output shaft | |
| 7 | Ring gear | 1 | Controls the speed reduction ratio. The planetary gears rotate around it. | |
| 8 | Ring gear pin | 2 | Attaches the ring gear to the output housing | |
| 9 | Sun gear | 1 | Transmits the power from input shaft to planetary gears. Input shaft and sun gear considered as one part. | |
| 10 | Input housing | 1 | Covers the input shaft and provides protection from environmental contamination. | |
| 11 | Screw | 8 | Fastens the input housing, the ring gear, and the output housing into one assembly. |
Table 1: Part List of the Planetary Gear System
11.2. 4.2 Assembly Hierarchy
Before proceeding further with our case-study example, we first need to define an assembly hierarchy for the planetary gear system. The planetary gear system is assumed to be composed of two parts, namely, the input-housing and the sungear, and three sub-assemblies, as shown in Figure 24. The three sub-assemblies are: (1) the output end assembly that contains the two bearings, the washer, and the output housing; (2) the ring gear assembly that consists of the ring gear and ring-gear pin; and (3) the planet gear holder assembly that consists of the three planet gears and the planet carrier assembly, which further decomposes into the output shaft and the three planet-gear pins.
Figure 24: Assembly Hierarchy of Planetary Gear System
. Notice that the hierarchy in Figure 24 is introduced to verify and demonstrate the proposed UML assembly model. The sequence of part assembly descriptions does not imply the actual assembly sequence. The assembly sequencing task is outside the scope of this report.
graph TD
gearHeadAsm["gearHeadAsm:Assembly"]
screw1["Screw1:Part"]
inputHousing["inputHousing:Part"]
sunGear["sunGear:Part"]
outputHousingAsm["outputHousingAsm:Assembly"]
ringGearAsm["ringGearAsm:Assembly"]
planetGearCarrierAsm["planetGearCarrierAsm:Assembly"]
screw8["Screw8:Part"]
bearing2["bearing2:Part"]
bearing1["bearing1:Part"]
washer["washer:Part"]
outputHousingPart["outputHousing:Part"]
ringGear["ringGear:Part"]
ringGearPin1["ringGearPin1:Part"]
ringGearPin2["ringGearPin2:Part"]
planetGear1["planetGear1:Part"]
planetGear2["planetGear2:Part"]
planetGear3["planetGear3:Part"]
planetGearCarrierAsmSub["planetGearCarrierAsm:Assembly"]
planetGearPin1Part["planetGearPin1:Part"]
planetGearPin2Part["planetGearPin2:Part"]
planetGearPin3Part["planetGearPin3:Part"]
outputShaft["outputShaft:Part"]
gearHeadAsm --- screw1
gearHeadAsm --- inputHousing
gearHeadAsm --- sunGear
gearHeadAsm --- outputHousingAsm
gearHeadAsm --- ringGearAsm
gearHeadAsm --- planetGearCarrierAsm
gearHeadAsm -.- screw8
outputHousingAsm --- bearing2
outputHousingAsm --- bearing1
outputHousingAsm --- washer
outputHousingAsm --- outputHousingPart
ringGearAsm --- ringGear
ringGearAsm --- ringGearPin1
ringGearAsm --- ringGearPin2
planetGearCarrierAsm --- planetGear1
planetGearCarrierAsm --- planetGear2
planetGearCarrierAsm --- planetGear3
planetGearCarrierAsm --- planetGearCarrierAsmSub
planetGearCarrierAsmSub --- planetGearPin1Part
planetGearCarrierAsmSub --- planetGearPin2Part
planetGearCarrierAsmSub --- planetGearPin3Part
planetGearCarrierAsmSub --- outputShaft
Figure 25: Instance Diagram of Main Assembly Hierarchy
The hierarchical relationships between the components of the planetary gear system can be represented as an instance diagram as shown in Figure 25. The elements are underlined to show that they are instances. The names take the form of "instance name:class name". The root node is the entire assembly, the interior nodes are sub-assemblies, and the leaf nodes are component parts.
11.3. 4.3 Assembly Relationships
Information besides the hierarchical relationship between artifacts is provided by an instance of AssemblyAssociation, which is an aggregation of instances of ArtifactAssociation. The artifact associations hold relational information such as mating conditions, kinematic pairs, and associations between assembly features. For the gear head assembly shown in Figure 25, a graph of artifact associations is shown in Figure 26. The dotted lines indicate the artifact associations and the solid lines portray the hierarchical assembly relationships. The details of the artifact associations shown in Figure 26 are discussed in the following sections. First we explain the assembly relationship for each subassembly, and then we describe the entire assembly.
Figure 26: Artifact Associations
11.3.1. 4.3.1 Output Housing Assembly
Figure 27 describes the subassembly and the output housing (the output end of the planetary gear system). It consists of four parts: bearing 1, bearing 2, washer, and output housing. The washer goes to the inside groove of the output housing. Both bearings (ball bearings) go into the output housing on both sides of the washer by a tight fit. Bearing 1 stays outside, and Bearing 2 stays inside of the planetary gear system.
The assembly relationships between artifacts are shown in Table 2. The first column shows the names of the artifact associations. The second column lists the participating artifacts in the associations. The relevant assembly features, parametric assembly constraints, and kinematic relationships are also listed. The instance diagram of the assembly relationships in Table 2 is depicted in Figure 28. Some class names are denoted with acronyms instead of their long class names (Figure 28).
Figure 27: Output Housing Assembly
The artifact associations are instantiated from the class FixedConnection, one of the subclasses of ArtifactAssociation, since the participating artifacts in the present subassembly have no relative motion with respect to one another. The associations are named fc1, fc2, and so forth. The details of the artifact associations are represented by accompanying instances of assembly features (AFs) and assembly feature associations (AFAs) as shown in Figure 28. The assembly feature association representations (AFARs) contain the parametric assembly constraints to position artifacts with respect to a reference (fixed) artifact. We assume here that the output housing has a fixed position and orientation to anchor the entire assembly. Thus, the output housing itself should have a parametric assembly constraint of FixedComponent. To hold this information, an instance of ArtifactAssociation (fixed connection) fc4, with information regarding assembly feature and assembly feature association is provided, as shown in Table 2. Notice that the artifact association fc4 has only one artifact (the output housing) associated with it, and so does its assembly feature association. The artifact association fc3 between bearing 2 and output housing will have a similar assembly relationships structure to that of fc2 and is not depicted in Figure 28 for brevity.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| fc1 | Output housing | All three surfaces of inner groove (groove:AF) | Coaxial Parallel | No relative motion |
| Washer | Surface of outer rim and partial surfaces on both sides (outer Rim:AF) | Angle with dimension | ||
| fc2 | Output housing | Cylindrical surface for the outside bearing seat (bearingSeat1:AF) | Coaxial Parallel Angle with dimension | No relative motion |
| Bearing 1 | Rim of the bearing (outerRace1:AF) |
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| fc3 | Output housing | Cylindrical surface for the inside bearing seat (bearingSeat2:AF) | Coaxial Parallel | No relative motion |
| Bearing 2 | Rim of the bearing (outerRace2:AF) | Angle with dimension | ||
| fc4 | Output housing | Entire subassembly | Fixed | No relative motion |
Table 2: Assembly relationships of the output end of the planetary gear system
The diagram illustrates the instance relationships for the Output Housing Assembly. It includes the following components and connections:
- Artifacts:
bearing1:Part(Artifact)bearing2:Part(Artifact)outputHousing:Part(Artifact)washer:Part(Artifact)outerRace1:AF(AssemblyFeature)bearingSeat1:AF(AssemblyFeature)groove:AF(AssemblyFeature)outerRim:AF(AssemblyFeature)
- Feature Associations (AFA):
outerRace1:AFis associated withbearing1:Partvia a feature association.bearingSeat1:AFis associated withoutputHousing:Partvia a feature association.groove:AFis associated withoutputHousing:Partvia a feature association.outerRim:AFis associated withwasher:Partvia a feature association.
- Fixed Connections (FC):
fc2:FCis associated withbearing1:PartandoutputHousing:Partvia artifact associations.fc3:FCis associated withbearing2:PartandoutputHousing:Partvia artifact associations.fc1:FCis associated withwasher:PartandoutputHousing:Partvia artifact associations.fc4:FCis associated withoutputHousing:PartandFixedComponentvia artifact associations.
- Assembly Constraints:
Parallel,Coaxial, andAngleWithDimensionconstraints are associated withfc2:FCvia representation.Parallel,Coaxial, andAngleWithDimensionconstraints are associated withfc4:FCvia representation.FixedComponentis associated withfc4:FCvia an assembly constraint.
Legend:
FC: FixedConnection
AF: AssemblyFeature
AFA: AssemblyFeatureAssociation
AFAR: AssemblyFeatureAssociationRepresentation
Figure 28: Instance Diagram of Output Housing Assembly
11.3.2. 4.3.2 Ring Gear Assembly
The second subassembly is the ring gear assembly, shown in Figure 29. It consists of three parts: ring gear, ring-gear pin 1 and pin 2. The two ring-gear pins go into the pinholes of the ring gear with a tight fit.
Figure 29: Ring Gear Assembly
The assembly relationships are listed in Table 3, and Figure 30 shows the instance diagram of the current assembly. The artifact associations are instantiated from FixedConnection and named fc5 and fc6, since there are no relative motions between participating artifacts. The artifact association fc6 has a similar structure to that of fc5 and is not shown in the figure.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| fc5 | Ring gear | Pinhole surfaces (pinHole1:AF) | Coaxial | No relative motion |
| Ring-gear pin 1 | Inserted portion of pin surface (pinCylinder1:AF) | Parallel Angle with dimension | ||
| fc6 | Ring gear | Pinhole surfaces (pinHole2:AF) | Coaxial | No relative motion |
| Ring-gear pin 2 | Inserted portion of pin surface (pinCylinder2:AF) | Parallel Angle with dimension |
Table 3: Assembly Relationships of Ring Gear Assembly
graph TD
ringGearPin2Part[ringGearPin2:Part] -- artifact --> fc6FC[fc6:FC]
fc6FC -- artifact association --> ringGearPart[ringGear:Part]
ringGearPart -- artifact --> pinHole1AF[pinHole1:AF]
fc5FC[fc5:FC] -- artifact association --> ringGearPart
ringGearPart -- artifact --> ringGearPin1Part[ringGearPin1:Part]
ringGearPin1Part -- artifact --> pinCylinder1AF[pinCylinder1:AF]
ringGearPart -- feature --> AFA[:AFA]
AFA -- feature association --> pinHole1AF
AFA -- feature association --> pinCylinder1AF
AFA -- representation --> AFAR[:AFAR]
AFAR -- assembly constraint --> Parallel[:Parallel]
AFAR -- assembly constraint --> Coaxial[:Coaxial]
AFAR -- assembly constraint --> AngleWithDimension[:AngleWithDimension]
Figure 30: Instance Diagram of Output Housing Assembly
11.3.3. 4.3.3 Planet Carrier Assembly
The planet carrier assembly in Figure 31 is comprised of four parts: three planet-gear pins and an output shaft. The three planet-gear pins are assembled with output shaft by a tight fit.
Figure 31: Planet Carrier Assembly
The assembly relationships are listed in Table 4, and the instance diagram is depicted in Figure 32. The artifact associations are instantiated from FixedConnection and named fc7, fc8, and fc9, since there are no relative motions between participating artifacts. The assembly relationships of the current assembly are very similar to those of the ring gear assembly explained previously. The detailed relationships for fc8 and fc9 are not shown in the figure: they have the same structure as that of fc6.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| fc7 | Output shaft | Pinhole surfaces (pinHole3:AF) | Coaxial Parallel | No relative motion |
| Planet-gear pin 1 | Inserted portion of pin surface (pinCylinder3:AF) | Angle with dimension | ||
| fc8 | Output shaft | Pinhole surfaces (pinHole4:AF) | Coaxial Parallel | No relative motion |
| Planet-gear pin 2 | Inserted portion of pin surface (pinCylinder4:AF) | Angle with dimension | ||
| fc9 | Output shaft | Pinhole surfaces (pinHole5:AF) | Coaxial Parallel | No relative motion |
| Planet-gear pin 3 | Inserted portion of pin surface (pinCylinder5:AF) | Angle with dimension |
Table 4: Assembly Relationships of Planet Carrier Assembly
classDiagram
class planetGearPin2Part["planetGearPin2:Part"]
class planetGearPin1Part["planetGearPin1:Part"]
class planetGearPin3Part["planetGearPin3:Part"]
class fc8FC["fc8:FC"]
class fc7FC["fc7:FC"]
class fc9FC["fc9:FC"]
class outputShaftPart["outputShaft:Part"]
class pinCylinder3AF["pinCylinder3:AF"]
class pinHole3AF["pinHole3:AF"]
class AFA[":AFA"]
class AFAR[":AFAR"]
class Parallel[":Parallel"]
class Coaxial[":Coaxial"]
class AngleWithDimension[":AngleWithDimension"]
planetGearPin2Part --> fc8FC : artifact
planetGearPin1Part --> fc7FC : artifact
planetGearPin3Part --> fc9FC : artifact
fc8FC --> outputShaftPart : artifact
fc7FC --> outputShaftPart : artifact
fc9FC --> outputShaftPart : artifact
outputShaftPart --> pinHole3AF : feature
pinCylinder3AF --> AFA : feature
AFA --> AFAR : feature association
AFAR --> Parallel : representation
AFAR --> Coaxial : representation
AFAR --> AngleWithDimension : representation
planetGearPin1Part --> pinCylinder3AF : feature
planetGearPin3Part --> pinHole3AF : feature
Figure 32: Instance Diagram of Planet Carrier Assembly
11.3.4. 4.3.4 Planet Gear-carrier Assembly
The planet gear-carrier assembly shown in Figure 33 is comprised of four artifacts: three parts of planet gears and the planet carrier assembly. The three planet gears are assembled by loose fit with the planet-gear pins of the planet carrier assembly.
Figure 33: Planet Gear Carrier Assembly
Table 5 lists the assembly relationships. These assembly relationships are illustrated in Figure 34. The artifact associations of the current assembly are instantiated from MovableConnection since there are rotational motions between the planet gears and the planet-gear pins. They are named mc1, mc2, and mc3, respectively. Only the details of artifact association mc1 are depicted. The instance of the planet carrier assembly (planetCarrierAsm:Assembly) is also drawn to show the part-of relationships with the planet-gear pins; the output shaft is not shown since it is not directly involved in the current assembly relationship. Note that the part-of relationships are actually stored in the main hierarchy of the proposed UML model. As mentioned above, the artifact associations are instances of MovableConnection. Thus, the associated assembly feature association representations contain the information on the kinematic pair. Instances of
RevolutePair are thus supplied to the assembly feature association representation, as well as the assembly constraints.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| mc1 | Planet-gear pin 1 @Planet carrier assembly | Pin surface for planetary gear (pinCylinder6:AF) | Coaxial Parallel Angle with dimension | Relative rotation (rp2:RevolutePair) |
| Planet gear 1 | Gear journal surface (pinHole6:AF) | |||
| mc2 | Planet-gear pin 2 @Planet carrier assembly | Pin surface for planetary gear (pinCylinder7:AF) | Coaxial Parallel Angle with dimension | Relative rotation (rp3:RevolutePair) |
| Planet gear 2 | Gear journal surface (pinHole7:AF) | |||
| mc3 | Planet-gear pin 3 @Planet carrier assembly | Pin surface for planetary gear (pinCylinder8: AF) | Coaxial Parallel Angle with dimension | Relative rotation (rp4:RevolutePair) |
| Planet gear 3 | Gear journal surface (pinHole8:AF) |
Table 5: Assembly Relationships of Planet Gear-Carrier Assembly
The diagram illustrates the instance hierarchy of the Planet Gear-Carrier Assembly. At the top is the assembly instance planetCarrierAsm:Assembly. It branches into three part instances: planetGearPin3, planetGearPin2, and planetGearPin1:part. planetGearPin3 is associated with mc3:MC (MovableConnection), which in turn is associated with planetGear3:part. planetGearPin2 is associated with mc2:MC, which is associated with planetGear2:part. planetGearPin1:part is associated with mc1:MC, which is associated with planetGear1:part. The planetGear1:part instance further branches into two artifact instances: planetGear1:part (labeled as artifact) and planetGear1:part (labeled as artifact). The planetGear1:part (artifact) instance is associated with pinCylinder6:AF (feature) and pinHole6:AF (feature). The planetGear1:part (artifact) instance is associated with pinCylinder6:AF (feature) and pinHole6:AF (feature). The pinCylinder6:AF (feature) instance is associated with :AFA (feature association) and :AFAR (feature association representation). The pinHole6:AF (feature) instance is associated with :AFA (feature association) and :AFAR (feature association representation). The :AFA (feature association) instance is associated with :AFAR (feature association representation). The :AFAR (feature association representation) instance is associated with :Parallel (assembly constraint), :Coaxial (assembly constraint), :AngleWithDimension (assembly constraint), and rp2:RevolutePair (kinematic pair).
Figure 34: Instance Diagram of Planet Gear-Carrier Assembly
11.3.5. 4.3.5 Planetary gear system Assembly
The planetary gear system assembly in Figure 35 consists of five artifacts: two parts and three assemblies. The planet gear-carrier assembly is pushed into the bearings of the output housing assembly. The ring gear assembly is attached to the output housing assembly, being meshed with the three planet gears of the planet gear-carrier assembly. The sun gear is also meshed with the three planet gears. The input housing is attached to the ring gear. The details of the assembly relationships are explained for some of the artifacts to avoid repetition.
Figure 35: Planetary gear system Assembly
Consider the output housing assembly and planet gear-carrier assembly shown in Figure 36. The output shaft of the planet gear-assembly is inserted into the bearings of the output housing assembly.
Figure 36: Output Housing Assembly and Planet Gear-Carrier Assembly
Table 6 shows the assembly relationships, and Figure 37 shows the instance diagram of the two artifacts. Note that although there are two assemblies involved, the actual relationships are formed by three parts in the assemblies. The instances of the assemblies are also shown in Figure 37 to illustrate the part-of relationships. The artifact association mc4 involves the three parts of output shaft, bearing 1, and bearing 2. It is instantiated from MovableConnection since the output shaft and two bearings constitute a revolute pair. The artifact association mc4 and the associated assembly feature association are ternary relationships.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| mc4 | Output shaft @Planet carrier assembly | Bearing seat of output shaft surface (bearingSeat3:AF) | Coaxial Parallel Angle with dimension | Relative rotation (rp5:RevolutePair) |
| Bearing 1 @Output housing assembly | Inner race surface of bearing (innerRace1:AF) | |||
| Bearing 2 @Output housing assembly | Inner race surface of bearing (innerRace2:AF) |
Table 6: Assembly Relationships Between Output Housing Assembly and Planet Gear-Carrier Assembly
Figure 37: Output Housing Assembly and Planet Gear-Carrier Assembly Instance Diagram
Let us now consider the sungear and planet gear-carrier assembly, shown in Figure 38. The sungear is assembled with the three planet gears of the planet gear-carrier assembly by gear meshing.
Figure 38: Sungear And Planet Gear-Carrier Assembly
The assembly relationships are listed in Table 7 and the instance diagrams are illustrated in Figure 39. Five parts participate in the current assembly relationships. Three movable connections mc5, mc6, and mc7 are instantiates of MovableConnection. To describe the details of the gear meshing, three instances of GearPair, namely, gp1, gp2, and gp3 in Figure 39 are attached to the respective artifact associations (movable connections) via matching assembly feature associations. On the other hand, the input shaft portion of the sungear has relative rotation with respect to an unknown support (or ground). Typically, it is coupled with the output shaft of a motor. The output shaft of the motor would have relative rotation with respect to the support (or ground). That is, there is only one artifact (part) involved in this kinematic relationship. To handle this case, we may use an artifact association with one artifact participating, as the instance mc8 described in Table 7 and Figure 39. Its associated assembly feature association also has only one assembly feature. The kinematic relationship is captured by an instance rp1, which is an instance of RevolutePair and attached to the assembly feature association as shown in Figure 39. On the other hand, to position the sungear, parametric assembly constraints need to be assigned.
In this example, it is assumed that the sungear is positioned with respect to the output shaft. Since they are not directly connected, the classes specialized from Connection, which are used for artifacts physically connected, cannot be used to represent this relationship. Instead, the relative position and orientation between two artifacts that are not physically connected can be captured using the PositionOrientation class which is specialized from ArtifactAssociation (see po1 in Figure 39). The two artifacts in the above case do not have a direct contact, and thus the mating assembly features cannot be identified. This situation, however, may be handled by using assembly features representing the whole artifact, or dummy (null) features. In this example, we assume that the artifacts, as a whole, are the involved assembly features. They are named sunGearFeature:AF and outputShaftFeature:AF. An instance of assembly feature association representation incorporating the necessary parametric assembly constraints is shown in Figure 39.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| mc5 | Planet-gear 1 @Planet gear-carrier assembly | Gear teeth surface (teeth7:AF) | None | Gear meshing (gp1:GearPair) |
| Sungear | Gear teeth surface (teeth1:AF) | |||
| mc6 | Planet-gear 2 @Planet gear-carrier assembly | Gear teeth surface (teeth9:AF) | None | Gear meshing (gp2:GearPair) |
| Sungear | Gear teeth surface (teeth2:AF) | |||
| mc7 | Planet-gear 3 @Planet gear-carrier assembly | Gear teeth surface (teeth11:AF) | None | Gear meshing (gp3:GearPair) |
| Sungear | Gear teeth surface (teeth3:AF) | |||
| po1 | Output shaft @Planet carrier assembly @Planet gear-carrier assembly | Whole part (outputShaftFeature:AF) | Coaxial Parallel Angle with dimension | N/A |
| Sungear | Whole part (sunGearFeature: AF) | |||
| mc8 | Sungear | Input shaft surface (inputShaft:AF) | None | Relative rotation (rp1:RevolutePair) |
Table 7: Assembly Relationships Between Sungear and Planet Gear-Carrier Assembly
Figure 39: Sungear and Planet Gear-Carrier Assembly-Instance Diagram
Next, let us consider the planet gear-carrier assembly and ring gear assembly shown in Figure 40. The ring gear is meshed with the three planet gears of the planet gear-carrier assembly.
Figure 40: Ring Gear Assembly and Planet Gear-Carrier Assembly
The assembly relationships are shown in Table 8, and Figure 41 illustrates the instance diagram of the assembly. The artifact associations are very similar with those of the previous sungear and the planet gear-carrier assembly. As in the previous example, three artifact associations mc9, mc10, and mc11 are instances of MovableConnection, and gp4, gp5, and gp6 are instances of GearPair.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| mc9 | Planet-gear 1 @Planet gear-carrier assembly | Gear teeth surface (teeth8:AF) | None | Gear meshing (gp4:GearPair) |
| Ring gear @Ring gear assembly | Gear teeth surface (teeth4:AF) | |||
| mc10 | Planet-gear 2 @Planet gear-carrier assembly | Gear teeth surface (teeth10:AF) | None | Gear meshing (gp5:GearPair) |
| Ring gear @Ring gear assembly | Gear teeth surface (teeth5:AF) | |||
| mc11 | Planet-gear 3 @Planet gear-carrier assembly | Gear teeth surface (teeth12:AF) | None | Gear meshing (gp6:GearPair) |
| Ring gear @Ring gear assembly | Gear teeth surface (teeth6:AF) |
Table 8: Assembly Relationships Between Ring Gear Assembly and Planet Gear-Carrier Assembly
43. Second, there is another fixed connection, fc10, which represents the fastening relationship by four screws. It involves six artifacts: output housing, ring gear, and four screws. In addition, it has four assembly feature associations, each of which relates the assembly features, as shown in Figure 43.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| fc10 | Ring-gear pin1 @Ring gear assembly | Inserted portion of pin surface (pinCylinder9:AF) | Coaxial Coaxial Parallel | No relative motion |
| Ring-gear pin2 @Ring gear assembly | Inserted portion of pin surface (pinCylinder10:AF) | |||
| Output housing @Output housing assembly | Two pin-hole surfaces (pinHole9~10:AF) | |||
| fc11 | Output housing @Output housing assembly | Four through holes (thruHole1~4:AF) | Coaxial Angle with dimension | No relative motion |
| Ring gear @Ring gear assembly | Four threaded holes (threadedHole1~4:AF) | Parallel (for each screw) | ||
| Screw1 - Screw4 | Four thread shanks of screws (thread1~4:AF) |
Table 9: Assembly Relationships Between Output Housing Assembly, Ring Gear Assembly, and Screws
Finally, consider the input housing and ring gear assembly shown in Figure 44. The input housing is assembled with the ring gear assembly. Four screws are used to fasten the input housing into the ring gear assembly
Figure 43: Output Housing Assembly, Ring Gear Assembly, and Screws-Instance Diagram
Figure 44: Input Housing, Ring Gear Assembly, and Screws
Table 10 lists the assembly relationships. Figure 45 shows the instance diagram. The fixed connection fc11 represents the assembly relationships between the input housing and the ring gear of the ring gear assembly. The assembly feature association attached to fc11 defines the parametric assembly constraints to position the input housing with respect to the ring gear. The fixed connection fc12 has a similar structure to that of fc10 as explained previously. It represents the fastening of the input housing and ring gear assembly by four screws.
| Artifact associations | Artifacts | Assembly features | Assembly constraints | Kinematic relationships |
|---|---|---|---|---|
| fc12 | Ring gear @Ring gear assembly | Input-housing side of ring gear surface (ringGearSide:AF) | Coaxial Coaxial Parallel | No relative motion |
| Input housing | Stepped side (steppedSide:AF) | |||
| fc13 | Ring gear @Ring gear assembly | Four threaded holes (threadedHole1~4:AF) | Coaxial Angle with dimension Parallel (for each screw) | No relative motion |
| Input housing | Four through holes (thruHole5~8:AF) | |||
| Screw5 – Screw8 | Four thread shanks of screws (thread5~6:AF) |
Table 10: Assembly Relationships Between Input Housing, Ring Gear Assembly, and Screws
11.4. 4.4 Kinematic Information Representation
Figure 46 shows the kinematic diagram of the planetary gear system, where only the parts (kinematic links) involved in motion (or force) transmission are illustrated. The input motion is transmitted into the sungear through the input shaft that is part of the sungear. Three planet gears are meshed with the sungear, and with the fixed ring gear. The planet carrier assembly (i.e. output shaft + planet-gear pins) holds the three planet gears and rotates with the output shaft that is part of the planet carrier. The output shaft is connected with a bearing. For the input shaft, we assume that it is sustained by an unknown support (or ground).
Figure 46: Kinematic Diagram of Planetary Gear System
Table 11 shows the kinematic pairs and the associated parts that are identified from the planetary gear system. For convenience, numbers are used to distinguish the three planet gears and the kinematic pairs of the same type. As shown in Table 11, two types of kinematic pairs (GearPair and RevolutePair) are used in the planetary gear system.
| Kinematic Pairs | Associated Parts |
|---|---|
| Revolute Pair 1 | Unknown Support – Sun gear (Input Shaft) |
| Gear Pair 1 | Sun gear – Planet Gear 1 |
| Gear Pair 2 | Sun gear – Planet Gear 2 |
| Gear Pair 3 | Sun gear – Planet Gear 3 |
| Gear Pair 4 | Planet Gear 1 – Ring Gear |
| Gear Pair 5 | Planet Gear 2 – Ring Gear |
| Gear Pair 6 | Planet Gear 3 – Ring Gear |
| Revolute Pair 2 | Planet Gear 1 – Planet Carrier |
| Revolute Pair 3 | Planet Gear 2 – Planet Carrier |
| Revolute Pair 4 | Planet Gear 3 – Planet Carrier |
| Revolute Pair 5 | Planet Carrier – Bearing |
Table 11: Kinematic Pairs and Associated Parts (Links) of Planet Gear System
Before proceeding further with the foregoing example, we should first assign necessary frames to each link (part) of the gear system. In general, two coordinate systems, or frames, are needed to describe the kinematic behavior of any kinematic pair, each attached to a link of the pair. Considering that a binary link is associated with two kinematic pairs (one with the preceding link and the other with the following link), there are two frames associated with a link. If any link has more kinematic pairs than two, as many frames are necessary as the number of involved kinematic pairs.
The assignment of frames is actually arbitrary and depends on individual applications. In this example, assume that the necessary frames are assigned as shown in Figure 47. Figure 47(a) and (b) are depicted from positive and axes, respectively. Each view shows each of the two kinematic loops of the mechanism, and includes the links involved in each loop. Since the mechanisms in the planetary gear system are planar mechanisms, and the coordinate systems need not be attached directly to each link, the coordinate systems can be thought of as being on any one plane in this example.
Figure 47 (a) and (b) illustrate the coordinate systems assigned to kinematic pairs in a planetary gear system. The diagram is divided into two main sections, (a) and (b), each showing a different view of the mechanism.
Section (a): View from positive axis.
- Support: A fixed frame with axes and .
- Sun Gear: A frame with axes and , and a velocity vector .
- Planet Gear: A frame with axes and , and a velocity vector .
- Ring Gear: A frame with axes and , and a velocity vector .
Section (b): View from positive axis.
- Bearing: A frame with axes and , and a velocity vector .
- Planet Carrier: A frame with axes and , and a velocity vector .
- Planet Gear: A frame with axes and , and a velocity vector .
- Ring Gear: A frame with axes and , and a velocity vector .
The diagram also shows the kinematic loops and the assignment of frames to the kinematic pairs. The frames are labeled with and the velocity vectors are labeled with .
Figure 47 (a), (b): Coordinate Systems Assigned To Kinematic Pairs
Table 12 shows the frames and the pair variables of each kinematic pair of the planetary gear system. The frame is attached to the preceding link of the pair, and to the following link. A pair variable is a variable parameter of the SU-parameters (see
Appendix A and Reference [18]) defining a kinematic pair. Except the pair variable, other parameters have fixed values. For a revolute pair, the pair variable is defined by the angle between and . In the case of a gear pair, the pair variable is given by the angle from to a common perpendicular between the two frames involved. In Table 12, only one planet gear (Planet Gear 1) and its associated pairs are assigned the necessary coordinate systems for brevity as the three planetary gear are configured symmetrically in space and they play a similar role in the mechanism. The frames associated with the other planet gears are therefore not presented specifically and just denoted as ‘...’ in Table 12. In fact, they are not necessary for the analysis of the gear system due to the symmetry.
| Kinematic Pairs | Associated Parts | Frames | Pair Variables |
|---|---|---|---|
| Revolute Pair 1 | Unknown Support – Sun gear (Input Shaft) | ||
| Gear Pair 1 | Sun gear – Planet Gear 1 | ||
| Gear Pair 2 | Sun gear – Planet Gear 2 | ... | ... |
| Gear Pair 3 | Sun gear – Planet Gear 3 | ... | ... |
| Gear Pair 4 | Planet Gear 1 – Ring Gear | ||
| Gear Pair 5 | Planet Gear 2 – Ring Gear | ... | ... |
| Gear Pair 6 | Planet Gear 3 – Ring Gear | ... | ... |
| Revolute Pair 2 | Planet Carrier – Planet Gear 1 | ||
| Revolute Pair 3 | Planet Carrier – Planet Gear 2 | ... | ... |
| Revolute Pair 4 | Planet Carrier – Planet Gear 3 | ... | ... |
| Revolute Pair 5 | Bearing – Planet Carrier |
Table 12: Frames of Each Kinematic Pair
The total number of associated frames on a link depends on the type and usage of the link, as shown in Table 13. The frame is related with the preceding pair of a link (in conjunction with the previous link), and with the following pair (in conjunction with the following link). The unknown support and bearing in Table 13 contains only one frame . These parts are assumed grounded (fixed) links. Hence, they have no associated links preceding them, and thus frame is not necessary for them. The sun gear, ring gear, and planet carrier will in fact have more frames since they are connected to three planet gears. That is, they are quaternary links and will have four frames in all. However, their configuration in this example is symmetric and thus the frames of the other pairs are left out for brevity. In the case of the ring gear, there are three frames listed. The frame pair and is used in the first loop (Figure 47(a)), and frame pair and in the second loop (Figure 47(b)). The frames and represent the same ground frames to which the ring gear is fixed. The reason that two different frames are introduced is for convenience in assigning the frames. We can use the same frame for the ground, if necessary. The planet gears are ternary links. They are respectively connected to sungear, ring gear, and planet carrier, respectively. Thus, there exist three frames for a planet gear, as shown in Table 13.
| Parts | Frames |
|---|---|
| Unknown Support (Ground) | |
| Sungear | |
| Planet Gear 1 (2, or 3) | |
| Ring Gear | |
| Planet Carrier | |
| Bearing (Ground) |
Table 13: Frames Associated with Each Link (Part)
In the previous subsection 4.3.5, the kinematic pairs were illustrated in the instance diagrams of the planetary gear assembly. To demonstrate the kinematic relationships in more detail, another instance diagram is depicted in Figure 48. When the instances are of the same class, only the first occurrence of them is denoted with the class name. This diagram includes all the parts or assemblies, and other information that are related to the kinematics of the planetary gear system. Notice in Figure 48 that the three planet gear pins and the output shaft are attached by fixed connections (see Section 4.3.3). Thus they are considered to be one rigid body (we name it planet carrier) for the purpose of kinematic analysis in this section.
The first row in Figure 48 shows the individual parts or assemblies (instances of Part or Assembly) that take part in the kinematic relationship. Each part (or assembly) has its own assembly features that are defined to represent the shape aspects of the kinematic pairs. A cylinder/hole-type pair can be defined as assembly features for a revolute pair, and a teeth/teeth-type pair for a gear pair. For example, there are four assembly features for the sungear (ss: cylinder type; , , and : teeth type). The cylinder type is used to represent the revolute pair with the unknown support, and the three teeth types are respectively used to represent the gear pairs with the three planet gears around the sungear.
The assembly feature association captures the topological relationship of kinematic pairs
ss:shaftShank t:teeth ph:pinhole pc:pinCylinder bs:bearingSeat ir:innerRace
AF:Assembly Feature AFA:Assembly Feature Association AFAR:Assembly Feature Association Representation
Figure 48: Instance Diagram of Planetary Gear System
(AFAs in Figure 48). First, it associates two (or more when necessary) assembly features that take part in an assembly relationship (specifically, kinematic relationship). By consulting the ownership of an assembly feature, it can finally specify the links (parts) that take part in the relationship. For example, the second instance of assembly feature association in Figure 48 relates assembly features and to represent the gear-pair relationship between the sun gear and the mating planet gear (planetGear1). Second, it refers to an assembly feature association representation (AFAR in Figure 48), which describes the details of the relationship. In this kinematic example, the relationship to be represented is a kinematic pair (GearPair or RevolutePair). For instance, the second instance of assembly feature association in Figure 48 is associated with assembly feature association representation, by which the kinematic pair gp1:GearPair is associated (see Figure 48).
The kinematic pairs (instances of GearPair and RevolutePair in Figure 48) contain their specific kinematic information (constraints of the pair) to describe their own behavior. For example, the instance diagram about rp1:RevolutePair (unknown support – sun gear pair) in Figure 48 is illustrated in detail in Figure 49. An instance of RevolutePairRange specifies the lower and upper bounds of the rp1:RevolutePair. The current value of the pair variable is specified by an instance of RevolutePairValue. The two frames required for this revolute pair are provided by two instances of PairFrame. Typically, the pair variable is measured by the angle from to , as shown in Figure 47(a).
classDiagram
class RP1_RevolutePair {
}
class RevolutePairRange {
lower_bound = "no limit"
upper_bound = "no limit"
}
class RevolutePairValue {
rotation_angle = "θ1"
}
class PairFrame1 {
frame = "{x1y1z1}"
}
class PairFrame2 {
frame = "{u1v1w1}"
}
RP1_RevolutePair --> RevolutePairRange : allowable_range
RP1_RevolutePair --> RevolutePairValue : current_configuration
RP1_RevolutePair --> PairFrame1 : frame 1
RP1_RevolutePair --> PairFrame2 : frame 2
The diagram shows an instance rp1:RevolutePair connected to four other instances. It has an allowable_range relationship with :RevolutePairRange (which has lower_bound = "no limit" and upper_bound = "no limit"). It has a current_configuration relationship with :RevolutePairValue (which has rotation_angle = "θ1"). It is associated with two frames: frame 1 (labeled :PairFrame with frame = "{x1y1z1}") and frame 2 (labeled :PairFrame with frame = "{u1v1w1}").
Figure 49: Instance Diagram of RevolutePair (RP1: RevolutePair)
As another example, the instance diagram for gp1:GearPair is shown in Figure 50. The gp1:GearPair contains some key geometric information of the gears such as radii, gear ratio, bevel and helical angles (number 1 denotes the first link, and number 2 the second). Such information is necessary when deriving the kinematic equation of the gear pair. An instance of GearPairRange sets limits on the range of gears' rotation angle. The current rotation angle of the first gear is specified by of an instance of GearPairValue; the rotation angle of the second gear can be derived from the rotation angle of the first gear by multiplying it with the gear ratio.
Instance diagrams for the other kinematic pairs can also be drawn in a similar manner. As mentioned earlier, gp2 and gp3 will have the same structure as gp1 since they are symmetrically configured with gp1. The gear-pair instances gp4, gp5, and gp6 will also have similar instance diagram to that of gp1 (see Figure 50), except that they are internal gearing: their gear ratios are negative values. For other revolute pairs rp2, rp3, rp4, and rp5, instance diagram similar to that of rp1 (see Figure 49) can be depicted.
classDiagram
class GP1_GearPair {
radius_1 = "0.438"
radius_2 = "0.406"
gear_ratio = "1.079"
bevel_angle = "0"
helical_angle = "0"
}
class GearPairRange {
lower_bound_1 = "no limit"
upper_bound_1 = "no limit"
}
class GearPairValue {
rotation_angle_1 = "θ2"
}
class PairFrame1 {
frame = "{x2y2z2}"
}
class PairFrame2 {
frame = "{u2v2w2}"
}
GP1_GearPair --> GearPairRange : allowable_range
GP1_GearPair --> GearPairValue : current_configuration
GP1_GearPair --> PairFrame1 : frame 1
GP1_GearPair --> PairFrame2 : frame 2
The diagram shows an instance gp1:GearPair with attributes: radius_1 = "0.438", radius_2 = "0.406", gear_ratio = "1.079", bevel_angle = "0", and helical_angle = "0". It is connected to :GearPairRange (with lower_bound_1 = "no limit" and upper_bound_1 = "no limit") via allowable_range, and to :GearPairValue (with rotation_angle_1 = "θ2") via current_configuration. It is also associated with frame 1 (labeled :PairFrame with frame = "{x2y2z2}") and frame 2 (labeled :PairFrame with frame = "{u2v2w2}").
Figure 50: Instance Diagram of GearPair (GP1: GearPair)
11.5. 4.5 Tolerance Chains In The Planetary Gear System Design
Tolerance chains are important in a product assembly. The chains are used in the analysis for assembleability and functions such as clearance, tightness, smooth motion, and flow rate. This subsection describes the modeling of tolerance chains. Two specific tolerance chains are found in the planetary gear system assembly. The first one is in the axial direction. Three tolerances are in this chain. They are all defined on the part of the sungear and the input shaft. This chain of the tolerances determines the magnitude of clearance or interference between the Surface B of the sungear and the Surface A on the planetary gear holder, as shown in Figure 51. (Note that Surface B is the end surface of the sungear). Figure 52 shows the chain of the three dimensions and the associated tolerances: on the sungear, on the shank, and on the connector. The total allowable variation of the sungear's length is, therefore, . These three dimensional tolerances can be represented using objects derived from the DimensionalTolerance class described in Section 3.11. Note that not all the dimensions of this part are shown in Figure 52. Only those dimensions related to the tolerance chain are shown.
The diagram shows an exploded view of a planetary gear assembly. On the left is a blue cylindrical component labeled 'Surface A' with two blue pins extending from its center. In the middle is a tan-colored ring-like component labeled 'Surface B' with four mounting holes. To the right of the ring are two purple cylindrical pins and an orange cylindrical component. Arrows point from the labels 'Surface A' and 'Surface B' to their respective parts.
Figure 51: The assembly relationship between the sungear and the planetary gear holder
Figure 52 shows an engineering drawing of the sungear. The tolerance instance diagram (Figure 53) shows how the tolerances are represented using UML as discussed in Section 3.11. Figure 53 shows an integrated view of the part, its tolerances, and the assembly features.
In addition to dimensional tolerances, geometric tolerances are also used to control three features of this part. The end surface (Surface B) has two tolerances: a perpendicularity tolerance and a flatness tolerance. Both are for the control of geometric variation of Surface B. The perpendicularity tolerance is used to control the wobbling motion of the surface while the gear is rotating around the datum axis (Datum A1). The flatness tolerance is used to control the proper clearance between Surface B and Surface A on the planetary gear holder. A cylindricity tolerance is applied to the surface of the shank. It is used to control the form variation of the surface. These three tolerances are form tolerances. A fourth tolerance is the coaxiality tolerance. The coaxiality of the connector is controlled by a position tolerance. The detail of coaxiality tolerancing can be found in the dimensioning and tolerancing standard [19]. The three form tolerances are instances of PerpendicularityTolerance, FlatnessTolerance, and CylindricityTolerance classes respectively, described in Section 3.11.1. The position tolerance is an instance of the PositionTolerance class described in Section 3.11.3.
Figure 52: Sun gear Tolerances
classDiagram
class endSurface1_OF["endSurface1:OF"]
class perpTol1_PerpendicularityTolerance["perpTol1:PerpendicularityTolerance"]
class datumAxis1_Datum["datumAxis1:Datum"]
class flatTol1_FlatnessTolerance["flatTol1:FlatnessTolerance"]
class shank_OF["shank:OF"]
class cylTol1_CylindricityTolerance["cylTol1:CylindricityTolerance"]
class inputShaft_OF["inputShaft:OF"]
class posTol_PositionTolerance["posTol:PositionTolerance"]
endSurface1_OF -- perpTol1_PerpendicularityTolerance : tolerated by
endSurface1_OF -- flatTol1_FlatnessTolerance : tolerated by
shank_OF -- cylTol1_CylindricityTolerance : tolerated by
inputShaft_OF -- posTol_PositionTolerance
perpTol1_PerpendicularityTolerance -- datumAxis1_Datum : reference to
posTol_PositionTolerance -- datumAxis1_Datum : reference to
class perpTol1_PerpendicularityTolerance {
tolerance_zone = "0.05"
...
}
class datumAxis1_Datum {
name = "A1"
type = "axis"
}
class flatTol1_FlatnessTolerance {
tolerance_zone = "0.05"
}
class cylTol1_CylindricityTolerance {
tolerance_zone = "0.1"
}
class posTol_PositionTolerance {
tolerance_zone = "0.05"
MC = "MMC"
...
}
OF: OAMFeature
MMC: maximum material condition
MC: Material Condition
Figure 53: Tolerance Instance Diagram
The second tolerance chain is in the radial direction of the planetary gear system. This chain includes three parts: the sun gear, the planetary gears, and the ring gear. This chain starts from the axis of the sun gear. The pitch diameter of the gear is , as shown in Figure 52.
The second set next to the sun gear in the tolerance chain is the set of three planetary gears. Figure 56 shows the engineering drawing of a planetary gear. The tolerance instance diagram (Figure 55) shows how the tolerances are represented using UML. Figure 57 shows an integrated view of the part, its tolerances, and the assembly features. Table 14 tabulates the features, tolerances, and control frames with the artifact association.
Figure 54 Sungear Part Instance Diagram
The pitch diameter of the planetary gear is . The planetary gears have the same tolerance and are assembled with the sungear in the radial direction. There is a form tolerance applied to the planetary gear. A cylindricity tolerance of controls the inner cylindrical surface of the gear. It is used to ensure a tight fit of the gear and the pin, as shown in Figure 51.
| Features | Tolerances | Feature Control Frames or dimensional tolerance | Artifact Association |
|---|---|---|---|
| Axis (Datum A1) (axis1:DatumFeature) | None | None | None |
| End surface (endSurface:OF) | Perpendicularity tolerance | (perpTol:PerpendicularityTolerance) | None |
| Flatness tolerance | (flatTol:FlatnessTolerance) | ||
| Dimensional tolerance | (dimTol1:DimensionalTolerance) | ||
| sungear teeth (sunGearTeeth:OF) | Dimensional tolerance | (dimTol2:DimensionalTolerance) | None |
| Shank (shank:OF) | Cylindricity tolerance | (cylTol1:CylindricityTolerance) | None |
| Dimensional tolerance | (dimTol3:DimensionalTolerance) | ||
| Dimensional tolerance | (dimTol4:DimensionalTolerance) | ||
| Input shaft* (inputShaft:AF) | Position tolerance | (posTol1:PositionTolerance) | mc8 |
| Dimensional tolerance | (dimTol5:DimensionalTolerance) |
Table 14: Tolerance Table For The Sungear
(The features postfixed with * are the assembly features that have been used to represent the assembly relationships in previous sections. Their associated artifacts are also shown in the table.)
graph LR
A["pinHole6:AF"] -- toleranced_by --> B["cylTol2:CylindricityTolerance
tolerance_zone = "0.02"
..."]
Figure 55: Tolerance Instance Diagram
Figure 56: Planetary Gear Tolerances
Figure 57: Planetary Gear Part Instance Diagram
| Features | Tolerances | Feature Control Frames | Artifact Association |
|---|---|---|---|
| Gear journal hole surfaces* (pinHole6:AF) | Cylindricity tolerance | (cylTol2:CylindricityTolerance) | mc1~3 |
| Dimensional tolerance | () (dimTol6:DimensionalTolerance) | ||
| Gear cylinder (gearCylinder1:OF) | Dimensional tolerance | (12.70) (dimTol7:DimensionalTolerance) | None |
| Dimensional tolerance | () (dimTol8:DimensionalTolerance) |
(Planet gears 2, 3 also have similar tolerances to those of planet gear 1.)
Table 15: Tolerance Table For A Planetary Gear
The third part in the chain is the ring gear, which is assembled with the planetary gears. The pitch diameter of the ring gear is 42.62 mm mm. Figure 58 shows the engineering design of the ring gear. The tolerance instance diagram (Figure 59) shows how the tolerances are represented using the UML model discussed in Section 3.11.
Figure 60 shows an integrated view of the part, its tolerances, and the assembly features. Table 16 tabulates the features, tolerances, and control frames with the artifact association.
With the dimensional tolerance on the pitch circle of a planetary gear shown in Figure 56 and the dimensional tolerance on the pitch diameter of the sun gear, tolerance analysis can be performed in this chain. Examples are clearance or interference of this set of gears. In addition to dimensional tolerances, there is a geometric tolerance on the part. A parallelism tolerance is applied to a surface of the shape of a ring where the ring gear and the output housing meet. Within a tolerance of 0.05 mm, the surface has to be parallel to Datum A3, which is established from the bottom surface of the ring gear. The bottom surface meets with the input housing. This tolerance is to ensure that in the input housing, the ring gear and the output housing are properly aligned along the rotating axes of the gears.
Figure 58: Ring Gear Tolerances
graph LR
A["rimSurface:OF"] -- toleranced_by --> B["prlTol:ParallelismTolerance
tolerance_zone = \"0.05\""]
B -- reference_to --> C["datumPlane1:Datum
name = \"A3\"
type = \"plane\""]
Figure 59: Tolerance Instance Diagram
The chain starts from the axis of the planetary gear system, the same as the axis of the sun gear. The radius of the sun gear is 11.125 mm and the radial tolerance is, therefore, mm. The diameter of a planetary gear is 10.16 mm, and its dimensional tolerance is mm. In the case that both gears are first assembled together, the combined nominal dimension is 21.285 mm (11.125 mm + 10.16 mm), and the combined tolerance is mm (0.015 mm + 0.01 mm). The nominal radius of the ring gear is 21.31 mm, and the radial tolerance is mm.
When all three types of gears are assembled, they can be in an extreme tight situation, an extreme loose situation, or any situation in between. In the extreme tight situation, the ring gear radius will be 21.30 mm (21.31 mm – 0.01 mm), and the stack-up is 21.31 mm (21.285 mm + 0.025 mm). In this case, the interference is 0.01 mm. However, in the extreme loose situation, the ring gear radius will be 21.32 mm (21.31 mm + 0.01 mm), and the stack-up will be 21.26 mm (21.285 mm – 0.025 mm). There will be a 0.055 mm clearance among these three kinds of gears.
Figure 60: Ring gear part instance diagram
| Features | Tolerances | Feature Control Frames | Artifact Association | |||
|---|---|---|---|---|---|---|
| Plane (Datum A3) (plane1:DatumFeature) | None | None | None | |||
| Outer rim surface of boss (rimSurface:OF) | Parallelism tolerance |
(prlTol1:ParallelismTolerance) | None | |||
| Inner gear teeth hole (gearTeethHole:OF) | Dimensional tolerance | () (dimTol9:DimensionalTolerance) | None | |||
| Two pinhole surfaces* (pinHole1~2: AF) | Dimensional tolerance | () (dimTol10:DimensionalTolerance) | fc5, fc6 |
Table 16: Tolerance table for the ring gear
11.6. 4.6 Geometric Tolerances In The Planetary Gear System Design
This section describes geometric tolerances in the design. The geometric tolerances are on the three parts: the planetary gear holder, the output housing, and the input housing. Figure 62, Figure 65, and Figure 68 show the drawings of these three parts. Note that not all the dimensions are shown in the drawings. The shown dimensions are primarily applied to assembly and tolerances. Others are shown for showing the proportion of a feature relative to the entire part. Figure 62 shows the engineering drawing of the planetary gear holder. The tolerance instance diagram (Figure 63) shows how the tolerances are represented using the UML model discussed in Section 3.11. Figure 64 shows an integrated view of the part, its tolerances, and the assembly features. Table 17 tabulates the features, tolerances, and control frames with the artifact association.
All the dimensions in this design are with a default tolerance of 0.05 mm, represented by objects derived from the dimensional tolerance class. Datum axis A is the rotating axis and can be presented using an object derived from the Datum class defined in Section 3.11. In addition to the datum, three geometric tolerances exist on the drawing. Two geometric tolerances are applied to the end surface adjacent to planetary gears. Since the surface provides support to hold gears, both the instances of PerpendicularityTolerance and FlatnessTolerance are applied. The perpendicular tolerance makes a reference to Datum A. The third tolerance is an instance of TotalRunoutTolerance. It is applied to the output shaft with the tolerance value of 0.1 mm. The runout is with respect to Datum A, the shaft/gear axis, to minimize wobbling motion while the shaft is rotating. A surface profile tolerance is applied to the curved surface of the key way. It is used to ensure the key and the shaft that are tightly fit together.
Figure 65 shows the engineering drawing of the input housing. Figure 66 is the tolerance instance diagram, which shows how the tolerances are represented using the UML model discussed in Section 3.11. Figure 67 shows an integrated view of the part, its tolerances, and the assembly features. Table 18 tabulates the features, tolerances, and control frames with the artifact association.
The dimension of the 25.53 mm hole has a statistical tolerance. The statistical tolerance can be represented by an object instantiated from the StatisticalControl class in Section 3.11. The mean and standard deviation can be captured using the class described in Section 3.11.6. The variation of the diameter of the counter-bored hole is also statistically controlled, but the depth of the hole is not because it is not a critical dimension. Datum A to be established from the bottom surface is shown in the front view. Datums B and C are shown in the bottom view of the input housing. One position tolerance is applied to a pattern of four holes, each with a counter-bored hole. The position is measured in a reference to a coordinate system established by Datums A, B, and C. The tolerance is in the condition of the regardless of feature size. Another position tolerance is similarly applied to another pattern of four 5.39 mm holes. The positions of these holes are critical in assembly because the input housing and the ring gear have to be properly aligned and, then, assembled
Planetary gear system
Rotational
| Feature | Tolerance Value | Feature Control Symbol |
|---|---|---|
| Sun gear Radius | Position (M) | |
| Planetary Gear Nominal Diameter | Position (M) | |
| Sun gear and Planetary Gear | Position (M) | |
| Ring Gear Nominal Radius | Position (M) |
Figure 61: Geometric Tolerances In The Planetary Gear System Design
Figure 62: Planetary Gear Holder Tolerances
graph LR
endSurface2[endSurface2:OF] -- tolerated_by --> perpTol2[perpTol2:PerpendicularityTolerance
tolerance_zone = "0.03"
...]
endSurface2 -- tolerated_by --> flatTol2[flatTol2:FlatnessTolerance
tolerance_zone = "0.06"
...]
outputShaftShank[outputShaftShank:OF] -- tolerated_by --> totRunTol1[totRunTol1:TotalRunoutTolerance
tolerance_zone = "0.1"
...]
keyway[keyway:OF] -- tolerated_by --> profSurfTol1[profSurfTol1:ProfileSurfaceTolerance
tolerance_zone = "0.1"
...]
perpTol2 -- reference_to --> datumAxis2[datumAxis2:Datum
name = "A"
type = "axis"]
totRunTol1 -- reference_to --> datumAxis2
profSurfTol1 -- reference_to --> datumAxis2
Figure 63: Tolerance Instance Diagram
Figure 64: Planetary Gear Holder Part Instance Diagram
| Features | Tolerances | Feature Control Frames | Artifact Association |
|---|---|---|---|
| Bottom plane of mounting plate (Datum A) (plane2:DatumFeature) | None | None | None |
| Side plane of mounting plate (Datum B) (plane3:DatumFeature) | None | None | None |
| Side plane of mounting plate (Datum C) (plane4:DatumFeature) | None | None | None |
| Four through holes* (thruHole5~8:AF) | Position tolerance | (posTol2:PositionTolerance) | fc13 |
| Four mounting holes (mountingHole1~4:OF) | Position tolerance | (posTol2:PositionTolerance) | None |
| Shaft hole (ShaftHole:OF) | Dimensional tolerance | (dimTol11:DimensionalTolerance) | None |
| Counterbore hole (CounterboreHole:OF) | Dimensional tolerance | (ST) (dimTol12:DimensionalTolerance) | None |
Table 17: Tolerance Table For The Planetary Gear Holder
Technical drawing of an input housing showing various views and tolerances:
- Top View: Shows a square flange with a central circular feature. Dimensions include 57.15 SQ. and 4.76. Tolerances are indicated as A B C.
- Bottom View: Shows the underside of the housing with dimensions 27.89, 6.35, and 0.89. A feature is labeled A.
- Section View (C-C): Shows a cross-section of the housing with dimensions (ST), (ST), , and 6.35 Deep. A feature is labeled C-C.
- Isometric View: Shows the 3D shape of the housing.
- Feature Callouts:
- 4X THRU HOLE COUNTERBORE 9.53 Deep. Equally Spaced on) B.C. A B C
- 4 X THRU HOLE A B C
Figure 65: Input Housing Tolerances
Tolerance Instance Diagram showing the relationship between features and datums:
- thruHole5:AF is toleranced_by posTol2:PositionTolerance.
- mountingHole1:OF is toleranced_by posTol2:PositionTolerance.
- posTol2:PositionTolerance has the following properties:
- tolerance_zone = ""
- tolerance_zone_modifier = "RFS"
- ...
- posTol2:PositionTolerance reference_to three datums:
- datumPlane2:Datum (name = "A", type = "plane")
- datumPlane3:Datum (name = "B", type = "plane")
- datumPlane4:Datum (name = "C", type = "plane")
RFS: Regardless of Feature Size
Figure 66: Tolerance Instance Diagram
classDiagram
class inputHousingPart["inputHousing:Part"]
class shaftHoleOF["shaftHole:OF"]
class counterboreHoleOF["counterboreHole:OF"]
class plane4DatumFeature["plane4:DatumFeature"]
class plane3DatumFeature["plane3:DatumFeature"]
class plane2DatumFeature["plane2:DatumFeature"]
class thruHole5AF["thruHole5:AF"]
class thruHole6AF["thruHole6:AF"]
class thruHole7AF["thruHole7:AF"]
class thruHole8AF["thruHole8:AF"]
class mountingHole1OF["mountingHole1:OF"]
class mountingHole2OF["mountingHole2:OF"]
class mountingHole3OF["mountingHole3:OF"]
class mountingHole4OF["mountingHole4:OF"]
class dimTol11["dimTol11: DimensionalTolerance"]
class dimTol12["dimTol12: DimensionalTolerance"]
class regCtrl1["regCtrl1:RegularControl"]
class posTol2["posTol2:PositionTolerance"]
class datumPlane2Datum["datumPlane2:Datum"]
class datumPlane3Datum["datumPlane3:Datum"]
class datumPlane4Datum["datumPlane4:Datum"]
inputHousingPart --> shaftHoleOF : feature
inputHousingPart --> counterboreHoleOF : feature
inputHousingPart --> plane4DatumFeature : feature
inputHousingPart --> plane3DatumFeature : feature
inputHousingPart --> plane2DatumFeature : feature
inputHousingPart --> thruHole5AF : feature
inputHousingPart --> thruHole6AF : feature
inputHousingPart --> thruHole7AF : feature
inputHousingPart --> thruHole8AF : feature
inputHousingPart --> mountingHole1OF : feature
inputHousingPart --> mountingHole2OF : feature
inputHousingPart --> mountingHole3OF : feature
inputHousingPart --> mountingHole4OF : feature
shaftHoleOF --> dimTol11 : tolerance
shaftHoleOF --> regCtrl1 : statistical control
counterboreHoleOF --> dimTol12 : tolerance
mountingHole1OF --> posTol2 : tolerance
mountingHole2OF --> posTol2 : tolerance
mountingHole3OF --> posTol2 : tolerance
mountingHole4OF --> posTol2 : tolerance
plane2DatumFeature --> datumPlane2Datum : Datum feature
plane3DatumFeature --> datumPlane3Datum : Datum feature
plane4DatumFeature --> datumPlane4Datum : Datum feature
Figure 67: Input Housing Part Instance Diagram
Figure 68 shows the engineering drawing of the output housing. Figure 69 has the tolerance instance diagram, which shows how the tolerances are represented using the UML model discussed in Section 3.11. Figure 70 shows an integrated view of the part, its tolerances, and the assembly features. Table 19 tabulates the features, tolerances, and control frames with the artifact association.
In the cross-sectional view in Figure 68, the hole with a diameter of the 28.58 mm has a statistical control on the dimension and another statistical control in the position tolerance. Because this hole will contain bearings, both dimension and position have to be toleranced to ensure a tight fit. The depth of the hole is not controlled since it is not critical to the fit between this part and bearings. Datum A to be established from the bottom surface is shown in the front view. Datums B and C are shown in the bottom view of the input housing. Also, the direction and location of the cross-section is shown in this view. One position tolerance is applied to a pattern of four holes, each with the diameter of 5.38 mm. The position is measured in a reference to a coordinate system established by Datums A, B, and C. The tolerance is at the maximum material condition of the hole. Another position tolerance is applied to another pattern of four 7.19 mm holes. The tolerance is also at the maximum condition of the hole. This tolerance is statistically controlled because the positions of these holes are critical in assembly. The output housing and the ring gear have to be properly aligned and assembled. For alignment, there are two pin holes to assist the alignment. Their position is also similarly toleranced with an instance of StatisticalControl.
| Features | Tolerances | Feature Control Frames | Artifact Association |
|---|---|---|---|
| Bottom plane of mounting plate (Datum A) (plane2:DatumFeature) | None | None | None |
| Side plane of mounting plate (Datum B) (plane3:DatumFeature) | None | None | None |
| Side plane of mounting plate (Datum C) (plane4:DatumFeature) | None | None | None |
| Four through holes* (thruHole5~8:AF) | Position tolerance |
(posTol2:PositionTolerance) | fc13 |
| Four mounting holes (mountingHole1~4:OF) | Position tolerance |
(posTol2:PositionTolerance) | None |
| Shaft hole (ShaftHole:OF) | Dimensional tolerance |
(dimTol11:DimensionalTolerance) | None |
| Counterbore hole (CounterboreHole:OF) | Dimensional tolerance |
(ST) (dimTol12:DimensionalTolerance) | None |
Table 18: Tolerance Table For The Input Housing
Front View Dimensions and Tolerances:
- Top feature: , 12.7 DEEP, Equally Spaced on a B.C. Tolerance: A B C
- Bottom feature: Thru Hole. Tolerance: A B C
- Overall width:
- Overall height: 24.51
- Bottom flange thickness: 6.35
Top View Dimensions and Tolerances:
- Inner hole: Thru Hole, Counterbore, 4.67 Deep, Equally Spaced on a B.C. Tolerance: A B C
SECTION C-C Dimensions and Tolerances:
- Overall outer diameter:
- Inner bore diameter:
- Top flange thickness: 8.67
- Top flange counterbore depth: 1.52
- Internal bore depth: 12.7
- Internal bore diameter:
- Bottom flange thickness: 1.59
- Internal bore diameter at bottom: Tolerance: A B C
Figure 68: Output Housing Tolerances
The diagram illustrates the relationships between various features, tolerances, datums, and regular controls in a mechanical design. The components and their connections are as follows:
- posTol3:PositionTolerance
- tolerance_zone = "φ0.01"
- tolerance_zone_modifier = "mmc"
- ... (additional properties)
- toleranced_by: mountingHole5:AF
- reference_to: datumPlane5:Datum, datumPlane6:Datum, datumPlane7:Datum
- posTol4:PositionTolerance
- tolerance_zone = "φ0.01"
- tolerance_zone_modifier = "mmc"
- ... (additional properties)
- toleranced_by: thruHole1:AF, pinHole9:AF
- reference_to: datumPlane5:Datum, datumPlane6:Datum, datumPlane7:Datum
- Associated with: regCtrl2:RegularControl
- mean = "0.005"
- standard_deviation = "0.001"
- posTol5:PositionTolerance
- tolerance_zone = "φ0.02"
- tolerance_zone_modifier = "MMC"
- primary_datum = "A"
- secondary_datum = "B"
- tertiary_datum = "C"
- toleranced_by: bearingHole:AF
- reference_to: datumPlane5:Datum, datumPlane6:Datum, datumPlane7:Datum
- Associated with: regCtrl3:RegularControl
- mean = "0.01"
- standard_deviation = "0.003"
- Datum Objects
- datumPlane5:Datum: name = "A", type = "plane"
- datumPlane6:Datum: name = "B", type = "plane"
- datumPlane7:Datum: name = "C", type = "plane"
- Regular Control Objects
- regCtrl2:RegularControl: mean = "0.005", standard_deviation = "0.001"
- regCtrl3:RegularControl: mean = "0.01", standard_deviation = "0.003"
Relationships are indicated by lines labeled "toleranced_by" and "reference_to". The "Statistical Control" label is associated with the regular control objects.
Figure 69: Tolerance Instance Diagram
The diagram illustrates the relationships between various features, artifacts, tolerances, and controls for an outputHousing:Part. The central node is outputHousing:Part, which is connected to several other nodes:
- plane5:DatumFeature, plane6:DatumFeature, and plane7:DatumFeature are connected to outputHousing:Part via datum feature relationships.
- mountingHole5:OF, mountingHole6:OF, mountingHole7:OF, and mountingHole8:OF are connected to outputHousing:Part via feature relationships.
- thruHole1:AF, thruHole2:AF, thruHole3:AF, and thruHole4:AF are connected to outputHousing:Part via feature relationships.
- bearingHole:OF, pinHole9:AF, and pinHole10:AF are connected to outputHousing:Part via feature relationships.
- posTol3: PositionTolerance, posTol5: PositionTolerance, dimTol14: DimensionalTolerance, dimTol13: DimensionalTolerance, and posTol4: PositionTolerance are connected to outputHousing:Part via tolerance relationships.
- matMMC: MaterialCondition, regCtrl3: RegularControl, regCtrl2: RegularControl, datumPlane5: Datum, datumPlane6:D datum, and datumPlane7:D datum are connected to outputHousing:Part via material condition, statistical control, and datum relationships.
The diagram shows a complex network of relationships, with many lines connecting the central outputHousing:Part to the various features, artifacts, tolerances, and controls. The relationships are labeled with terms like feature, artifact, tolerance, material condition, statistical control, and datum.
Figure 70: Output Housing Instance Diagram
Both dimensional and geometric tolerances are described in these two subsections. The tolerances can be captured by objects instantiated from the appropriate tolerance classes, specified in Section 3.11.
| Features | Tolerances | Feature Control Frames | Artifact Association |
|---|---|---|---|
| Bottom plane of mounting plate (Datum A) (plane5:DatumFeature) | None | None | None |
| Side plane of mounting plate (Datum B) (Plane6:DatumFeature) | None | None | None |
| Side plane of mounting plate (Datum C) (Plane7:DatumFeature) | None | None | None |
| Four mounting holes (mountingHole5~8:OF) | Position tolerance | (posTol3:PositionTolerance) | None |
| Four through holes* (thruHole1~4:AF) | Position tolerance | (posTol4:PositionTolerance) | fc11 |
| Two pin-hole surfaces* (pinHole9~10:AF) | Position tolerance | (posTol4:PositionTolerance) | fc10 |
| Dimensional tolerance | (dimTol13:DimensionalTolerance) | ||
| Bearing hole (bearingHole:OF) | Position tolerance | (posTol5:PositionTolerance) | None |
| Dimensional tolerance | (dimTol14:DimensionalTolerance) |
Table 19: Tolerance Table For The Output Housing
12. 5 Conclusions and Future Work
In this report, we described an object-oriented UML representation of an assembly model for electro-mechanical products representation. This model incorporates tolerance representation, kinematics, assembly relationships, and assembly features. The Open Assembly Model (OAM) described in this paper is based on the class structure of the NIST Core Product Model [4]. The classes defined in OAM, for example Assembly, inherit function, behavior, and form from the Core Product Model's Artifact class. The UML model of the Assembly is described with an example. Tolerance and kinematics analyses of this system are used to show how such an assembly model can be exploited by designers. We are planning to populate this model further and make it interoperate with various CAD and engineering analysis systems. Further we will explore the possibilities of integrating it with virtual reality systems such as VADE [12]
13. 6 Acknowledgements
The authors wish to acknowledge the valuable comments and improvements suggested by Prof. Steven Fenves. Those comments have substantially improved and shaped the report. This project is funded [in part] by NIST's Systems Integration for Manufacturing Applications (SIMA) Program. SIMA supports NIST projects applying information technologies and standards-based approaches to manufacturing software integration problems
14. 7 Disclaimer
No approval or endorsement of any commercial product by the National Institute of Standards and Technology is intended or implied. Certain commercial equipments, instruments, or materials are identified in this report in order to facilitate better understanding. Such identification does not imply recommendations or endorsement by the National Institute of Standards and Technology, nor does it imply the materials or equipment identified are necessarily the best available for the purpose.
15. 8 References
- 1. ISO TC 194/SC4, "Official TC184/SC4 Web Site," http://www.tc184-sc4.org/, 2003.
- 2. Nobuhiro Sugimura, and Akihiko Ohtaka, "ISO TC 184/SC4/WG12 N597, JNC Proposal of STEP Assembly Model for Products (June 2000).", ISO, 2000.
- 3. R.Sudarsan, Y.Narahari, U.Roy, R.D.Sriram, K.W.Lyons, and N.Pramanik, "Information Models for Design Tolerancing: from conceptual to the detail design," National Institute of Standards and Technology, Gaithersburg, MD 20899, USA, 1999.
- 4. Steven J.Fenves, " A Core Product Model For Representing Design Information," National Institute of Standards and Technology, NISTIR6736 , Gaithersburg, MD 20899, USA, 2001.
- 5. K.W.Lyons, V.N.Rajan, and R.Sreerangam, "Representations and Methodologies for Assembly Modeling," National Institute of Standards and Technology, NISTIR 6059, Gaithersburg, MD 20899, USA, 1996.
- 6. Venkat N.Rajan, Kevin W.Lyons, and Raj Sreerangam, " Assembly Representations for Capturing Mating Constraints and Component Kinematics," Proceedings of the 1997, IEEE International Symposium on Assembly and Task Planning, Marina del Rey, CA (August 1997)., 1997.
- 7. K.Lyons, S.Shooter, W.Keirouz, and P.Hart, "The Open Assembly design environment: an architecture for design agent interoperability," ASME, 1998.
- 8. G.Booch, J.Rumbaugh, and I.Jacobson, The United Modeling Language User Guide, Addison-Wesley 1997.
- 9. Kemmerer, S., "STEP: The Grand Experience, (Editor)," NIST Special Publication 939, National Institute of Standards and Technology, Gaithersburg, MD 20899, USA, 1999.
- 10. Philip R.Kennicott, "ISO TC 184/SC4: Product Data Representation and Exchange, Part: 44, Title: Industrial Automation Systems and Integration Product Data Representation and Exchange – Integrated Generic Resources: Product Structure Configuration (November 1994).," ISO , 1994.
- 11. Ram D Sriram, "Standards for the Collaborative Design Enterprise, Response to Object Management Group's (OMG) Mfg DTG RFI #4," 1999.
- 12. Connacher, H., Sankar Jayaram, and Kevin W Lyons, "Virtual assembly using virtual reality techniques ," Computer-Aided Design, Vol. 29, No. 8, 1997, pp. 575-584.
- 13. U.Roy, R.Sudarsan, R.D.Sriram, K.W.Lyons, and M.R.Duffey, "Information Architecture for Design Tolerancing: from Conceptual to the Detail Design," Proc. of DETC'99, 1999 ASME International Design Engineering Technical Conferences, Nevada, Las Vegas, USA , 1999.
- 14. MOKA. MOKA: A Framework for structuring and representing engineering knowledge . http://www.kbe.coventry.ac.uk/moka/miginfo.htm . 1999.
- 15. Whitney, D. E., and Mantripragada, R., "The Datum Flow Chain: A systematic approach to assembly design and modeling .," Proceedings of the 1998 ASME Design Engineering Technical Conferences and Computers in Engineering Conference', ASME (1998), 1998.
- 16. Heissermann, J., and Mattikalli, R., "Representing relationships in hierarchical assemblies," Proceedings of the 1998 ASME De-sign Engineering Technical Conferences and Computers in Engineering Conference', ASME (1998), 1998.
- 17. Van der Net, A.. Designing and manufacturing assemblies. 1998. Eindhoven University of Technology .
- 18. P.N.Sheth and J.J.Uicker, " A Generalized Symbolic Notation for Mechanisms," Trans.ASME Journal of Engineering for Industry, Vol. 93, No. 1, 1971, pp. 102-112.
- 19. ASME, Dimensioning and Tolerancing Y14.5M , ASME 1994.
16. Appendix A SU Parameters And Linear Transformation Matrix
The SU-parameters (Sheth-Uicker parameters; see reference [18]) mean six parameters to describe the spatial relation (position and orientation) between two coordinate systems (frames). By describing the spatial relation between the two frames, the shape of a kinematic link needed for kinematic analysis can be defined. In fact, the exact geometry of the link is not required.
Figure A-1: Definition of SU-Parameters
Figure A-1 shows the SU-parameters defined for Link B. The frame is established at the beginning end of the link in a kinematic loop, and frame at the following end. To define the parameters, the common perpendicular is found first between two axes and . The vector in Figure A-1 shows the common perpendicular found. Then the six parameters are defined with the following conventions.
= distance from to along .
= angle from to along the counterclockwise direction about .
= distance from the common perpendicular to the origin of along .
= angle from to along the counterclockwise direction about .
= distance from the origin of to the common perpendicular along .
= angle from to along the counterclockwise direction about .
Once the SU-parameters are defined between two frames, we can derive the linear transformation matrix as follows:
The SU parameters for a kinematic pair can also be defined in a similar manner. The difference is that there is one variable parameter among the six parameters. This variable is called pair variable. Due to the pair variable, the final linear transformation matrix will also have variable elements. In Figure A-1, the link A and B forms a revolute pair. The SU-parameters between frame and can be derived using the same convention mentioned previously. One of the parameters and may be the pair variable , as shown in Figure A-1.
17. Appendix B Derivation Of Kinematic Equations Of Planetary Gear System
To derive the kinematic equation of the planetary gear system in Figure 46, we should first obtain the matrix equation of each loop. To this end, the constant shape matrix and variable pair matrix should first be obtained.
The constant shape matrix refers to the linear transformation matrix between two coordinate systems (frames) of the rigid link. To derive the transformation matrix, six SU-parameters are first determined (they are constants for a rigid link). Once the SU-parameters are obtained, the linear transformation matrix can be derived straightforward. The variable pair matrix describes the linear transformation of a kinematic pair: i.e., the motion of the joint. It can be derived in the same way as the constant shape matrix, except that it contains variable elements originating from its pair variable. Details of the notion of SU-parameters and derivation of the corresponding transformation matrix for each type of kinematic pairs can be found in Reference [18].
With reference to Figure 46(a) and Table 12 the first kinematic loop and associated frames can be derived as follows:
where is a variable pair matrix, is a const shape matrix, is a pair variable, and is a gear ratio. The SU-parameters and corresponding transformation matrices are shown in Table B-1.
| Link or Pair | SU-parameters and Transformation Matrix |
|---|---|
| Revolute Pair 1 |
|
| Sungear |
| Link or Pair | SU-parameters and Transformation Matrix |
|---|---|
| Gear Pair 1 | |
| Planetary Gear | |
| Gear Pair 4 | |
| Ring Gear |
Table B-1: SU-Parameters And Transformation Matrices Of The First Loop
Considering that the first loop closes on itself (it starts from the ground of a unknown support and ends in the ground of fixed ring gear), the following matrix equation can be found:
where is an identity matrix. Using Eq. (B-1) and the shape and pair matrices in Table B-1, the following equation is obtained:
where , , and .
The kinematic equation for the second loop can also be derived in a similar manner. With reference to Figure 46 (b), the second kinematic loop and associated frames can be derived as follows:
where is a variable pair matrix, is a constant shape matrix, is a pair variable, and is a gear ratio. The SU-parameters and corresponding transformation matrices are shown in Table B-2.
| Link or Pair | SU-parameters and Transformation Matrix |
|---|---|
| Revolute Pair 5 |
|
| Planet Carrier |
|
| Revolute Pair 2 |
|
| Planetary Gear |
|
| Gear Pair 4 |
|
| Ring Gear |
| Link or Pair | SU-parameters and Transformation Matrix |
|---|---|
Table B-2: SU-Parameters And Transformation Matrices Of The Second Loop
Considering the second loop closes itself, the following matrix equation can be found:
where is an identity matrix. Using Eq. (B-3) and the shape and pair matrices in Table B-2, the following equation is obtained:
where , , and .
The previously derived equations. (B-2) and (B-4) are the kinematic equations of the planetary gear system. By solving equations (B-2) and (B-4), we can obtain the angular displacement relations of the gear system. Equating the elements of the left-hand sides of equations (B-2) and (B-4) to the corresponding elements of the right-hand sides of identity matrix, the following relations are obtained ( is considered here as an input and thus being known):