1 Introduction

An assembly is an integrative process of joining components to make a complete product. The functional performance of an assembled product and its manufacturing cost are directly affected by the individual component tolerances. Perhaps the manufacturing team needed to understand why an assembly of parts that met the drawing specifications did not fit together at assembly. By performing tolerance analysis and tolerance stackups, these and many other important questions about the design can be answered [1]. Tolerance stacks are a simple and straightforward approach to model the effects of dimensional deviations on distances between different features in an assembly. It includes most often only dimensional tolerances (DT), though modern modifications of this method also consider geometrical tolerances [2]. In practical manufacturing conditions, the propagation of geometrical and dimensional tolerances (GDT), as well as the clearances between mating components, will cause the deviations of some mating features from their nominal positions, resulting in the influence on the assembly precision [3]. Even though modern manufacturing processes achieve increasingly high accuracy, geometrical deviations have a huge influence on both the functional behavior and on the customers’ quality perception of the product [4, 5]. It makes a strong necessity for companies to manage these geometrical variations [2]. While geometrical variation is summarized with DT, it is possible to control a wider range of variations related to shape, position, and orientation of geometric features within the allowable constraints [6]. In order to ensure component interchangeability, geometrical tolerances are specified to limit the allowable geometric part deviations from an assembly as well as functional point of view [7, 8]. This system of interchangeable assembly is desirable for speeding up the assembly process and reducing cost as components are chosen randomly to cause minimum time required for selecting the components. However, the assembled product cannot be obtained within the specified clearance/interference range. Selective assembly is the only solution to reduce the variability and to increase the accuracy. It is a method of sorting/classifying/grouping the components into a selective number of groups (bins) according to their dimensional variations and assembling them with respect to a purposeful strategy rather than being at random so that equal and optimal assembly fit can be obtained at manufacturing cost.

The paper is organized as follows. The sub-sections of this introduction part continue with the related literature review, the problem background, and objectives of the current research. Section 2 describes the proposed method of modelling the assembly fit (δfit) in selective assembly by integrating the geometrical and dimensional deviations through matrix models of tolerance analysis. This chapter also briefs the way of controlling the assembly variation in selective assembly using a genetic algorithm (GA). Section 3 demonstrates the case analysis using valve train assembly and shows its results and analysis. The last Sect. 4 concludes the work and provides future research directions.

1.1 Literature Review

Selective assembly technique has been used in the industries for many years, notably for the assembly of ball bearing, piston and cylinder, nozzle unit of the fuel injection pump, electric drives, optical devices, etc. Wang et al. [9] attempted to optimize the grouping of selective assembly scheme in a ball-bearing assembly where the components with non-normal distribution. According to the dimensional distribution of the mating components, i.e. diameters of outer and inner races and diameter of the ball, the number of groups was being established. The assembly tolerance was calculated based on the DT and was optimized through a GA. Glukhov and Shalay [10] attempted to increase the durability and productivity of pumping equipment in the oil & gas industry and used selective assembly to optimize the operational clearance in the cylinder-piston pair. Based on the type of form deviation in cylindrical surface and its envelope condition, the measurement methods were proposed to obtain maximum and minimum material dimensions. The minimum clearances were obtained between the actual surface peaks at the interfaces of cylinder and piston, called as maximum material dimensions and used for sorting as per the group size. It was proved that form deviations of the interfaced cylinder and the piston surfaces lead to the change in their diameters. So, they recommended measuring the form deviations that must precede the measurement of maximum material dimensions in order to provide high measurement accuracy. Chu et al. [11] established a mathematical model for selective assembly of RV reducer, a precision gear reducer being used in national defence, aerospace, industrial production, etc. The low-transmission backlash (very high assembly accuracy) requirement of RV reducer was achieved through the selective assembly. There were 30–40 significant components, among the 60–100 total components that generated four different backlashes in intricate RV reducer assembly. Based on the machining error sensitivities, the components were divided into selective components and completely interchangeable components. Finally, five components with most uncontrollable machining tolerance were brought into the selective assembly. A mathematical model of the matching scheme was proposed and optimized through a GA. Liu and Liu [12] presented a selective assembly for remanufacturing an automobile engine. They demonstrated the way to increase engine assembly accuracy by properly changing the number of groups and the range of DT in each component of an engine: main shaft, cylinder, upper bushing, and lower bushing. Bartkowiak and Gessner [13] presented a selective assembly algorithm to increase the geometric accuracy of a three-axis milling machine based on the formulation of homogeneous matrix transformation. They presented how geometric errors of individual frame components affect the kinematic errors and thus, the volumetric error of the entire machine tool. Lu and Fei [14] proposed a new grouping method for selective assembly to reduce the surplus parts by different group size for each mating component according to their difference in DT. The GA was proposed to achieve the objective of the selective assembly. The DT of mating components in two cases: the ball bearing assembly and the piston-cylinder assembly, were considered for the verification of success rate. Tan and Wu [15] proposed the generalized version of selective assembly (GSA) with two variants: Direct Selective Assembly (DSA) and Fixed Bin Selective Assembly (FBSA). The problems of matching components to make a batch of assemblies and to minimize expected quality cost was demonstrated with realistic examples. The DSA was demonstrated using the bimetal thermostat and knuckle joint assembly. The FBSA was demonstrated using the bimetal thermostat, Fortini’s clutch, and wheel mounting assembly. In both variants, only the DT of the mating components were considered to evaluate the assembly tolerance. Mease et al. [16] developed a statistical formulation for optimal binning strategies. They used valve train assembly of a conventional internal combustion engine that consists of the camshaft, a valve, and a stem. The selective assembly was used for controlling the gap between camshaft and stem by grouping only one mating component, tappet into 36 number of bins based on its dimensional (width) deviation.

