MarkerNodeCoordinate
A node-Marker attached to a ODE2 coordinate of a node; this marker allows to connect a coordinate-based constraint or connector to a nodal coordinate (also NodeGround); for ODE1 coordinates use MarkerNodeODE1Coordinate.
Interface
Provides:
CoordinateConnectors, constraints and loads that can use it: ObjectConnectorCoordinateSpringDamper, ObjectConnectorCoordinateSpringDamperExt, ObjectConnectorCoordinate, ObjectContactCoordinate, LoadCoordinate
Parameters
The parameters of the item; in a dictionary, its type is ‘NodeCoordinate’:
name |
type |
size |
default |
description |
|---|---|---|---|---|
name |
String |
‘’ |
marker’s unique name |
|
nodeNumber |
NodeIndex |
invalid (-1) |
node number to which marker is attached to |
|
coordinate |
UInt |
invalid (-1) |
coordinate of node to which marker is attached to; must be given: the default is only a placeholder |
|
visualization |
VMarkerNodeCoordinate |
parameters for visualization of item |
Visualization parameters
VMarkerNodeCoordinate has no parameters.
Drawing
The item draws nothing.
Detailed description
Marker quantities
quantity |
symbol |
as computed |
|---|---|---|
coordinate |
\(c = q_i\) |
the current ODE2 coordinate |
its velocity |
\(\dot c = \dot q_i\) |
the time derivative of that coordinate |
Jacobians
\(\Jm = \ev_i\tp\), a row of the unit matrix: a force \(f\) acts on coordinate \(i\) only, \(Q_i = f\).
On a node without ODE2 coordinates - NodePointGround - the coordinate is zero and the
Jacobian empty, so nothing acts: this is the ground side of a CoordinateSpringDamper or a
CoordinateConstraint.
Mini example
#one coordinate of a node: a coordinate spring between the ground node and a 1D mass
node = mbs.AddNode(Node1D(referenceCoordinates=[0]))
mbs.AddObject(ObjectMass1D(nodeNumber=node, mass=1))
mCoord = mbs.AddMarker(MarkerNodeCoordinate(nodeNumber=node, coordinate=0))
mGround = mbs.AddMarker(MarkerNodeCoordinate(nodeNumber=nGround, coordinate=0))
mbs.AddObject(ObjectConnectorCoordinateSpringDamper(markerNumbers=[mGround, mCoord], stiffness=100))
mbs.AddLoad(LoadCoordinate(markerNumber=mCoord, load=10))
mbs.Assemble()
mbs.SolveStatic()
#the spring is stretched by F/k
exu.sys['testResult'] = mbs.GetNodeOutput(node, exu.OutputVariableType.Coordinates) #0.1
Examples (Ex) and TestModels (TM) that show this item, with weblink to github: tutorialSpringDamper.py (Ex), coordinateSpringDamper.py (Ex), SliderCrank.py (Ex), plotSensorExamples.py (Ex), SpringDamperMassUserFunction.py (Ex)