1 Introduction

Machine design involves sizing many different mechanical components such as gears, shafts, bolted joints, cams, etc. Each component has its own particular use and requires specific manufacturing knowledge. When an elastic function is required, designers often use springs. These can be found in basic mechanisms where their sizing is not critical. Springs can also be found in high-level mechanisms such as cars [2], hand prostheses [3] and satellites [4]. In such mechanisms, spring design has to be reliable and well controlled as poor spring behavior would lead to major damage.

Even if the authoritative work on spring design was written in 1963 [5], the ever broader range of applications for springs explains the continuing need to study spring behavior today. Recent works have focused on buckling [6], large displacements [7], non-circular wire [8], natural frequency [9] and non-axial forces [10] of helical springs. Other studies are devoted to other types of springs such as conical springs [11, 12], leaf springs [1315] or tape springs [4]. Our study deals with the most commonly used helical compression springs with circular wire.

As with other common mechanical components, the problem of spring design is often resolved using tables and charts containing certain pre-selected specifications and objectives. Even with computer assistance, designers are often bound to oversimplify design procedures. They assign a value to certain parameters to reduce the number of problem variables to only two or three [1618]. However, progress in Computer Assisted Design should lead to the capability of designing components without having to resort to such simplifications. The main industrial software available to designers working on spring definition work (“Compression Spring Software” from IST [19], “FED1” from Hexagon [20] and “Advanced Spring Design” from SMI [21]) is mainly validation software. It uses standard calculations merely to check that the proposed design matches the requirements. “Advanced Spring Design” uses an optimization algorithm from UTS [22]. It allows the designer to define the desired parameters and automatically calculates all the other parameters that can be calculated until the design is completed. However, there is no tolerance on data and objective functions cannot be defined [23].

According to our view, the powerful potential for optimization is not fully taken advantage of in current practice. In theory, it should be possible to find an appropriate resolution method to provide an optimal solution to a global design problem for any specification. Such a tool would be of major interest to designers as it could be used at any stage in the design process, even at the beginning where most design parameters are as yet unknown. To answer to this need, Paredes et al. [24] have proposed several assistance tools to perform optimal design for compression, extension [25] and torsion [26] springs. This paper introduces an approach that can be used to make most of the optimization capabilities for compression spring design in proposing advanced assistance functionalities. In the first part of this paper, we present the window interface, the spring parameters and proposed levels of assistance. In the second part, the optimization problem is defined and the resolution method for the highest level of assistance is presented. The third part introduces a case study that makes use of high-level assistance capabilities.

2 Assistance tool

2.1 User-friendly window interface

The assistance tool interface is based on a main window where the data can be defined and the results are shown. This window is divided into three main areas called data 1, data 2 and results (see Fig. 1).

Fig. 1
figure 1

User friendly window interface

2.2 Data 1 area: fixed data for the problem

The data 1 area is used to define the data that are to be set for a problem. The designer specifies the material, the spring ends required, and the standards to be used. The number of cycles N need to be defined to calculate the fatigue life factor αF. Where buckling is to be avoided, the buckling length without a guide or housing L K has to be calculated. To do so, the user selects the end fixation factor ν in an additional window. The permitted percentage for the ultimate tensile strength R m at L c, called Sα Uc also has to be defined. The elastic limit of steel is about 50% of R m. This is the default value of Sα Uc but where we are certain that the spring will not be compressed to its solid length L c, higher R m percentages can be accepted. Finally, to be able to calculate the best spring, the objective function F (minimum mass, maximum fatigue life, etc.) has to be provided.

2.3 Data 2 area: problem parameters

The problem parameters are defined in the data 2 area. The proposed tool is to be used at any design stage. However, in the early design stages there are always a large number of parameters that are yet to be set. It is difficult to provide set values for a problem and it is therefore more convenient to define parameters through their possible lower and upper limits. For this reason, data 2 area comprises a specifications sheet defined using interval values. Thus, all parameters can be set by giving their limits (lower and/or upper: S X L, S X U). To set the value of a parameter, it has to be placed within both the lower and upper limits defining that parameter interval in the specifications sheet (see d and S h in Fig. 1) and, to handle most industrial problems, a large range of parameters needs to be considered. They define not only the spring geometry but also its uses.

The main parameters that define spring geometry are: D o, D, D i, d, R, L 0, L c, n T. Figure 2 illustrates these parameters that characterize the intrinsic properties of the spring. Four independent parameters have to be known to calculate the four others.

Fig. 2
figure 2

Main design parameters

A spring is conventionally described as working between two configurations, the least compressed state A and the most compressed state B. The main parameters defining the use of a spring are: F 1, F 2, L 1, L 2 and S h (see Fig. 3). Once the design parameters are known, two independent operating parameters (to be taken from among F 1, F 2, L 1, L 2 and S h) are needed to determine the two points A and B.

