How to model non-linear spring in OptiStruct

Non-linear springs find applications in various industries. These springs exhibit non-linear force-displacement characteristics, making their modelling a crucial aspect of structural analysis. OptiStruct offers a range of element types to simulate complex structures accurately. When dealing with non-linear springs, one possible approach is using the CBUSH element with the PBUSH property and PBUSHT table options to accurately represent the behaviour of these components.

In this article, we will check how to work with such elements and validate the results of modelling a non-linear spring using PBUSH property and PBUSHT in OptiStruct.

Format and Definition

Once the CBUSH element is created and the PBUSH property is assigned to it. Keep in mind that is always necessary to assign the CBUSH element to a local coordinate system through CID field under card edit. If setting CID = 0, the CBUSH will be assigned to the global coordinate system:

A screenshot of a computerDescription automatically generated with medium confidence

Under the K_LINE option in PBUSH property, you will input the stiffness value of the linear spring. This value will not be considered for the non-linear application. In this case, it is always overwritten by the force x deflection curve.

To model a non-linear spring, we need to activate the PBUSHT field and then the KN option, which represents the force versus deflection table for dofs 1 through 6, respectively.

Some important aspects to be considered:

(Image source:

Example and Validation


As an example, we will use the following model, which can be found in the following link:

A picture containing text, screenshot, rectangle, diagramDescription automatically generated

The model consists of a plate fixed on one side and an enforced displacement curve will be applied on the other end. The load will compress the plate in the first moment and then tension it. In the middle of the plate, there is a non-linear spring, which we will monitor the force and displacement of it. The load and spring curves are, respectively:

A picture containing text, plot, diagram, lineDescription automatically generated
Load Curve

A picture containing text, line, plot, diagramDescription automatically generated
Spring curve


To validate the results, we need to calculate the incremental distance between the spring’s GA and GB and the spring force. With these results, we can access the spring curve and check if they are matching.

For the maximum negative displacement at t=0.25:

A picture containing text, screenshot, diagram, softwareDescription automatically generated


And for the maximum positive displacement at t=1.00:

A picture containing text, screenshot, diagram, softwareDescription automatically generated

Bringing these values back to the force versus displacement curve, we can validate the PBUSHT results:

A picture containing text, line, diagram, plotDescription automatically generated