Assembly tolerance analysis aims to evaluate the cumulative effect of tolerances in mating components on the functional requirements of the whole assembly [17]. In assembly tolerance analysis, all variations should be quantitatively described including the dimensional and geometric feature variations of each component in the assembly and the kinematic variations occurring in the contacts or joints between mating components [18]. Since there is a significant amount of research has been dedicated to tolerance analysis, a brief review is presented here. The tolerance chain technique is the most popular method in the industry by draftsmen and designers to conduct stack up analysis [19]. The functional assembly fit is the resultant of one or more tolerance chains associated with the components. By mathematically defining all points on the surface, computer-aided design and drafting (CADD or CAD) programs are used to obtain as much dimensional information about a surface as required [1]. Various mathematical models have been developed to calculate the tolerance accumulation in a chain [20]: vector loop, variational, matrix, Jacobian, torsor, unified Jacobian–torsor, T-Map®, and Polytopes. In vector models, the dimensions of mating components are represented as vectors. Their tolerances are incorporated as variation in the length of a vector. The assembly chain, i.e. vector loops, is built to analyze the kinematic variations in the assembly due to small adjustments as a result of dimensional variations and geometric feature variations in the mating components. In a variational model, the variability of an assembly due to the tolerances and assembly constraints is represented through a parametric mathematical model. In the matrix model, the homogeneous transformation matrixes are used to derive an explicit mathematical representation of the boundary of the spatial region enclosing all displacements due to the variability sources. Any rotational and translational variations in a feature are described by a displacement matrix. In the Jacobian model, pairs of functional elements, i.e., dimensions and variations, are arranged in chains, and their nominal displacements are modelled into transformation matrices using the description of kinematic chains in robotics. The torsor model uses screw parameters of kinematics to represent the region of the tolerance range.

In the unified Jacobian–torsor model, the evaluation of displacements due to the applied tolerance is done by torsor model, and their propagation with respect to the functional requirement is made by the Jacobian matrix. The T-Map® model carries two levels: the local model where the variations in a component are modelled with respect to their geometric feature interactions; and the global model where all geometric control frames are interrelated as per the assembly requirement. Polytop formalizes the finite set of geometric, contact and functional constraints into n-polytop faces to calculate the relative position between any two surfaces in an assembly. These mathematical models of tolerance analysis are used to predict the quality of an assembly, and their results are useful for the industries to produce high-quality assemblies at the lower cost [21]. Marziale and Polini [22,23,24,25,26,27] described the basic steps involved in each vector loop, variational, matrix, Jacobian, torsor model building and shown comparison on their efficiency of clearance evaluation using an assembly of a box containing two circles. The mathematical models of tolerance analysis are being implemented in many commercial Computer Aided Tolerancing software (CATs) packages to predict the assembly quality without building a physical prototype, such as Cetol.6© of Sigmetrix uses the vector loop model [26]; CATIA.3D FDT employs Technologically and Topologically Related Surfaces (TTRS) and the matrix model [28, 29]; 3-DCS® of Dimensional Control Systems®, eM-TolMate of UGS®, VisVSA of UGS®, CeTol® of Siemens use variational models (CeTol® used vector loops in former versions) [2, 17, 25, 26, 28, 30]; Tolmate® and MECAMaster® rely on single displacement torsor model [2, 28]; and PolitoCAT® employs polytopes [2].

1.1.1 Problem Definition and Objectives of Present Research

Every feature in a component is subjected to variation and strictly applied with some tolerances. While an assembly carries multiple numbers of components, the accumulation and propagation of these variations influence its functional performance. The sources of these variations are classified into three categories: (1) dimensional variation or tolerance stacks of individual components; (2) geometric feature variation; and (3) variation propagated by the interaction between dimensional and geometrical variations during assembly. Usually, the deviations caused by second and third categories are not taken into account during the evaluation of δfit, as their significance is assumed as null or measurement of such deviations is costly. However, the variation in the geometric feature can have a dramatic effect on the tolerance stack up, depending on the kind of translational and rotational variations added during the assembly [1]. Due to uncontrolled surface contour, the matching surfaces result in excess clearance or interference [10]. This δfit is greater as compared to the fit obtained only by DT. If components are designed by considering GDT, then resultant δfit will be more realistic. Consecutively, the precision assemblies can be obtained with expected function and higher life of components during working. At present, the research on assembly tolerance analysis has been focused on dimension variation and hardly takes geometric feature variation into consideration [31]. Moreover, the δfit has not yet been evaluated from the integrated geometrical and dimensional deviations of mating components in high precision assembly processes, particularly in the selective assembly. Basically, the sorting in selective assembly is applied only to the components which are assumed as the whole representative to the δfit. So, the δfit is always estimated only from the dimensional variation between the two mating components. It never considered the propagation of variation from the assembly chain. Furthermore, no analytical models have been developed to provide a universal yet effective solution to the scientific design of selective assembly [32, 33].

The research contribution of this paper is aimed to apply the integrated geometrical and dimensional deviations in selective assembly. So, it is planned to design selective assembly by involving all the sources of variation present in an assembly chain. Moreover, it is decided to connect the universally accepted, and common tolerance analysis method being implemented in CATs, to a real-time assembly process, i.e., selective assembly. So, the matrix model of tolerance analysis is chosen for the present research and is applied in selective assembly to develop the mathematical model of δfit along with the constraint equations. It is aimed to analyze how the deviations of GDT present in the components are influencing the δfit during selective assembly. GA is proposed to optimize the selective assembly parameters, like the number of groups (n) and δfit, in order to minimize assembly variation. A case analysis with a valve-train assembly is presented to facilitate the understanding of the proposed methodology.

2 Selective Assembly Tolerance Analysis Using Matrix Model

The proposed methodology of selective assembly tolerance analysis to control the assembly variation is shown in Fig. 1. It carries two phases: (1) tolerance analysis, i.e., an evaluation of δfit caused by the integrated GDT present in the components, and (2) selective assembly, i.e., a process to sort each component based on its integrated GDT, to optimize the n, and to obtain an optimal combination of the group components. Also, to achieve the required δfit, and to minimize the variability among the batch of assemblies. The first phase is performed by a matrix model, and the latter is achieved through a GA.

Fig. 1
figure 1

Flowchart of selective assembly tolerance analysis using matrix model and GA

2.1 Matrix Model of Tolerance Analysis