Fig. 3
figure 3

Main operating parameters

In addition, many other parameters can be considered by the designer as they can play a major role in some studies:

  • Natural frequency of surge waves (f e)

  • Diameter of the housing (D L)

  • Internal energy stored during operating travel (W h)

  • Spring mass (M)

  • Overall space occupied at free length (V 0)

  • Overall space occupied at minimal operating length (V 2).

2.4 Assistance levels

Four levels of assistance are proposed at the top of the window interface. At level 1 of assistance, the designer sets requirements and asks the tool to propose a design by clicking on the calculate button. Then, at level 2 assistance, calculation is almost instantaneous. The tool automatically proposes an optimal design for each new input (the Calculate button disappears). Thus, the designer can see at a glance what effect changes in input parameters have on the optimal design. A higher level of assistance can be obtained by activating interactive control of input (level 3). The idea here is to indicate the designer, where the statement of the problem lacks consistency (no acceptable solution can be found). The tool then checks the specifications introduced as input and automatically suggests corrections to those values that preclude determination of an acceptable solution domain.

The last level of assistance (level 4) shows in interactive fashion the optimal design and the acceptable bounds for each of the parameters considered in the data 2 area. This means the designer can readily see the influence of input values not only on the optimal design but also on the solution domain itself. The present paper focuses on presenting this last level of assistance.

2.5 Results area: proposed design

The results are presented on the right side of the specifications sheet. This area contains all the parameter values for the proposed solution including design and operating parameters. It also shows values for the parameters considered by standards such as the spring index or helix angle. To assist in design analysis, the objective function value is bordered and the parameter values that reach a limit of the problem (defined by the user, or imposed by standards or the spring manufacturer) are highlighted. The tool also allows a sensitivity study to be performed. An additional window shows the benefits on the objective function that can be obtained by relaxing limits. The designer can thus determine those limits that can be relaxed to derive an advantage.

Sometimes no spring can be found to fit requirements. In this case, a design closest to the specifications is proposed and those parameters that violate limits are shown with a stroke through them.

Finally, the results area also shows the allowable bounds for parameters when the highest level of assistance (level4) is activated.

3 Level 4 assistance algorithm

3.1 Main algorithm

The algorithm used for level 4 assistance is shown in Fig. 4. Using this activated assistance level, whenever the designer introduces new data the tool automatically shows the optimal spring characteristics and the allowable bounds for each parameter featured in the data 2 area. To achieve this, 39 optimization problems need to be automatically defined and solved. The only thing that varies between these 39 problems is the objective function. This explains why the optimization problem is prepared in one go (step 1). The resolution process is performed using a mathematical programming process (step 4). For greater efficiency, two additional steps have been inserted (steps 2 and 3). The last step (step 5) extracts the results to show the best design and prepares data for the next user input.

Fig. 4
figure 4

Level 4 assistance algorithm

3.2 Step 1: Building the optimization problem

Finding the spring design that offers the best possible value for an objective function involves an optimization problem with six continuous variables. Four design parameters (D o, d, L 0, R) and two operating parameters (L 1 and L 2) are stored in the “vector of design variables” X, so X=[ D o, d, L 0, R, L 1, L 2]T.

A large range of constraints is considered allowing most real-life industrial problems is to be resolved. Table 1 lists 47 selected constraints capable of expressing not just designer specifications but also standards and the spring manufacturer’s technical capability limits. All the necessary formulae to encode these equations are given in the Appendix. An optimization system with six variables and a maximum of 47 constraints is thus obtained and has to be resolved.

Table 1 Constraints

Each set of data not defined in the data 2 area is automatically set to a default value to ensure that it will not influence the optimization process, with 0 for a lower limit and 107 for an upper limit. Even where a standardized wire range exists, a wire can be manufactured to any diameter. When using standardized wire, each wire diameter (d) considered implies setting S d L=S d U=d in the specifications sheet.

The objective function is defined on each loop between step 2 and step 3 and is expressed using the conventional form :

$${\text{Minimize or Maximize} F}({\user2{X}}),$$

where F(X) is either the fatigue life factor, or any one of the parameters that may be set in the specifications sheet: D o, D, D i, D L, d, R, n T, L 0, L 1, L 2, L c, S h, F 1, F 2, M, f e, V 0, V2, W h.

Step 2 and step 3 are to increase efficiency of step 4. This explains why step 4 is presented before step 2 and step 3.

3.3 Step 4: Solving the optimization problem

The goal here is to find a fast, reliable and complete method to solve our problem automatically for any specification. As continuous variables have to be managed, we have chosen to use mathematical programming [27] and, more specifically, to implement a direct method as each step in the resolution process is based on a displacement inside the solution area. This kind of property is useful if the resolution process is interrupted before completion (where it proves difficult to obtain full convergence), with the tool being more likely to provide the designer with an adequate though non-optimal solution.

