Edit me

Brief

BushingElement is a superelement modeling complex behavior between two nodes. It is frequently used for example in automotive applications to simplify modeling rubber bushings at the suspension. BushingElement assumes fairly simple kinematics but can model complex behavior by defining force-displacement relationships in different (combinations of) directions.

Usage

Force(moment) - displacement(rotation) relationships at the two nodes can be generated by carrying out an analysis on a full model of the bushing’s geometry under different load cases and recording the displacements(rotations) at the attachment points (nodes) in a table. Alternatively, a linear behavior can also be specified. In any case, NODAL_DISPLACEMENT_STIFFNESS (representing \(K^\square\)) and NODAL_ROTATIONAL_STIFFNESS (suneth representing \(K^\square_\theta\)) must be defined in the material JSON.

Example anisotropic linear behavior:

{
    "properties" : [
        {
            "model_part_name" : "root.bushing",
            "properties_id" : 1,
            "Material" : {
                "name" : "BushingMaterial",
                "Variables" : {
                    "NODAL_DISPLACEMENT_STIFFNESS" : [/*K^x=*/1e9, /*K^y=*/1e8, /*K^z=*/2e8],
                    "NODAL_ROTATIONAL_STIFFNESS" : [/*K^x_\theta=*/1e7, /*K^y_\theta=*/1e6, /*K^z_\theta=*/1e5]
                }
            }
        }
    ]
}

Example anisotropic nonlinear behavior:

{
    "properties" : [
        {
            "model_part_name" : "root.bushing",
            "properties_id" : 1,
            "Material" : {
                "name" : "BushingMaterial",
                "Tables" : {
                    "ux_vs_fx" : {
                        "input_variable" : "DISPLACEMENT_X",
                        "output_variable" : "NODAL_DISPLACEMENT_STIFFNESS_X",
                        "data" : [
                            [-1e-5, 1e8],
                            [ 0e0,  1e9],
                            [ 1e-5, 5e8]
                        ]
                    },

                    ...

                    "thetaz_vs_mz" : {
                        "input_variable" : "ROTATION_Z",
                        "output_variable" : "NODAL_ROTATIONAL_STIFFNESS_Z",
                        "data" : [
                            [-1e-2, 1e7],
                            [ 0e0,  1e8],
                            [ 1e-2, 5e7]
                        ] // "data"
                    } // "thetaz_vs_mz"
                } // "Tables"
            } // "Material"
        }
    ] // "properties"
}

Example usage using Force(moment) and Displacement(rotation) data:

The bushing element can use linear / non-linear data from force-displacement and/or moment-rotation graphs (refer “Defining nonlinear spring behavior” in abaqus). Following is an example:

{
    "properties" : [
        {
            "model_part_name" : "root.bushing",
            "properties_id" : 1,
            "Material" : {
                "name" : "BushingMaterial",
                "Tables" : {
                    "ux_vs_fx" : {
                        "input_variable" : "DISPLACEMENT_X",
                        "output_variable" : "FORCE_X",
                        "data" : [
                            [-1e-5, 1e8],
                            [ 0e0,  1e9],
                            [ 1e-5, 5e8]
                        ]
                    },

                    ...

                    "thetaz_vs_mz" : {
                        "input_variable" : "ROTATION_Z",
                        "output_variable" : "MOMENT_Z",
                        "data" : [
                            [-1e-2, 1e7],
                            [ 0e0,  1e8],
                            [ 1e-2, 5e7]
                        ] // "data"
                    } // "thetaz_vs_mz"
                } // "Tables"
            } // "Material"
        }
    ] // "properties"
}

Kinematics

This section details the BushingElement’s kinematics in the \(xy\) plane. Similar derivations apply in the other planes.

The kinematics of BushingElement is heavily simplified and restricted to small displacements as well as small distances between the two nodes. The line connecting the two nodes is assumed to deform along the arc of a circle, meaning that the deformed configuration has a constant radius of curvature \(\rho^z\).

The length of the line between the two nodes \(s\) is initially \(l\) but changes as a function of \(\theta^z\) during deformation: \(ds = \rho^z d\theta^z \stackrel{\text{small } \theta^z}{\approx} dx\) \(\tan \theta^z = \frac{dy}{dx} \stackrel{\text{small } \theta^z}{\approx} \theta\)

An ODE defining the deformed shape follows. \(\begin{align*} \frac{d^2 y}{d x^2} = \frac{1}{\rho^z} \quad \rightarrow \quad & \theta^z(x) = \frac{x}{\rho^z} + c_0 \\ & y(x) = \frac{x^2}{2 \rho^z} + c_0 x + c_1 \end{align*}\)

Applying the boundary conditions \(\theta^z(0) = \theta^z_0\) and \(y(0) = u^y_0\): \(\begin{align*} & \theta^z(x) = \frac{\theta^z_1 - \theta^z_0}{l}x + \theta^z_0 \\ & y(x) = \frac{\theta^z_1 - \theta^z_0}{l}x^2 + \theta^z_0 x + u^y_0 \end{align*}\)

Stiffnesses

XY Plane