The basic steps of the matrix model presented as phase-1 in Fig. 1, are refined from Salomons et al. [34] and Massimiliano Marziale and Polini [22]. In matrix model, an assembly is assumed as a formation of two surfaces or surface and TTRS or between two TTRS, belonging to the same solid (topological aspect) and located in the same kinematic loop in a given mechanism (technological aspect). Based on the detailed assembly drawing, the different TTRS and their related Datum Reference Frame (DRF) belonging to each component are identified. The datum associated with each TTRS, which is referred to as Minimum Geometric Datum Elements (MGDE) [35] is identified next. The MGDE of a TTRS is defined as the minimum set of points, lines or planes necessary and sufficient to define the reference frame corresponding to the invariant sub-group of that TTRS. Then, the degree of invariances in each component is identified as a translation or a rotation movement under which a given geometry/shape remains unchanged. The matrix model is constructed based on positional tolerancing in which each component’s feature tolerance is converted into positional tolerance with respect to the global DRF based on the functional requirement. In the next step, the assembly graph is prepared by finding the possible kinematic loops between functional surfaces in the assembly. Here, a kinematic loop refers to a closed chain of components in an assembly. In order to find each TTRS (i.e., each functional surface belonging to the same component and the same kinematic loop), all possible independent loops of the graph are searched. Then it becomes necessary to identify the starting point of the loop and analyze its sequence. Finally, a loop is chosen which passes through the contacting surfaces that are responsible for the functional requirements; where the loop direction is pointing opposite to variation propagation; and which touches all the TTRS those were designed by functional features. However, it must be the simplest basic geometry and should contain more than one surface in a component. To build an assembly graph, circles are used to represent an individual component, and the semicircles are used to represent the features of a component. Arrows in the assembly graph represent the direction of the association between the component features and are labeled with tolerances associated with them. Using the assembly graph, the scheme of DRF is developed in which the primary, secondary and tertiary datum is identified with respect to the significant features. Every feature of the components must be assigned to a DRF. Then, the predictable points on the surfaces are identified in order to measure the displacement of each feature. Each point must have a path that connects it to the global DRF up to the δfit so that the impact of its displacement on the δfit can be calculated. Now, the homogeneous transformation matrix for each surface is derived based on its classification under seven classes of invariant surfaces. Every linear and angular displacements in each feature can be evaluated through this matrix. Each displacement matrix of a feature is bounded within some tolerance limits called constraints.

For instance, consider an assembly that consists of two components A and B. Assume a feature i on the surface of component A. In order to model the tolerance zone of feature i, a mathematical formulation must be derived to represent the reference frame relative to each other. So, a frame which is a common coordinate system to the assembly mechanism is considered as global DRF. Each tolerance zone in the surfaces is associated with a local DRF (i.e., the coordinate system of the surface) that connects it to the global DRF. Let the feature i be represented with respect to a local DRF Ri up to the coordinate frame of the global DRF R. Consider a theoretical generic point M, which is located on the theoretical axis of ith feature surface. Normally it is considered as a middle value of the tolerance zone. With the nominal geometry, a homogeneous transformation matrix \(P_{{R \to R_{i} }}^{{}}\) is established to express the transformation of global DRF R to local DRF Ri. With respect to the midpoint O of the nominal value of the ith feature surface and its nominal dimensions at x, y, and z-directions, the \(P_{{R \to R_{i} }}^{{}}\) is represented [34, 36] as,

$$\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {x_{M} } \\ {y_{M} } \\ \end{array} } \\ {z_{M} } \\ \end{array} } \\ 1 \\ \end{array} } \right](O_{i} ,x_{i} ,y_{i} ,z_{i} ) = \left[ {P_{{R \to R_{i} }} } \right] \cdot \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {x_{M} } \\ {y_{M} } \\ \end{array} } \\ {z_{M} } \\ \end{array} } \\ 1 \\ \end{array} } \right](O,x,y,z)$$
(1)

and is simplified as,

$$[M]_{{_{{R_{i} }} }} = [P_{{R \to R_{i} }} ] \times [M]_{{_{R} }}$$
(2)

Point M may have the displacement in Euclidian space to M′. In order to include the constraints that act upon the point M bounded within the tolerance zone, a displacement matrix Di is established within the tolerance zone of Ri. The matrix Di represents the tolerance zone of the ith feature with respect to \(O_{{R_{i} }}\). Then, [MM′] indicates the total displacement of point M after the transformation of Di. A displacement vector of point M that represents the displacements in the tolerance zone on Ri, is represented by,

$$[MM^{{\prime }} ]_{{R_{i} }} = [M^{{\prime }} ]_{{R_{i} }} - [M]_{{R_{i} }} = \left( {D_{{_{i} }} \times [M]_{{R_{i} }} } \right) - [M]_{{R_{i} }}$$
(3)

By substituting Eq. (2) into (3), the vector displacement of point M with respect to global DRF R becomes,

$$\begin{aligned} { [MM^{\prime } ]}_{{R_{i} }} & = \left( {D_{i} \times [P_{{R \to R_{i} }} ] \times [M]_{R} } \right) - \left( {I \times [P_{{R \to R_{i} }} ] \times [M]_{R} } \right) \\ [MM^{\prime } ]_{{R_{i} }} & = (D_{i} - I) \times [P_{{R \to R_{i} }} ] \times [M]_{R} \\ \end{aligned}$$
(4)

This displacement vector must comply with several constraints related to the GDT zone. However, the displacement vector of a point of reference to global DRF R is rewritten [22, 36] as,

$$[MM^{\prime } ]_{R} = \left( {[D_{i} ]_{{R_{i} }} - I} \right) \times [P_{{R \to R_{i} }}^{ - 1} ] \times [M]_{{R_{i} }}$$
(5)

Since there will be more than one tolerance applied in the same feature, the displacement of its theoretical generic point becomes simply a sum of each contribution. So, for k number of tolerances in same ith feature which are referred by the same local DRF Ri, the principle of effects overlapping/superimposition is applied and the total displacement of the point M is expressed as,

$$[MM^{{\prime }} ]_{R} = \sum\limits_{i = 1}^{k} {[P_{{R \to R_{i} }}^{ - 1} ]} \times \left( {[D_{i} ]_{{R_{i} }} - I} \right) \times [M]_{{R_{i} }}$$
(6)

