MOTION

The MOTION statement specifies a system degree of freedom as an explicit function of time. The freedom is specified by either:
Specifying the joint and type of motion (translational or rotational).
Identifying a specific translation or rotational displacement component between two markers
The time dependency can be described in either a function expression or user-written subroutine. The motion inputs may be a displacement, velocity, or acceleration. Velocity and accelerations are numerically integrated to provide the displacements, with the initial conditions providing the constants of integration.

Format

Arguments

 
ACCELERATION
Specifies that the FUNCTION argument defines a second time derivative expression as a function of time. This expression is integrated twice to calculate a corresponding displacement. Notice, the provided expression may or may not define the acceleration of a component in the model. For example, if using the B2 option, the provided expression is the second time derivative of B2 (Euler angle) which may need other terms to define the angular acceleration of some component of the model.

Default: DISPLACEMENT
B1
Specifies the first angle of the Body 1-2-3 Euler angle sequence as a function of time. The 123 rotation sequence of the I marker coordinate system is defined with respect to the J marker coordinate system.

Range: None
Default: None
B2
Specifies the second angle of the Body 1-2-3 Euler angle sequence as a function of time. The 123 rotation sequence of the I marker coordinate system is defined with respect to the J marker coordinate system.

Range: None
Default: None
B3
Specifies the third angle of the Body 1-2-3 Euler angle sequence as a function of time. The 123 rotation sequence of the I marker coordinate system is defined with respect to the J marker coordinate system.

Range: None
Default: None
DISPLACEMENT
Specifies that the FUNCTION argument defines the motion displacement. This is the default.
Specifies an expression or defines and constants to be passed to the MOTSUB user-written subroutine to determine the motion. The motion must be a function of time only and not a function of the state variables. To determine the motion with an expression, follow FUNCTION with an equal sign and the expression. To determine the motion with a user-written subroutine, follow FUNCTION with an equal sign, the character string USER, and the values (r1[,...,r30]) that you want Adams Solver (FORTRAN) to pass to MOTSUB. If the FUNCTION argument is used, it must either be the last argument in the MOTION statement or be followed by a backslash (\).
ICDISP
Specifies the initial displacement of the motion, when the motion is defined in terms of velocity or acceleration.
Default: 0
ICVEL
Specifies the initial velocity of the motion, when the motion is defined in terms of acceleration.
Default: 0
I=id, J=id
Specifies the identifiers of the two markers whose displacement is being controlled.
Range: Any valid non-floating marker not belonging to a flexible body
Default: None
JOINT=id
Specifies the identifier of the joint to which the motion is assigned. The joint must be either translational, revolute, or cylindrical. If you specify a translational joint, Adams Solver (FORTRAN) assumes you are assigning translational motion and does not allow you to assign rotational motion. Similarly, if you specify a revolute joint, Adams Solver (FORTRAN) assumes you are assigning rotational motion and does not allow you to assign translational motion. However, if a cylindrical joint is specified, either translational or rotational motion can be specified with TRANSLATION or ROTATION, respectively.
ROTATION
Designates a rotational motion. This argument is necessary only when rotational motion is being applied to a cylindrical joint.
ROUTINE=libname::subname
Specifies an alternative library and name for the user subroutine MOTSUB.
Learn more about the ROUTINE Argument.
TRANSLATION
Designates a translational motion. This argument is necessary only when translational motion is being applied to a cylindrical joint.
VELOCITY
Specifies that the FUNCTION argument defines a time derivative expression as a function of time. This expression is integrated to calculate the corresponding displacement. This expression may or may not define the velocity of a component in the model. For example, if using the B2 option, the provided expression is the time derivative of B2 (Euler angle) which may need other terms to define the angular velocity of some component in the model.

Default: DISPLACEMENT
X
Specifies DX(I,J,J) as a function of time. DX is the x component of the displacement of the I marker with respect to the J marker evaluated in the J marker coordinate system.

Range: None
Default: None
Y
Specifies DY(I,J,J) as a function of time. DY is the y component of the displacement of the I marker with respect to the J marker evaluated in the J marker coordinate system.

Range: None
Default: None
Z
Specifies DZ(I,J,J) as a function of time. DZ is the z component of the displacement of the I marker with respect to the J marker evaluated in the J marker coordinate system.

