Expressions You use function expressions to define a wide variety of non-standard phenomena in your model. A comprehensive set of symbolic variables operators and functions are provided for this purpose. These can be used to create complex expressions. Below are the ADAMS/Solver function expressions grouped according to their function. Detailed information on each function expression is found on the page indicated after its name below.

FORTRAN 77 Functions ABS 273 ACOS 278 AINT 279 ANINT 282 ASIN 284 ATAN 285 ATAN2 286 COS 296 COSH 297 EXP 312

LOG 333 Functions LOG10 334 MAX 335 MIN 336 MOD 337 355 SIN 356 SINH 357 SQRT 359 TAN 365 TANH 366

Simulation Constants and Variables TIME 368 MODE 338 PI 343 DTOR 308 RTOD 352

Using ADAMS/Solver 261 Displacement AX 287 AY 288 AZ 289 DM 307 DX 309 DY 310 DZ 311 PHI 341 PITCH 345 PSI 349 ROLL 351 THETA 367 YAW 392

Velocity VM 375 VR 376 VX 378 VY 379 Functions VZ 380 WM 388 WX 389 WY 390 WZ 391

Acceleration ACCM 274 ACCX 275 ACCY 276 ACCZ 277 WDTM 381 WDTX 382 WDTY 384 WDTZ 386

Generic Force FM 314 FX 319 FY 320 FZ 321 TM 369 TX 370 TY 371 TZ 372

262 Using ADAMS/Solver Element-Specific Applied Force BEAM 290 BUSH 294 FIELD 313 GFORCE 322 NFORCE 340 SFORCE 353 SPDP 358 VFORCE 374 VTORQ 377

Element-Specific Reaction Force CVCV 302 JOINT 330 JPRIM 332 MOTION 339 PTCV 350

System Element ARYVAL 283 Functions DIF 304 DIF1 305 PINVAL 344 POUVAL 348 VARVAL 373

Arithmetic IF IF 326

Interpolation AKISPL 280 CUBSPL 298 CURVE 300

General BISTOP 291 CHEBY 295 FORCOS 315 FORSIN 317 HAVSIN 324 IMPACT 327 POLY 346 SHF 354 STEP 360 STEP5 363 SWEEP 361

Using ADAMS/Solver 263 Functions

264 Using ADAMS/Solver ABS

ABS

Definition The ABS function returns the of the expression a.

