ObjectMassPoint
A 3D mass point which is attached to a position-based node, usually NodePoint.
Additional information for ObjectMassPoint:
- This
Object
has/provides the following types =Body
,SingleNoded
- Requested
Node
type =Position
- Short name for Python =
MassPoint
- Short name for Python visualization object =
VMassPoint
The item ObjectMassPoint with type = ‘MassPoint’ 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 = VObjectMassPoint]:parameters for visualization of item
The item VObjectMassPoint 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 ObjectMassPoint
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}_{3 \times 3}}\pLocB\)global position vector of translated local position; local (body) coordinate system = global coordinate systemDisplacement
: \(\LU{0}{{\mathbf{u}}}\cConfig = [q_0,\;q_1,\;q_2]\cConfig\tp\)global displacement vector of mass pointVelocity
: \(\LU{0}{{\mathbf{v}}}\cConfig = \LU{0}{\dot{\mathbf{u}}}\cConfig = [\dot q_0,\;\dot q_1,\;\dot q_2]\cConfig\tp\)global velocity vector of mass pointAcceleration
: \(\LU{0}{{\mathbf{a}}}\cConfig = \LU{0}{\ddot{\mathbf{u}}}\cConfig = [\ddot q_0,\;\ddot q_1,\;\ddot q_2]\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
|
node displacement
|
\(\LU{0}{{\mathbf{u}}}\cConfig = \LU{0}{\pRef}\cConfig = [q_0,\;q_1,\;q_2]\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,\;\dot q_2]\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,\;f_2]\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
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
transforms the action of global applied forces \(\LU{0}{{\mathbf{f}}}_a\) of position-based markers on the coordinates \({\mathbf{c}}\)
MINI EXAMPLE for ObjectMassPoint
1node = mbs.AddNode(NodePoint(referenceCoordinates = [1,1,0],
2 initialCoordinates=[0.5,0,0],
3 initialVelocities=[0.5,0,0]))
4mbs.AddObject(MassPoint(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:
interactiveTutorial.py (Examples/), ComputeSensitivitiesExample.py (Examples/), coordinateSpringDamper.py (Examples/), massSpringFrictionInteractive.py (Examples/), minimizeExample.py (Examples/), nMassOscillator.py (Examples/), nMassOscillatorInteractive.py (Examples/), parameterVariationExample.py (Examples/), particleClusters.py (Examples/), particlesSilo.py (Examples/), particlesTest.py (Examples/), particlesTest3D.py (Examples/), complexEigenvaluesTest.py (TestModels/), connectorGravityTest.py (TestModels/), contactCoordinateTest.py (TestModels/)
The web version may not be complete. For details, consider also the Exudyn PDF documentation : theDoc.pdf