ObjectMassPoint2D

A 2D mass point which is attached to a position-based 2D node.

Additional information for ObjectMassPoint2D:

  • This Object has/provides the following types = Body, SingleNoded
  • Requested Node type = Position2D + Position
  • Short name for Python = MassPoint2D
  • Short name for Python visualization object = VMassPoint2D

The item ObjectMassPoint2D with type = ‘MassPoint2D’ has the following parameters:

  • name [type = String, default = ‘’]:
    objects’s unique name
  • physicsMass [\(m\), type = UReal, default = 0.]:
    mass [SI:kg] of mass point
  • nodeNumber [\(n0\), type = NodeIndex, default = invalid (-1)]:
    node number (type NodeIndex) for mass point
  • visualization [type = VObjectMassPoint2D]:
    parameters for visualization of item

The item VObjectMassPoint2D has the following parameters:

  • show [type = Bool, default = True]:
    set true, if item is shown in visualization and false if it is not shown
  • graphicsData [type = BodyGraphicsData]:
    Structure contains data for body visualization; data is defined in special list / dictionary structure

DESCRIPTION of ObjectMassPoint2D

The following output variables are available as OutputVariableType in sensors, Get…Output() and other functions:

  • Position: \(\LU{0}{{\mathbf{p}}}\cConfig(\pLocB) = \LU{0}{\pRef}\cConfig + \LU{0}{\pRef}\cRef + \LU{0b}{\mathbf{I}_{2 \times 2}}\pLocB\)
    global position vector of translated local position; local (body) coordinate system = global coordinate system
  • Displacement: \(\LU{0}{{\mathbf{u}}}\cConfig = [q_0,\;q_1,\;0]\cConfig\tp\)
    global displacement vector of mass point
  • Velocity: \(\LU{0}{{\mathbf{v}}}\cConfig = \LU{0}{\dot{\mathbf{u}}}\cConfig = [\dot q_0,\;\dot q_1,\;0]\cConfig\tp\)
    global velocity vector of mass point
  • Acceleration: \(\LU{0}{{\mathbf{a}}}\cConfig = \LU{0}{\ddot{\mathbf{u}}}\cConfig = [\ddot q_0,\;\ddot q_1,\;0]\cConfig\tp\)
    global acceleration vector of mass point

Definition of quantities

intermediate variables
symbol
description
node position
\(\LU{0}{\pRef}\cConfig + \LU{0}{\pRef}\cRef = \LU{0}{{\mathbf{p}}}(n_0)\cConfig\)
position of mass point which is provided by node \(n_0\) in any configuration (except reference)
node displacement
\(\LU{0}{{\mathbf{u}}}\cConfig = \LU{0}{\pRef}\cConfig = [q_0,\;q_1,\;0]\cConfig\tp = \LU{0}{{\mathbf{u}}}(n_0)\cConfig\)
displacement of mass point which is provided by node \(n_0\) in any configuration
node velocity
\(\LU{0}{{\mathbf{v}}}\cConfig = [\dot q_0,\;\dot q_1,\;0]\cConfig\tp = \LU{0}{{\mathbf{v}}}(n_0)\cConfig\)
velocity of mass point which is provided by node \(n_0\) in any configuration
transformation matrix
\(\LU{0b}{\Rot} = \mathbf{I}_{3 \times 3}\)
transformation of local body (\(b\)) coordinates to global (0) coordinates; this is the constant unit matrix, because local = global coordinates for the mass point
residual forces
\(\LU{0}{{\mathbf{f}}} = [f_0,\;f_1]\tp\)
residual of all forces on mass point
applied forces
\(\LU{0}{{\mathbf{f}}}_a = [f_0,\;f_1,\;f_2]\tp\)
applied forces (loads, connectors, joint reaction forces, …)

Equations of motion

\[\mp{m}{0} {0}{m} \vp{\ddot q_0}{\ddot q_1} = \vp{f_0}{f_1}.\]

For example, a LoadCoordinate on coordinate 1 of the node would add a term in \(f_1\) on the RHS.

Position-based markers can measure position \({\mathbf{p}}\cConfig\). The position jacobian

\[\begin{split}{\mathbf{J}}_{pos} = \partial {\mathbf{p}}\cCur / \partial {\mathbf{c}}\cCur = \left[\!\! \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \end{array} \!\!\right]\end{split}\]

transforms the action of global applied forces \(\LU{0}{{\mathbf{f}}}_a\) of position-based markers on the coordinates \({\mathbf{c}}\)

\[{\mathbf{Q}} = {\mathbf{J}}_{pos} \LU{0}{{\mathbf{f}}}_a.\]

MINI EXAMPLE for ObjectMassPoint2D

 1node = mbs.AddNode(NodePoint2D(referenceCoordinates = [1,1],
 2                             initialCoordinates=[0.5,0],
 3                             initialVelocities=[0.5,0]))
 4mbs.AddObject(MassPoint2D(nodeNumber = node, physicsMass=1))
 5
 6#assemble and solve system for default parameters
 7mbs.Assemble()
 8mbs.SolveDynamic()
 9
10#check result
11exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0]
12#final x-coordinate of position shall be 2

Relevant Examples and TestModels with weblink:

The web version may not be complete. For details, consider also the Exudyn PDF documentation : theDoc.pdf