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

View the Project on GitHub thegrumpys/odop

Design Situations

When a design problem is initially formed by establishing Fixes and constraints, the high level situation will likely be one of three cases:

Under-specified situations have too few constraints. There is nothing that prevents Seek from producing a trivial result. A Seek operation on an under-specified situation will likely result in an extremely poor ("degenerate") design. For example, Seek Min Weight could produce a design with close to zero dimensions. Well, probably not what you wanted but at least it has very low weight !

Over-specified situations have fixes and constraints that are mutually exclusive, allowing no solution. See below for examples. A Search operation on an over-specified situation will almost certainly produce a result that is "NOT FEASIBLE". Unfortunately, it is also possible for a properly-specified situation with overly ambitious goals to produce a "NOT FEASIBLE" search result. Without a careful analysis plus good understanding of the equations and values involved, it can be difficult to distinguish the difference between these two cases.

Properly-specified situations without overly ambitious goals may provide a "feasible region" where a range of variable values do not violate constraints. In this case, a Search will terminate when it finds the first feasible result. A Seek is necessary to find a design that is "best" ... specifically, the min or max of one of the design variables.

Note that the ODOP default designs, also known as Startup and initialState, are under-specified. These designs generally require the user to add additional constraints in order to produce a useful result with Seek.



In the Rectangular Solid design type, an over-specified situation can be created by establishing a minimum constraint on Volume while there is also a maximum constraint on Weight. Weight and Volume are directly linked by the material Density, which is a Calculation Input that is not available for Search to adjust. Thus, depending on the values, finding a feasible solution may be impossible.

Coil spring design offers many such opportunities to over-specify a design situation. Some of these are a consequence of Hooke's Law which says that the force-deflection relationship of coil springs is linear.

For compression and torsion springs, by definition of the term "deflection", there is a requirement of zero force at zero deflection. For compression and torsion springs, the zero force at zero deflection point has to fall on the line describing the relationship between force and deflection.

ODOP:Spring allows the user to specify force and deflection at two load points. For compression and torsion springs, If the line defined by those two points does not pass through zero force at zero deflection, the Search process (Action : Search menu item) will likely determine the result is "NOT FEASIBLE". In summary, this is the same situation as attempting to specify a straight line with more than two points. The Search feature can produce a feasible design only if all the points are on the same straight line.

For extension springs, the potential to vary initial tension (within limits) may allow the user some flexibility in specifying force and deflection at two load points.

For compression springs, as long as L_Free (free length) is not FIXed or constrained, there is flexibility in specifying force and length at two load points. The solution reaches feasibility by finding an appropriate value for L_Free.

See also: