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.

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:

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:

- TYPE=KN is allowed only for nonlinear analysis.
- For TYPE=KN, Tension is U > 0 and Compression is U < 0 where U = U(GB) - U(GA) in CBUSH element coordinate system: GA/GB are grid points on CBUSH.

(Image source: https://www.coursehero.com/study-guides/boundless-physics/hookes-law/)

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

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:

Load Curve

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:

And for the maximum positive displacement at t=1.00:

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