# odop

Open Design Optimization Platform (ODOP) - Coil spring design app; mechanical springs; compression spring, extension spring, torsion spring

View the Project on GitHub thegrumpys/odop

# Extension Spring Design Type

The Extension Spring design type is a full-featured mathematical model enabling the engineering design of round wire helical coil extension springs.

This section presents material unique to the Extension Spring design type. The more general material available at Spring Design Topics provides important supplemental information.

## Extension spring force-deflection diagram

``````                    |             /
Force_2 ----|------------/
|           /:         ODOP:Spring Names
F                 |          / :
|         /  :            extension
O                 |        /   :             spring
|       /    :
R                 |      /     :
|     /      :
C     Force_1 ----|----/       :
|   /:       :
E                 |  / :<----->:------- L_Stroke
| /  :       :
Initial_ _ _|/   :       :
Tension     |    :       :
|____:_______:________
L_Free    :       :
L_1     L_2
Deflect_1     Deflect_2

D E F L E C T I O N
``````

## Extension spring force-deflection point names

The force-deflection points and associated names are:

length force outside diameter inside diameter stress factor of safety
free: L_Free OD_Free ID_Free
point 1: L_1 Force_1 Stress_1
point 2: L_2 Force_2 Stress_2 FS_2
max safe:

point 1 = minimum operating load     point 2 = maximum operating load

## Extension spring dimensions

The following diagrams may be of some assistance in interpreting the various dimensions of an extension spring.

``````          Extension Spring Dimensions

|<-----------  L_Free  ------------>|

|<----  L_Body  ---->|

|
.  ____________________         .       _v_
/   |                    |         `\
|    |                    |          |    OD_Free
\   |                    |          /
`._|____________________|________.'      ___
^
|

---->|       |<--- End_Extension
->|   |<--- L_End
L_Extended_End ---->|  |<---
``````

``````|<--------------------------------- L_Free ------------------------------>|
|<-- L_End -->|<-- L_Body -->|<-- End_Extension -->|<-- L_Extended_End -->|

``````

## Independent Variable names:

Name   Description
Wire_Dia wire diameter
OD_Free outside diameter in the free condition
Coils_T total number of coils, including inactive coils
Initial_Tension initial tension of extension spring (free condition)
End_Extension A length added to the spring by a straight wire extension between the body of the spring and the ends. The value of End_Extension is the sum for both ends of the spring.

## Dependent Variable names:

Name   Description
Mean_Dia mean diameter of spring coil in free condition;   (OD_free + ID_Free)/2
ID_Free inside diameter in free condition
Coils_A number of active coils (turns)
Rate spring constant - force per unit deflection
Deflect_1 deflection at Force_1
Deflect_2 deflection at Force_2
L_Body length of body in free condition (without ends)
L_Free length in free condition (with ends)
L_1 spring length at minimum operating load (Force_1)
L_2 spring length at maximum operating load (Force_2)
L_Stroke net deflection between point 1 and point 2
Weight weight of spring;   wire density * wire volume
Spring_Index spring index; the ratio: Mean_Dia/Wire_Dia
Stress_Initial stress produced by initial tension
Stress_1 torsional stress at point 1
Stress_2 torsional stress at point 2
Stress_Hook bending stress in the hook at load point 2
FS_2 static factor of safety at point 2;   The ratio of allowable stress at point 2 to the calculated stress induced by the load at point 2 (Stress_Lim_Stat/Stress_2).
FS_Cycle_Life factor of safety based on the Soderberg endurance limit calculation.   This figure uses the allowable endurance stress (Stress_Lim_Endur) to include fatigue considerations.   Refer to additional discussion in the Cycle_Life topic.
FS_Hook factor of safety in hook based on Stress_Hook and Stress_Lim_Bend
Cycle_Life expected cycle life based on a calculation using the "modified Goodman method". This value is approximate. Refer to additional discussion in the Cycle_Life topic.
Stress_Init_Lo lower limit of initial stress for proper manufacturability
Stress_Init_Hi upper limit of initial stress for proper manufacturability
Energy change in elastic potential energy between point 1 and point 2

## Calculation Input names:

Name   Description
Spring_Type character string used only as a label
Prop_Calc_Method Property Calculation Method controls how material properties and allowable stresses are determined. See also: Materials.
1 - indicates values come from materials table; allowable stresses will be calculated as a function of Wire_Dia.
2 - indicates tensile and allowable % are supplied by the user; allowable stresses are calculated.
3 - indicates allowable stresses are supplied directly by the user.
Material_Type selects an entry in the material table. Is used to determine allowable stresses when Prop_Calc_Method is 1. Otherwise is ignored.
ASTM/Fed-Spec character string used only as a label to further identify the origin of material property data
Process character string used to identify the manufacturing process. It is normally controlled by the material selected from the material table. Values are usually Cold_Coiled or Hot_Wound. See also: Hot_Factor_Kh (below).
Life_Category This value reflects the user's input about shot peening and required cycle life. It is input to the calculation of FS_CycleLife. See also: Cycle_Life
Density wire density; weight per unit volume
Torsion_Modulus torsional modulus (G); a.k.a. shear modulus or modulus of rigidity
Hot_Factor_Kh empirical correction factor applied to hot wound modulus
Tensile tensile strength
%_Tensile_Stat allowable fraction of tensile strength for torsion static load
%_Tensile_Bend allowable fraction of tensile strength for bending in end
Stress_Lim_Endur allowable stress limit; cyclic application (torsion)
Stress_Lim_Stat allowable stress limit; static application (torsion)
Stress_Lim_Bend allowable stress limit; static application (bending)
SI_Range Stress_Initial range; provides user control over the constraints on Stress_Initial
Readily_Obtainable   (default) - When a known ferrous Material_Type is in use, the values of SI_Lo_Factor and SI_Hi_Factor corresponding to good manufacturability are obtained from the built-in materials table.
Special_Request - When a known ferrous Material_Type is in use, extended values of SI_Lo_Factor and SI_Hi_Factor are utilized. Check with the spring manufacturer regarding capabilities and cost.
User_Specified - The user may specify values for SI_Lo_Factor and SI_Hi_Factor.
SI_Lo_Factor used in calculation of minimum constraint on initial stress
SI_Hi_Factor used in calculation of maximum constraint on initial stress
End_Type used to determine calculations for end dimensions and Hook_Deflect_All; Set to User_Specified for independent control of dimensions (below). See also: Extension spring end types
End_ID inside diameter of hook or loop
Extended_End_ID inside diameter of hook or loop at other end
L_End distance from body to inside of hook;   See also: Extension spring dimensions
L_Extended_End distance from body to inside of hook at other end;   See also: Extension spring dimensions
Hook_Deflect_All number of coils allowed for hook deflection
Catalog_Name name of the catalog containing the most recently selected catalog entry
Catalog_Number catalog number of the most recent catalog entry

## Values in reports

Other values calculated and displayed in the Reports include:

Name   Description
Wire Length total length of wire required to manufacture the spring, not including any waste
Safe Load load supported by the spring at a stress of Stress_Lim_Stat.
Weight weight of 1,000 springs
Stress Ratio ratio of minimum stress to maximum stress (Stress_1/Stress_2)
Kw1 stress correction factor due to curvature
torsion stress @end (Sb) torsion stress in hook or loop (greatest at location Sb)
bending stress @end (Sa) bending stress in hook or loop (greatest at location Sa; Stress_Hook)

## Constraints unique to extension springs:

While most extension spring constraints have constant levels, a few are of the "Functionally Determined Constraint Level" (FDCL) variety. As described in the Function Constraints (FDCL) section of the On-line Help entry on "Terminology", rather than having constraint levels that are expressed as simple constants, these express a desired relationship between selected variables.

In the default extension spring start point ("Startup"), Force_1 MIN is a function of Initial_Tension. The constraint relationship says that Force_1, the force at the first load point, should be greater than the value of Initial_Tension.

## Initial tension range

Manufacturing considerations require that the initial tension of an extension spring fall within an empirical minimum to maximum range. The software calculates this range and using the constraint defaults established in the extension spring startup, the software will search for designs that fall within this range.

