WOLFRAM SYSTEM MODELER

CylindricalBeamSegment

Class with a flexible cylindrical beam

Diagram

Wolfram Language

In[1]:=
SystemModel["RotatingMachinery.Shafts.SingleFiniteElements.CylindricalBeamSegment"]
Out[1]:=

Information

Euler–Bernoulli Beam

This model is an extended version of an Euler–Bernoulli Beam element. In addition to the Euler–Bernoulli Beam element, axial and twisting deformation is also taken into account. Background theory can be found in [1].

The axial direction of the beam is by default in the z direction, i.e. [3]-direction. See the following figure.

Figure 1: Euler–Bernouilli beam element.

The forces to deformation relation can be written as:

where the mass matrix M can be written as:

  

the damping matrix C can be written as:

the stiffness matrix K can be written as:

The load vector f, which describes loads and moments in the two directions that are not the axial for the beam (i.e. x and y axes) can be written as:

The deformation vector q can be written as:

where f is forces, t is the bending moment, r is displacement, and θ is the rotation angle. The index a refers to frame_a, and b refers to frame_b. The x, y and z directions correspond to the Modelica notation [1], [2] and [3], respectively. For instance, fax is the force in direction [1] on flange a and tby is the bending moment around axis [2] on flange b.

The velocities and accelerations become:

In addition to the Euler–Bernoulli Beam element axial, and twisting deformation is also taken into account. The axial deformation becomes:

Parameters:

  • length = Length of beam
  • diameter = Outer diameter of beam
  • innerDiameter =  Inner diameter of beam
  • density = Density of beam material
  • Emod = Young’s modulus
  • G = Element material modulus of rigidity (Shear modulus)
  • alpha = Rayleigh constant, i.e. material damping proportional to the stiffness matrix
  • enforceStates_a = true, if absolute variables of frame_a shall be used as states (StateSelect.always)
  • enforceStates_b = true, if absolute variables of frame_b shall be used as states (StateSelect.always)
  • resolveInFrame = RotatingMachinery.Components.Shafts.Components.Types.ResolveInFrame.frame_a, if variables of the beam shall be resolved in frame_a

A vibration due to material damping is frequency dependent, i.e. alpha needs to be adjusted depending which mode is studied.

As a rule of thumb, enforceStates_a is false for all elements and  enforceStates_b is true for all elements until it is rooted, i.e. normally the last element. Several examples describe this; see RotatingMachinery.Examples.Shafts

Normally, the default value for resolveInFrame is sufficient. If the model is built from "left to right", i.e. from frame_a to frame_b, this value should be the default. If a beam is connected only in frame_b, this value might have to be changed to frame_b instead.

References

[1] Wikipedia. "Euler-Bernoulli Beam." https://en.wikipedia.org/wiki/Euler%E2%80%93Bernoulli_beam_theory.

[2] Adams, M. L . Rotating Machinery Vibration: From Analysis to Troubleshooting (2nd ed.). CRC Press, 2010.

Parameters (29)

animation

Value: true

Type: Boolean

Description: =false, if the animation is disabled

shapeType

Value: "pipecylinder"

Type: ShapeType

Description: Shape of beam

length

Value:

Type: Length (m)

Description: Length vector from frame_a to frame_b, resolved resolveInFrame

diameter

Value:

Type: Diameter (m)

Description: Outer radius of beam

innerDiameter

Value: 0

Type: Diameter (m)

Description: Inner radius of beam

density

Value: 7850

Type: Density (kg/m³)

Description: Density of beam material

Emod

Value: 210000000000.0

Type: ModulusOfElasticity (Pa)

Description: Young's Modulus

G

Value: 80000000000.0

Type: ShearModulus (Pa)

Description: Element material modulus of rigidity (Shear modulus)

alpha

Value: 1 / 1000

Type: Real

Description: Rayleigh constant

enforceStates_a

Value: false

Type: Boolean

Description: = true, if absolute variables of frame_a shall be used as states (StateSelect.always)

enforceStates_b

Value: true

Type: Boolean

Description: = true, if absolute variables of frame_b shall be used as states (StateSelect.always)

resolveInFrame

Value: Shafts.Types.ResolveInFrame.frame_a

Type: ResolveInFrame

Description: Enumeration to define the frame in which the beam equations are resolved (frame_a, frame_b)

theta_start

Value: if theta_b_Fixed then theta_b_start else theta_a_start

Type: Angle[3] (rad)

r_a_Fixed

Value: false

Type: Boolean

Description: = true, if theta_a_start are used as initial values, else as guess values

r_a_start

Value: {0, 0, 0}

Type: Position[3] (m)

Description: Initial values of position

r_b_Fixed

Value: false

Type: Boolean

Description: = true, if theta_b_start are used as initial values, else as guess values

r_b_start

Value: {0, 0, 0}

Type: Position[3] (m)

Description: Initial values of position

v_a_Fixed

Value: false

Type: Boolean

Description: = true, if v_a_start are used as initial values, else as guess values

v_a_start

Value: {0, 0, 0}

Type: Velocity[3] (m/s)

Description: Initial values of velocity

v_b_Fixed

Value: false

Type: Boolean

Description: = true, if v_b_start are used as initial values, else as guess values

v_b_start

Value: {0, 0, 0}

Type: Velocity[3] (m/s)

Description: Initial values of velocity

theta_a_Fixed

Value: false

Type: Boolean

Description: = true, if theta_a_start are used as initial values, else as guess values

theta_a_start

Value: {0, 0, 0}

Type: Angle[3] (rad)

Description: Initial values of angles

theta_b_Fixed

Value: false

Type: Boolean

Description: = true, if theta_b_start are used as initial values, else as guess values

theta_b_start

Value: {0, 0, 0}

Type: Angle[3] (rad)

Description: Initial values of angles

thetad_a_Fixed

Value: false

Type: Boolean

Description: = true, if der(theta_a_start) are used as initial values, else as guess values

thetad_a_start

Value: {0, 0, 0}

Type: AngularVelocity[3] (rad/s)

Description: Initial values of angles

thetad_b_Fixed

Value: false

Type: Boolean

Description: = true, if der(theta_b_start) are used as initial values, else as guess values

thetad_b_start

Value: {0, 0, 0}

Type: AngularVelocity[3] (rad/s)

Description: Initial values of angles

Connectors (2)

frame_a

Type: Frame_a

Description: Coordinate system fixed to the component with one cut-force and cut-torque

frame_b

Type: Frame_b

Description: Coordinate system fixed to the component with one cut-force and cut-torque

Components (4)

cylindricalBeamElement

Type: CylindricalBeamElement

Description: Class containing beam elements based on Euler–Bernoulli beam theory

fixedShape

Type: FixedShape

Description: Visualizing an elementary shape with dynamically varying shape attributes (has one frame connector)

bodyCylinder

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

world

Type: World

Description: World coordinate system + gravity field + default animation definition

Used in Components (1)

CylindricalBeam

RotatingMachinery.Shafts

Class with a flexible cylindrical beam