ObjectRotationalMass1D
A 1D rotational inertia (mass) which is attached to Node1D.
Additional information for ObjectRotationalMass1D:
- This
Object
has/provides the following types =Body
,SingleNoded
- Requested
Node
type =GenericODE2
- Short name for Python =
Rotor1D
- Short name for Python visualization object =
VRotor1D
The item ObjectRotationalMass1D with type = ‘RotationalMass1D’ has the following parameters:
- name [type = String, default = ‘’]:objects’s unique name
- physicsInertia [\(J\), type = UReal, default = 0.]:inertia components [SI:kgm\(^2\)] of rotor / rotational mass
- nodeNumber [\(n0\), type = NodeIndex, default = invalid (-1)]:node number (type NodeIndex) of Node1D, providing rotation coordinate \(\psi_0 = c_0\)
- referencePosition [\(\LU{0}{\pRef_0}\), type = Vector3D, size = 3, default = [0.,0.,0.]]:a constant reference position = reference point, used to assign joint constraints accordingly and for drawing
- referenceRotation [\(\LU{0i}{\Rot_{0}} \in \Rcal^{3 \times 3}\), type = Matrix3D, default = [[1,0,0], [0,1,0], [0,0,1]]]:an intermediate rotation matrix, which transforms the 1D coordinate into 3D, see description
- visualization [type = VObjectRotationalMass1D]:parameters for visualization of item
The item VObjectRotationalMass1D 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 ObjectRotationalMass1D
The following output variables are available as OutputVariableType in sensors, Get…Output() and other functions:
Position
: \(\LU{0}{{\mathbf{p}}}\cConfig= \pRefG\)global position vector; for interpretation see intermediate variablesDisplacement
: \(\LU{0}{{\mathbf{u}}}\cConfig\)global displacement vector; for interpretation see intermediate variablesVelocity
: \(\LU{0}{{\mathbf{v}}}\cConfig\)global velocity vector; for interpretation see intermediate variablesRotationMatrix
: \(\LU{0b}{\Rot}\)vector with 9 components of the rotation matrix (row-major format)Rotation
: \(\theta\)scalar rotation angle obtained from underlying nodeAngularVelocity
: \(\LU{0}{\tomega}\cConfig\)angular velocity of bodyAngularVelocityLocal
: \(\LU{b}{\tomega}\cConfig\)local (body-fixed) 3D velocity vector of node
Definition of quantities
intermediate variables
|
symbol
|
description
|
---|---|---|
position coordinate
|
\({\theta_0}\cConfig = {c_0}\cConfig + {c_0}\cRef\)
|
total rotation coordinate of node (e.g., Node1D) in any configuration (nodal coordinate \(c_0\))
|
displacement coordinate
|
\({\psi_0}\cConfig = {c_0}\cConfig\)
|
change of rotation coordinate of mass node (e.g., Node1D) in any configuration (nodal coordinate \(c_0\))
|
velocity coordinate
|
\({\dot \psi_{0\cConfig}}\)
|
rotation velocity coordinate of mass node (e.g., Node1D) in any configuration
|
Position
|
\(\LU{0}{{\mathbf{p}}}\cConfig =\LU{0}{\pRef_0}\)
|
constant (translational) position of mass object in any configuration
|
Displacement
|
\(\LU{0}{{\mathbf{u}}}\cConfig = [0,0,0]\tp\)
|
(translational) displacement of mass object in any configuration
|
Velocity
|
\(\LU{0}{{\mathbf{v}}}\cConfig = [0,0,0]\tp\)
|
(translational) velocity of mass object in any configuration
|
AngularVelocity
|
\(\LU{0}{\tomega}\cConfig = \LU{0i}{\Rot_{0}} \LU{i}{\vr{0}{0}{\dot \psi_0}}\tp\)
|
|
AngularVelocityLocal
|
\(\LU{b}{\tomega}\cConfig = \LU{i}{\vr{0}{0}{\dot \psi_0}}\tp\)
|
|
RotationMatrix
|
\(\LU{0b}{\Rot} = \LU{0i}{\Rot_{0}} \LU{ib}{\mr{\cos(\theta_0)}{-\sin(\theta_0)}{0} {\sin(\theta_0)}{\cos(\theta_0)}{0} {0}{0}{1}}\)
|
transformation of local body (\(b\)) coordinates to global (0) coordinates
|
residual force
|
\(\tau\)
|
residual of all forces on mass object
|
applied force
|
\(\LU{0}{{\mathbf{f}}}_a = [f_0,\;f_1,\;f_2]\tp\)
|
3D applied force (loads, connectors, joint reaction forces, …)
|
applied torque
|
\(\LU{0}{\ttau}_a = [\tau_0,\;\tau_1,\;\tau_2]\tp\)
|
3D applied torque (loads, connectors, joint reaction forces, …)
|
A rigid body marker (e.g., MarkerBodyRigid) may be attached to this object and forces/torques can be applied. However, forces will have no effect and torques will only have effect in ‘direction’ of the coordinate.
Equations of motion
Note that \(\tau\) is computed from all connectors and loads upon the object. E.g., a 3D torque vector \(\LU{0}{\ttau}_a\) is transformed to \(\tau\) as
Thus, the rotation jacobian reads
MINI EXAMPLE for ObjectRotationalMass1D
1node = mbs.AddNode(Node1D(referenceCoordinates = [1], #\psi_0ref
2 initialCoordinates=[0.5], #\psi_0ini
3 initialVelocities=[0.5])) #\psi_t0ini
4rotor = mbs.AddObject(Rotor1D(nodeNumber = node, physicsInertia=1))
5
6#assemble and solve system for default parameters
7mbs.Assemble()
8mbs.SolveDynamic()
9
10#check result, get current rotor z-rotation at local position [0,0,0]
11exudynTestGlobals.testResult = mbs.GetObjectOutputBody(rotor, exu.OutputVariableType.Rotation, [0,0,0])
12#final z-angle of rotor shall be 2
Relevant Examples and TestModels with weblink:
distanceSensor.py (TestModels/), coordinateSpringDamperExt.py (TestModels/), driveTrainTest.py (TestModels/)
The web version may not be complete. For details, consider also the Exudyn PDF documentation : theDoc.pdf