This section details the BushingElement’s stiffnesses in the $xy$ plane. Similar derivations apply in other planes as well. Stiffnesses are defined in terms of the provided force(moment)-displacement(rotation) curves, which are internally reduced to tangent stiffnesses.

\[\begin{align*} F^y_{int} &= K^y (u^y_1 - y(l)) = K^y (u^y_1 - u^y_0 - \frac{\theta^z_0 + \theta^z_1}{2} l) \\ M^z_{int} &= K^z_\theta (\theta^z_0 - \theta^z_1) \end{align*}\]

Forces in terms of DoFs:

\[\begin{align*} F^y_0 &= -F_{int} = -K^y (u^y_1 - u^y_0 - \frac{\theta^z_0 + \theta^z_1}{2} l) \\ M^z_0 &= M^z_{int} - F^y_{int} \frac{l}{2} = K^z_\theta (\theta^z_0 - \theta^z_1) - K^y (u^y_1 - u^y_0 - \frac{\theta^z_0 + \theta^z_1}{2} l) \frac{l}{2} \\ F^y_1 &= F_{int} = K_y (u^y_1 - u^y_0 - \frac{\theta^z_0 + \theta^z_1}{2}l) \\ M^z_1 &= -M^z_{int} - F^y_{int} \frac{l}{2} = -K^z_\theta (\theta^z_0 - \theta^z_1) - K^y (u^y_1 - u^y_0 - \frac{\theta^z_0 + \theta^z_1}{2}l) \frac{l}{2} \end{align*}\]

The stiffness matrix \(K\) in the \(xy\) plane follows. \(\overset{K}{ \begin{bmatrix} K^y & K^y \frac{l}{2} & -K^y & K^y \frac{l}{2} \\ K^y \frac{l}{2} & K^z_\theta + K^y (\frac{l}{2})^2 & -K^y \frac{l}{2} & -K^z_\theta + K^y (\frac{l}{2})^2 \\ -K^y & -K^y \frac{l}{2} & K^y & -K^y \frac{l}{2} \\ K^y \frac{l}{2} & -K^z_\theta + K^y (\frac{l}{2})^2 & -K^y \frac{l}{2} & K^z_\theta + K^y (\frac{l}{2})^2 \end{bmatrix} } \overset{u}{ \begin{bmatrix} u^y_0 \\ \theta^z_0 \\ u^y_1 \\ \theta^z_1 \end{bmatrix} } = \overset{f}{ \begin{bmatrix} F^y_0 \\ M^z_0 \\ F^y_1 \\ M^z_0 \end{bmatrix} }\)

3D

The remaining components of the stiffness matrix can be derived similarly in other planes.

\(u\):

row # DoF
0 \(u^x_0\)
1 \(u^y_0\)
2 \(u^z_0\)
3 \(\theta^x_0\)
4 \(\theta^y_0\)
5 \(\theta^z_0\)
6 \(u^x_1\)
7 \(u^y_1\)
8 \(u^z_1\)
9 \(\theta^x_1\)
11 \(\theta^y_1\)
12 \(\theta^z_1\)

\(K\):

row # column # Value
0 0 \(K^x\)
0 6 \(-K^x\)
1 1 \(K^y\)
1 5 \(K^y \frac{l}{2}\)
1 7 \(-K^y\)
1 11 \(K^y \frac{l}{2}\)
2 2 \(K^z\)
2 4 \(-K^z \frac{l}{2}\)
2 8 \(-K^z\)
2 10 \(-K^z \frac{l}{2}\)
3 3 \(K^x_\theta\)
3 9 \(-K^x_\theta\)
4 2 \(-K^z \frac{l}{2}\)
4 4 \(K^y_\theta + K^z (\frac{l}{2})^2\)
4 8 \(K^z \frac{l}{2}\)
4 10 \(-K^y_\theta + K^z (\frac{l}{2})^2\)
5 1 \(K^y \frac{l}{2}\)
5 5 \(K^z_\theta + K^y (\frac{l}{2})^2\)
5 7 \(-K^y \frac{l}{2}\)
5 11 \(-K^z_\theta + K^y (\frac{l}{2})^2\)
6 0 \(-K^x\)
6 6 \(K^x\)
7 1 \(-K^y\)
7 5 \(-K^y \frac{l}{2}\)
7 7 \(K^y\)
7 11 \(-K^y \frac{l}{2}\)
8 2 \(-K^z\)
8 4 \(K^z \frac{l}{2}\)
8 8 \(K^z\)
8 10 \(K^z \frac{l}{2}\)
9 3 \(-K^x_\theta\)
9 9 \(K^x_\theta\)
10 2 \(-K^z \frac{l}{2}\)
10 4 \(-K^y_\theta + K^z (\frac{l}{2})^2\)
10 8 \(K^z \frac{l}{2}\)
10 10 \(K^y_\theta + K^z (\frac{l}{2})^2\)
11 1 \(K^y \frac{l}{2}\)
11 5 \(-K^z_\theta + K^y (\frac{l}{2})^2\)
11 7 \(-K^y \frac{l}{2}\)
11 11 \(K^z_\theta + K^y (\frac{l}{2})^2\)