Range: None
Default: None
Extended Definition
The MOTION statement specifies a translational or rotational degree-of-freedom as a function of time. You can apply MOTIONs to either joints or between a pair of markers. When a motion is applied on a joint, a joint degree of freedom is controlled as a function of time. When a motion is applied between a pair of markers, movement along a user-specified direction is controlled as a function of time. You can define the value of the degree-of-freedom being controlled, either as a function expression or user-written subroutine.
Motions on Joints
Motions can be specified to act on joints. A translational motion is specified at either a translational or cylindrical joint. A rotational motion is specified at either a revolute or cylindrical joint. The type of the joint together with the markers of the joint specify the degree-of-freedom being controlled.
For a translational motion, Adams Solver (FORTRAN) moves the I marker along the z-axis of the J marker. The J marker origin represents zero displacement while the z-axis of the J marker defines the positive direction.
For a rotational motion, Adams Solver (FORTRAN) rotates the I marker about the z-axis of the J marker. The right-hand rule is used to determine the sign of the motion. The z-axis of the I marker must be colinear with the z-axis of the J marker at all times. The angle is zero when the x-axis of the I marker is also collinear with the x-axis of the J marker.
If options VELOCITY or ACCELERATION are used, then the FUNCTION expression does define a local velocity or acceleration relative to the JOINT Markers.
Motions on Markers
Motions can also be specified to act directly between a pair of markers. No joint is needed when you use this method. If I and J are the pair of markers between which a motion is specified, then any one of the following six degrees of freedom may be directly controlled by the motion.
DX(I,J,J) is the displacement of the origin of the I marker with respect to the origin of the J marker along the x-axis of the J marker.
DY(I,J,J) is the displacement of the origin of the I marker with respect to the origin of the J marker along the y-axis of the J marker.
DZ(I,J,J) is the displacement of the origin of the I marker with respect to the origin of the J marker along the z-axis of the J marker.
B1(I,J) is the first angle of a Body 1-2-3 Euler rotation sequence that measures the orientation of the I marker with respect to the J marker.
B2(I,J) is the second angle of a Body 1-2-3 Euler rotation sequence that measures the orientation of the I marker with respect to the J marker.
B3(I,J) is the third angle of a Body 1-2-3 Euler rotation sequence that measures the orientation of the I marker with respect to the J marker.
If options VELOCITY or ACCELERATION are used, along with options X or Y or Z, then the FUNCTION expression does defines either a local translational velocity or acceleration in the I Marker reference frame. However, if using options VELOCITY or ACCELERATION with options B1 or B2 or B3, then the FUNCTION expression may not define a local acceleration of a component in the model.
 
 
Tip:  
If you want to determine the translational or rotational force a motion applies, use a REQUEST statement with the FORCE argument.
A MOTION statement can define zero motion with respect to time.
 
Important:  
The FORTRAN Solver does not consider any change to MOTION function expression to be a topology change. This is because the FORTRAN Solver assumes that MOTION function expression will always be an explicit function of time.
The C++ Solver attempts to determine if a MOTION function expression is an explicit function of time by analyzing it. If the C++ Solver determines that a MOTION function expression that IS an explicit function of time has changed to a new expression that is also an explicit function of time, then there is no change in model topology (which is equivalent to the FORTRAN Solver).
However, if a MOTION function expression changes to something that IS NOT an explicit function of time, then the C++ Solver concludes that a topology change has occurred and an analysis separator will be added to the output files. This is different behavior from the FORTRAN Solver because the FORTRAN Solver will never add separators to the output files when a MOTION expression changes.
 
Caution:  
The motion must be a function of only time, not displacements, forces, or any other variables in the system. Otherwise, Adams Solver (FORTRAN) may have difficulty finding a solution.
Motion function expressions are required to have first and second time derivatives. Non-smooth functions that do not have continuous first and second time derivatives can cause severe numerical problems.
 
Be careful when specifying multi-axial rotational motions between a pair of markers. B1, B2, and B3 specify a Body 1-2-3 rotation sequence and are Euler angles. This implies that the first rotation occurs about the x-axis of the J marker, the second rotation about an intermediate y-axis and the last about the z-axis of the I marker. For example, if you are measuring rotations between two markers in the sequence z, y, x, this corresponds to a Body 3 -2 1 rotation sequence, you will have to convert this to a Body 1-2-3 rotation sequence before specifying it in a MOTION.
 
When using any of the following motion types: B1, B2, or B3, avoid situations where the B2 angle is at +/- 90degrees or +/- 270 degrees. At these angles the Body 1-2-3 angles are undefined. If this situation occurs, Adams Solver (FORTRAN) issues a warning and stops the execution. There is no solution for this condition.
Do not use an initial conditions argument, such as, IC, ICTRAN, or ICROT, on a JOINT statement with a motion that acts in the same direction on the joint. If both are used, Adams Solver (FORTRAN) uses the MOTION statement and ignores the initial conditions argument(s) specifying motion in the same direction(s) specified by the JOINT statement.
 