Direct methods require a starting point inside or close to the solution area. Indeed, the closer the starting point is to the final solution, the more likely the algorithm will be to converge towards the optimal solution. This is especially true here considering the high number of constraints. For this reason, we have developed a dedicated strategy to find a suitable starting point, implemented through building up a virtual catalog of springs relating to the specifications (step 2) and selecting from it the best design (step 3). One key benefit in searching for the allowable bounds of the parameters is shown in step 5.

3.4 Step 2: Building a virtual catalog

Interval arithmetic [28] is used to analyze the main parameters on the specifications sheet in order to build a spring virtual database that respects the greatest possible number of constraints. Interval arithmetic is used to full effect for the spring’s main design and operating parameters (see Figs. 2, 3). In this instance, formulae are quite simple and we take advantage of the tolerance propagation approach [29] to find springs that best respect the requirements.

3.5 Step 3: Selecting the best design from within the catalog

Selecting the best design within the virtual catalog is not in itself an easy matter. Indeed, choosing a spring from the catalog will allow you to define the four design parameters (D o, d, L 0, R) of the vector of design variables, but the two operating parameters (L 1 and L 2) still remain to be determined in order to fully define X. A dedicated algorithm [30] has thus been developed to select the best design within the virtual database. It first determines the optimal operating parameters for each spring depending on the specifications and on the current objective function. To this purpose, a method (introduced by Johnson [31]) dedicated to solving problems with a small number of variables is used. Each design obtained is then compared with the requirements and the best one is selected to initialize the mathematical programming process.

3.6 Step 5: Extracting and saving results

There are two ways to extract results, depending on whether the goal is to find the optimal design or find the allowable bound of a parameter.

When the objective function is that defined by the designer, a large number of results are extracted. The designer is offered all the design and operating parameters, and the other standard-related parameters.

When the objective is related to find one parameter bound, the user will only be offered the final value of the objective function (that is the allowable bound related to the tested parameter).

This search for allowable bounds is not only of great interest for the designer but also extremely important for the mathematical programming process, as it involves finding the Bounds of the Solution Space [32]. Considering this, the design parameters (D o, d, L 0 and R values) of the optimum result related to each bound are added to the next virtual catalog (this will be built at step 2 after the next designer input). This is a key issue as it guarantees our finding a starting point that respects the requirements for any specification (as long as problem consistency is maintained). Indeed, at least one of these springs satisfying the current optimization problem will also satisfy the next problem. This fact is illustrated in Fig. 5 for a simplified problem involving only two variables (being represented in a 2D space) d and D 0.

Fig. 5
figure 5

Evolution of the solution space depending on inputs

Figure 5a shows the solution domain in the [d, D 0] space. It is bounded by the manufacturing constraints and previous inputs from the designer (only S D U0 in this case):

  • on d (M d L, M d U) as represented by two vertical lines: d = M d L, d = M d U

  • on the spring index w represented by two lines: D 0 = d (M w U + 1) and D 0 = d (M w L+1)

  • on D 0 represented by a line: D 0 = S D U0

Note that the constraint on D, which is represented by a line D 0 = M D U+d, is not activated.

When the designer sets another value in the specifications sheet, the solution domain is reduced. Figure 5b illustrates the consequence of a S D Li input. The solution space includes the new constraint:

  • on D i represented by a line: D 0 = S D Li − 2 d.

The solutions found when searching for the allowable parameter bounds are located on the bounds of the solution space. At least one of these solutions can be retained for the next optimization problem (constructed when there is new designer input). This will be the solution relating to the search for the opposite bound compared with the input. In the example shown, the next user input relates to S D Li . Thus, the solution found when searching for the greatest value of D i (represented by a circle) provides a common solution for both optimization problems.

To conclude, storing the results of the allowable bound search ensures that we have an acceptable starting point for each optimization problem. But this initial design can be remote from the optimal one and we know that direct methods are more likely to converge when the starting point is close to the optimal solution. This explains why the algorithm used to build a virtual catalog of springs (step 2) is still of interest when it comes to finding a better initial design for each optimization problem.

4 Case study: spring for a hydraulic pump

This case study deals with a spring for a hydraulic pump and involves a dual presentation. The first of these quickly introduces a design leading to an acceptable solution. The second simulates a similar study where a value on the specifications sheet is changed, leading to non acceptable solution. We then go on to demonstrate the main advantages of the advanced assistance level (Fig. 6).

Fig. 6
figure 6

Piston design

The initial result is shown in Fig. 7. The proposed design fits the requirements and its associated fatigue life factor is equal to 1.73. It can be seen that the limits defined on the specifications sheet on F 2, L 2, f e, D L, S h and L n are reached and that the limits related to R are inactive. Obtaining such inactive limits often occurs when using this kind of tool as the designer has no need to pre-define the main parameters for the problem beforehand.