The resulted δfit model, along with the collection of constraint equations is optimized with a standard optimization algorithm.

2.2 Selective Assembly Tolerance Optimization Using GA

The modern manufacturing trend requires a high degree of fit and less variation among the assemblies. To satisfy both, the selective assembly is applied with GDT and optimized by GA. Let, there be N number of components in an assembly. Based on the functional features present in the δfit equation of phase-1, the deviations in the integrated GDT of the respective component are measured and categorized into n number of groups. To obtain the best combination of N number of components with the expected δfit in all the assemblies, a GA is proposed as shown in the second phase of Fig. 1. Since the ‘n’ is chosen to divide the components influence the variability of δfit among a batch of assemblies, it is also aimed to optimize the ‘n’. So a GA is designed to analyze different n and the respective combinations of group components. The steps involved in this algorithm are presented as phase-2 in Fig. 1.

Synchronization of selective assembly and GA is schematically presented in Fig. 2. Let there be N number of components (i = 1, 2, 3 …N) in an assembly. The distribution of the integrated functional GDT of an individual component is divided into n number of selective groups (bins) as shown in Fig. 2a. The structure of a chromosome (c) used in the present research is shown in Fig. 2b. One c represents the combination of group components (assemblies). It is constructed with N + 1 number substrings. The first substring indicates the n applied to the respective c. The 2nd to Nth substrings are the integrated functional GDT of the respective components. Hence, the 2nd to Nth substrings of a c is divided into n number groups as declared in its first substring. For example, if the first substring of a c is 6, then its remaining N number substrings (the GDT of an individual component) are divided into 6 number of groups (bins of selective assembly). The individual group number (1, 2, 3 …n) in a substring is considered as a gene. Each group number is distinguished by the respective component name (i) at its subscript. The first substring contains only one gene, i.e., declaration of n. However, the remaining N numbers of individual substring carry n number of genes. So the random value of the gene in the first substring determines the length of remaining substrings.

Fig. 2
figure 2

Synchronizing the selective group components with GA chromosome for evolving objective function

To control the assembly variation and to achieve the required δfit, the minimum and maximum limits for n (n_min, n_max respectively) are chosen. At the back-end programming, the length of a c, is fixed as 1+ (N ×n_max). However, in the front-end programming, it is designed to display only 1 + (N × n) numbers of genes in a c. In this, it is designed to vary the number of groups from 2 to 20. Hence, c carries 1+ (N ×20) number of genes. However, c with n = 6 will display only 1+ (N ×6) number of genes. Suppose that a c with n = 6 is crossed another c with n = 10, then the length of c is taken from its storage at the back-end programming to facilitate the swapping of substrings or genes. This structure of c makes the optimization of selective assembly much easier, very faster and more accurate.

The search process in the proposed GA contains five modules namely, input, evaluation, new population generation, termination check, and output modules. In the input module, the limits for the search space of n: n_min and n_max, are declared and consecutively the length of c is fixed. Note that the length of c is directly proportional to the execution time of the programme. The variables and constraints for evaluating the δfit of a c are specified in the input module. Also, the population size (pop_size), i.e., the total number of chromosomes that are to be maintained throughout GA modules, and the iteration size (itr_size), i.e., the number of iterations to be executed, are declared in the input module. Based on the information given in the input module, the pop_size numbers of c’s are randomly generated.

In the evaluation module, the objective criterion (obj(c)) for each c is evaluated. One c results nN numbers of different sets of group combinations. For each assembly, δfit under the specified constraints is evaluated. Among the assemblies made by one set of group combination, the assemblies result in minimum (δfitmin) and maximum (δfitmax) fits. So, the performance measure of a c is selected as the range (δfitrange) between the maximum value (max(δfitmax)) of all the δfitmax and the minimum value (min(δfitmin)) of all the δfitmin. So the matrix models of δfitmin and δfitmax are used for evaluating the δfitrange for a c. Hence, the objective criterion of this research is to search for the best combination with the optimum value of δfitrange. Finally, all the pop_size numbers of c’s are ranked as per the δfitrange.

From all the pop_size numbers of ranked c’s, the same number of new children are evolved in the new population generation module. This module includes three genetic operators, namely, selection, crossover, and mutation. The selection operator chooses the fittest c’s as the best parent. This operator works with the following steps:

  1. (1)

    Scaling the obj(c): The objective function of each c’s is converted into a new objective function value (new_obj(c)) by an exponential scaling function, new_obj(c) = e(−k × obj(c)), where k = 0.005 (constant) is used as scaling factor.

  2. (2)

    Estimating prob_sl(c) and cum.prob_sl(c): The probability of selection (prob_sl(c)) for each c is calculated by the ratio between new_obj(c) and the sum of new objective function values, \(\sum\nolimits_{c = 1}^{pop\_size} {new\_obj(c)}\). The cumulative probability of selection (cum.prob_sl(c)) is estimated for each c as \(\sum\nolimits_{c}^{pop\_size} {{\text{prob}}\_{\text{sl(c)}}}\).

  3. (3)

    Random selection: The next population with the same initial number of pop_size is selected randomly. The random numbers (rsl) from rsl_1 to rsl_pop_size are generated. For each rsl, the c corresponding to the next value of cum.prob_sl(c) is selected and labeled as c1. This selection operator chooses the best fittest c’s for reproduction. The best c may be selected several times, and the worst may die off.

The next operator, crossover, applies the reproduction principle and evolves offspring. It has two steps. At the first step, the pairs of c1’s are selected as parents. It contains a parameter, called the probability of cross over (prob_cross) that fixes the amount of c1’s to be undergoing the crossover operation. Since crossover operator is meant for the search of global optima, it is preferred to involve 80% of c1’s in the crossover. So the prob_cross is fixed as 0.8. A random number (rcr) is generated for each c1. It is selected for crossover if rcr ≤ 0.8 and renamed as c2. Always c2’s are chosen in even numbers in order to make them into pairs. The next step is to breed for offspring through crossover operator. Here, the information between two parents are shared, i.e., the substrings of two c2’s are swapped using partial mapping method. A cutting point is chosen at the beginning and end points of substrings. So there will be N + 2 number of cutting points (CP) like CP1, CP2, … CPN+2 for each pair of c2’s. By randomly generating two cutting points and swapping the substrings located in between the random cutting points, the c2’s are crossed, and the offspring are named as c3 and c3+ 1.

