Adams Car Package > Adams Car > Appendix > Solver Routines > Statements Required in the Adams Dataset

Statements Required in the Adams Dataset

The Adams Car static routines will require additional Adams statements in the dataset for successful static analysis. These include JPRIMS to hold the body fixed in the X and Y directions, DIFFERENTIAL EQUATIONS to balance the forces at the JPRIMS and an extra part in the steering system. The JPRIMs keep the vehicle from moving laterally or longitudinally during the static solution. The vehicle body is allowed to yaw, pitch, roll, and raise vertically. The following is a description of the statements required in the dataset:
! Markers attached to Ground at vehicle C.G. location
M/mid1, PART=1, QP= cgx,cgy,cgz
M/mid2, PART=1, QP= cgx,cgy,cgz, REU= 90D, 90D, 0
! Markers attached to vehicle C.G. location
M/bid1, PART=pnpf, QP= cgx,cgy,cgz
M/bid2, PART=pnpf, QP= cgx,cgy,cgz, REU= 0,-90D, 0
! JPRIMS holding vehicle in x,y translation
JPRIM/jprid1, INLINE, I=bid1, J=mid1
JPRIM/jprid2, PERPEN, I=bid2, J=mid2
where:  
 
mid1
=
MARKER id of point at body C.G. location on GROUND
mid2
=
oriented MARKER id of point at body C.G. location on GROUND
cg#
=
C.G. location coordinates
pnpf
=
PART id of sprung mass for JPRIMS to lock to GROUND. This id can also be that of the rear axle for dependent rear suspensions. In this scenario, the CONSUB will work as a Hunter alignment machine since it calculates front geometry by referencing the rear suspension.
bid1
=
MARKER id of point at body C.G. location on body
bid2
=
oriented MARKER id of point at body C.G. location on body
jprid1
=
Inline jprim holding the vehicle to ground constraining longitudinal and lateral translational degreee of freedom
jprid2
=
Perpendicular jprim holding the vehicle to ground constraining yaw degreee of freedom
  The JPRIM statements must be defined as above. The CONSUB will automatically turn off the JPRIMS after a static solution has been found so the user can run a dynamic simulation. It is important to remember that the standard Adams SIM/STAT command will not turn off the JPRIMS. Therefore, a SIM/DYNAMIC command, entered after a SIM/STAT will result in the vehicle, pinned to ground, trying to move forward at a given speed.
One new steering part is required to allow the CONSUB to turn the steering wheels for a zero lateral force balance (see section 2.4.2). An example of these statements is as follows:
----- AUXILIARY STEERING COLUMN PART
PART/scpid, CM=nscp, MASS=pm, IP=ipx,ipy,ipz, WZ=0.0
M/nscp, QP= x,y,z, ZP= zpx,zpy,zpz
*****************
STEERING JOINTS
*****************
JOINT/lid, I=nscp, J=ism,
!FIXED NO LASH IN SHAFT  
 
JOINT/jid, REV,I=iswm, J=nscp ,
!NEW JOINT FOR CONSUB  
 
MOTION/motid1, JOINT=jid, ROT, FUNC=0.0
where:  
 
scpid
=
PART id of new steering column part 
nscp
=
MARKER id of auxiliary steering column part center of mass 
pm
=
mass of auxiliary steering column part
ip#
=
rotational inertia values for auxiliary steering column part
WZ
=
initial rotational velocity of auxiliary steering column part set to zero
x,y,z
=
location of auxiliary steering column part joints in model
zp# 
=
orientation of Z axis of joints
lid
=
JOINT id for intermediate shaft lash (not required)
ism
=
intermediate shaft to auxiliary steering column part MARKER id
jid
=
JOINT id of the auxiliary column joint required by the CONSUB 
iswm
=
steering wheel MARKER id which connects to auxiliary column part
motid1
=
Id of motion at auxiliary column joint
  The steering wheel joint about which all steering inputs are made must be numbered 735.
The final statements which must be in the dataset include the differential equations and the steering column joint force statement. The CONSUB uses the DIF statements to apply the tire forces to the vehicle during the static solution. The SFORCE statement calculates the steering wheel angle required for a zero lateral force balance and then fixes the steering column joint at that angle. The magnitude of this angle can be accessed in a standard or Adams user REQUEST.
The DIF and SFORCE statements should be defined as follows:
! Longitudinal Force
DIF/difid1, IC=0, FUNC=USER ( 1010,xgain,jprid1,2,bid1,whl_ary )
! Lateral Force
DIF/difid2, IC=0, FUNC=USER ( 1010,ygain,jprid1,3,bid1,whl_ary )
! Steering control force to bring lateral forces to zero
SFORCE/sfoid1, ROT, I=iswm, J=nscp, FUN=1.0*DIF(difid2)
where:  
 
difid1
=
Id of differential equation balancing the longitudinal force at jprim jprid1
difid2
=
Id of differential equation balancing the lateral force jprim at jprid1
xgain
=
gain on force error controller for longitudinal motion
jprid1
=
Inline jprim holding the vehicle to ground constraining longitudinal and lateral translational degreee of freedom
ygain
=
gain on force error controller for lateral motion
bid1
=
MARKER id of point at body C.G. location on body 
whl_ary
=
Array id containing wheel id and jprim ids constraining the wheel to spindle
sfoid1
=
Id of steering control force to bring lateral force at jprid1 to zero
nscp
=
MARKER id of auxiliary steering column part center of mass
iswm
=
steering wheel MARKER id which connects to auxiliary column part
  Arrays required in the Adams dataset for static analysis
Adams Car full-vehicle models require a set of jprims, motion and sforce to perform Adams Car specific static events The id od these jprims, motion and sforce are passed to Adams through array statements. The dataset need to have two arrays to specify these ids. For Half vehicle models where no tires are used a dummy id should be passed as jpr_ary. 
array/jpr_ary, num = jprid1, jprid2, sofid1, motid1, whl_ary
where:  
 
jprid1
=
Inline jprim holding the vehicle to ground constraining longitudinal and lateral translational degreee of freedom
jprid2
=
Perpendicular jprim holding the vehicle to ground constraining yaw degreee of freedom
sfoid1
=
Steering control sforce to bring lateral force at jprid1 to zero
motid1
=
Motion at auxiliary steering column joint
whl_ary
=
Array id containing wheel id and jprim ids constraining the wheel to spindle
   
array/whl_ary , num = jprid3, jprid4, jprid5, jprid6, whlid1, whlid2, whlid3, whlid4, gfoid1, gfoid2, gfoid3, gfoid4
where:  
 
jprid3
=
Perpendicular jprim between wheel 1 and spindle
jprid4
=
Perpendicular jprim between wheel 2 and spindle
jprid5
=
Perpendicular jprim between wheel 3 and spindle
jprid6
=
Perpendicular jprim between wheel 4 and spindle
whlid1
=
Part number of wheel corresponding to jprid3
whlid2
=
Part number of wheel corresponding to jprid4
whlid3
=
Part number of wheel corresponding to jprid5
whlid4
=
Part number of wheel corresponding to jprid6
gfoid1
=
Gforce id corresponding to whlid1
gfoid2
=
Gforce id corresponding to whlid2
gfoid3
=
Gforce id corresponding to whlid3
gfoid4
=
Gforce id corresponding to whlid4
The following is an example of Adams statements in an actual dataset:
! Markers attached to Ground at vehicle C.G. location
M/08, PART=1, QP=2894.00, -9.91, 940.16 
M/09, PART=1, QP=2894.00, -9.91, 940.16, REU= 90D, 90D, 0
! Markers attached to vehicle C.G. location
M/5100, PART=51, QP=2894.00, -9.91, 940.16
M/5198, PART=51, QP=2894.00, -9.91, 940.16, REU= 0,-90D, 0
! JPRIMS holding vehicle in x,y translation
JPRIM/991, INLINE, I=5100, J=08
JPRIM/992, PERPEN, I=5198, J=09
----- STEERING WHEEL
PART/10, CM=1000, MASS=4.00, IP=300, 300, 600, VX=-2.45872E+04
M/1000, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
M/1080, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
----- AUXILIARY STEERING COLUMN PART
PART/80, CM=8000, MASS=1.00, IP=30, 30, 6, VX=-2.45872E+04
M/8000, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
M/8010, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
M/8011, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
----- INTERMEDIATE SHAFT
PART/11, CM=1100, MASS=2.00, IP=300,300,60, VX=-2.45872E+04
M/1100, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
M/1180, QP=1287.18, -237.11, 545.19, ZP=1252.89, -238.10, 639.12
***************
STEERING JOINTS
***************
JOINT/1810, I=8011, J=1180, FIXED NO LASH IN SHAFT
JOINT/740, REV, I=1080, J=8010 NEW JOINT FOR CONSUB
MOTION/740, JOINT=740, ROT, FUNC=0.0
! Longitudinal Force
DIF/991, IC=0, FUNC=USER ( 1010, 400.0, 991, 2, 5100,556 )
! Lateral Force
DIF/992, IC=0, FUNC=USER ( 1010, 10000.0, 991, 3, 5100,556 )
! Steering control force to bring lateral forces to zero
SFORCE/740, ROT, I=1080, J=8010, FUN=1.0*DIF(992)
!-----  WHEEL PARTS
              ----- LEFT FRONT TIRE/WHEEL/BRAKE
PART/21,CM=2100,MASS=  17.00,IP=2.2250e+05,2.2250e+05,3.9900e+05
,   0.0000e+00,0.0000e+00,0.0000e+00
              ----- RIGHT FRONT TIRE/WHEEL/BRAKE
PART/22,CM=2200,MASS=  17.00,IP= 2.2250e+05,2.2250e+05,3.9900e+05
,   0.0000e+00,0.0000e+00,0.0000e+00
              ----- LEFT REAR TIRE/WHEEL/BRAKE
PART/67,CM=6700,MASS= 13.50,IP=2.2500e+05,3.9900e+05,2.2500e+05
,   0.0000e+00,0.0000e+00,0.0000e+00
              ----- RIGHT REAR TIRE/WHEEL/BRAKE
PART/68,CM=6800,MASS= 13.50,IP=2.2500e+05,3.9900e+05,2.2500e+05
,   0.0000e+00,0.0000e+00,0.0000e+00
!----- GFORCE STATEMENTS
GFORCE/1,I=10404,JFLOAT=4,RM=3                           LEFT  FRONT
,   FUN = USER(909,1,5101,90,91,92,93,541,94)
GFORCE/2,I=10504,JFLOAT=5,RM=3                           RIGHT FRONT
,   FUN = USER(909,2,5102,90,91,92,93,542,94)
              ----- REAR TIRES
GFORCE/3,I=5223,JFLOAT=6,RM=3                             LEFT  REAR
,   FUN = USER(909,3,5103,90,91,92,93,543,95)
GFORCE/4,I=5224,JFLOAT=7,RM=3                             RIGHT REAR
,   FUN = USER(909,4,5104,90,91,92,93,544,95)
!----- JPR_ARY PARAMETERS
ARRAY/555, NUM = 991, 992, 740, 740, 556
!----- WHL_ARY PARAMETERS
ARRAY/556
, NUM = 1, 2, 3, 4, 21, 22, 67, 68, 1, 2, 3, 4