Format ABS(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples Variable/1, FUNCTION= ABS(DX(21,11)*VX(21,11)+DY(21,11)*VY(21,11) + DZ(21,11)*VZ(21,11))

This variable statement defines a new state variable. Its value is the absolute value of the radial velocity between Markers 21 and 11. Functions

Using ADAMS/Solver 265 ACCM

ACCM

Definition The ACCM function calculates the magnitude of the second time of the displacement vector of marker i from marker j. The time are taken in the reference frame of marker l. Markers j and l default to the global coordinate system and the global reference frame if they are not specified.

Format ACCM(i[,j][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j default to the global coordinate system. l The reference frame in which the second time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to Functions be calculated in the ground reference frame.

Extended Mathematically, ACCM is calculated as follows: Definition () 2 () 2 () 2 () 2 12⁄ d d d d ACCM = ------R – ------R • ------R – ------R 2 i 2 j 2 i 2 j dt dt dt dt

where Ri is the displacement of marker i in ground and Rj is the displacement of marker j in ground. Note that for any vector quantity p () () A d B d ---- p ≠ ---- p dt dt where (A) and (B) represent two arbitrary reference frames.

Examples REQUEST/10, F2=ACCM(21,11) This statement defines the second component of a user-defined request as the magnitude of translational acceleration of Marker 21 with respect to Marker 11. Since the l marker is not specified, the derivatives are taken in the inertial reference frame. REQUEST/10, F2=ACCM(21,11) This statement defines the second component of a user-defined request as the magnitude of the translational acceleration of Marker 21 with respect to Marker 11. Vector time derivatives taken in reference to Marker 32.

266 Using ADAMS/Solver ACCX

ACCX

Definition The ACCX function returns the x-component of the difference between the acceleration vector of marker i and the acceleration vector of marker j as computed in the coordinate system of marker k. All vector time derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate system if it is not specified. Similarly, markers k and l default to the global coordinate system and the global reference frame if they are not specified.

Format ACCX(i[,j][,k][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system.

k Functions The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the second time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, ACCX is calculated as follows: Definition () 2 () 2 d d ACCX = ------R – ------R • xˆ 2 i 2 j k dt dt

where Ri is the displacement of marker i in ground, Rj is the displacement of marker j in ground, and xˆ k is the unit vector along the x-axis of marker k.

Using ADAMS/Solver 267 ACCX

Examples DIFF/1, IC=0, FUNCTION=ACCX(21,11) This statement defines a user-specified differential equation. The time derivative of the state is specified to be the x-component of the acceleration of Marker 21 with respect to Marker 11. The coordinate system for calculating the component, and for referencing the frame that takes time derivatives, defaults to ground. DIFF/2, IC=1, FUNCTION=ACCX(21,0,31) This statement defines a user-specified differential equation. The time derivative of the state is specified to be the x-component of the acceleration vector of Marker 21 with respect to the global origin. The vector is expressed in the coordinate system of Marker 31. All time derivatives are taken in the inertial reference frame since the l marker is not specified. Functions

268 Using ADAMS/Solver ACCY

ACCY

Definition The ACCY function returns the y-component of the difference between the acceleration vector of marker i and the acceleration vector of marker j as computed in the coordinate system of marker k. All vector time derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate system if it is not specified. Similarly, markers k and l default to the global coordinate system and the global reference frame if they are not specified.

Format ACCY(i[,j][,k][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system.

k Functions The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the second time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, ACCY is calculated as follows: Definition () 2 () 2 d d ACCY = ------R – ------R • yˆ 2 i 2 j k dt dt

where Ri is the displacement of marker i in ground, Rj is the displacement of marker j in ground, and yˆ k is the unit vector along the y-axis of marker k.

Using ADAMS/Solver 269 ACCY

Examples DIFF/1, IC=0, FUNCTION=ACCX(21,11) This statement defines a user-specified differential equation. The time derivative of the state is specified to be the x-component of the acceleration of Marker 21 with respect to Marker 11. The coordinate system for calculating the component, and for referencing the frame that takes time derivatives, defaults to ground. DIFF/2, IC=1, FUNCTION=ACCX(21,0,31) This statement defines a user-specified differential equation. The time derivative of the state is specified to be the x-component of the acceleration vector of Marker 21 with respect to the global origin. The vector is expressed in the coordinate system of Marker 31. All time derivatives are taken in the inertial reference frame since the l marker is not specified. Functions

270 Using ADAMS/Solver ACCZ

ACCZ

Definition The ACCZ function returns the z-component of the difference between the acceleration vector of marker i and the acceleration vector of marker j as computed in the coordinate system of marker k. All vector time derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate system if it is not specified. Similarly, markers k and l default to the global coordinate system and the global reference frame if they are not specified.

Format ACCZ(i[,j][,k][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j default to the global coordinate system.

k Functions The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the first time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, ACCZ is calculated as follows: Definition () 2 () 2 d d ACCZ = ------R – ------R • zˆ 2 i 2 j k dt dt

where Ri is the displacement of marker i in ground, Rj is the displacement of marker j in ground, and zˆ k is the unit vector along the z-axis of marker k.

Using ADAMS/Solver 271 ACCZ

Examples DIFF/1, IC=0, FUNCTION=ACCX(21,11) This statement defines a user-specified differential equation. The time derivative of the state is specified to be the x-component of the acceleration of Marker 21 with respect to Marker 11. The coordinate system for calculating the component, and for referencing the frame that takes time derivatives, defaults to ground. DIFF/2, IC=1, FUNCTION=ACCX(21,0,31) This statement defines a user-specified differential equation. The time derivative of the state is specified to be the x-component of the acceleration vector of Marker 21 with respect to the global origin. The vector is expressed in the coordinate system of Marker 31. All time derivatives are taken in the inertial reference frame since the l marker is not specified. Functions

272 Using ADAMS/Solver ACOS

ACOS

Definition The ACOS function calculates the arc cosine of an expression a. Expression a must evaluate to a value whose absolute value is less than or equal to 1. The value returned by ACOS lies in the range [0,π] (i.e., 0 ≤ ACOS(a) ≤ π).

Format ACOS(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples VARIABLE/1, FU= ACOS((DX(21,11)*DX(31,41)+DY(21,11)*DY(31,41) + DZ(21,11)*DZ(31,41))/(DM(21,11)*DM(31,41)) This statement specifies a new user-defined state variable. Its value is the included angle of the lines joining Markers 11 and 21 and Markers 41 and

31. The result is in radians. Functions

Using ADAMS/Solver 273 AINT

AINT

Definition The AINT function returns the nearest integer whose magnitude is not larger than the integer value of the expression a.

AINT(a)= 0 if ABS(a)< 1 AINT(a)=int(a) if ABS(a) ≥ 1

The value of the mathematical function int of a variable x is equal to x if x is an integer. If x is not an integer, then int(x) is equal to the nearest integer to x whose magnitude is not greater than the magnitude of x. Thus int(-7.0) = -7, int(-4.8) = -4, and int(4.8) = 4.

Format AINT(a)

Arguments a Any valid function expression.

Functions Number of Arguments: 1

Cautions Note that AINT is not a differentiable function. Be careful when using this function in an expression that defines a force or motion input to the system.

Examples AINT(-6.5)= 0

AINT(4.6)= 4

274 Using ADAMS/Solver AKISPL

AKISPL

Definition The AKISPL function returns the iord derivative of the interpolated value of SPLINE/id at X=x and Z=z.

Format AKISPL (x,z,id)

or

AKISPL (x,0,id [,iord])

Arguments x A real variable that specifies the independent variable value along the x-axis of the AKISPL. z A real variable that specifies the second independent variable value along the z-axis of the surface being interpolated. Specify z = 0 if the SPLINE

statement defines only one curve. Functions id An integer variable that specifies the identifier of a SPLINE statement that you define in the ADAMS/Solver dataset. iord An integer variable that specifies the order of the derivative to be taken at the interpolated . iord may not be specified when interpolating on a surface (i.e., when z ≠ 0). Range: 0 ≤≤iord 2

Extended The AKISPL function uses the Akima method of interpolation to create a Definition spline function across a set of data points. The data points to be interpolated are defined by a SPLINE statement in the ADAMS/Solver dataset. The SPLINE that you define in the dataset may represent a curve (x-y points) or a surface (x-y-z points). Interpolation in the y direction is cubic, and interpolation in the z direction is linear. To interpolate the values specified in a curve, set z = 0.

iord specifies the order of the derivative and may be used only when interpolating a curve (i.e., when z = 0).

Using ADAMS/Solver 275 AKISPL

AKISPL is very fast, since it uses local methods. It always produces good results for the value of the function being approximated. AKISPL returns good estimates for the first derivative of the approximated function when the data points are evenly spaced. In instances where the data points are unevenly spaced, the estimate of the first derivative may be in error. In all cases, the second derivative of the function being approximated is unreliable.

Examples SFORCE/1, I=409, J=109, TRANSLATION , FUNCTION=AKISPL(TIME, 0, 1, 1) This SFORCE statement defines a translational force that acts between Markers 409 and 109. The SPLINE statement provides the discrete data used to generate the interpolation function using the Akima spline. Since this SPLINE statement defines only one curve, the value of z is defined to be 0. AKISPL returns the first derivative of the spline at the interpolated point since iord = 1. Functions

276 Using ADAMS/Solver ANINT

ANINT

Definition The ANINT function calculates the nearest integer whose magnitude is not larger than the real value of the expression a.

ANINT(a) = int(a + .5) if a ≥ 0 ANINT(a) = int(a - .5) if a < 0

The value of the mathematical function int of a variable x is equal to x if x is an integer. If x is not an integer, then int(x) is equal to the nearest integer to x whose magnitude is not greater than the magnitude of x. Thus int(-7.0) = -7, int(-4.8) = -4, and int(4.8) = 4.

Format ANINT(a)

Arguments a Any valid function expression.

Number of arguments: 1 Functions

Examples ANINT(-4.6)= -5

ANINT(4.6)= 5

Using ADAMS/Solver 277 ARYVAL

ARYVAL

Definition The ARYVAL function returns component comp of ARRAY/id. Depending on the definition of ARRAY/id, this may be a constant that you defined in the ADAMS/Solver dataset, an input to an LSE, GSE or TFSISO, a state variable defined by an LSE, GSE or TFSISO, or an output from an LSE, GSE or TFSISO.

Format ARYVAL (id, comp)

Arguments id The identifier of the array whose data is being requested. comp An integer that specifies the component of the array to be returned.

Examples ARRAY/17, NUM=11.465,2.321 SFORCE/19, ROT, I=23, J=11 , FUNCTION=-ARYVAL(17,1)*(AZ(23,11)-ARYVAL(17,2)) Functions This example illustrates how a value defined in an ARRAY statement can be accessed using the ARYVAL function.

LSE/1, X=1, U=2, Y=3, A=11, B=12, C=13, D=14 This statement defines a set of linear state equations. The A, B, C, and D matrices for this LSE are defined by matrices 11-14.

ARRAY/1, X, SIZE=2 ARRAY/2, U, SIZE=1, VAR=1 ARRAY/3, U, SIZE=3 These three ARRAY statements specify that LSE/1 as having two states, one input that is specified by VARIABLE/1 and three outputs.

SFORCE/6, ROT, I=23, J=11, FUNCTION=ARYVAL(3,2) The second output of the LSE is used to define a torque acting on the system.

278 Using ADAMS/Solver ASIN

ASIN

Definition The ASIN function computes the arc of an expression a. ASIN is defined only when the absolute value of a is less than or equal to 1. The range of ASIN is [-π/2, π/2] (i.e., -π/2 ≤≤ASIN(a) π/2).

Format ASIN(a)

Arguments a Any valid function expression. Number of arguments: 1

Examples DIFF/1, IC=1.05, FUNCTION=ASIN(DX(21,11)/DM(21,11)) This statement defines a user-specified differential equation. The initial value of the state variable is 1.05. The time derivative of the state variable is the expression ASIN(DX(21,11)/DM(21,11)). Functions

Using ADAMS/Solver 279 ATAN

ATAN

Definition The ATAN function returns the arc tangent of an expression a. The range of ATAN is [-π/2, π/2] (i.e., -π/2 < ATAN(a)< π/2).

Format ATAN(a)

Arguments a Any valid function expression. Number of arguments: 1

Examples SFORCE/1, ROTATIONAL, I=21, J=11 , FUNCTION=-10*ATAN(DY(42,33)/DX(42,33)) This SFORCE statement defines a torque acting between Markers 21 and 11. The value of the torque is the spring constant (10) multiplied by the angle between the line joining Markers 33 and 42 and the global x-axis as shown in Figure 58. Functions Figure 58. Example Illustrating the Use of the ATAN Function

Marker 43

DY(42,33)

θ DX(42,33) Marker 33 θ = ATAN(DY42,33)/DX(42,33))

280 Using ADAMS/Solver ATAN2

ATAN2

Definition The ATAN2 function expression returns the arc tangent of the expression a1/a2. a1 and a2 themselves may be expressions.

-π < ATAN2(a1,a2) < π ATAN2(a1,a2) > 0 if a1 > 0 ATAN2(a1,a2) = 0 if a1 = 0, a2 > 0 ATAN2(a1,a2) = π if a1 = 0, a2 < 0 ATAN2(a1,a2) < 0 if a1 < 0 ABS(ATAN2(a1,a2))= π/2 if a2 = 0 ATAN2(a1,a2) undefined if a1 = 0, and a2 = 0

Format ATAN2(a1,a2)

Arguments a1 Functions Any valid function expression. a2 Any valid function expression.

Examples VARIABLE/1, , FUNCTION=ATAN2(DY(21,31,41), DX(21,31,41)) This VARIABLE statement defines an algebraically-determined, user- defined state variable in ADAMS/Solver. Its value is specified by the expression containing ATAN2.

Using ADAMS/Solver 281 AX

AX

Definition The AX function returns the rotational displacement of marker i about the x-axis of marker j. Marker j defaults to the global coordinate system if it is not specified. This value is computed as follows: assume that rotations about the other two axes (y- and z-axes) of marker j are zero. Then AX is the angle between the two y-axes (or the two z-axes). AX is measured in a counter- clockwise sense from the y-axis of marker J to the y-axis of marker I (see Figure 59). Figure 59. Measurement of AX

zˆj

zˆi yˆi

AX(I,J) yˆj Functions

Format AX(i[,j])

Arguments i The marker whose rotations are being sought. j The marker whose coordinate system is used as a reference to calculate the rotations of marker i. When j is not specified, Solver defaults to the global coordinate system.

Extended Mathematically, AX is calculated as: Definition ()• , • AX= ATAN2 yˆi zˆj yˆi yˆj

where yˆ i is the y-axis of marker i, yˆ j is the y-axis of marker j and zˆ j is the z-axis of marker j.

282 Using ADAMS/Solver AX

Examples GFORCE/1, I=21, JFLOAT=31, RM=41 , FX=-20*AX(43,32) This GFORCE statement applies a force at the origin of Marker 21 along the x-axis of Marker 41. The reaction force is on floating Marker 31. The floating Marker 31 can belong to another part but its location is always the same as Marker 21. The value of the force is -20 times the angle between the y axes of Markers 43 and 32. The angle is measured in a counterclockwise sense from the y-axis of Marker 32 to the y-axis of Marker 43.

Cautions Note that ADAMS/Solver calculates the AX angle displacement differently for a BUSHING, FIELD, BEAM, and GFORCE. One reason for using different angles is to allow for large rotations about the z-axis. ADAMS/Solver computes the angle displacement as follows: ()• , • AX= ATAN2 –zˆi yˆj zˆi zˆj Functions

Using ADAMS/Solver 283 AY

AY

Definition The AY function returns the rotational displacement of marker i about the y-axis of marker j. Marker j defaults to the global coordinate system if it is not specified. The values are computed as follows: assume rotations about the other two axes (x-, z-axes) of marker j are zero. Then AY is the angle between the two x-axes (or the two z-axes). AY is measured counter- clockwise from the x-axis of the J marker to the x-axis of the I marker (see Figure 60). Figure 60. Measurement of AY

zˆj

yˆi xˆi

AY(I,J) xˆj Functions

Format AY(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Extended Mathematically, AY is calculated as: Definition ()• , • AY= ATAN2 zˆi xˆj zˆi zˆj

where zˆ i is the z-axis of marker i, xˆ j is the x-axis of marker j and zˆ j is the z-axis of marker j.

Examples SFORCE/10, ROTATION, I=23, J=34 , FUNCTION=-4*(AY(46,57)**2) This SFORCE statement applies a moment about the common z-axes of Markers 23 and 34. The torque acts on Marker 23; the reaction torque acts on Marker 34. The value of the torque being applied is -4 times the square of the angle between the x axes of Markers 46 and 57. The angle is measured in a counterclockwise sense from the x-axis of Marker 57 to the x-axis of Marker 46.

284 Using ADAMS/Solver AZ

AZ

Definition The AZ function returns the rotational displacement of marker i about the z-axis of marker j. Marker j defaults to the global coordinate system if it is not specified. This value is computed as follows: assume that rotations about the other two axes (x-, y-axes) of marker j are zero. Then AZ is the angle between the two x-axes (or the two y-axes). AZ is measured in a counter- clockwise sense from the x-axis of the J marker to the x-axis of the I marker (see Figure 61). Figure 61. Measurement of AZ

yˆj

yˆi xˆi

AZ(I,J) xˆ

j Functions

Format AZ(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Extended Mathematically, AZ is calculated as: Definition ()• , • AZ= ATAN2 xˆi yˆj xˆi xˆj

where xˆ i is the x-axis of marker i, xˆ j is the x-axis of marker j and yˆ j is the y-axis of marker j.

Examples VTORQUE/1, I=21, JFLOAT=31, RM=41 , TX=-10*(AX(21,32)-10D)\ , TY=-15*(AY(21,32)-15D)\ , TZ=-30*(AZ(21,32)-25D) This VTORQUE statement applies a moment at Marker 21. The reaction moment is at the floating Marker 31. The torques are expressed in the coordinate system of Marker 41.

Using ADAMS/Solver 285 BEAM

BEAM

Definition The BEAM function returns component comp of a force due to BEAM/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I marker of the BEAM. If jflag is set to 1, the value returned is that acting on the J marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format BEAM (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the beam. jflag An integer flag specifying the beam connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker

Functions comp An integer value that specifies the component of the beam force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Examples REQUEST/1 , F2=BEAM(1001,0,2,0)\ , F3=BEAM(1001,0,3,0)\ , F4=BEAM(1001,0,4,0) This REQUEST statement stores the x-, y-, and z-component of the forces in BEAM/1001 in columns 2, 3, and 4, respectively. The forces are calculated at the I marker. The results are computed in the global coordinate system.

286 Using ADAMS/Solver BISTOP

BISTOP

Definition The BISTOP function models a gap element (see figure 5).

BISTOP (x,x , x ,x ,k,e,c ,d) Format ˙ 1 2 max

Arguments x The distance variable you want to use to compute the force. For example, if you want to use the x displacement of Marker 0201 with respect to 0301, then x is DX(0201,0301,0301).

x˙ The time derivative of x to BISTOP. For example, if x is DX(0201,0301,301)thenx˙ is VX(0201,0301,0301,0301).

x1 The lower bound of x. If x is less than x1 ADAMS/Solver calculates a positive value for the force. The value of x1 must be less than the value of x .

2 Functions

x2 The upper bound of x. If x is greater than x2 ADAMS/Solver calculates a negative value for the force. The value of x2 must be greater than the value of x1. k A non-negative value that specifies the stiffness of the boundary surface interaction. e A positive value that specifies the exponent of the force deformation characteristic. For a stiffening spring characteristic, e > 1.0. For a softening spring characteristic, 0 < e < 1.0.

cmax A non-negative variable that specifies the maximum damping coefficient. d A positive real variable that specifies the penetration at which the full damping coefficient is applied.

Using ADAMS/Solver 287 BISTOP

Extended The BISTOP function models a gap element. Figure 62 illustrates the BISTOP Definition force. The gap element consists of a slot which defines the domain of motion of a Part I located in the slot. As long as Part I is inside the slot and has no interference with the ends of the slot, it is free to move without forces acting on it. When Part I tries to move beyond the physical definition of the slot, impact forces representing contact are created by the BISTOP function. The created force tends to move Part I back into the slot.

The BISTOP force has two components: A stiffness component dependent on the penetration of Part I into the restricting Part J and a damping or viscous component that may be used to model energy loss.

Figure 62. Example of the BISTOP Function

L

x^ M1 M2 Functions

I J z^ z^

N x To prevent a discontinuity in the damping force at zero penetration, the damping coefficient is defined as a cubic of the penetration. Thus at zero penetration, the damping coefficient is always zero. The damping coefficient achieves a maximum, cmax, at a user-defined penetration, d. Even though the points of contact between the floating part and the restricting part may change as the system moves, ADAMS/Solver always exerts the force between the I and the J markers.

Examples You may model a slider in a slot with a BISTOP function as depicted in Figure 62. Assume a translational joint constrains the slider to move in a slot. The line of translation is along the colinear z-axes of the I and the J markers, I belonging to the slider and J to the part containing the slot. You can use an SFORCE statement together with the BISTOP function to restrict the movement of the slider in the slot and model the “gap.”

288 Using ADAMS/Solver BISTOP

In Figure 62, x is the instantaneous distance between the I and the J markers, N is the distance between the J marker and the left end of the slot, M1 is the distance between the I marker and the left edge of the floating part, L is the length of the slot, M2 is the distance between the I marker and the right edge of the floating part, x1 is the instantaneous distance between the I and the J markers when the floating part first comes into contact with the left end of the slot, and x2 is the instantaneous distance between the I and the J markers when the floating part first comes into contact with the right end of the slot.

Hence, the parameters for the BISTOP function for this example are:

x = DZ(I,J,J) and x˙ = VZ(I,J,J,J) x = N + M1 for the left end of the slot and x = N + L - M2 for the right end of the slot or

x1 = N + M1, and

x2 = N + L - M2 Functions

Note that when x1 ≤≤xx2 there is no penetration and the force is zero (penetration p = 0); when x < x1 penetration occurs at the end closer to the J marker and the force is > 0 (penetration p = x1 - x); and when x > x1 penetration occurs at the end farther away from the J marker, and the force is < 0 (penetration p = x - x2).

Also note than when p < d the instantaneous damping coefficient is a cubic step function of the penetration, p; when p > d the instantaneous damping coefficient is cmax.

The BISTOP function for this example is:

BISTOP(DZ(I,J,J,J), VZ(I,J,J,J), x1, x2, k, e, cmax, d)

The values of k, e, cmax, and d depend on the materials used in the two parts and on the shapes of the parts and are used to define the contact force. The BISTOP force can be mathematically expressed as follows:

Min(k*(x−− x)e STEP(x,x − d,c ,x ,0)*x©,0) : x < x   1 1 max 1 1 = ≤≤ BISTOP 0 : x12 x x    −−−e + > Max( k*(x x2 ) STEP(x,x 2 ,0,x 2 d,c max )*x©,0): x x 2

Using ADAMS/Solver 289 BUSH

BUSH

Definition The BUSH function returns component comp of a force due to BUSHING/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I marker of the BUSHING. If jflag is set to 1, the value returned is that acting on the J marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format BUSH (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the bushing. jflag An integer flag specifying the bushing connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker J

Functions 1 = forces and moment at the marker comp An integer value that specifies the component of the bushing force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Examples REQUEST/1 , F2=BUSH(1001,0,2,0)\ , F3=BUSH(1001,0,3,0)\ , F4=BUSH(1001,0,4,0) This REQUEST statement stores the x-, y-, and z-component of the forces in BUSH/1001 in columns 2, 3, and 4, respectively. The forces are calculated at the I marker. The results are computed in the global coordinate system.

290 Using ADAMS/Solver CHEBY

CHEBY

Definition The CHEBY function evaluates a Chebyshev polynomial at a user specified value x.

Format CHEBY (x, x0, a0, a1,..., a30)

Arguments x An expression that specifies the independent variable. For example, if the independent variable in the function is time, x is the system variable TIME.

x0 The phase shift in the Chebyshev polynomial.

a0,a1,...,a30 The coefficients for the Chebyshev polynomial. A maximum of thirty-one coefficients may be specified.

Extended The CHEBY function evaluates a Chebyshev polynomial at a user specified Definition value x. x , a , a ,..., a are parameters used to define the constants for 0 0 1 30 Functions the Chebyshev polynomial. The Chebyshev polynomial is defined as: ∑ C(x) = aj Tj (x-x0)

where the functions Tj are recursively defined as:

Tj (x-x0)= 2 * (x-x0)* Tj-1 (x-x0)- Tj-2 (x-x0)

with T0 (x-x0) = 1, and T1 (x-x0) = x-x0. The index “j” has a range from zero to “n”, where “n” is the number of terms in the series.

Note that: 2 T2 (x-x0) = 2 * (x- x0) - 1 3 T3 (x-x0) = 4 * (x- x0) - 3 * (x- x0)

Examples MOTION/1, JOINT=21, TRANSLATION, ,FUNCTION = IF (TIME-2:CHEBY(TIME, 1, 1, 0, -1), 0, 0) This MOTION statement defines a motion using a quadratic Chebyshev polynomial and the system variable TIME. The arithmetic IF ensures that the function remains zero after 2 time units. When time is less than 2 time units, ADAMS/Solver evaluates a Chebyshev polynomial to determine the motion. The polynomial defined in the above example is: 2 Cheby = 1 + 0 * (time-1) - 1 * [2 (time-1) - 1] 2 = 2*time - 4*time

Using ADAMS/Solver 291 COS

COS

Definition The COS function returns the cosine of an expression a.

Format COS(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples MOTION/2060, JOINT=2060, ROTATION, , FUNCTION=20D+COS(2*PI*TIME) This MOTION statement defines a rotational motion acting on JOINT/2060. The rotational degree of freedom is specified to be 20D+COS(2*PI*TIME). Functions

292 Using ADAMS/Solver COSH

COSH

Definition The COSH function computes the hyperbolic cosine of an expression a.

COSH(a) = (ea + e-a) / 2.0

Format COSH(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples REQUEST/36, , F2=COSH(DZ(21,11,11)) This REQUEST statement returns the hyperbolic cosine of the z-component of the displacement of Marker 21 with respect to Marker 11 in its second column. The result is computed in the coordinate system of Marker 11. Functions

Using ADAMS/Solver 293 CUBSPL

CUBSPL

Definition The CUBSPL function returns the interpolated value of SPLINE/id at X=x and Z=z or returns the iord derivative at the interpolated value of SPLINE/id at X=x, Z=0.

Format CUBSPL (x, z, id)

or

CUBSPL (x, 0, id [,iord])

Arguments x A real variable that specifies the independent variable value along the x-axis of the CUBSPL. z A real variable that specifies the second independent variable value along the z-axis of the surface being interpolated. If the SPLINE statement Functions defines only one curve, ADAMS/Solver ignores this variable. id An integer variable that specifies the identifier of a CUBSPL statement. iord An optional integer that specifies the order of the derivative at the interpolate value to be returned by CUBSPL. Range: 0 ≤≤iord 2

Extended The CUBSPL function uses the standard cubic method of interpolation to create Definition a spline function across a set of data points. The data points are defined in the SPLINE statement in ADAMS/Solver data deck. The SPLINE that you define in the ADAMS/Solver dataset may represent a curve (x-y points) or a surface (x-y-z points). Interpolation in the y direction is cubic and interpolation in the z direction is linear. To interpolate the values specified in a curve, set z = 0.

iord specifies the order of the derivative and may be used only when interpolating a curve (i.e., when z = 0).

294 Using ADAMS/Solver CUBSPL

CUBSPL, though not as fast as AKISPL, always produces good results for the value of the function being approximated, its first and second derivatives. There is no requirement on the data points being evenly spaced. This may be an important consideration when you use splines to define functions in ADAMS/Solver. The solution process often requires estimates of derivatives of the functions being defined. The smoother a derivative is, the easier it is for the solution process to converge.

If the spline data contains sudden changes in value, the CUBSPL function gives more oscillatory results for the curve or surface than are given by the AKISPL function.

Examples SPLINE/1, , X= -3, -2, -1, 0, 1, 2, 3 , Y= -67.4, -48.6, -33.7, 4.8, 24.12, 37.6, 48.4

SFORCE/1, I=409, J=109, TRANSLATION, , FUNCTION=CUBSPL(TIME, 0, 1)

This SFORCE statement defines the translational force acting between Functions Markers 409 and 109. The SPLINE statement provides the discrete data used to generate the interpolation function using the cubic spline. Since the SPLINE statement defines only one curve, the value of z is defined to be 0.

Using ADAMS/Solver 295 CURVE

CURVE

Definition The CURVE function evaluates a B-spline or user-written curve created by a CURVE statement.

Format CURVE (alpha, iord, comp, id)

Arguments alpha A real variable that identifies the value of the independent parameter, α, at which the CURVE function evaluates the curve. If the curve is a B- spline computed by the CURVE statement, alpha must be in the domain -1 ≤≤α 1. If the curve is computed by a CURSUB, alpha must be in the domain MINPAR ≤≤α MAXPAR (these are specified in the CURVE statement). iord An integer variable that specifies the order of the derivative the CURVE function returns. The legal values are: 0 - returns the curve coordinate Functions 1 - returns the first derivative 2 - return the second derivative comp An integer variable that specifies the component that the CURVE function returns. The legal values are: 1 - returns the x coordinate or derivative 2 - returns the y coordinate or derivative 3 - returns the z coordinate or derivative

Parameters iord and icomp together allows you to request any one of the following nine return values.

iord icomp=1 icomp=2 icomp=3 0 x(α) y(α) z(α) 1 dx()α dy()α dz()α ------dα dα dα

2 2 2 2 d x()α d y()α d z()α ------2 2 2 dα dα dα

296 Using ADAMS/Solver CURVE

id An integer variable that specifies the identifier of the CURVE statement.

Examples VFORCE/1, I=101, JFLOAT=201, RM=99, , FX=CURVE(.4*TIME - 1, 0, 1, 8)\ , FY=CURVE(.4*TIME - 1, 0, 2, 8)\ , FZ=CURVE(.4*TIME - 1, 0, 3, 8) This example applies a VFORCE acting between Markers 101 and 201. The CURVE statement defines the force components as a function of alpha, which varies from -1.0 to 1.0. The term .4*TIME-1 computes the instantaneous value of alpha from the simulation time. Functions

Using ADAMS/Solver 297 CVCV

CVCV

Definition The CVCV function returns component comp of a force or torque due to CVCV/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the IFLOAT marker of the CVCV. If jflag is set to one, the value returned is that acting on the JFLOAT marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format CVCV (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the bushing. jflag An integer flag specifying the bushing connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker

Functions 1 = forces and moment at the J marker comp An integer value that specifies the component of the bushing force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

298 Using ADAMS/Solver CVCV

Examples REQUEST/18, , F2=CVCV(210,0,2,0)\ , F3=CVCV(210,0,3,0)\ , F4=CVCV(210,0,4,0)\ , F6=CVCV(210,0,6,0)\ , F7=CVCV(210,0,7,0)\ , F8=CVCV(210,0,8,0) This REQUEST statement returns all three components of the forces and moments acting at the IFLOAT marker of CVCV Joint 210. Functions

Using ADAMS/Solver 299 DIF

DIF

Definition The DIF function returns the value of the state variable associated with DIFF/id.

Format DIF(id)

Arguments id An integer variable that specifies the identifier of a DIFF statement. DIF/23, IC=4.67, FUNCTION=WZ(236,467)

Example: SFORCE/1, i=236, j=467, ROTATION , FUNCTION=-10*DIF(23-4*DIF1(23)

The DIF statement defines a rotational S-Force that acts along the common z-axes of Markers 236 and 467. The torque along the z-axes is defined to be -10 times the value of the state that is defined by DIFF/23 -4 times the value of the time derivative of the

Functions state that is defined by DIFF/23.

300 Using ADAMS/Solver DIF1

DIF1

Definition The DIF1 function returns the value of the time derivative of the state variable associated with DIFF/id. In instances where DIFF/id is used to define an implicit algebraic equation, DIF1 returns an approximation of the time derivative obtained by numerical differencing.

Format DIF1(id)

Arguments id An integer variable that specifies the identifier of a DIFF statement.

Examples SFORCE/1, I=21, J=11, ROTATION , FUNCTION= -20*(AZ(21,11)-10)**1.5 , -5*WZ(21,11,11)

DIF/1, IC=0, FUNCTION=SFORCE(1,0,8,11)*WZ(21,11) This SFORCE statement specifies a nonlinear rotational spring acting between Markers 21 and 11. The spring torque acts about the z axis of Functions Marker 11. DIF/1 specifies the instantaneous power used by SPRING/1. The expression DIF(1) returns the integral of the instantaneous power (i.e., the total work done by SPRING/1). DIF1(1) returns the instantaneous power in SPRING/1.

Using ADAMS/Solver 301 DIM

DIM

Definition The DIM function calculates the positive difference of the instantaneous values of two expressions a1 and a2.

DIM(a1,a2) = 0 if a1≤ a2 DIM(a1,a2) =a1-a2 if a1 > a2

Format DIM(a1,a2)

Arguments a1 Any valid function expression. a2 Any valid function expression.

Cautions DIM is a discontinuous function and must be used with caution. Functions

302 Using ADAMS/Solver DM

DM

Definition The DM function returns the magnitude of the translational displacement vector from marker j to marker i. Marker j defaults to the global coordinate system if it is not specified. DM is the distance between markers i and j and, by definition, is always non-negative.

Format DM(i[,j])

Arguments i The marker whose origin is being measured. j The marker whose origin is the reference point for the displacement calculation.

Extended Mathematically, DM is calculated as follows: Definition ⁄ []•)[]12 DM = Ri – Rj Ri – Rj Functions

where Ri is the displacement of marker i in the global coordinate system and

Rj is the displacement of marker j in the global coordinate system.

Examples SFORCE/1, I=21, J=11, TRANSLATION , FUNCTION=-30*(DM(21,11)-25)**1.72 This SFORCE statement defines a nonlinear spring whose free length is 25. The stiffness is 30 force units per unit deformation. DM(21,11)-25 represent the deformation in the spring. 1.72 is the exponent to which the deformation is raised.

Using ADAMS/Solver 303 DTOR

DTOR

Definition The DTOR variable returns degrees to radians conversion factor (PI/180).

Format DTOR

Examples VARIABLE/1, FUNCTION=30*DTOR*TIME This VARIABLE statement specifies a user-defined, algebraically- determined state variable whose value is 30 degrees*time. The state variable is stored in radians. Functions

304 Using ADAMS/Solver DX

DX

Definition The DX function returns the x-component of the translational displacement vector from marker j to marker i as expressed in the marker k coordinate system. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k defaults to ground if it is not specified.

Format DX(i[,j][,k])

Arguments i The marker whose origin is being measured. j The marker whose origin is the reference point for the displacement calculation. k The marker that is referenced to calculate the x-component of the displacement vector. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. Functions

Extended Mathematically, DX is calculated as follows: Definition []• DX = Ri – Rj xˆk

where Ri is the displacement of marker i in ground and Rj is the displacement of marker j in ground and xˆ k is the unit vector along the x-axis of marker k.

Examples VARIABLE/1, FUNCTION=DX(21,11,32)**2 This VARIABLE statement specifies a user-defined, algebraically- determined state variable. Its value is the square of the x-displacement of Marker 21 with respect to Marker 11 as computed in the coordinate system of Marker 32.

Using ADAMS/Solver 305 DY

DY

Definition The DY function returns the y-component of the translational displacement vector from marker j to marker i as expressed in the marker k coordinate system. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k defaults to the global coordinate system if it is not specified.

Format DY(i[,j][,k])

Arguments i The marker whose origin is being measured. j The marker whose origin is the reference point for the displacement calculation. Set j=0 if you want j to default to the global coordinate system while still specifying k. k The coordinates of the marker that are referenced to calculate coordinates Functions the y-component of the displacement vector is being calculated. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system.

Extended Mathematically, DY is calculated as follows: Definition []• DY = Ri – Rj yˆk

where Ri is the displacement of marker i in the global coordinate system and

Rj is the displacement of marker j in the global coordinate system and yˆ k is the unit vector along the y-axis of marker k.

Examples VARIABLE/1, FUNCTION=DY(21,11,32)**2 This VARIABLE statement specifies a user-defined, algebraically- determined state variable. Its value is the square of the y-displacement of Marker 21 with respect to Marker 11 as computed in the coordinate system of Marker 32.

306 Using ADAMS/Solver DZ

DZ

Definition The DZ function returns the z-component of the translational displacement vector from marker j to marker i as expressed in the marker k coordinate system. Marker j defaults to the global coordinate system if it is not specified. Similarly marker k defaults to the global coordinate system if it is not specified.

Format DZ(i[,j][,k])

Arguments i The marker whose origin is being measured. j The marker whose origin is the reference point for the displacement calculation. Set j=0 if you want j to default to the global coordinate system while still specifying l. k The marker in whose coordinates the z-component of the displacement vector is being calculated. Set k = 0 if you want the results to be calculated Functions along the x-axis of the global coordinate system.

Extended Mathematically, DZ is calculated as follows: Definition []• DZ = Ri – Rj zˆk

where Ri is the displacement of marker i in ground and Rj is the displacement of marker j in ground and zˆ k is the unit vector along the z-axis of marker k.

Examples VARIABLE/1, FUNCTION=DZ(21,11,32)**2 This VARIABLE statement specifies a user-defined, algebraically- determined state variable. Its value is the square of the z-displacement of Marker 21 with respect to Marker 11 as computed in the coordinate system of Marker 32.

Using ADAMS/Solver 307 EXP

EXP

Definition The EXP function computes the value ea, where a is any expression.

Format EXP(a)

Arguments a Any valid function expression. Number of arguments: 1

Examples REQUEST/10, F2=EXP(WDTX(21,11,11,31)) In its second column, REQUEST/10 stores the value, eWDTX(21,11,11,31), where WDTX (21,11,11,31) is the x-component of the accelerations of Marker 21 with respect to Marker 11 as expressed in the coordinate system of Marker 11. The time derivative is taken in the reference frame of Marker 31. Functions

308 Using ADAMS/Solver FIELD

FIELD

Definition The FIELD function returns component comp of a force due to FIELD/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value that is returned is the force/torque acting on the I marker of the FIELD. If jflag is set to 1, the value that is returned is the value acting on the J marker. For results that are in the global coordinate system, you can specify rm as zero.

Format FIELD (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the FIELD. jflag An integer flag specifying the FIELD connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker

1 = forces and moment at the J marker Functions comp An integer value that specifies the component of the FIELD force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Examples REQUEST/1 , F2=FIELD(1001,0,2,0)\ , F3=FIELD(1001,0,3,0)\ , F4=FIELD(1001,0,4,0) This REQUEST statement stores the x-, y-, and z-component of the forces in FIELD/1001 in columns 2, 3, and 4, respectively. Solver calculates the forces at the I marker, and computes results in the global coordinate system.

Using ADAMS/Solver 309 FM

FM

Definition The FM function returns the magnitude of the net translational force acting at marker i due to all applied forces and constraints acting between markers i and j.

To calculate the magnitude of the net translational force at marker i due to action-only forces acting at i, set j = 0 or do not specify the j marker.

Format FM(i[,j])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net force is to be calculated. j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are included in the calculation. Set j = 0 or do not specify it if you are interested in action-only forces. Functions Examples VARIABLE/1, FUNCTION=FM(23) A user-defined state variable is specified by this VARIABLE statement. Its value is the magnitude of the sum of all action-only forces acting at Marker 23.

VARIABLE/1, FUNCTION=FM(23,11) A user-defined state variable is specified by this VARIABLE statement. Its value is the magnitude of the sum of all the forces at Marker 23 and acting between Markers 23 and 11.

310 Using ADAMS/Solver FORCOS

FORCOS

Definition The FORCOS function evaluates a Fourier Cosine series at a user-specified value x. The x0, a0, a1,...,a30 are parameters used to define the constants for the Fourier Cosine series.

Format FORCOS (x, x0, w, a0, a1,..., a30)

Arguments x A real variable that specifies the independent variable. For example, if the independent variable in the function is time, x is the system variable TIME.

x0 A real variable that specifies a shift in the Fourier Cosine series. ω A real variable that specifies the fundamental frequency of the series. ADAMS/Solver assumes ω is in radians per unit of the independent D

variable unless you use a after the value. Functions

a0,a1,...,a30 The real variables that define as many as thirty-one coefficients for the Fourier Cosine series.

Extended The Fourier Cosine series is defined: Definition n

F(x) = a0 +∑ a j *Tj (x-x0) j = 1

where the functions Tj are defined as:

ω Tj (x-x0) = cos{j * * (x-x0)}

The index j has a range from 1 to n, where n is the number of terms in the series.

Using ADAMS/Solver 311 FORCOS

Examples MOTION/1, JOINT=21, TRANSLATION, , FUNCTION=FORCOS(TIME, 0, 360D, 1, 2, 3, 4) This MOTION statement defines a harmonic motion as a function of time. The motion has no shift, has a fundamental frequency of 1 cycle (360D) per time unit, has a constant value of 1.0. The function defined is: FORCOS = 1+2*COS(1*360D*TIME) +3*COS(2*360D*TIME) +4*COS(3*360D*TIME)

Figure 63 shows the curve.

Figure 63. Curve of a Harmonic Motion Defined by FORCOS

15.0

10.0 Functions 5.0

0.0

-5.0 1.25 3.75 0.0 2.5 5.0 S

312 Using ADAMS/Solver FORSIN

FORSIN

Definition The FORSIN function evaluates a Fourier Sine series at a user specified value x. x0,a0,a1,...,a30 are parameters used to define the constants for the Fourier Sine series.

FORSIN (x, x , w, a , a ,..., a ) Format 0 0 1 30

Arguments x A real variable that specifies the independent variable. For example, if the independent variable in the function is time, x is the system variable TIME.

x0 A real variable that specifies a shift in the Fourier Sine series. ω A real variable that specifies the fundamental frequency of the series. ADAMS/Solver assumes ω is in radians per unit of the independent

variable unless you use a D after the value. Functions

a0 A real variable that defines the constant bias term for the function.

a1,...,a30 The real variables that define as many as thirty-one coefficients for the Fourier Sine series.

Extended The Fourier Sine series is defined: Definition n

F(x) = a0 +∑ a j *Tj (x-x0) j = 1

where the functions Tj are defined as:

ω Tj (x-x0) = sin{j * * (x-x0)} The index j has a range from 1 to n, where n is the number of terms in the series

Using ADAMS/Solver 313 FORSIN

Examples MOTION/1, JOINT=21, TRANSLATION, , FUNCTION=FORSIN(TIME,-0.25, PI, 0, 1, 2, 3) This MOTION statement defines a harmonic motion as a function of time. The motion has a -0.25 second shift, a fundamental frequency of 0.5 cycle (π radians or 180 degrees) per time unit, and no constant value. The function defined is: FORSIN = 0+SIN(π*(TIME+0.25)) +2*SIN(2π*(TIME+0.25)) +3*SIN(3π*(TIME+0.25))

Figure 64 shows the curve.

Figure 64. Curve of a Harmonic Motion Defined by FORSIN

6.0

3.0 Functions

0.0

-3.0

-6.0 1.25 3.75 0.0 2.5 5.0

314 Using ADAMS/Solver FX

FX

Definition The FX function returns the x-component of the net translational force acting at marker i, as computed in the coordinate system of marker k. All force elements acting between markers i and j are included in the calculation of the force, unless the force is an action-only type force. To return the x-component of the action-only forces acting at marker i, you should omit specification of markers j and k or specify them to be zero.

Format FX(i[,j][,k])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net force is to be calculated. j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only forces. k Functions An integer that specifies the identifier of a marker (coordinate system) in which the x-component of the force is to be returned. k defaults to the global coordinate system when it is not specified.

Examples VARIABLE/1, FUNCTION=FX(23,0,432) A user-defined state variable is specified by this VARIABLE statement. Its value is FX(23,0,432). This is the x-component of the sum of all the action-only forces acting at Marker 23. The x-axis of Marker 432 specifies the direction along which the net translation force is computed.

Using ADAMS/Solver 315 FY

FY

Definition The FY function returns the y-component of the net translational force acting at marker i, as computed in the coordinate system of marker k. All force elements acting between markers i and j are included in the calculation of the force, unless the force is an action-only type force. To return the y-component of the action-only forces acting at marker i, you should omit specification of markers j and k or specify them to be zero.

Format FY(i[,j][,k])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net force is to be calculated. j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only forces. Functions k An integer that specifies the identifier of a marker (coordinate system) in which the y-component of the force is to be returned. k defaults to the global coordinate system when it is not specified.

Examples SFORCE/1, I=132, J=234, TRANSLATION, ACTIONONLY , FUNCTION=-0.3*FY(677,866) This SFORCE statement defines a translation, action-only force acting at Marker 132. The force is directed along the z-axis of Marker 234. The value of the force is -0.3 times the y-component of the net force along the global y-axis, acting at Marker 677. All forces acting between Markers 677 and 866 are included in this calculation.

316 Using ADAMS/Solver FZ

FZ

Definition The FZ function returns the z-component of the net translational force acting at marker i, as computed in the coordinate system of marker k. All force elements acting between markers i and j are included in the calculation of the force, unless the force is an action-only type force. To return the z-component of the action-only forces acting at marker i, you should omit specification of markers j and k or specify them to be zero.

Format FZ(i[,j][,k])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net force is to be calculated. j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only forces. k Functions An integer that specifies the identifier of a marker (coordinate system) in which the z-component of the force is to be returned. k defaults to the global coordinate system when it is not specified.

Examples SFORCE/1, I=23, J=11, TRANSLATION, ACTIONONLY , FUNCTION=STEP5(FX(34), -1.5, -200, 1.5, 200) This SFORCE statement defines a translational, action-only, nonlinear force. The force is directed along the z-axis of Marker 11. The value of the force is a 5th order step function (see STEP5 on page 359). The independent variable for the STEP5 function is FX(34), the net force acting along the global y-axis at Marker 34. Since no j marker is specified, only action-only forces acting at Marker 34 are included in the calculation of FX().

Using ADAMS/Solver 317 GFORCE

GFORCE

Definition The GFORCE function returns the component comp of the force in GFORCE/id in the coordinate system of marker rm. If jflag is set to zero, Solver returns the value of the force/torque that acts on the I marker of GFORCE. If jflag is set to 1, Solver returns the value that acts on the J marker. To obtain results in the global coordinate system, you can specify rm as zero.

Format GFORCE (id, jflag, comp, rm)

Arguments id An integer specifying the identification number of the GFORCE. jflag An integer flag specifying the GFORCE connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker

Functions 1 = forces and moment at the J marker comp An integer value that specifies the component of the GFORCE to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

318 Using ADAMS/Solver GFORCE

Examples GFORCE/1, I=516, J=34, RM=23 , FX=-0.3*GFORCE(1,0,4,23)\ , FY=0\ , FZ=IMPACT(DZ(516,0,23),VZ(516,0,23,23),4.6,1e5,1.5,10,0.01) This GFORCE statement defines a force acting at Marker 516. The components of the force are defined along the x-, y-, z-axes of Marker 23. The x-component of the force is -0.3 times the z-component of the force. The z-component of the force is defined as an impact force (see IMPACT on page 323) that is a function of the displacement and velocity of Marker 516, as seen by Marker 23. Functions

Using ADAMS/Solver 319 HAVSIN

HAVSIN

Definition The HAVSIN function defines a haversine function. It is used most often to represent a smooth transition between two functions.

Format HAVSIN (x, x0, h0, x1, h1)

Arguments x The independent variable.

x0 A real variable that specifies the x value at which the haversine function begins.

x1 A real variable that specifies the x value at which the haversine function ends.

h0

Functions The initial value of the haversine function.

h1 The final value of the haversine function.

Extended The HAVSIN function is used most often to represent a smooth transition Definition between two functions (Figure 65). As an example, a HAVSIN may be used to smoothly ramp up the motion in a joint from h0 to some constant value h1.

Figure 65. Haversine Function

1.0

0.75

0.5

0.25

0.0 1.25 3.75 0.0 2.5 5.0

320 Using ADAMS/Solver HAVSIN

The equation defining HAVSIN is:

a = (h0 + h1)/2

b = (h1 - h0)/2

c = (x - x0)/(x1 - x0)

h :x ≤ x   00 = +−ππ << HAVSIN ab* sin(/):xxx c* 2 01  ≥  h11 :x x 

Tips The HAVSIN function behavior is similar to the STEP functions (see STEP on page 356 and STEP5 on page 359). The HAVSIN is much smoother than either of these functions. The smoothness, however, causes its derivatives to be larger than either STEP or STEP5.

Examples MOTION/1, JOINT=21, TRANSLATION , FUNCTION=HAVSIN(TIME, 1, 0, 2, 1) Functions This MOTION statement defines a smooth transition from time 1 to time 2 with a displacement from 0 to 1.

Using ADAMS/Solver 321 IF

IF

Definition The arithmetic IF function allows you to conditionally define a function expression.

Format IF (expression 1: expression 2, expression 3, expression 4)

ADAMS/Solver evaluates expression 1.

◆ If the value of expression 1 is less than zero, the arithmetic IF is evaluated using expression 2. ◆ If the value of expression 1 is zero, the arithmetic IF is evaluated using expression 3. ◆ If the value of expression 1 is greater than zero, the arithmetic IF is evaluated using expression 4.

Cautions When using an arithmetic IF function make sure that the resulting function is continuous. If the function is discontinuous, ADAMS/Solver may fail to find a Functions solution when it encounters the discontinuity.

Examples SFORCE/1, I=20, J=31, , FUNCTION=-6*IF(VR(10,31): 0, 0, VR(10,31)**3) This function is interpreted as follows: ◆ If the radial velocity (see VR on page 374) between Markers 20 and 31 is less than or equal to zero, the value of SFORCE/1 is zero. ◆ If the radial velocity between Markers 10 and 31 is greater than zero, the value of SFORCE/1 is -6*VR(10,31)**3.

322 Using ADAMS/Solver IMPACT

IMPACT

Definition The IMPACT function models collisions.

IMPACT (x,x , x , k, e, c , d) Format ˙ 1 max

Arguments x An expression that specifies a distance variable that computes a force. For example, if you use the x displacement of Marker 0201 with respect to Marker 0301, then x is DX(0201,0301,0301). See DX on page 305. x˙ An expression that defines communicates the time derivative of x to IMPACT. For example, if x is DX(0201,0301), thenx˙ is VX(0201,0301,0,0301).

x1 A positive real variable that specifies the free length of x. If x is less than x1, then ADAMS/Solver calculates a positive value for the force. Otherwise, the force value is zero. You can define x1 as a , Functions function, or variable. k A non-negative real variable that specifies the stiffness of boundary surface interaction. e A positive real variable that specifies the exponent of the force deformation characteristic. For a stiffening spring characteristic, e > 1.0. For a softening spring characteristic, 0 < e < 1.0.

cmax A non-negative real variable that specifies the maximum damping coefficient. d A positive real variable that specifies the boundary penetration at which ADAMS/Solver applies full damping.

Extended The IMPACT function activates when the distance between the I and the J Definition markers falls below a nominal free length (x1), that is, when two parts collide. As long as the distance between the I and J markers is greater than x1, the force is zero. An example of a system you can model with the IMPACT function is a ball falling towards the ground. Figure 66 shows the free length value x1 at which the IMPACT force turns on.

Using ADAMS/Solver 323 IMPACT

The force has two components, a spring or stiffness component and a damping or viscous component. The stiffness coefficient, k, is a function of the penetration of the I marker within the free length distance from the J marker. The stiffness component opposes the penetration. The damping component of the force is a function of the speed of penetration. The damping opposes the direction of relative motion. To prevent a discontinuity in the damping force at contact, the damping coefficient is, by definition, a cubic step function of the penetration. Thus, at zero penetration, the damping coefficient is always zero. The damping coefficient achieves a maximum, cmax, at a user-defined penetration, d.

Figure 66. Example Illustrating the IMPACT Function

I

x1 d x Functions I J J x x1 d

The equation defining IMPACT is:

Max(0,k(x - x)e −− STEP(x,x d,c ,x ,0)*x):Ç x < x  IMPACT =  11max 11 ≥ 0 : x x1

Note that when x ≥ x1, no penetration occurs and the force is zero (penetration p = 0). When x < x1, penetration occurs at the end closer to the J marker, and the force is > 0 (penetration p = x1 - x).

Also note that when p < d, the instantaneous damping coefficient is a cubic step function of the penetration p.

When p > d, the instantaneous damping coefficient is cmax. ADAMS/Solver never returns a negative force for IMPACT. If the above expression is negative, ADAMS/Solver returns a value of zero.

324 Using ADAMS/Solver IMPACT

Figure 67 is a plot of damping coefficient versus penetration. Figure 67. Damping Coefficient versus Penetration

cmax

Damping Coefficient

d 0 Penetration

Examples SFORCE/1, I=11, J=21, TRANSLATION, ACTIONONLY , FUNCTION=IMPACT(DZ(11,21,21), , VZ(11,21,21,21),1.0, 100, 1.5, 25, 0.1) Functions This statement defines an impact force when a ball penetrates another object such as a table. The force is a single-component force at Marker 11 and along the z-axis of Marker 21. DZ(11,21,21) defines the instantaneous displacement of Marker 11 with respect to Marker 21 along the z-axis of Marker 21. VZ(11,21,21,21) defines the instantaneous velocity. The free length is 1, i.e., the radius of the ball is 1 unit. The stiffness is 100, and the exponent of deformation is 1.5, the maximum damping coefficient is 25. The penetration at which ADAMS/Solver applies full damping is 0.1. VFORCE/1, I=27, JFLOAT=25, RM=26 , FX=0\ , FY=IMPACT(DY(4,1,1), VY(4,1,1), 1-AKISPL(DX(4,1,1), , DZ(4,1,1)3),le7, 1.01, le4,.25)\ , FZ=0 This statement defines an impact force when a ball penetrates a surface defined by a spline. The force is a translational force at Marker 27. The DY(4,1,1) defines the y-component of the instantaneous displacement of Marker 4 with respect to Marker 1. The VY(4,1,1) defines the y-component of the instantaneous velocity. The free length is defined using spline 3, which represents the surface. The independent variables in the spline are defined using the x-component and z-component of the instantaneous displacement of Marker 4 with respect to Marker 1, DX(4,1,1) and DZ(4,1,1), respectively. The stiffness is le7, the exponent of deformation is 1.01, the maximum damping coefficient is 25, and the penetration at which ADAMS/Solver applies full damping is.25.

Using ADAMS/Solver 325 JOINT

JOINT

Definition The JOINT function returns component comp of a force or torque due to JOINT/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I marker of the JOINT. If jflag is set to one, the value returned is that acting on the J marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format JOINT (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the joint. jflag An integer flag specifying the joint connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker

Functions 1 = forces and moments at the J marker comp An integer value that specifies the component of the joint force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

326 Using ADAMS/Solver JOINT

Examples JOINT/1, REVOLUTE, I=46, J=23 SFORCE/1, ROTATION, I=46, J=23 , FUNCTION=-0.4*SIGN(1.0,WZ(46,23,23)*5.6*, , (JOINT(1,0,1,23)-ABS(JOINT(1,0,4,23)))) This example illustrates how a simple dynamic friction force can be added to a revolute joint. JOINT/1 is the revolute joint to which frictional effects are to be added. 0.4 is the coefficient of friction and 5.6 is the radius of the sleeve defining the revolute joint. WZ(46,23,23) determines the direction of rotation and the negative sign indicates that the frictional moment about the z-axis of Marker 23 opposes this motion. JOINT(1,0,1,23) determines the magnitude of the reaction force at Marker 23. JOINT(1,0,4,23) determines the component of the constraint force along the axis of the rotational of the joint. JOINT(1,0,12)-ABS(JOINT(1,0,4,23)) defines the radial load in the revolute joint (i.e., the normal force). Functions

Using ADAMS/Solver 327 JPRIM

JPRIM

Definition The JPRIM function returns component comp of a force due to JPRIM/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I marker of the JPRIM. If jflag is set to one, the value returned is that acting on the J marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format JPRIM (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the JPRIM. jflag An integer flag specifying the JPRIM connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker

Functions comp An integer value that specifies the component of the JPRIM force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Examples REQUEST/1 , F2=JPRIM(212,1,8,346) In its second column, this REQUEST statement stores the z component of the torque acting at the J marker of JPRIM 212. The torque component is calculated in the coordinate system of Marker 346.

328 Using ADAMS/Solver LOG

LOG

Definition The LOG function returns the natural logarithm an expression a. If ex=a then LOG(a)= x. The LOG function is defined only for positive values of a (i.e., a > 0). It is undefined for all other values.

Format LOG(a)

Arguments a Any valid function expression that returns a positive value during a simulation. Number of Arguments: 1

Examples DIFF/1, IC=3.6 , FUNCTION=LOG(1+VM(21,31,31)) This DIFF statement defines a user specified differential equation. The initial condition for the associated state is 3.6 and its derivative is the natural

logarithm of the expression 1+VM(21,31,31). Functions

Using ADAMS/Solver 329 LOG10

LOG10

Definition The LOG10 function returns log to base 10 of an expression a. If 10x=a, then LOG10(a)= x. The LOG10 function is defined only for positive values of a (a>0). It is undefined for all other values.

Format LOG10(a)

Arguments a Any valid function expression that returns a positive value during a simulation. Number of Arguments: 1

Examples DIFF/1, IC=3.6 , FUNCTION=LOG10(1+VM(21,31,31)) This DIFF statement defines a user specified differential equation. The initial condition for the associated state is 3.6 and its derivative is the natural

Functions logarithm of the expression 1+VM(21,31,31).

330 Using ADAMS/Solver MAX

MAX

Definition The MAX function returns the maximum of two expressions a1 and a2.

MAX(a1,a2) = a1 if a1≥ a2 MAX(a1,a2) = a2 if a2 > a1

Format MAX(a1,a2)

Arguments a1 Any valid function expression. a2 Any valid function expression.

Cautions The MAX function is generally discontinuous. Use this function expression with care when you are specifying force or motion input.

Examples SFORCE/1, ROTATIONAL, ACTIONONLY, I=21, J=11 Functions , FUNCTION=MAX(0,-3*(AZ(21,11)-25D)) This SFORCE statement defines an action-only torque that acts at Marker 21 and acts along the z-axis of Marker 11. The torque is defined to always be non-negative through the use of the MAX function. Thus, the torque can only act to decrease the AZ rotation of Marker 21 with respect to Marker 11 (see AZ on page 285).

Using ADAMS/Solver 331 MIN

MIN

Definition The MIN function returns the minimum of two expressions a1 and a2.

MIN(a1,a2) = a1 if a1≤ a2 MIN(a1,a2) = a2 if a2 < a1

Format MIN(a1,a2)

Arguments a1 Any valid function expression. a2 Any valid function expression.

Cautions The MIN function is generally discontinuous. Use this function expression with care when you are specifying force or motion input.

Functions Examples SFORCE/1, ROTATIONAL, ACTIONONLY, I=21, J=11 , FUNCTION=MIN(0,-3*(AZ(21,11)-25D)) This SFORCE statement defines an action-only torque that acts at Marker 21 and acts along the z-axis of Marker 11. The torque is defined to always be negative through the use of the MIN function. Thus, the torque can only act to decrease the AZ rotation of Marker 21 with respect to Marker 11 (see AZ on page 285).

332 Using ADAMS/Solver MOD

MOD

Definition The MOD function returns the remainder when a1 is divided by a2.

MOD(a1,a2) = a1 - int(a1/a2) * a2

Format MOD(a1,a2)

Arguments a1 Any valid function expression. a2 Any valid function expression.

Cautions The MOD function is generally discontinuous. Use this function expression with care when you are specifying force or motion input.

Examples MOD(45,16)=13 Functions

Using ADAMS/Solver 333 MODE

MODE

Definition The MODE function returns the current analysis mode. These are defined as:

1 = Kinematics 2 = Reserved 3 = Initial conditions 4 = Dynamics 5 = Statics 6 = Quasi-statics 7 = Linear analysis

Format MODE

Cautions Use the MODE function with care if you use the STATICS argument on the SIMULATE command to request a static or quasi-static simulation of a kinematic system, ADAMS/Solver performs a kinematic analysis and, consequently, returns a MODE analysis constant of 1 (not 5 or 6). Functions Examples SFORCE/1, TRANSLATION, I=21, J=11 , FUNCTION=IF(MODE-4:0,0,-4*(DM(21,11)-10.6)) This example defines a translational force that is active only during statics, quasi-static, and linear analysis modes. For these analysis modes, the SFORCE acts as a simple spring. For all other analyses, the net force applied by the SFORCE is zero.

334 Using ADAMS/Solver MOTION

MOTION

Definition The MOTION function returns component comp of a force due to MOTION/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I marker of the MOTION. If jflag is set to one, the value returned is that acting on the J marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format MOTION (id, jflag, comp, rm)

Arguments id An integer specifying the identification number of the motion. jflag An integer flag specifying the motion connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moments at the J marker

comp Functions An integer value that specifies the component of the motion force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Examples JOINT/34, REVOLUTE, I=21, J=11 MOTION/1, ROTATIONAL, JOINT=34, FUNCTION=TIME**2 DIFF/1, IC=0 , FUNCTION=WZ(21,11)*MOTION(1,0,8,11) This DIFF statement defines a user defined state. Its derivative is the instantaneous power required to effect the displacement specified by MOTION/1. Therefore, the value of the state is the total work done by MOTION/1 during a simulation.

Using ADAMS/Solver 335 NFORCE

NFORCE

Definition The NFORCE function returns component comp of a force due to NFORCE/id acting at the marker, at_marker, as calculated in the coordinate system of marker rm. The rm marker may be specified as zero if the results are desired in the global coordinate system. The marker must be one of the I or J markers to which NFORCE/id connects.

Format NFORCE (id, at_marker, comp, rm)

Arguments id An integer specifying the identification member of the NFORCE. at_marker An integer marker identifier specifying the NFORCE connectivity marker at which the forces and torques are computed. comp An integer value that specifies the component of the NFORCE to be returned. Functions 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Cautions The NFORCE function is available only from REQUEST and SENSOR statements. It is not accessible from other statements.

336 Using ADAMS/Solver PHI

PHIdn

Definition The PHI function calculates the third angle (in radians) of a body-2 [313] Euler rotation sequence between markers i and j. Marker j defaults to the global coordinate system if it is not specified. See Figure 68 for a schematic description of the body-2 [313] Euler rotation sequence.

Figure 68. Body-2 [313] Euler Angles

z,ζ The body-2 [313] sequence is η started by rotating y counterclockwise the initial system of axes, xyz, by an angle ψ ψ about the z-axis. The resultant x ξ axes are labeled ξ η ζ.

z

θ η' Functions ζ' In the second stage the intermediate axes, ξ η ζ, are rotated counterclockwise about y the ξ−axis by an angle θ. The new resultant planes are labelled ξ' η' ζ . ξ x ψ ' The '- axis is at the intersection of the xy and ξ' η' ξ' planes and is known as the line of nodes.

z

θ

z' y'

In the final rotation, the ξ'- η'- ζ'- axes are rotated y x' counterclockwise by an angle φ φ about the ζ-axis to produce the x' ψ x y' z' axes, which is the desired final direction. Line of nodes

Using ADAMS/Solver 337 PHI

Format PHI(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Examples REQUEST/1, F2=PHI(222,434) This REQUEST statement output the phi angle between Markers 222 and 434 in its second column. Functions

338 Using ADAMS/Solver PI

PI

Definition PI returns the ratio of the circumference of a circle to its diameter (3.14159...).

Format PI Functions

Using ADAMS/Solver 339 PINVAL

PINVAL

Definition The PINVAL function returns component comp of PINPUT/id.

Format PINVAL (id, comp)

Arguments id The identifier of the PINPUT whose data is being requested. comp An integer that specifies the component of the PINPUT to be returned.

Examples VARIABLE/21, FUNCTION=10*SIN(2.4*TIME)+3.5 VARIABLE/22, FUNCTION=DZ(21,11,32) PINPUT/10, VARIABLES=21,22

SFORCE/1, TRANSLATIONAL, I=62, J=47 , FUNCTION=-1.08*(PINVAL(10,2)-4.6)

Functions PINPUTs and POUTPUTs are used to generate the A, B, C, and D matrices for a mechanical system at an operating point. PINPUTs define the inputs to the system (plant) and POUTPUTs define the outputs from the system (plant). These can be accessed with function expression also, as shown in the example above. PINVAL(10,2) is the second element in the VARIABLES list for PINPUT/10 (i.e., VARIABLE/22).

340 Using ADAMS/Solver PITCH

PITCH

Definition Calculates the second angle of a Body-3 [3 -2 1] yaw-pitch-roll rotation sequence between marker i and j. Marker j defaults to the global coordinate system if it is not specified. Note that pitch is an Euler angle.

Format PITCH(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Examples REQUEST/2, F2=PITCH(143) This REQUEST statement output the pitch angle (in radians) of Marker 143 relative to the global coordinate system. Functions

Using ADAMS/Solver 341 POLY

POLY

Definition The POLY function evaluates a standard polynomial at a user-specified value x.

Format POLY (x, x0, a0, a1,..., a30)

Arguments x A real variable that specifies the independent variable. For example, if the independent variable in the function is time, x is the system variable TIME.

x0 A real variable that specifies a shift in the polynomial.

a0,a1,...,a30 The real variables that define as many as thirty-one coefficients for the polynomial series.

Functions Extended The POLY function evaluates a standard polynomial at a user-specified value Definition x. x0,a0,a1,...,a30 are parameters used to define the constants for the polynomial. The standard polynomial is defined as: n j P(x) = ∑ aj (x-x0) j = 0

2 n = a0 + a1 * (x-x )+a * (x-x ) +...+ a * (x-x0) 0 2 0 n

The index j has a range from zero to n, where n is the number of terms in the series.

Examples MOTION/1, JOINT=21, TRANSLATION , FUNCTION=POLY(TIME, 0, 0, 0, 1)

This MOTION statement uses a quadratic polynomial function with respect to the system variable TIME to define a motion. That expanded function is:

Poly = time2

342 Using ADAMS/Solver POLY

MOTION/1, JOINT=21, TRANSLATION , FUNCTION = IF(TIME-5: 0, 0, POLY(TIME, 5, 0, 10))

This MOTION statement uses an arithmetic IF in its function expression to switch between functions. The expanded function is: if (time - 5)≤ then Poly=0 else Poly=10*time-5

SFORCE/3, I=10, J=20, TRANSLATION , FUNCTION=-POLY(DM(10, 20), 10, 0, 25, 0, 0.75)

This SFORCE statement defines a force with a nonlinear force deformation characteristic. This relationship is:

Poly=-25*[DM(10,20)-10]+ 0.75*[DM(10,20)-10]3,

where, DM(10,20) represents the magnitude of the displacement of Functions Marker 10 with respect to Marker 20. The free length of the spring is 10 units.

Using ADAMS/Solver 343 POUVAL

POUVAL

Definition The POUVAL function returns component comp of POUTPUT/id.

Format POUVAL (id, comp)

Arguments id The identifier of the POUTPUT whose data is being requested. comp An integer that specifies the component of the POUTPUT to be returned.

Examples VARIABLE/21, FUNCTION=10*SIN(2.4*TIME)+3.5 VARIABLE/22, FUNCTION=DZ(21,11,32) POUTPUT/10, VARIABLES=21,22

SFORCE/1, TRANSLATIONAL, I=62, J=47 , FUNCTION=-1.08*(POUVAL(10,2)-4.6)

Functions PINPUTs and POUTPUTs are used to generate the A, B, C, and D matrices for a mechanical system at an operating point. PINPUTs define the inputs to the system (plant) and POUTPUTs define the outputs from the system (plant). These can be accessed with function expression also, as shown in the example above. POUVAL(10,2) is the second element in the VARIABLES list for POUTPUT/10 (i.e., VARIABLE/22).

344 Using ADAMS/Solver PSI

PSI

Definition The PSI function expression calculates the first angle (in radians) of a body-2 [313] Euler rotation sequence between markers i and j. Marker j defaults to the global coordinate system if it is not specified. See Figure 68 on page 337 for a schematic of the Body-2 [313] Euler angles.

Format PSI(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Examples REQUEST/1, F2=PSI(222,434) This REQUEST statement output the psi angle between Markers 222 and 434 in its second column. Functions

Using ADAMS/Solver 345 PTCV

PTCV

Definition The PTCV function returns component comp of a force due to PTCV/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force acting on the I marker of the PTCV. If jflag is set to one, the value returned is that acting on the JFLOAT marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format PTCV (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the bushing. jflag An integer flag specifying the bushing connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker comp An integer value that specifies the component of the beam force to be Functions returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. To return the results in the global coordinate system, set rm = 0.

Cautions ◆ The PTCV function may only be used with REQUESTs and SENSORs.

Examples REQUEST/1 , F2=PTCV(31,0,2,0)\ , F3=PTCV(31,0,3,0)\ , F4=PTCV(31,0,4,0)\ , F5=PTCV(31,0,5,0)\ , F6=PTCV(31,0,6,0)\ , F7=PTCV(31,0,7,0)\ , F8=PTCV(31,0,8,0)\ This REQUEST statement output the x-, y- and z-components of the force and torque at the I marker of PTCV/31. Since rm is specified as zero, all vectors are expressed in the global coordinate system.

346 Using ADAMS/Solver ROLL

ROLL

Definition The ROLL function calculates the third angle of a Body-3 [3 -2 1] yaw-pitch- roll rotation sequence between markers i and j. Marker j defaults to the global coordinate system if it is not specified. Note that roll is an Euler angle.

Format ROLL(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Examples REQUEST/2, F2=ROLL(143) This REQUEST statement output the roll angle (in radians) of Marker 143 relative to the global coordinate system. Functions

Using ADAMS/Solver 347 RTOD

RTOD

Definition RTOD returns the radians to degrees conversion factor.

Format RTOD

Examples REQUEST/1, F2=ROLL(23,14)*RTOD This REQUEST statement outputs the roll angle between Markers 23 and 14 in degrees. Functions

348 Using ADAMS/Solver SFORCE

SFORCE

Definition The SFORCE function returns component comp of a force due to SFORCE/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I marker of the SFORCE. If jflag is set to 1, the value returned is that acting on the J marker. rm may be specified as zero if the results are desired in the global coordinate system.

Format SFORCE (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the SFORCE. jflag An integer flag specifying the SFORCE connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker comp An integer value that specifies the component of the SFORCE to be Functions returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. Set rm = 0 if you want to return the results in the global coordinate system.

Examples REQUEST/1 , F2=SFORCE(31,0,2,0)\ , F3=SFORCE(31,0,3,0)\ , F4=SFORCE(31,0,4,0)\ , F5=SFORCE(31,0,5,0)\ , F6=SFORCE(31,0,6,0)\ , F7=SFORCE(31,0,7,0)\ , F8=SFORCE(31,0,8,0) This REQUEST statement output the x-, y- and z-components of the force and torque at the I marker of SFORCE/31. Since rm is specified as zero, all vectors are expressed in the global coordinate system.

Using ADAMS/Solver 349 SHF

SHF

Definition The SHF function evaluates a simple harmonic function. The following equation defines SHF.

SHF=a*sin(ω*(x-x0)-phi)+b

Format SHF (x, x0, a, w, phi, b)

Arguments x The independent variable in the function. It may be any valid expression. For example, if the independent variable in the function is twice the current simulation time, x is the system variable 2*TIME.

x0 The offset in the independent variable x. a The amplitude of the harmonic function.

Functions ω The frequency of the harmonic function. ADAMS/Solver assumes ω is in radians per unit of the independent variable. Conversion to degrees per unit of the independent is achieved by appending a D after the number specifying ω. phi A phase shift in the harmonic function. ADAMS/Solver assumes phi is in radians unless you use a D after the value. b The average value of displacement of the harmonic function.

Examples MOTION/1, JOINT=21, TRANSLATION , FUNCTION=SHF(TIME, 25D, PI, 360D, 0, 5)

This MOTION statement uses SHF to define the harmonic function: SHF = 5+PI*sin(360D*(time-25D))

The motion has a shift of 25 degrees, has an amplitude of PI, has a frequency of 1 cycle (360D) per time unit, has zero phase shift, and has an average value of displacement of 5 units.

350 Using ADAMS/Solver SIGN

SIGN

Definition The SIGN function transfers the sign of a2 to the magnitude of a1.

SIGN(a1,a2) = ABS(a1) if a2 ≥ 0 SIGN(a1,a2) = -ABS(a1) if a2 < 0

Format SIGN (a1,a2)

Arguments a1 Any valid function expression. a2 Any valid function expression.

Cautions The SIGN function is discontinuous. Use this function with care to avoid creating expressions that are discontinuous.

Examples VARIABLE/23, FUNCTION=10*SIGN(DM(24,33),VZ(24,33)) Functions When VZ(24,33) ≥ 0, the value of VARIABLE/23 is +10*DM(24,33). When VZ(24,33) < 0, the value of VARIABLE/23 is -10*DM(24,33).

Using ADAMS/Solver 351 SIN

SIN

Definition The SIN function returns the sine of an expression a.

Format SIN(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples SFORCE/1, TRANSLATION, I=23, J=34 , FUNCTION=SIN(10*TIME) A translational force is defined to be acting along the line joining Markers 23 and 34. The force at Marker 23 is defined to be SIN(10*TIME). Functions

352 Using ADAMS/Solver SINH

SINH

Definition The SINH function return the hyperbolic sine of an expression a.

SINH(a) = (ea-e-a) / 2.0

Format SINH(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples VARIABLE/1, FUNCTION=SINH(DX(21,32)) The value of VARIABLE/1 is the hyperbolic sine of the x-component of the displacement between Markers 21 and 32, as calculated in the global coordinate system. Functions

Using ADAMS/Solver 353 SPDP

SPDP

Definition The SPDP function returns the component comp of a force due to SPRINGDAMPER/id as calculated in the coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque that acts on the I marker of the SPRINGDAMPER. If jflag is set to 1, the value returned is the value that acts on the j marker. To get results in the global coordinate system, you can specify rm as zero.

Format SPDP (id, jflag, comp, rm)

Arguments id An integer specifying the identification member of the SPDP. jflag An integer flag specifying the SPDP connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker Functions comp An integer value that specifies the component of the SPDP force to be returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. Set rm = 0 if you want to return the results in the global coordinate system.

Examples REQUEST/1 , F2=SPDP(31,0,2,0)\ , F3=SPDP(31,0,3,0)\ , F4=SPDP(31,0,4,0)\ , F5=SPDP(31,0,5,0)\ , F6=SPDP(31,0,6,0)\ , F7=SPDP(31,0,7,0)\ , F8=SPDP(31,0,8,0) This REQUEST statement output the x-, y- and z-components of the force and torque at the I marker of SPDP/31. Since rm is specified as zero, all vectors are expressed in the global coordinate system.

354 Using ADAMS/Solver SQRT

SQRT

Definition The SQRT function returns the of an expression a. The square root function is defined only for non-negative values of the argument a.

Format SQRT(a)

Arguments a Any valid function expression. Number of Arguments: 1

Examples VARIABLE/23, , FUNCTION=SQRT (FX(23,11)**2+FY(23,11)**2) A new state variable with a value equal to the global square root of the sum of the squares of the global x- and y- components net force acting between Markers 21 and 11. Functions

Using ADAMS/Solver 355 STEP

STEP

Definition The STEP function approximates the with a cubic polynomial. It has continuous first derivatives. Its second derivatives are discontinuous at x=x0 and x=x1.

Format STEP (x, x0, h0, x1, h1)

Arguments x The independent variable. It can be a function expression.

x0 A real variable that specifies the x value at which the STEP function begins.

x1 A real variable that specifies the x value at which the STEP function ends.

h0 The initial value of the step. Functions

h1 The final value of the step.

Extended The STEP function approximates the Heaviside step function with a cubic Definition polynomial. Figure 69 illustrates the STEP function.

Figure 69. STEP Function 1.0

0.75

0.5

0.25

0.0 1.25 3.75 0.0 2.5 5.0

356 Using ADAMS/Solver STEP

The equation defining the STEP5 function is:

a = h1 - h0 ∆ = (x - x0)/(x1 - x0) h 0 :x x h1 1

Tips HAVERSINE, STEP5, and TANH offer other approximations for the Heaviside step function. These have a higher degree of continuity and differentiability, but may have larger derivatives.

Figure 70 compares the STEP, STEP5, HAVSIN and TANH functions.

Figure 70. Comparison of STEP, STEP5,,Q HAVSIN and TANH

1.0 Functions

0.75

STEP (solid line) 0.5 HAVSIN (dashed line)

STEP5 0.25 TANH

1.25 0.0 1.25 3.75 0.0 2.5 5.0

Using ADAMS/Solver 357 STEP

Figure 71 shows the first derivatives of these four functions.

Figure 71. First Derivatives of STEP, STEP5, HAVSIN and TANH

2.5 TANH

1.875 STEP5 HAVSIN STEP 1.25

0.625

0.0 1.25 3.75 0.0 2.5 5.0 Functions

Examples MOTION/1, JOINT=21, TRANSLATION , FUNCTION=STEP(TIME, 1, 0, 2, 1)

This MOTION statement defines a smooth step function from time 1 to time 2 with a displacement from 0 to 1.

358 Using ADAMS/Solver STEP5

STEP5

Definition The STEP5 function provides approximation to the Heaviside step function with a quintic polynomial. It has continuous first and second derivatives. Its third derivative is discontinuous at x=x0 and x=x1.

Format STEP5 (x, x0, h0, x1, h1)

Arguments x The independent variable.

x0 A real variable that specifies the x value at which the STEP5 function begins.

x1 A real variable that specifies the x value at which the STEP5 function ends.

h0

The initial value of the step. Functions

h1 The final value of the step.

Extended Figure 72 illustrates the STEP5 function. Definition Figure 72. STEP5 Function

1.0

0.75

0.5

0.25

0.0 1.25 3.75 0.0 2.5 5.0 S: steps all

Using ADAMS/Solver 359 STEP5

The equation defining the STEP5 function is:

a = h1 - h0 ∆ = (x - x0)/(x1 - x0) ≤ h:xx00   = +−+∆∆∆3 2 << STEP5 h:xxx001a *10[] 15 6    ≥ h:xx11

Examples MOTION/1, JOINT=21, TRANSLATION , FUNCTION=STEP5(TIME, 1, 0, 2, 1)

This MOTION statement defines a smooth step function from time 1 to time 2 with a displacement from 0 to 1. Functions

360 Using ADAMS/Solver SWEEP

SWEEP

Definition The SWEEP function returns a constant amplitude sinusoidal function with linearly increasing frequency.

Format SWEEP (x, a, x0, f0, x1, f1, dx)

Arguments x The independent variable. a The amplitude of the sinusoidal function.

x0 The value of the independent variable at which the SWEEP function begins.

f0 The initial frequency of the sinusoidal function. x

1 Functions The value of the independent variable value at which the SWEEP function ends.

f1 The final frequency.

dx The interval in which the SWEEP function becomes fully active.

Extended Mathematically, SWEEP is calculated as follows: Definition

SWEEP = STEP(x,0,0,dx,1)* a * sin(2π *freq(x)*x) where:

f0 if x < x0 xx– 1()0 if x < x < x freq (x) = f 0 + --- f 1 – f 0 ------0 1 2 x1 – x0

f1 if x > x1

Using ADAMS/Solver 361 SWEEP

The figure below illustrates the SWEEP function.

Figure 73. Sweep Function

f1

freq(x)

f0

x0 x1

Examples The following example defines motion with a sinusoidal function with a rising frequency from 2 to 6Hz during the time interval 0 to 5. MOTION/1,JOINT=1

, FUNCTION=SWEEP(TIME, 1.0, 0.0, 2.0, 5.0, 6.0, 0.01) Functions Figure 74. Sinusoidal Function

362 Using ADAMS/Solver TAN

TAN

Definition The TAN function returns the tangent of an expression a.

Format TAN(a)

Arguments a Any valid function expression. Number of Arguments: 1 Functions

Using ADAMS/Solver 363 TANH

TANH

Definition The TANH function returns the hyperbolic tangent of an expression a.

TANH(a)= (ea - e-a) / (ea + e-a)

Format TANH(a)

Arguments a Any valid function expression. Number of Arguments: 1

Extended Figure 75 illustrates the TANH function. Definition Figure 75. TANH Function

1.0 Functions 0.75

0.5

0.25

0.0 1.25 3.75 0.0 2.5 5.0

Examples MOTION/1, JOINT=21, TRANSLATION , FUNCTION=0.5(1+TANH(5*(TIME-1.5))) This MOTION statement defines a smooth step function that transitions from a value of 0 to 1. The value of the step function at time=1.5 is 0.5.

364 Using ADAMS/Solver THETA

THETAc

Definition The THETA function calculates the second angle (in radians) of a body-2 [313] Euler rotation sequence between markers i and j. Marker j defaults to the global coordinate system if it is not specified. See Figure 68 on page 337 for a schematic of the Body-2 [313] Euler angles.

Format THETA(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Examples REQUEST/1, F2=THETA(222,434) This REQUEST statement output the psi angle between Markers 222 and 434 in its second column. Functions

Using ADAMS/Solver 365 TIME

TIME

Definition The TIME variable returns the current simulation time.

Format TIME

Examples SFORCE/1, TRANSLATION, I=21, J=32 , FUNCTION=10*SIN(2*PI*TIME) This SFORCE statement defines a translational force acting between the origins of Marker 21 and Marker 11. The value of the force is 10*SIN*(2*PI*TIME). Functions

366 Using ADAMS/Solver TM

TM

Definition The TM function returns the magnitude of the net torque acting at marker i due to all applied torques and constraints acting between markers i and j.

To calculate the magnitude of the net torque at marker i due to action-only torque acting at i, set j = 0.

Format TM(i[,j])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net torque is to be calculated. j A second integer that specifies a marker identifier. All torques acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only torques.

Examples JOINT/1, REVOLUTE, I=32, J=44 Functions MOTION/1, ROTATION, JOINT=1, FUNCTION=10*TIME VARIABLE/31, FUNCTION=TM(32,44) In this example a revolute joint and motion (through the joint) act between Marker 32 and 44. A new algebraically determined state variable VARIABLE/31 is defined to have the magnitude of the net torque between these two markers as its value.

Using ADAMS/Solver 367 TX

TX

Definition The TX function returns the x-component of the net torque acting at marker i, as computed in the coordinate system of marker k. All force elements acting between markers i and j are included in the calculation of the torque, unless the force element is an action-only type force. To return the x-component of the action-only torques acting at marker i, you should omit specification of marker j or specify it as zero.

Format TX(i[,j][,k])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net torque is to be calculated. j A second integer that specifies a marker identifier. All torques acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only torques. Functions k An integer that specifies the identifier of a marker (coordinate system) in which the x-component of the torque is to be returned.

Examples JOINT/1, REVOLUTE, I=32, J=44 MOTION/1, ROTATION, JOINT=1, FUNCTION=10*TIME VARIABLE/31, FUNCTION=TX(32,44) In this example a revolute joint and motion (through the joint) act between Marker 32 and 44. A new algebraically determined state variable VARIABLE/31 is defined to have the magnitude of the net torque between these two markers as its value.

368 Using ADAMS/Solver TY

TY

Definition The TY function returns the y-component of the net torque acting at marker i as computed in the coordinate system of marker k. All force elements acting between markers i and j are included in the calculation of the torque, unless the force element is an action-only type force. To return the y-component of the action-only torques acting at marker i, you should omit specification of marker j or specify it as zero.

Format TY(i[,j][,k])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net torque is to be calculated. j A second integer that specifies a marker identifier. All torques acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only torques. k Functions An integer that specifies the identifier of a marker (coordinate system) in which the y-component of the torque is to be returned.

Examples JOINT/1, REVOLUTE, I=32, J=44 MOTION/1, ROTATION, JOINT=1, FUNCTION=10*TIME VARIABLE/31, FUNCTION=TY(32,44) In this example a revolute joint and motion (through the joint) act between Marker 32 and 44. A new algebraically determined state variable VARIABLE/31 is defined to have the magnitude of the net torque between these two markers as its value.

Using ADAMS/Solver 369 TZ

TZ

Definition The TZ function returns the z-component of the net torque acting at marker i as computed in the coordinate system of marker k. All force elements acting between markers i and j are included in the calculation of the torque, unless the force element is an action-only type force. To return the z-component of the action-only torques acting at marker i, you should omit specification of marker j or specify it as zero.

Format TZ(i[,j][,k])

Arguments i An integer that specifies the identifier of the marker at which the magnitude of the net torque is to be calculated. j A second integer that specifies a marker identifier. All torques acting between the [i,j] pair are to be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only torques. Functions k An integer that specifies the identifier of a marker (coordinate system) in which the z-component of the torque is to be returned.

Examples JOINT/1, REVOLUTE, I=32, J=44 MOTION/1, ROTATION, JOINT=1, FUNCTION=10*TIME VARIABLE/31, FUNCTION=TZ(32,44) In this example a revolute joint and motion (through the joint) act between Marker 32 and 44. A new algebraically determined state variable VARIABLE/31 is defined to have the magnitude of the net torque between these two markers as its value.

370 Using ADAMS/Solver VARVAL

VARVAL

Definition The VARVAL function returns current value of VARIABLE/id.

Format VARVAL (id)

Arguments id The identifier of the VARIABLE whose data is being requested.

Examples VARIABLE/10, FUNCTION=DX(21,32,43) SFORCE/20, TRANSLATION, I=346, J=567 , FUNCTION=(VARVAL(10)-5)**2 In this example, VARIABLE/10 defines an algebraically determined user specified state. SFORCE/20 is a non-linear translational spring whose force magnitude is a function of this variable. Functions

Using ADAMS/Solver 371 VFORCE

VFORCE

Definition The VFORCE function returns the component comp of the force in VFORCE/id in the coordinate system of marker rm. If jflag is set to zero, Solver returns the value of force/torque that acts on the I marker of VFORCE. If jflag is set to 1, Solver returns the value that acts on the J marker. To obtain results in the global coordinate system, you can specify rm as zero.

Format VFORCE (id, jflag, comp, rm)

Arguments id An integer specifying the identification number of the VFORCE. jflag An integer flag specifying the VFORCE connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker comp An integer value that specifies the component of the VFORCE that is Functions returned. 1 = Magnitude of the force 2 = x component of the force 3 = y component of the force 4 = z component of the force 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. Set rm = 0 if you want to return the results in the global coordinate system.

Examples MARKER/236, QP=4,6,7, EU=90D,90D,0, PART=23 MARKER/169, PART=16, FLOATING MARKER/168, QP=1,2,3, EU=30D,45D,60D, PART=16 VFORCE/19, I=236, JFLOAT=169 ,FX=-10*VX(236,168,168,168)\ ,FY=-10*VY(236,168,168,168)\ ,FZ=-10*VZ(236,168,168,168) REQUEST/1 ,F2=VFORCE(23,0,2,0)\ This REQUEST statement contains the x-component of the force exerted by VFORCE/19 calculated in the coordinate system of Marker 168.

372 Using ADAMS/Solver VM

VM

Definition The VM function calculates the magnitude of the first time derivative of the displacement vector of marker i with respect to marker j. The vector time derivative is taken in the reference frame of marker l. Markers i and j default to the global coordinate system if they are not specified.

Format VM(i[,j][,l])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j default to the global coordinate system. l The reference frame in which the time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame. Functions

Extended Mathematically, VM is calculated as follows: Definition () () () () ⁄ d d d d 12 VM = ---- R – ---- R • ---- R – ---- R dt i dt j dt i dt j

where Ri is the displacement of marker i in ground and Rj is the displacement of marker j in ground.

Examples DIFF/51, IC=-6.2, FUNCTION=VM(23,0,32) A dynamically determined user state is defined by DIFF/51. The time derivative of the user-state is the magnitude of the velocity of the origin of Marker 23 with respect to ground. The time derivative for the velocity computation is taken in the reference frame of Marker 32. VARIABLE/1, FUNCTION=VM(21,32,43) This VARIABLE statement defines an algebraic, user-defined state whose instantaneous value is the magnitude of the velocity vector between Markers 21 and 32, as seen by an observer at Marker 43.

Using ADAMS/Solver 373 VR

VR

Definition The VR function calculates the radial (relative) velocity of marker i with respect to marker j. The vector time derivative is taken in the reference frame of marker l. Markers j and l default to the global coordinate system if they are not specified.

Format VR(i[,j][,l])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velociy is being measured. Set j = 0, while still specifying l, if you want j default to the global coordinate system. l The reference frame in which the time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the Functions ground reference frame.

Definition Mathematically, VR is calculated as follows:

() () d d VR = ---- R – ---- R • []R – R / DM(i,j) dt i dt j i j

where Ri is the displacement of marker i with respect to the global origin, Rj is the displacement of marker j with respect to the global origin, and DM(i,j) is the distance between markers i and j.

As markers i and j separate from each other, VR is positive. VR is negative when markers i and j approach each other.

Examples SFORCE/1, TRANSLATION, I=467, J=764 , FUNCTION=-10*VR(467,764) This SFORCE statement defines a translational damper with a damping constant of 10.

374 Using ADAMS/Solver VTORQ

VTORQ

Definition The VTORQ function returns the component comp of force in VTORQUE/id in the coordinate system of marker rm. If jflag is set to zero, Solver returns the value of the torque that acts on the I marker of VTORQUE. If jflag is set to 1, Solver returns the value that acts on the J marker. To obtain results in the global coordinate system, you can specify rm as zero.

Format VTORQ (id, jflag, comp, rm)

Arguments id An integer specifying the identification number of the VTORQ. jflag An integer flag specifying the VTORQ connectivity marker at which the forces and torques are computed. 0 = forces and moments at the I marker 1 = forces and moment at the J marker comp An integer value that specifies the component of the VTORQ force to be returned. Functions 1 = Magnitude of the force (which is zero for a VTORQUE) 2 = x component of the force (which is zero for a VTORQUE) 3 = y component of the force (which is zero for a VTORQUE) 4 = z component of the force (which is zero for a VTORQUE) 5 = Magnitude of the torque 6 = x component of the torque 7 = y component of the torque 8 = z component of the torque rm The coordinate system in which the results are expressed. Set rm = 0 if you want the results returned in the global coordinate system.

Examples MARKER/236, QP=4,6,7, EU=90D,90D,0, PART=23 MARKER/169, PART=16, FLOATING MARKER/168, QP=1,2,3, EU=30D,45D,60D, PART=16 VTORQUE/19, I=236, JFLOAT=169 ,TX=-10*WX(236,168,168,168)\ ,TY=-10*WY(236,168,168,168)\ ,TZ=-10*WZ(236,168,168,168) REQUEST/1 ,F2=VTORQ(23,0,2,0)\ This REQUEST statement contains the x-component of the torque exerted by VTORQUE/19 calculated in the coordinate system of Marker 168.

Using ADAMS/Solver 375 VX

VX

Definition The VX function returns the x-component of the difference between the velocity vector of marker i and the velocity vector of marker j as computed in the coordinate system of marker k. All vector time derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate system if it is not specified. Similarly, markers i and j default to the global coordinate system if they are not specified.

Format VX(i[,j][,k][,l])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k The marker in whose coordinate system the velocity vector is being Functions expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the first time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, VX is calculated as follows: Definition () () d d VX= ---- R – ---- R • xˆ dt i dt j k

where Ri is the displacement of marker i in ground, Rj is the displacement of marker j in ground, and xˆ k is the unit vector along the x-axis of marker k.

Examples MARKER/236, QP=4,6,7, EU=90D,90D,0, PART=23 MARKER/169, PART=16, FLOATING MARKER/168, QP=1,2,3, EU=30D,45D,60D, PART=16 VFORCE/236, I=236, JFLOAT=169 ,FX=-10*VX(236,168,168,168)\ ,FY=-15*VY(236,168,168,168)\ ,FZ=-20*VZ(236,168,168,168) This VFORCE statement defines a damper acting between Markers 236 and 168. Marker 169 is a floating marker that defines the reaction point on Part 16. The damping force components are proportional to the components of the velocity between Markers 236 and 168 as seen and measured by an observer at Marker 168. 376 Using ADAMS/Solver VY

VY

Definition The VY function returns the y-component of the difference between the velocity vector of marker i and the velocity vector of marker j as computed in the coordinate system of marker k. All vector time derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate system if it is not specified. Similarly, markers i and j default to the global coordinate system if they are not specified.

Format VY(i[,j][,k][,l])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j default to the global coordinate system. k The marker in whose coordinate system the velocity vector is being

expressed. Set k = 0 if you want the results to be calculated along the Functions x-axis of the global coordinate system. l The reference frame in which the first time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, VY is calculated as follows: Definition () () d d VY= ---- R – ---- R • yˆ dt i dt j k

where Ri is the displacement of marker i in ground, Rj is the displacement of marker j in ground, and yˆ k is the unit vector along the y-axis of marker k.

Examples MARKER/236, QP=4,6,7, EU=90D,90D,0, PART=23 MARKER/169, PART=16, FLOATING MARKER/168, QP=1,2,3, EU=30D,45D,60D, PART=16 VFORCE/236, I=236, JFLOAT=169 ,FX=-10*VX(236,168,168,168)\ ,FY=-15*VY(236,168,168,168)\ ,FZ=-20*VZ(236,168,168,168) This VFORCE statement defines a damper acting between Markers 236 and 168. Marker 169 is a floating marker that defines the reaction point on Part 16. The damping force components are proportional to the components of the velocity between Markers 236 and 168 as seen and measured by an observer at Marker 168.

Using ADAMS/Solver 377 VZ

VZ

Definition The VZ function returns the z-component of the difference between the velocity vector of marker i and the velocity vector of marker j as computed in the coordinate system of marker k. All vector time derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate system if it is not specified. Similarly, markers i and j default to the global coordinate system if they are not specified.

Format VZ(i[,j][,k][,l])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k The marker in whose coordinate system the velocity vector is expressed. Functions Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the first time derivative of the displacement vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, VZ is calculated as follows: Definition () () d d VZ= ---- R – ---- R • zˆ dt i dt j k

where Ri is the displacement of marker i in ground, Rj is the displacement of marker j in ground, and zˆ k is the unit vector along the z-axis of marker k.

Examples MARKER/236, QP=4,6,7, EU=90D,90D,0, PART=23 MARKER/169, PART=16, FLOATING MARKER/168, QP=1,2,3, EU=30D,45D,60D, PART=16 VFORCE/236, I=236, JFLOAT=169 ,FX=-10*VX(236,168,168,168)\ ,FY=-15*VY(236,168,168,168)\ ,FZ=-20*VZ(236,168,168,168) This VFORCE statement defines a damper acting between Markers 236 and 168. Marker 169 is a floating marker that defines the reaction point on Part 16. The damping force components are proportional to the components of the velocity between Markers 236 and 168 as seen and measured by an observer at Marker 168.

378 Using ADAMS/Solver WDTM

WDTM

Definition The WDTM function returns the magnitude of the difference between the angular acceleration vector of marker i in the reference frame of marker l and the angular acceleration of marker j in the reference frame of marker l.

Format WDTM(i[,j][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j default to the global coordinate system. l The reference frame in which the first time derivative of the angular velocity vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame. Functions

Extended Mathematically, WDTM is calculated as follows: Definition () () () () ⁄ d d d d 12 WDTM = ---- ω – ---- ω • ---- ω – ---- ω dt i dt j dt i dt j

where ω i is the angular velocity of marker i in ground and ω j is the angular velocity of marker j in ground.

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WDTM(1236,2169)\ ,F2=WDTX(1236,2169,2169,2169)\ ,F3=WDTY(1236,2169,2169,2169)\ ,F4=WDTZ(1236,2169,2169,2169) In its first column REQUEST/16 contains the magnitude of the angular acceleration vector of Marker 1236 with respect to Marker 2169, as seen in the global coordinate system and measured in the ground reference frame.

Using ADAMS/Solver 379 WDTX

WDTX

Definition The WDTX function returns the x-component of the difference between the angular acceleration vector of marker i in the reference frame of marker l and the angular acceleration vector of marker j in the reference frame of marker l, as computed in the coordinate system of marker k. Marker j defaults to global coordinate system if it is not specified. Similarly, marker k and l default to global coordinate system if they are not specified.

Format WDTX(i[,j][,k][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k Functions The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the first time derivative of the angular acceleration vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, WDTX is calculated as follows: Definition () () d d WDTX = ---- ω – ---- ω • xˆ dt i dt j k

where ω i is the angular acceleration vector of marker i in ground, ω j is the angular acceleration vector of marker j in ground, and xˆ k is the unit vector along the x-axis of marker k.

380 Using ADAMS/Solver WDTX

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WDTM(1236,2169)\ ,F2=WDTX(1236,2169,2169,2169)\ ,F3=WDTY(1236,2169,2169,2169)\ ,F4=WDTZ(1236,2169,2169,2169) In its second column REQUEST/16 contains the x-component of the angular acceleration vector of Marker 1236 with respect to Marker 2169, as seen in the global coordinate system of Marker 2169 and measured in the reference frame containing Marker 2169. Functions

Using ADAMS/Solver 381 WDTY

WDTY

Definition The WDTY function returns the y-component of the difference between the angular acceleration vector of marker i in the reference frame of marker l and the angular acceleration vector of marker j in the reference frame of marker l, as computed in the coordinate system of marker k. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k and l default to the global coordinate system if they are not specified.

Format WDTY(i[,j][,k][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k Functions The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the first time derivative of the angular acceleration vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, WDTY is calculated as follows: Definition () () d d WDTY = ---- ω – ---- ω • yˆ dt i dt j k

where ω i is the angular acceleration vector of marker i in ground, ω j is the angular acceleration vector of marker j in ground, and yˆ k is the unit vector along the y-axis of marker k.

382 Using ADAMS/Solver WDTY

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WDTM(1236,2169)\ ,F2=WDTX(1236,2169,2169,2169)\ ,F3=WDTY(1236,2169,2169,2169)\ ,F4=WDTZ(1236,2169,2169,2169) In its third column REQUEST/16 contains the y-component of the angular acceleration vector of Marker 1236 with respect to Marker 2169, as seen in the global coordinate system of Marker 2169 and measured in the reference frame containing Marker 2169. Functions

Using ADAMS/Solver 383 WDTZ

WDTZ

Definition The WDTZ function returns the z-component of the difference between the angular acceleration vector of marker i in the reference frame of marker l and the angular acceleration vector of marker j in the reference frame of marker l, as computed in the coordinate system of marker k. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k and l default to the global coordinate if they are not specified.

Format WDTZ(i[,j][,k][,l])

Arguments i The marker whose acceleration is being measured. j The marker with respect to which the acceleration is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k Functions The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system. l The reference frame in which the first time derivative of the angular acceleration vector is taken. Set l = 0 if you want the time derivatives to be taken in the ground reference frame.

Extended Mathematically, WDTZ is calculated as follows: Definition () () d d WDTZ = ---- ω – ---- ω • zˆ dt i dt j k

where ω i is the angular acceleration vector of marker i in ground, ω j is the angular acceleration vector of marker j in ground, and zˆ k is the unit vector along the z-axis of marker k.

384 Using ADAMS/Solver WDTZ

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WDTM(1236,2169)\ ,F2=WDTX(1236,2169,2169,2169)\ ,F3=WDTY(1236,2169,2169,2169)\ ,F4=WDTZ(1236,2169,2169,2169) In its fourth column REQUEST/16 contains the z-component of the angular acceleration vector of Marker 1236 with respect to Marker 2169, as seen in the global coordinate system of Marker 2169 and measured in the reference frame containing Marker 2169. Functions

Using ADAMS/Solver 385 WM

WM

Definition The WM function returns the magnitude of the angular velocity vector of marker i with respect to marker j. Marker j defaults to the global coordinate system if it is not specified.

Format WM(i[,j])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system.

Extended Mathematically, WM is calculated as follows: Definition 1/2 WM = ([ ω i - ω j ] • [ ω i - ω j ]) Functions

where ω i is the angular velocity vector of marker i in ground and ω j is the angular velocity vector of marker j in ground.

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WM(1236,2169)\ ,F2=WX(1236,2169,2169)\ ,F3=WY(1236,2169,2169)\ ,F4=WZ(1236,2169,2169) In its first column, REQUEST/16 contains the magnitude of the angular velocity vector of Marker 1236 and Marker 2169.

386 Using ADAMS/Solver WX

WX

Definition The WX function returns the x-component of the difference between the angular velocity vector of marker i in ground and the angular velocity vector of marker j in ground, and expressed in the coordinate system of marker k. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k defaults to the global coordinate system if it is not specified.

Format WX(i[,j][,k])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k The marker in whose coordinate system the velocity vector is being Functions expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system.

Definition Mathematically, WX is calculated as follows:

[]ω ω • WX = i – j xˆk

where ω i is the angular velocity vector of marker i in ground, ω j is the angular velocity vector of marker j in ground, and xˆ k is the unit vector along the x-axis of marker k.

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WM(1236,2169)\ ,F2=WX(1236,2169,2169)\ ,F3=WY(1236,2169,2169)\ ,F4=WZ(1236,2169,2169) In its second column, REQUEST/16 contains the x-component of the angular velocity Markers 1236 and 2169 as measured in the coordinate system of Marker 2169.

Using ADAMS/Solver 387 WY

WY

Definition The WY function returns the y-component of the difference between the angular velocity vector of marker i in ground and the angular velocity vector of marker j in ground, and expressed in the coordinate system of marker k. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k defaults to the global coordinate system if it is not specified.

Format WY(i[,j][,k])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system . k Functions The marker in whose coordinate system the velocity vector is being expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system.

Definition Mathematically, WY is calculated as follows: []ω ω • WY = i – j yˆk

where ω i is the angular velocity vector of marker i in ground, ω j is the angular velocity vector of marker j in ground, and yˆ k is the unit vector along the y-axis of marker k.

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WM(1236,2169)\ ,F2=WX(1236,2169,2169)\ ,F3=WY(1236,2169,2169)\ ,F4=WZ(1236,2169,2169) In its third column, REQUEST/16 contains the y-component of the angular velocity Markers 1236 and 2169 as measured in the coordinate system of Marker 2169.

388 Using ADAMS/Solver WZ

WZ

Definition The WZ function returns the z-component of the difference between the angular velocity vector of marker i in ground and the angular velocity vector of marker j in ground, and expressed in the coordinate system of marker k. Marker j defaults to the global coordinate system if it is not specified. Similarly, marker k defaults to the global coordinate system if it is not specified.

Format WZ(i[,j][,k])

Arguments i The marker whose velocity is being measured. j The marker with respect to which the velocity is being measured. Set j = 0, while still specifying l, if you want j to default to the global coordinate system. k The marker in whose coordinate system the velocity vector is being Functions expressed. Set k = 0 if you want the results to be calculated along the x-axis of the global coordinate system.

Extended Mathematically, WZ is calculated as follows: Definition []ω ω • WZ = i – j zˆk

where ω i is the angular velocity vector of marker i in ground, ω j is the angular velocity vector of marker j in ground, and zˆ k is the unit vector along the z-axis of marker k.

Examples MARKER/1236, QP=4,6,7 EU=90D,90D,90D, PART=23 MARKER/2169, PART=16 REQUEST/16 ,F1=WM(1236,2169)\ ,F2=WX(1236,2169,2169)\ ,F3=WY(1236,2169,2169)\ ,F4=WZ(1236,2169,2169) In its fourth column, REQUEST/16 contains the z-component of the angular velocity Markers 1236 and 2169 as measured in the coordinate system of Marker 2169.

Using ADAMS/Solver 389 YAW

YAW

Definition The YAW function calculates the first angle of a Body-3 [3 -2 1] yaw-pitch-roll rotation sequence between markers i and j. Marker j defaults to the global coordinate system if it is not specified. Note that yaw is an Euler angle.

Format YAW(i[,j])

Arguments i The marker whose rotations are being sought. j The marker with respect to which the rotations are being measured.

Examples REQUEST/1 ,F2=YAW(21,11)\ ,F3=PITCH(21,11)\ ,F4=ROLL(21,11)

Functions This REQUEST statement calculates the yaw, pitch, and roll angles between Markers 21 and 11 for output purposes.

390 Using ADAMS/Solver