The mutation operator is also a reproduction operator where two genes within a substring are exchanged. So it is applied only from 2nd to Nth substrings. The parameter that involves mutation operation is a probability of mutation (prob_mut) that fixes the number of genes in 2nd to Nth substrings of c3 is to be mutated. Since mutation operator is meant for the search of local optima, only 5% of the genes in c3 is preferred to undergo mutation. So the prob_mut is fixed as 0.05. A random number (rmt) is generated for each gene of 2nd to Nth substrings of c3. If a rmt corresponding to a gene is less than 0.05, that particular gene is mutated with the previous gene within its substring. After mutation, the child is named as c4.

The new population generation module is repeated for a predefined number of iterations, and the optimized n with its best combination of group components will be displayed in the output module.

3 Case Analysis

A valve train assembly of the conventional internal combustion engine that consists of a camshaft, a tappet, and a valve-stem, as shown in Fig. 3, is considered for demonstrating the selective assembly tolerance analysis. The camshaft presented in Fig. 3 shows its ‘nose up’ position. During the rotation, the nose down position of camshaft pushes the tappet that opens the valve for a period of time. A longer or a shorter time period of opening makes the huge difference in engine performance. So it becomes mandatory to maintain an optimum gap between the bottom of the camshaft and the top of the tappet. Random/interchangeable assembly troubles the resultant gap and yields huge gap-variation among the assemblies.

Fig. 3
figure 3

Valvetrain assembly with GDT (all the dimensions are in mm)

Since the GDT present in the individual component features accumulate and affect the gap, here the assembly gap \(\left( {\delta_{gap} } \right)\) selective assembly tolerance analysis is demonstrated using the matrix model and is optimized using GA. The dimensions of valve train assembly are presented in Fig. 3. The Camshaft axis is located at \(R25^{{_{ - 0.030}^{ + 0.042} }}\) mm. The profile of camshaft is considered with circularity tolerance of 0.006 mm. The tappet thickness is provided with the dimension of \(8^{{ \pm_{0.000}^{0.018} }}\) mm, and the orientation of its two surfaces needs parallelism tolerance value of 0.003 mm with regards to surface P. The length of valve-stem is applied with the dimension of \(115^{{ \pm_{0.000}^{0.012} }}\) mm. As a first step in the matrix model, according to TTRS criteria, the GDT of the features shown in Fig. 3 is converted into the positional tolerances, as shown in Fig. 4. In accordance with the independency principle [37], each dimensional specification on the drawing is considered independently, unless a particular relationship is specified.

Fig. 4
figure 4

Tolerancing and scheme of DRF of the valvetrain assembly for matrix model

The valve train assembly is assumed to be bounded into two-dimensional (2D) closed box with the surface features of L1, L2, L3, and L4 and its predictable generic points are identified as F, G, H, and I. The points A and B of valve-stem (V) possess the positional constraints of 0.012 mm in x and y directions with reference to the datum Q and P respectively. Tappet (T) is allowed to vary 0.010 mm in x and 0.018 mm in y directions with reference to the datum Q and P, respectively. These positional tolerances confirm the tappet point E from surface L2 and fix the tappet inside the cylinder wall. The tappet surface is provided with orientation tolerance of parallelism, 0.003 mm. The purpose of this tolerance is to confirm the real-time contact between valve-stem and camshaft surfaces under the high-speed dynamic condition of engine speed and during valve train acceleration. The axis of the camshaft (S) is fixed as point C at surface L3 with a position tolerance of 0.012 mm to ensure the axis matching with the valve-stem. Camshaft surface is given with the circularity tolerance of 0.006 mm, and its variation affects the point D. The ultimate aim is to optimize the gap between points D and E.

The association between every component features and their relative tolerances were analyzed to build the assembly graph of the valve train, as shown in Fig. 5. It simplifies the complexity of understanding the relationship between two features in the assembly. Each component has been represented by a circle, and the features associated with each component are represented by semicircles. An arrow indicates the association of features and their accumulated tolerance in the name of displacements. Though the displacements are involved at both x and y-directions on the component features, only the effective displacements on \(\delta_{gap}\) in the y-direction are deliberated. For example, the displacement D1 between the points A and B make the y-directional constraint that influences the \(\delta_{gap}\). However, the displacement between the boundary frames L1 and L4 makes the x directional constraint that does not influence the gap. The association of surfaces and the total displacement permitted between A and L3 is 0.051 mm, which is represented on the assembly graph. The tappet is associated with points B and E and causes the displacement of D2. The points C and D are associated with camshaft surface and involve the displacement D3.

Fig. 5
figure 5

Assembly graph for valve train assembly with GDT for matrix model (all the dimensions are in mm)

The scheme of DRF of valve train assembly is presented in Fig. 4 itself. The global DRF, R is formed by the primary datum L1 and secondary datum L2. So, the DT of the valve-stem \(\left( {t_{V} } \right)\), tappet \(\left( {t_{T} } \right)\) and camshaft \(\left( {t_{S} } \right)\) are positioned as 0.012 mm, 0.018 mm, and 0.012 mm respectively, with respect to their local DRF R1, R2, and R3. The parallelism \(\left( {t_{{T_{1} }} } \right)\) of 0.003 mm is added to the feature L2 with respect to the secondary datum L4. The circularity \(\left( {t_{{S_{1} }} } \right)\) of 0.006 mm is added to the feature S. Theoretical tolerance value of \(\delta_{gap}\) under GDT case is given as 0.051 mm. The variation in the \(\delta_{gap}\) due to GDT \(\left( {\delta_{{gap_{(GDT)} }} } \right)\) is evaluated in the vertical direction (y-axis) of the global DRF and pertaining to the space between points D and E as:

$$\delta_{{gap_{(GDT)} }} \cong \Delta y_{D} - \Delta y_{E}$$
(7)

