29. Nonlinear axial rigidity
The identification tag for this tutorial is PDS-ACA. Pregenerated input files for this tutorial are found in the folder named PDS-ACA in the provided tutorial input files.
29.1. Tutorial overview
This tutorial covers:
- Nonlinear axial rigidity properties for cables.
- Determining and setting appropriate nonlinear axial rigidity properties for Nylon 12.
- Comparing the different methods for inputting axial rigidity.
29.2. Introduction to nonlinear axial rigidity
Note
- Axial rigidity defines a material’s resistance to deformation under loading, and is the slope of the load-elongation curve.
- For many materials within their elastic limits, such as wire ropes, synthetic ropes, and chains, axial rigidity remains fairly constant and can be well defined by a single value.
- However, certain materials exhibit a significant nonlinear relationship between the applied load and elongation.
- These materials must be represented by an appropriate nonlinear trend for axial rigidity to achieve the greatest accuracy.
29.3. Setting up a pull test
- Open ProteusDS Simulation Toolbox (PST) and save the new project in the desired folder location.
- Create a new cable, and name it Cable_1.
- Set the cable’s state by defining node 0 to be at (0,0,2) m and node N at (10,0,2) m. Give the cable 3 elements and 10 m length.
- Set
$Node0Static 1
to pin node 0 in space. - Create a new RigidBody and name it PullTest.
- Set the RigidBody state to a position of (10,0,2) m and a velocity of 0.1 m/s in the x-direction.
- Set
$Kinematic 1
to ensure the RigidBody’s initial velocity will remain constant throughout the duration of the simulation.
Note
- Since the RigidBody will be kinematically controlled, the mass properties are irrelevant.
- Create a point connection with PullTest as the master and Cable_1 as the follower. Set the connection at node N of the cable. Connection properties look like the following:
// Mechanical
$DCableFollowerNodeN 1
$DCableFollowerLocation 0 0 0
29.4. Defining nonlinear axial rigidity material properties
Note
- ProteusDS has two methods for inputting nonlinear axial rigidity properties for cables.
- The first method allows a user to define a 9th order polynomial, which represents the nonlinear relationship between load and elongation.
- The second method allows the user to input load-elongation data. ProteusDS will then automatically fit a polynomial to the data, which is then used in the finite element cable model.
- In the Cable_1 input file, remove the default CableSegment and add
$CableSegment Nylon12 10
. - In the feature library, create a new DCableSegment feature and call it Nylon12.
Note

Fig. 29.1 Nylon 12 material properties.