The SI_Range selection in extension spring Calculation Inputs provides the terms "Readily Obtainable" and "Special Request" that refer to the ranges of initial stress achievable in standard practice. The "Special Request" range permits a lower minimum and higher maximum values. Internally, the SI_Range selection gets empirical constants SI_Lo_Factor and SI_Hi_Factor from the material table and computes Stress_Init_Lo and Stress_Init_Hi. These values then become the MIN and MAX constraint levels for Stress_Initial and thus limit Initial_Tension to the appropriate range of values.

In summary, extension springs have three "Functionally Determined Constraint Levels" (FDCL) configured in the default startup design.

Constraint on:       Is current value of:
Force_1 MIN     Initial_Tension
Stress_Initial MIN     Stress_Init_Lo
Stress_Initial MAX     Stress_Init_Hi

One additional "Functionally Determined Constraint Level" (FDCL) that can be enabled by the user is:

Constraint on:       Is current value of:
Stress_Hook MAX     Stress_Lim_Bend

## Hook Stress

The software calculates the bending stress (Sa) and torsional stress (Sb) in a conventional machine hook of an extension spring. The bending stress, a function of hook radius, reaches a maximum at a point (a) on the hook that is 90 degrees prior to the contact point of an attachment pin or other means of loading the spring. The torsional stress, a function of the bend radius where the spring body transitions into the hook, reaches a maximum at a point (b). The current version of of the software will base the torsional stress calculation on a bend radius of twice the wire diameter.

These stresses are listed in REPORT 2. A warning message will be produced if either of the stresses is high enough to exceed the corresponding allowable stress value. Note that the limiting stress component (bending stress at point (a) versus torsional stress at point (b)) is a function of spring index.

## Extension spring cycle life

Hook or loop ends on an extension spring are loaded in both bending and torsion. Depending on the radius of the bend that tilts the last coil upward to form the hook or loop, either the bending or torsional stresses may be the first to induce failure. Note that fatigue failure in the end of an extension spring may also be induced by stress concentration caused by tooling marks. Refer to the sources listed in the on-line Help Spring Design References topic for additional details.

ODOP:Spring uses bending stresses in the calculation of FS_Hook. FS_Hook is not constrained in the default extension spring start point ("Startup"). In order to establish such a constraint, use the numeric entry fields. For example:

``````    CHANGE  FS_Hook  MIN  1.0
CHANGE  Stress_Hook  MAX  Stress_Lim_Bend
``````

Stress_Lim_Bend is based on %_Tensile_Bend, a percentage of the selected material's tensile strength. This percentage is determined based on the desired cycle life conditions established by Life_Category.

Torsional stresses in the end of an extension spring are calculated and listed in Report 2. The Report 2 tab will flag these stresses if they exceed the value of Stress_Lim_Endur. Note that the value listed for Cycle_Life is based on stresses in the body coils; it does not apply to the hooks, loops or other forms of attachment.

## End Types

ODOP:Spring currently implements five end types for extension springs. In addition, the user can define specialized end conditions. These end types are represented by the Calculation Input End_Type which for extension springs has the following possible values:

Extension
1 FULL_LOOP
2 75%_LOOP
3 FULL_HOOK
4 75%_HOOK
5 CLOSE_WOUND_COIL
6 USER_SPECIFIED

For an extension spring, the end type directly impacts calculation of Hook_Deflect_All, End_ID, Extended_End_ID, L_End and L_Extended_End. Other variables are impacted indirectly.

Full_Loop implies a loop matching the diameter of the coil body. The distance from the last body coil to the inside of each hook (loop) is equal to the inside diameter of the body.

75%_Loop implies a shortened hook (loop) where the inside of the hook (loop) falls 75% of an inside diameter from the end of the body. Hook stresses are calculated based on body diameter in the hook (loop).

When End_Type is set to one of the standard (non User_Specified) selections, the quantities described above as "directly impacted" will be set by the program from values contained in internal tables. When the value of End_Type is User_Specified, the constants described above as "directly impacted" may be set by the user with the numeric entry field.

More precise treatments of extension spring end types are available in the resources listed in the Spring Design References section of the documentation.