The point D locates on the camshaft. The y-directional displacement at feature L3 of the camshaft with reference to its local DRF R3 causes the \(\Delta y_{D}\). There is a tolerance chain from global DRF R to point E, by the displacement D1 at point A of local DRF R1 and the displacement D2 at point B of local DRF R2. So, the principle of effects overlapping is applied to evaluate \(\Delta y_{E}\) as the sum of two contributors due to DRFs R1 and R2.

$$\Delta y_{E} = \left[ {\Delta y_{{E,R_{1} }} + \Delta y_{{E,R_{2} }} } \right]$$
(8)

The \(\Delta y_{{D,R_{3} }}\) contributor is caused by the variability of the local DRF R3 of feature S; the \(\Delta y_{{E,R_{1} }}\) contributor is caused by the variability of the local DRF R1 of V; and the \(\Delta y_{{E,R_{2} }}\) contributor is caused by the variability of the local DRF R2 of T. From Eqs. (7) and (8), the required \(\delta_{gap}\) may be evaluated as:

$$\delta_{{gap_{(GDT)} }} \cong \left[ {\Delta y_{{D,R_{3} }} } \right] - \left[ {\Delta y_{{E,R_{1} }} + \Delta y_{{E,R_{2} }} } \right]$$
(9)

The displacement D1 is caused by the variability at point A. This point A is located on the midpoint on the feature L1 which is identified at the surface V. The global DRF R located at point F is transformed to the point A. The displacement of point A in the direction of y-axis is the variability of displacement of point E with respect to A. The variability of point A is obtained by the matrix. For deriving the transformation matrix of each feature, the translational (linear) displacements u, v and w are considered with respect to x, y, and z-axis, respectively. Moreover, the rotational (angular) displacements α, β, and γ are considered about x, y, and z-axis, respectively. As this paper deals with 2D analysis, the rotational components, α and β around respective x and y-axis are annulled. However, the rotational displacement γ around z-axis is valid and is included in the analysis. For ith feature with respect to its local DRFs, the rotational displacement γ around z-axis of any component can be given as,

$$\gamma_{i} = \frac{{t_{i} }}{{Basic\,size_{i} }}$$
(10)

where i = V, T or S of valvetrain assembly.

The point A is lying between the mating point of V and feature L1. So the surface is considered as the general surface according to 44 types of combination. Then the displacements of feature L1 are attained from a general surface feature [36] and presented as a noninvariant displacement matrix D1:

$$D_{1} = \left[ {\begin{array}{*{20}c} {\text{Cos} \gamma \text{Cos} \beta } & { - \text{Sin} \gamma \text{Cos} \alpha + \text{Cos} \gamma \text{Sin} \beta \text{Sin} \alpha } & {\text{Sin} \gamma \text{Sin} \alpha + \text{Cos} \gamma \text{Sin} \beta \text{Cos} \alpha } & u \\ {\text{Sin} \gamma \text{Cos} \beta } & {\text{Sin} \gamma \text{Sin} \alpha + \text{Cos} \gamma \text{Sin} \beta \text{Cos} \alpha } & { - \text{Cos} \gamma \text{Sin} \alpha + \text{Sin} \gamma \text{Sin} \beta \text{Cos} \alpha } & v \\ { - \text{Sin} \beta } & {\text{Cos} \beta \text{Sin} \alpha } & {C\beta } & w \\ 0 & 0 & 0 & 1 \\ \end{array} } \right]$$
(11)

For the present 2D analysis, Eq. (11) becomes