Fig. 29.2 Nylon 12 elongation curve.
29.4.1. Polynomial
Note
- ProteusDS takes a 9th order polynomial with corresponding coefficients as input for axial rigidity.
- The polynomial is defined as:
\(P = c_1 e + c_2 e^2 + c_3 e^3 + c_4 e^4 + c_5 e^5 + c_6 e^6 + c_7 e^7 + c_8 e^8 + c_9 e^9\)
- \(P\) is the load and \(e\) is the engineering strain. The engineering strain is defined as:
\(e = \frac{\Delta L}{L_0}\)
- Polynomial coefficients must be defined with elongation in terms of engineering strain. The finite element cable model within ProteusDS uses a green strain approximation for cable deformation.
- ProteusDS will automatically convert the engineering strain coefficients provided to Green strain form by a curve fitting process.
- The order of the fitted polynomial curve should be carefully considered. Too low of an order may result in the obvious trends of the data not being captured. Too high of an order may result in an overfit, causing unwanted lobes and inflection points in the polynomial.
- The polynomial coefficients can be calculated in a software package such as Excel or Matlab/Octave, by fitting a curve to load-elongation data.
- The Nylon 12 elongation curve (Fig. 29.2) will be fit with a 4th order polynomial to represent the change in axial rigidity with increasing applied load.
- Lower order polynomial regressions are defined by setting higher order coefficients to zero.
- In the Nylon12 DCableSegment feature, set
$AxialRigidityMode 2
for nonlinear axial rigidity. Press Ctrl+r to resolve follower properties.
Note
- ProteusDS also has the capability to model nonlinear axial rigidity with hysteresis. This is done by defining separate elongation curves for loading and unloading of the material. This axial rigidity mode will not be used for this tutorial.
- Set
$LoadElongationMode 2
and press Ctrl+r to resolve follower properties. - For a 4th order polynomial fit of 2” Nylon12, set the following coefficients:
$StrainPolynomialCoefficients 6.99E5 -3.07E6 9.63E7 -2.77E8 0 0 0 0 0
- Set
$StrainPolynomialFitRange 0.14
to define the maximum elongation the polynomial is fit to.
Note
- If the cable is strained past its elongation fit limit in a simulation, there may be unintended behavior as the polynomial is being evaluated outside its original limits. ProteusDS will output a warning letting the user know of this possibility.
- Set the remaining Nylon12 DCableSegment feature properties to the following:
// Axial Rigidity
$AxialRigidityMode 2
$LoadElongationMode 2
$StrainPolynomialFitRange 0.14
$StrainPolynomialCoefficients 6.99E5 -3.07E6 9.63E7 -2.77E8 0 0 0 0 0
// Fluid loading
$CDc 0.0
$CDt 0.0
$CAc 0.0
// Mechanical
$EI1 2E2
$EI2 2E2
$GJ 2E2
$Diameter 4.8E-2
$BuoyancyDiameter 3.992E-2
$Density 788
$CID 5E3
$BCID 0
$TCID 0
$CE 1
// Strain Limit
$ElongationLimitMode 0
Note
- Note that drag and added mass coefficients are set to 0 for this simulation.
- In the environment input file, add
$Gravity 0
to turn off gravitational forces. This will ensure the only forces acting on the cable are from the attached RigidBody. - Set the simulation length to 10 s at an output interval at 0.05 s.
- Run the simulation and view the results. The kinematically controlled RigidBody is increasing the length of the cable by 0.1 m/s. The resulting cable tensions can be seen to be changing non-linearly as time passes.
Note
- If the simulation is run for more than 14 s, the polynomial will be evaluated outside its intended limits, and may cause solver instability.
29.4.2. Load and elongation data
Note
- The second method of inputting nonlinear axial rigidity properties is manually entering the load and elongation data. ProteusDS will automatically fit a polynomial to the data for use within the finite element cable model.
- As mentioned previously, The ProteusDS finite element cable model uses a green strain approximation for cable deformation. Elongation data should be entered as percent elongation, and a conversion to green strain will be made internally.
- Create a new instance of the previous simulation by clicking the Copy button in the Project tab in PST. Save the input files to a new folder.
- Open a new window of PST for the new simulation.
- In the Nylon12 library feature, set
$LoadElongationMode 1
and press Ctrl+r to resolve follower properties. - Enter the following lines of load-elongation data:
$LoadElongationLoadingData 0.0 0.0
$LoadElongationLoadingData 3056.1 0.55
$LoadElongationLoadingData 8022.3 1.25
$LoadElongationLoadingData 12606.5 1.91
$LoadElongationLoadingData 17572.7 2.61
$LoadElongationLoadingData 23303.0 3.36
$LoadElongationLoadingData 28269.2 4.01
$LoadElongationLoadingData 33617.4 4.62
$LoadElongationLoadingData 38965.6 5.22
$LoadElongationLoadingData 45077.9 5.77
$LoadElongationLoadingData 51954.2 6.38
$LoadElongationLoadingData 58066.5 6.88
$LoadElongationLoadingData 64560.7 7.38
$LoadElongationLoadingData 71819.0 7.89
$LoadElongationLoadingData 80223.4 8.39
$LoadElongationLoadingData 87099.7 8.85
$LoadElongationLoadingData 93976.0 9.25
$LoadElongationLoadingData 100088.2 9.6
$LoadElongationLoadingData 107728.5 10.01
$LoadElongationLoadingData 116132.9 10.46
$LoadElongationLoadingData 122627.2 10.81
$LoadElongationLoadingData 130267.5 11.17
$LoadElongationLoadingData 139053.9 11.57
$LoadElongationLoadingData 147840.2 12.03
$LoadElongationLoadingData 156626.6 12.38
$LoadElongationLoadingData 165413.0 12.79
$LoadElongationLoadingData 173435.3 13.09
$LoadElongationLoadingData 180311.6 13.39
$LoadElongationLoadingData 188716.0 13.75
Note
- In general, there need to be as many load-elongation data points inputted as unknown polynomial coefficients. A good rule of thumb is to have more than twice as many data points as the required number of polynomial coefficients. The greater number of load-elongation points entered will give a more accurate fit to the true stress-strain characteristics of the material.
- The first column represents the load and the second column represents the percent elongation.
- Set
$PolynomialFitMode 1
to define the order of polynomial fit on the entered data. Press Ctrl+r to resolve follower properties. - Set
$PolynomialFitOrder 4
to fit a 4th order polynomial to the data.
Note
- ProteusDS has the capability of automatically determining the best order of fit for the data entered. By setting
$PolynomialFitMode 0
, a polynomial will be fit with an order that minimizes error between the polynomial and the inputted data.
- Run the simulation and view the results. The cable tensions will be identical to the previous simulation.
Note
- A comparison of cable tensions when using different axial rigidity modes can be seen in Fig. 29.3.

Fig. 29.3 Comparison of different axial rigidity modes.