Fig. 7
figure 7

Result of the first study with level 1 assistance

4.1 First study

Requirements were defined as follows. The spring was of shot peened steel with closed and ground ends. Spring travel S h was constant (14 mm) and the system study defined the maximum spring load F 2 (200 N) together with the limits of the spring rate R (4 ≤ R ≤ 10 N/mm) and the minimum natural frequency of the spring f e (200 Hz). To avoid any problem of wear due to friction, the spring was not to buckle, the supports were parallel and guided to give an end fixation factor [1] of 0.5. Finally the compressed spring had to be included within the piston, with its housing diameter D L lower than DM (22 mm) and L 2 lower than LM (64 mm). As we were able to control the conditions for assembly and carriage strictly, the theoretical breakage of the spring at its solid length could be admitted. In this design stage there was no other geometrical constraint and the final design of the contiguous parts can be adjusted to match optimal spring design. The goal here was to obtain the greatest fatigue life factor for 107 cycles.

4.2 Second study

The same study was simulated considering the minimum natural frequency of the spring f e to be now twice the initial value (S f Le =400 Hz). At assistance level 1, problem resolution using continuous variables provided the result shown in Fig. 8. Here, no spring appeared to fit the requirements. For this reason, the tool automatically proposes a design closest to the specifications. We can see that the proposed spring has a natural frequency of 395 Hz, that is less than the 400 Hz required by the specifications. At this step the designer can either accept the spring or modify the requirements in order to find a better one by trial and error.

Fig. 8
figure 8

Result of the second study with level 1 assistance

The same study was performed activating level 4 assistance. Data were set in the order they appear in the specifications sheet: S F L2 =200 N; S F U2 =200 N; S L U2 =64 mm; S f Le =400 Hz; S R L=4 N/mm; S R U=10 N/mm; S D UL =22 mm. At this step, the tool shows that the maximum allowable value for S h is 13.625 mm. Thus, when the next data item, S S Lh =14 mm, is entered in the specifications sheet, the assistance tool automatically corrects the value to maintain consistency and proposes 13.625 mm instead of 14 mm (see Fig. 9). The designer knows that there is no solution for the initially sought specifications and the last data item, S S Uh =14 mm, is entered without leading to any change.

Fig. 9
figure 9

Message providing corrected data to maintain consistency

For the system under consideration, spring travel must be 14 mm and something therefore has to be changed in the specifications. Here, sensitivity analysis can help in determining what could be done to improve allowable spring travel with the objective being to attain ‘greatest spring travel’. This analysis shows (see Fig. 10) that maximum gain can be obtained by decreasing S F L2 , decreasing S f Le or increasing S R U . It also shows that no gain would be obtained in modifying either the geometrical limits or the manufacturing limits.

Fig. 10
figure 10

Result of the sensitivity study

The sensitivity study tests each limit set on the specifications sheet, as also the manufacturing limits and material limits. One optimization problem is thus defined and solved for each tested limit. Each problem is in fact similar to the initial optimization problem (as defined in the main window) but the constraint relating to the tested limit is relaxed by 10%. Thus, by comparison with the initial problem, we enlarge the solution space and, as a result, the optimal design shown in the Results area represents an acceptable point. Moreover, as the objective function remains unchanged (being the one defined by the designer in the data 1 area), this design solution comes very close to the new optimal solution. In this way, the design is defined as the unique starting point for each optimization problem. The sensitivity study window shows the relative gain on the objective function for each tested limit.

Having considered the overall system, a value of S F L2 =180 N proves to be acceptable if certain modifications are introduced on other parts.

The assistance tool can also be used to define optimal springs made from standardized wires. Considering the current problem, the tool shows that 2.22≤d≤2.58 mm. The only standardized wire diameter available is d=2.5 mm. A last calculation is thus performed with S d L=2.5 mm and S d U=2.5 mm. This leads to the solution shown in Fig. 1, which is retained for the final design.

5 Conclusion

In the present paper, we introduced a comprehensive dimensional synthesis tool for compression spring design. Its main advantage is in making full use of optimization processes to propose a design working directly from the specifications. Furthermore, the specifications sheet can incorporate data tolerances to be used in the early design stages. The advantages of using optimization algorithms are also used to the full in proposing advanced assistance functionalities. The tool can automatically correct data to maintain problem consistency and also allows a sensitivity study to be performed to see what effects are induced by modifying the input data. Finally, the assistance tool can be used interactively to outline the allowable parameter bounds, providing the designer with an overview.

This approach can be extended to the other types of springs such as extension, torsion or conical springs. More generally, as this approach can be time consuming, it could be of major interest to help designers when analytical formulae can be exploited.