$$D_{1} = \,\,\left[ {\begin{array}{*{20}c} {C\gamma_{V} } & { - S\gamma_{V} } & 0 & {0_{{}} } \\ {S\gamma_{V} } & {C\gamma_{V} } & 0 & {v_{V} } \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right]$$
(12)

The homogeneous transformation matrix to pass from the global \(DRF_{{R_{{}} }}\) to local \(DRF_{{R_{1} }}\) is given by,

$$\left[ {P_{R \to R1} } \right] = \,\left[ {\begin{array}{*{20}c} {C\alpha_{V} } & { - S\alpha_{V} } & 0 & {\Delta x_{V} } \\ {S\alpha_{V} } & {C\alpha_{V} } & 0 & {\Delta y_{V} } \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] = \,\left[ {\begin{array}{*{20}c} 1 & 0 & 0 & {30} \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right]$$
(13)

Thus the displacement of point E due to point A is given by

$$\left[ {EE^{'} } \right]_{R} \, = \,\,\,P_{{R \to R_{1} \,}}^{ - 1} \cdot \,\left[ {D_{1} \, - \,I} \right]\, \cdot \,\left[ E \right]_{{R_{1} }}$$
(14)
$$\begin{aligned} \left[ {EE^{'} } \right]_{R} = & \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & { - 30} \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} {C\gamma_{V} - 1} & { - S\gamma_{V} } & 0 & 0 \\ {S\gamma_{V} } & {C\gamma_{V} - 1} & 0 & {\nu_{V} } \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} 0 \\ {123} \\ 0 \\ 1 \\ \end{array} } \right] \\ \left[ {EE^{'} } \right]_{R} = & \left[ {\begin{array}{*{20}c} {123S\gamma_{V} - 0} \\ {123\left( {C\gamma_{V} - 1} \right) + \,\nu_{V} } \\ 0 \\ 0 \\ \end{array} } \right] \\ \end{aligned}$$
(15)

Therefore

$$\Delta y_{{E,R_{1} }} = 123\left( {\text{Cos} \gamma_{V} - 1} \right) + \nu_{V}$$
(16)

The constraint on the feature L1 may be calculated by considering the point G:

$$\left| {\left[ {GG^{{\prime }} } \right]_{R1} .x} \right| = \left| {\left[ {D_{1} - I} \right]\left[ G \right]_{R1} .x} \right| \le \frac{{t_{V} }}{2}$$
(17)

Equation (17) gives,

$$\begin{aligned} \left| {\left[ {D_{1} - I} \right]\left[ G \right]_{R1} \cdot x} \right| = & \left[ {\begin{array}{*{20}c} {C\gamma_{V} - 1} & { - S\gamma_{V} } & 0 & 0 \\ {S\gamma_{V} } & {C\gamma_{V} - 1} & 0 & {\nu_{V} } \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} {30} \\ 0 \\ 0 \\ 1 \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} 0 \\ { - 1} \\ 0 \\ 0 \\ \end{array} } \right] \\ \left| {\left[ {D_{1} - I} \right]\left[ G \right]_{R1} \cdot x} \right| = & - 30S\gamma_{V} - \nu_{V} \\ \end{aligned}$$
(18)

Substituting Eq. (18) in Eq. (17), the constraint on point G is obtained as:

$$- \,0.006 \le + (30\text{Sin} \gamma_{V} + \nu_{V} ) \le 0.006$$
(19)

In the same way, the constraint on point F is obtained as:

$$- \,0.006 \le - \nu_{V\,} - 30\text{Sin} \gamma_{V} \le 0.006$$
(20)

Similarly, the contributor \(\Delta y_{{E,R_{2} }}\) due to the displacement of point B with respect to the local DRF R2 is developed by,

$$\Delta y_{{E,R_{2} }} = v_{T} + 8(\text{Cos} \,\gamma_{T} - 1)$$
(21)

Due to the positional tolerance applied on the feature T, the constraints by considering the points B and E are given by:

$$- \,0.009 \le 8(1 - \text{Cos} \gamma_{T\,} ) + v_{T} \le 0.009$$
(22)
$$- \,0.009 \le 115(1 - \text{Cos} \gamma_{T\,} ) - v_{T} \le 0.009$$
(23)

The constraint imposed by the orientation tolerance of parallelism on the displacement of the two extreme points A and E is given by:

$$- 0.003 \le 123(1 - \text{Cos} \gamma_{T} ) \le 0.003$$
(24)

Similarly, the contributor \(\Delta y_{{D,R_{3} }}\) due to the displacement of point C with respect to the local DRF R3 is obtained as:

$$\Delta y_{{D,R_{3} }} = 25(C\gamma_{S} - 1) + u_{S}$$
(25)

Due to the positional tolerance applied on the feature L3, the constraints on the displacement of two extreme points I and H are given by:

$$- \,0.006 \le u_{S} - 30S\gamma_{S\,} \le 0.006$$
(26)
$$- \,0.006 \le - u_{S} - 30S\gamma_{S\,} \le 0.006$$
(27)

The constraint imposed by the circularity on the two extreme points of feature S is given by:

$$- \,0.012 \le 25(\text{Cos} \gamma_{S} - 1) \le 0.012$$
(28)

Substituting Eqs. (16), (21), and (25) in Eq. (9), the \(\delta_{gap}\) is obtained as:

$$\delta_{{gap_{(GDT)} }} \cong \left[ {\left( {u_{S} + 25\left( {\text{Cos} \gamma_{S} - 1} \right)} \right)} \right] - \left[ \begin{aligned} \left( {123(\cos \gamma_{V} - 1} \right) + \,v_{V} ) \hfill \\ + (v_{T} + 8\,(\cos \gamma_{T} - 1)) \hfill \\ \end{aligned} \right]$$
(29)

subject to the eight constraints of Eqs. (19), (20), (22), (24), (26), and (28), that correspond to GDT on the components.

Linear programming was coded in MATLAB to obtain the most optimal solution for Eq. (29) with given constraints, and the result is:

$$\delta_{{gap_{(GDT)} }} \cong \pm \,0.0270\,{\text{mm}}$$
(30)

In this simple linear assembly, omitting two GDT does not change the assembly gap equation of DT alone case. But it shrinks the allowable assembly tolerance range based on the lesser constraints of DT case. Equation (29) was optimized with the six constraints Eqs. (19), (20), (22), (23), (26) and (27) that correspond to DT alone, and the result is obtained as:

$$\delta_{{gap_{(DT)} }} \cong \pm \,0.0210\,{\text{mm}}$$
(31)

3.1 Selective Assembly Tolerance Analysis for Valve Train Assembly

Recall that the GDT of valve train assembly are considered as: \(t_{V}\)= 0.012 mm; \(t_{T} + t_{{T_{1} }}\) = 0.018 + 0.003 mm; and \(t_{S} + t_{{S_{1} }}\) = 0.012 + 0.012 mm. With respect to the geometrical and dimensional deviations on the allowable tolerance range \(t_{i}\), of ith feature, the components are divided into n number of bins, called selective groups as shown in Fig. 6. For any jth selective group component, the displacement of ith feature can be given as,

$$\begin{array}{*{20}c} {u_{{i_{(j)} }} } & {or} & {v_{{i_{(j)} }} } \\ \end{array} \begin{array}{*{20}c} {or} & {w_{{i_{(j)} }} } \\ \end{array} = lowerlimit_{{(t_{i} )}} + \left[ {(j - 1) \times \left( {\frac{{t_{i} }}{n}} \right)} \right]$$
(32)

where i = V, S or T; and j = 1, 2, 3 …n.

Fig. 6
figure 6

Geometrical and dimensional distribution of valve train assembly

Using Eq. (29), for any combination of the ith component from the jth group, the maximum \(\delta_{gap}\), i.e., \(\left( {\delta_{{gap_{{(GDT)_{\hbox{max} } }} }} } \right)\) through the matrix model of selective assembly tolerance analysis can be given as,

$$\delta_{{gap_{{(GDT)_{\hbox{max} } }} }} \cong \left[ {\left( {u_{{S_{(j + 1)} }} + 25\left( {\text{Cos} \gamma_{S} - 1} \right)} \right)} \right] - \left[ \begin{aligned} \left( {123(\cos \gamma_{V} - 1) + v_{{V_{(j)} }} } \right) \hfill \\ + \left( {v_{{T_{(j)} }} + 8(\cos \gamma_{T} - 1)} \right) \hfill \\ \end{aligned} \right]$$
(33)

Similarly, for any combination of the ith component from the jth group, the minimum \(\delta_{gap}\), i.e.,\(\left( {\delta_{{gap_{{(GDT)_{\hbox{min} } }} }} } \right)\) through the matrix model of selective assembly tolerance analysis can be given as,

$$\delta_{{gap_{{(GDT)_{\hbox{min} } }} }} \, \cong \,\,\left[ {\left( {u_{{S_{(j)} }} + 25\,\left( {\text{Cos} \gamma_{S} - 1} \right)} \right)} \right]\, - \,\left[ \begin{aligned} \left( {123\,(\cos \gamma_{V} - 1)\, + \,v_{{V_{(j + 1)} }} } \right)\, \hfill \\ + \,(v_{{T_{(j + 1)} }} + 8\,(\cos \gamma_{T} - 1)) \hfill \\ \end{aligned} \right]$$
(34)

The maximum \(\left( {\delta_{{gap_{{(GDT)_{\hbox{max} } }} }} } \right)\) and minimum \(\left( {\delta_{{gap_{{(GDT)_{\hbox{min} } }} }} } \right)\)\(\delta_{gap}\) for a set of group combination are calculated using Eqs. (33) and (34), respectively. Then, the assembly variation \(\left( {\delta_{{gap_{{(GDT)_{range} }} }} } \right)\) among the assemblies from one combination of selective groups can be calculated by,

$$\delta_{{gap_{{(GDT)_{range} }} = }} \hbox{max} \left( {\delta_{{gap_{{(GDT)_{\hbox{max} } }} }} } \right) - \hbox{min} \left( {\delta_{{gap_{{(GDT)_{\hbox{min} } }} }} } \right)$$
(35)

For example, the combination shown in Table 1 is given with the n = 6. The assembly variation for the case of GDT is calculated and presented in Table 1.

Table 1 Calculation of assembly variation for a combination

3.2 Results and Analysis

The proposed methodology in this paper, as shown in Fig. 1 is applied in the valvetrain assembly. The assembly variation in selective assembly is evaluated for the cases with DT alone and with GDT. The n is varied from 2 to 20. In GA programming, the pop_size is chosen as 10,000 with 100 numbers of iteration. The probabilities of operators, prob_cross, and prob_mut are fixed as 0.8 and 0.05, respectively. Since there is a maximum of 20 number of selective groups (bins) selected for the components, each chromosome carries 61 numbers of genes within the four substrings. GA for the proposed selective assembly tolerance analysis is carried out using own coding in the advanced package of MATLAB R2016b. A workstation of Intel i7 processor with 16 GB RAM took 32 h to complete a single run. The methodology has been evaluated on valve train assembly with two cases: GDT case and DT alone case. The nominal \(\delta_{gap}\) value of 5 mm is assumed for perfect valve opening and closing time. Though the maximum possible gap tolerance for GDT and DT alone cases are 0.051 and 0.042 mm respectively, it is aimed to minimize as small as possible. From linear programming, it has been found that 27 and 21 μm are optimal for GDT and DT cases, respectively.

From GA, the optimum combinations at each n for GDT and DT cases are presented in Tables 2 and 3, respectively. To simplify the comparison between two cases of selective assembly tolerance analysis, the \(\delta_{{gap_{\hbox{max} } }}\), \(\delta_{{gap_{\hbox{min} } }}\) and \(\delta_{{gap_{range} }}\) for each n is plotted and shown in Fig. 7. Here, the distance between \(\delta_{{gap_{\hbox{max} } }}\) and \(\delta_{{gap_{\hbox{min} } }}\) is schematically depicted the assembly variation in a group.

Table 2 The optimal combination of group components in GDT case
Table 3 The optimal combination of group components in DT alone case
Fig. 7
figure 7

Assembly clearance in the selective assembly of DT and GDT cases

From the selective assembly results, it is understood that the increment up to certain n values makes the gradual reduction in \(\delta_{{gap_{\hbox{max} } }}\) (dotted line) and increase in \(\delta_{{gap_{\hbox{min} } }}\)(dashed line). Later, the higher n value results in the increment in \(\delta_{{gap_{\hbox{max} } }}\) and reduction in \(\delta_{{gap_{\hbox{min} } }}\). As a result, \(\delta_{{gap_{range} }}\) as a measure of assembly variation (solid line) is reduced up to some n values; later it increases gradually. So, higher the number of groups does not always result in the expected δfit. It simply reverses the fit and consumes more resource, time and cost. So it becomes important to choose optimal n. For the GDT case, the optimal values, \(\delta_{{gap_{{(GDT)_{\hbox{min} } }} }}\) = 0.0309 mm and \(\delta_{{gap_{{(GDT)_{\hbox{max} } }} }}\) = 0.0380 mm are obtained in n = 11. For the case of DT alone, the n = 10 and 11 result the optimal values as \(\delta_{{gap_{{(DT)_{\hbox{min} } }} }}\) = 0.0181 mm and \(\delta_{{gap_{{(DT)_{\hbox{max} } }} }}\) = 0.0241 mm. Since the lower n results in lesser cost, n = 10 is chosen for DT case. So, the overall assembly variation is reduced as 7 and 6 μm for GDT and DT alone cases, respectively.

4 Conclusion

Every feature in a component has been specified with tolerances. The expected performance of an assembly is directly or indirectly affected by the individual feature tolerances of the components. The basic difference between the proposed methodology and the present practice at industries is to include the geometrical tolerances in the assembly fit evaluation, especially during the selective assembly of high precision assemblies. This is achieved by adopting matrix models of tolerance analysis, and it is demonstrated using a complex linear assembly, which consists of camshaft, tappet, and valve-stem. The matrix models for maximum and minimum assembly fits due to integrated GDT in the selective assembly process are developed along with constraint equations. These models with constraints are optimized for individual group size using GA. The best combinations which yield minimum assembly variation are obtained for 20 size groups. The group size with least assembly variation is chosen as an optimal for the selective assembly. The proposed models of selective assembly tolerance analysis are optimized in two cases: with integrated GDT and with DT alone. The effects of involving and omitting GDT on the selective assembly are verified. The optimization of selective assembly tolerance analysis by GA is coded and executed using MATLAB R2016b. The proposed method has the scope to extend with other tolerance analysis methods. Using the present capability of computerized systems, this method may also be extended for three-dimensional complex assemblies.