If the initial rotational displacement of a revolute or cylindrical joint (as specified by an IC or ICROT argument on a JOINT statement or by a MOTION statement) varies by anywhere from 5 to 60 degrees from the initial configuration of the joint as indicated by the input positions of the two markers constituting the joint, Adams Solver (FORTRAN) issues a warning message and continues execution. If the variation is greater than 60 degrees, Adams Solver (FORTRAN) issues an error message and stops execution.
If a MOTION statement generates non-zero initial part accelerations, the Adams Solver (FORTRAN) integrator may not produce reliable accelerations and velocities for the first two or three internal integration steps. Adams Solver (FORTRAN) automatically corrects for this, so that values returned at the first output step are accurate. However, a sensor that depends on the accelerations or reaction forces due to this motion may trip unexpectedly prior to the first output step, even though the solution appears correct when the sensor is removed. If this occurs, you should modify the displacement function in the MOTION statement so that the initial accelerations are zero.
 
The ABAM integrator does not support the VELOCITY and ACCELERATION arguments on the MOTION statement.
Adams Solver (FORTRAN) cannot perform a kinematic analysis on a zero degree-of-freedom model containing motions with VELOCITY and ACCELERATION arguments. A dynamic analysis should be performed instead.
A function expression for a MOTION statement can not use BISTOP and/or IMPACT functions.

Examples

JOINT/101, TRANSLATIONAL, I=1011, J=1012
MOTION/101, JOINT=101, FUNCTION=10 * SIN(TIME)**2
This MOTION statement acts on the translational joint (101), which implies that the motion is translational. The motion value as a function of time is 10 * SIN(TIME)**2.
The following MOTION statement is equivalent to the one mentioned above:
MOTION/101, I=1011, J=1012, Z, FUNCTION=10 * SIN(TIME)**2.
JOINT/201, REVOLUTE, I=2011, J=2013
MOTION/201, JOINT=201, FUNCTION=POLY(TIME, 0, 0, 360D)
This MOTION statement acts on the revolute joint (201), which implies that the motion is rotational. The motion value as a function of time is POLY(TIME,0,0,360D).
The following MOTION statement is equivalent to the one described above:
MOTION/201, I=2011, J=2013, B3,
, FUNCTION=POLY(TIME, 0, 0, 360D)
MARKER/11, QP=1,2,3, REU=30D, 45D, 60D, PART=12
MARKER/12, QP=4,5,6, REU=45D, 60D, -34D, PART=23
MOTION/1, I=22, J=11, X, FU=30D*SIN(360D*TIME+30D)
MOTION/2, I=22, J=11, B3, FU=30D*COS(TIME)
This MOTION statement acts between a pair of markers (11 and 12). Two degrees of freedom are explicitly specified as a function of time:
The displacement of the origin of Marker 11 with respect to the origin of Marker 12, along the x-axis of Marker 12, is specified to be 30d*SIN(360D*TIME+30D).
The rotation about the z-axis of Marker 11 (third angle of the Body 1-2-3 rotation sequence between Markers 11 and 12) is specified to be 30D*COS(TIME).
JOINT/301, SPHERICAL, I=3011, J=3012
MOTION/3014, I=3011, J=3012, B1
, FU=30D*SIN(360D*TIME+30D)
MOTION/3015, I=3011, J=3012, B2
, FU=-25D*SIN(360D*TIME-25D)
MOTION/3016, I=3011, J=3012, B3
, FU=45D*SIN(360D*TIME-57D)
These MOTION statements control the three rotational degrees-of-freedom in a spherical joint by specifying the Body 1-2-3 angles between the I and J markers of the joint as functions of time.
JOINT/401, PLANAR, I=4011, J=4012
MOTION/4011, I=4011, J=4012, X
, FU=STEP5(TIME, 0.5, 0.0, 4.0, 1.0)*50
MOTION/4012, I=4011, J=4012, Y
, FU=-SHF(TIME, 0.0, 10/2, 2*PI, 90D, 10/2)
MOTION/4016, I=4011, J=4012, B3, FU=0D
These MOTION statements control the three degrees-of-freedom in a planar joint:
The displacement of the origin of Marker 4011 with respect to the origin of Marker 4012, along the x-axis of Marker 4012, is specified as 40*TIME-25.2.
The displacement of the origin of Marker 4011 with respect to the origin of Marker 4012, along the y-axis of Marker 4012, is specified as -25*SIN(360D*TIME-25D).
The rotation of Marker 4011 with respect to Marker 4012 about the z-axis of Marker 4011 is specified to be zero.
See other Constraints available.