Tutorials
Golfing
Bike
Dancing
Bungee Jump
Muscle Relocation
Antagonistic Muscles
Hip Replacement
Detailed Knee
Detailed Spine
Rehabilitation Machine
Gait Analysis
Walking
Lifting Styles
Bed Settling
Fighting
Car Crash
Fall
Grasping
NeckSIM:Whiplash
Tennis

Injury Evaluation Application - Car Crash


This demonstration problem will illustrate using a passive human model to evaluate the potential injuries sustained during vehicle crash. The human model will be combined with an ADAMS model of a car interior or a test sled. The model will be restrained using forces to simulate the seat/shoulder belts. The sled is then subjected to an acceleration pulse from the rear, and in another simulation one from the front. Injury potential will be evaluated by examining the segment impact forces, the segment accelerations and the loads at the anatomical joints.

Features of this example problem include:

  • Creating body segments from the UK PeopleSize Anthropometric database
  • Contact elements between body segments and environment
  • Hybrid III Crash Dummy strength characteristics at the joints
  • Posture manipulation
  • Passive simulation
  • Combining human model with ADAMS environment model
  • Attaching the human model to the environment with seat belt forces.
  • Comparing the results from different analyses.

Sections


Generating the Body Segments

In this phase the human body model is developed and placed in an environment. The body consists of 19 segments and 18 joints with the mass properties of a 5%ile UK male and the joint characteristics of the Hybrid III crash dummy.


Figure 1: Body segment creation panel and crash dummy model display

Step 1: Bring up segments panel and set fields for the body
Begin the ADAMS/View modeling session and select the LifeMOD/BodySIM™ button at the bottom left portion of the screen. Select SEGMENTS from the main-menu and CREATE BASE SEGMENT SET from the sub-menu.

Step 2: Create the body
Specify the human model name as Joe, the units as Inch, Lbm, Lbf, full body, hands "Grip". Select the PeopleSize Anthropometric database for a 5th percentile UK male. Select Create Body Measurement Table to build the body measurement table, select Create Human Segments.


Generating the Joints

In this phase, the human segments created in the first phase are connected together with kinematic joints. At the same time torque functions are created at each joint degree of freedom. The torque function is created from the Hybrid III database of torque functions. The torque is based on a nonlinear joint stiffness, damping, friction and hysteresis (losses), specific to each DOF for each joint as derived from the physical Hybrid III crash dummy.


Figure 2: Various graphical representations of the model. Crash dummy representation (left), stick figure with joint graphics (center), stick figure with joint axes (right).


Figure 3: Spinal joint set matrix panel and joint icons on stick model representation

Step 3: Bring up joint create panel
Select JOINTS in the main-menu and CREATE BASE JOINT SET in the sub-menu. Select HYBRID III CRASH DUMMY STRENGTH CHARACTERISTICS. Enter a scale factor of .6, to scale the 50% strength profile.

Step 4: Create Hybrid III strength joints
SELECT ALL body regions and select EXECUTE. From this six panels will appear to create the joint/torque sets for each region of the body (spinal, left arm, left leg, right arm, right leg).


Posing the Human Model

With the After the joints are created on the model the posture of the model may be adjusted, and the model moved into place. The posture may be adjusted by recalling one of several postures in the posture library then further modify the joint angles if necessary. The body is moved into place by selecting the Lower_Torso segment and changing the location.


Figure 4: Use the Load Posture button to load the riding posture from the library. This will create the posture for the model as displayed at the top.


Figure 5: Rotating the model by selecting the pelvis

Step 5: Bring up posture panel
Select POSTURE on the main-menu and CONFIGURE BASE MODEL on the sub-menu.

Step 6: Put model in riding posture
"Load Library Posture" to find the required posture, Select UPRIGHTRIDING as the Stored Posture and select APPLY.

Step 7: Rotate model
Reposition the model by modifying the location of the Lower_Torso segment. Use the ADAMS/View movement panel as displayed in figure 5 or by entering the ADAMS/View command:

part mod rigid name part=.World.Joe_Lower_Torso location=0.0, -1.1687224256, -1.2047626433 orientation=180.0, 125.0, 90.0 rel=.World


Creating the Car Interior Model

Standard ADAMS/View tools are used to create the car interior. The seat is created with the following ADAMS commands (or the user may use standard ADAMS/View tools). Simple geometry is used to represent the seat and floor of the compartment. Markers are positioned with the z-axis normal to the plane at the locations displayed in the figure. A translational joint is created between this model and the ground to be used to provide motion to the compartment from the crash pulse.


Figure 6: Car interior model with translational joint for crash pulse.

Step 8: Create Seat
create the car compartment part using the following command:

part create rigid name part=Sled

Create markers for the seat bottom using the following commands:

marker create marker=.World.Sled.seat1 loc=-10, -4.88, 14.94
ori=90, 90, 270 rel=.world

marker create marker=.World.Sled.seat2 loc=-9.9, -5.78, -5.25
ori=90, 90, 340

Create the graphics for the seat using the following commands:

geom create shape block block=.World.Sled.Bseat1 corner=.World.Sled.seat1
dia=22.82,-2.43,20.15

geom create shape block block=.World.Sled.Bseat2 corner=.World.Sled.seat2
dia=26.82,-2.66,20.15

geom attributes geom=.World.Sled.Bseat1 color=brown
geom attributes geom=.World.Sled.Bseat2 color=brown

Step 9: Create Floor
Create markers for the seat floor using the following commands:

marker create marker=.World.Sled.floor1 loc=-9.9, 0.98, 38.27
ori=90, 90, 225 rel=.world

marker create marker=.World.Sled.floor2 loc=-9.9, -9.24, 28.43
ori=90, 90, 270

Create the graphics for the floor using the following commands:

geom create shape block block=.World.Sled.Bfloor1 corner=.World.Sled.floor1
dia=14.99,-0.87,20.15

geom create shape block block=.World.Sled.Bfloor2 corner=.World.Sled.floor2
dia=14.99,-0.87,20.15

geom attributes geom=.World.Sled.Bfloor1 color=blue
geom attributes geom=.World.Sled.Bfloor2 color=blue

Step 10: Create a translational joint between the sled and ground
Create a translational joint between the sled and ground (see Figure 5).

marker create marker=.World.Sled.tran loc=-0.5, -10.6, 6 ori=0,0,0 rel=.world

marker create marker=.World.ground.tran loc=-0.5, -10.6, 6 ori=0,0,0 rel=.world

constraint create joint tran joint=.World.tran i_mark=.World.Sled.tran j_mark=.World.ground.tran


Creating Contact Forces

Contact forces are created on the model to provide an interaction between the human model and the environment. LifeMOD/BodySIM™ contact forces utilize a novel contact algorithm for efficient calculation of the reaction of the body segments to impact with the environment. The general form of the contact force function is

F n =k *(g**e)+Step (g,0,0,d max ,c max )*dg/dt

where:

g represents the penetration the ellipsoid into the plate
dg/dt is the penetration velocity at the contact point.
e is a positive real value denoting the force exponent.
dmax is a positive real value specifying the boundary penetration to apply the maximum damping coefficient cmax.


Figure 7: Panel to create first set of contact elements.

Step 11: Bring up the contact panel
Select CONTACTS on the main-menu and CREATE BASE CONTACT SET on the sub-menu.

Step 12: Create the contact forces between the segments and the seat bottom
Select solid-solid as the type of contact. Enter .World.sled.Bseat1 in the contact solid field and set the parameters as in Figure 7. Select Right_Hand, Right_Upper_Leg, Left_Upper_Leg, Left_Hand as the contact segments. Then select APPLY.

Step 13: Create the contact forces between the segments and the seat back
Set the contact sold field to .World.sled.Bseat2. Select Head, Upper_Torso, Central_Torso, Lower_Torso, Right_Upper_Arm, Left_Upper_Arm. Then select APPLY.

Step 14: Create the contact forces between the feet and the floor
Set the contact stiffness to 1e4. Set the contact solid field to .World.sled.Bfloor1. Select Right_Foot_Single, Left_Foot_Single. Select APPLY.

Step 15: Create the contact forces between the feet and the floor
Set the contact solid field to .World.sled.Bfloor2. Select Right_Foot_Single, Left_Foot_Single. Select APPLY.


Running the Equilibrium Analysis

The sled is fixed to ground and an equilibrium analysis is performed to allow the human model to settle into the seat before the seatbelt forces are applied.


Figure 8: Human model in the equilibrium position (settled into the seat) and the analyze panel.

Step 16: Create a motion=0 on the sled translational joint
Create a motion (with velocity = 0 ) on the translational joint between the sled and ground using the following command.

constraint create motion motion=.World.Impulse joint=.World.tran function="0"

Step 17: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.

Step 18: Run the simulation
Set the gravity vector at -386 in the negative Y direction. Run the simulation for 1.0 seconds and 50 time steps using the default integrator settings.

Step 19: Animate equilibrium simulation
Select Dummy as the external representation and none as the internal in the BodySIM Display Toolbox. Select animate on the ADAMS/View main toolbox.

Step 20: Update the model configuration with static results
Select UPDATE POSTURE WITH EQUILIBRIUM RESULTS button on the panel.


Creating the Seatbelt Forces

Standard ADAMS/View tools are used to create the seatbelt forces (lap and shoulder belt) between the segments of the human model and the car sled. The forces is a tension-only force produced when the attachment locations between the human model and the sled exceed a certain value (slack length).


Figure 9: Model with the seat belt forces in place.

Step 21: Create the attachment markers between the human model and the sled
Create the seatbelt attachment markers on the sled

marker create marker=.World.Sled.belt1 loc=12, -10, -9 ori=0,0,0 rel=.World
marker create marker=.World.Sled.belt2 loc=-12, -10, -9 ori=0,0,0 rel=.World
marker create marker=.World.Sled.belt3 loc=12, 20, -17 ori=0,0,0 rel=.World

Create the seatbelt attachment markers on the human model.

marker create marker=.World.Joe_Lower_Torso.belt1 loc=6.2,-2.6,-1.6 ori=0,0,0 rel=.World
marker create marker=.World.Joe_Lower_Torso.belt2 loc=-6.2, -2.6, -1.6 ori=0,0,0 rel=.World
marker create marker=.World.Joe_Upper_Torso.belt3 loc=4,14.5,-1.5 ori=0,0,0 rel=.World
marker create marker=.World.Joe_Upper_Torso.belt4 loc=-4.3, 5.3, -0.3 ori=0,0,0 rel=.World

Step 22: Create belt segment 1
Create belt segment 1

force create direct single_component_force type=tran &
single_component_force = .World.belt1 &
i_marker=.world.sled.belt1 &
j_marker=.world.Joe_Lower_Torso.belt1 &
function = "step(dm(.world.sled.belt1,.world.Joe_Lower_Torso.belt1),
15,0,16,-1e3*(dm(.world.sled.belt1,.world.Joe_Lower_Torso.belt1)-15)-1e2*vz
(.world.Joe_Lower_Torso.belt1,.world.sled.belt1,.world.sled.belt1))"

geo cre curve out out=.World.GRAbelt1 marker=.World.sled.belt1,
.World.Joe_Lower_Torso.belt1 horiz=clamp vert=clamp close=no

geo att geo=.World.GRAbelt1 color=black

Step 23: Create belt segment 2
Create belt segment 2.

force create direct single_component_force type=tran &
single_component_force = .World.belt2 &
i_marker=.world.sled.belt2 &
j_marker=.world.Joe_Lower_Torso.belt2 &
function = "step(dm(.world.sled.belt2,.world.Joe_Lower_Torso.belt2),
15,0,16,-1e3*(dm(.world.sled.belt2,.world.Joe_Lower_Torso.belt2)-15)-1e2*vz
(.world.Joe_Lower_Torso.belt2,.world.sled.belt2,.world.sled.belt2))"

geo cre curve out out=.World.GRAbelt2 marker=.World.sled.belt2,
.World.Joe_Lower_Torso.belt2 horiz=clamp vert=clamp close=no

geo att geo=.World.GRAbelt2 color=black

Step 24: Create belt segment 3
Create belt segment 3.

force create direct single_component_force type=tran &
single_component_force = .World.belt3 &
i_marker=.world.sled.belt3 &
j_marker=.world.Joe_Upper_Torso.belt3 &
function = "step(dm(.world.sled.belt3,.world.Joe_Upper_Torso.belt3),
19,0,20,-1e3*(dm(.world.sled.belt3,.world.Joe_Upper_Torso.belt3)
-19)-1e2*vz(.world.Joe_Upper_Torso.belt3,.world.sled.belt3,.world.sled.belt3))"

geo cre curve out out=.World.GRAbelt3 marker=.World.sled.belt3,
.World.Joe_Upper_Torso.belt3 horiz=clamp vert=clamp close=no

geo att geo=.World.GRAbelt3 color=black

Step 25: Create belt segment 4
Create belt segment 4.

force create direct single_component_force type=tran &
single_component_force = .World.belt4 &
i_marker=.world.sled.belt2 &
j_marker=.world.Joe_Upper_Torso.belt4 &
function = "step(dm(.world.sled.belt2,.world.Joe_Upper_Torso.belt4),
20,0,21,-1e3*(dm(.world.sled.belt2,.world.Joe_Upper_Torso.belt4)
-20)-1e2*vz(.world.Joe_Upper_Torso.belt4,.world.sled.belt2,.world.sled.belt2))"

geo cre curve out out=.World.GRAbelt4 marker=.World.sled.belt2,
.World.Joe_Upper_Torso.belt4 horiz=clamp vert=clamp close=no

geo att geo=.World.GRAbelt4 color=black


Creating the Crash Pulse

Standard ADAMS/View tools are used to create a displacement v. time data table which is later used by a spline function for the kinematic motion driver in the joint between the sled and the ground.


Figure 10: Editing motion to introduce crash pulse into the sled model

Step 26: Create the crash pulse spline (time v. displacement)
Create the the displacement v. time data spline for the crash pulse.

data_element create spline spline=.World.crash_pulse &
x=0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0 &
y=0.0, 20.0, 40.0, 60.0, 80.0, 100.0, 120.0, 140.0, 160.0, 180.0, 200.0

Modify the motion statement on the translational joint to include the pulse.

constraint modify motion motion_name = .World.Impulse joint_name=.World.tran function =
"-AKISPL(time,0,.World.crash_pulse, 0)"


Running the Simulation for the Forward Hit

The simulation is performed using the crash pulse to move the sled in the aft direction representing a vehicle being hit from the front.


Figure 10: Simulation using the crash pulse representing the vehicle being struck from the front

Step 27: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.

Step 28: Run the simulation
Set the gravity vector at -386 in the negative Y direction. Run the simulation for 1.0 seconds and 100 time steps using the default integrator settings.

Step 29: Save the first analysis
Select SAVE ANALYSIS and enter the name Hit_Forward. Select GO.


Running the Simulation for the Rearward Hit

The simulation is performed using the crash pulse to move the sled in the fore direction representing a vehicle being hit from the rear.


Figure 11: Simulation using the crash pulse representing the vehicle being hit from the rear

Step 30: Modify the motion statement reverse the crash pulse
Modify the sign of the crash pulse on motion.

constraint modify motion motion_name = .World.Impulse joint_name=.World.tran function = "AKISPL(time,0,.World.crash_pulse,0)"

Step 31: Run the simulation
Set the gravity vector at -386 in the negative Y direction. Run the simulation for 1.0 seconds and 100 time steps using the default integrator settings.

Step 32: Save the second analysis
Select SAVE ANALYSIS and enter the name Hit_Rearward. Select GO.


Interrogating the Results

When the simulation is complete the model may be animated. Various representations are used and are accessed by the buttons on every LifeMOD/BodySIM™ menu panel. To make an injury assessment of the crash and to examine the effects of the rearward collision as compared to the forward collision, the data may be plotted together. The data from the simulation that would be useful is:

  • Head and upper torso acceleration
  • Head contact forces
  • Neck torque


Figure 12: Animation sequence and plots of the rearward and forward collisions.


Figure 13: Results panel to plot head acceleration

Step 33: Display simulation for forward hit
When the simulation is complete, animate the forward hit by using the animation tool in Main Tools panel for the Hit_Forward case.

Step 34: Display simulation for forward hit with skeleton
For another method of viewing the animated model, select none as the external representation and Skeleton as the internal on the BodySIM Display Toolbox and run the animation for the Hit_Forward case.

Step 35: Display simulation for forward hit with skin model
For another method of viewing the animated model, select Skin as the external representation and Skeleton as the internal on the BodySIM Display Toolbox and run the animation for the Hit_Forward case.

Step 36: Display simulation for rearward hit
For another method of viewing the animated model, select Dummy as the external representation and none as the internal on the BodySIM Display Toolbox and run the animation for the Hit_Rearward case.

Step 37: Display simulation for rearward hit with skeleton
For another method of viewing the animated model, select none as the external representation and Skeleton as the internal on the BodySIM Display Toolbox and run the animation for the Hit_Rearward case.

Step 38: Display simulation for rearward hit skin model
For another method of viewing the animated model, select Skin as the external representation and Skeleton as the internal on the BodySIM Display Toolbox and run the animation for the Hit_Rearward case.

Step 39: Bring up results panel
Select RESULTS on the main-menu and DATA DISPLAY on the sub-menu. Select Body Motion as the Data Type and select the post processor button.

Step 40: Plot the head acceleration from the rearward crash
Select the Z-component for the CM_Acceleration characteristic for Hit_Rearwad analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select Create Full Plot to create the data curve.

Step 41: Plot the head acceleration from the forward crash
Select the Z-component for the CM_Acceleration characteristic for Hit_Forward analysis. Select Create Full Plot to create the data curve.

Step 42: Animate iso view for forward hit
Select ANIMATION in the sub-menu. Set the analysis to Hit_Forward and the view to Iso, select Divide Window and select PLAY.

Step 43: Animate iso view for rearward hit
Set the analysis to Hit_Rearward and the view to Iso and select PLAY.

Step 44: Animate top view for forward hit
Set the analysis to Hit_Forward and the view to top. Select Fix Camera to marker .world.sled.seat1, select top view and select PLAY.

Step 45: Animate top view for rearward hit
Set the analysis to Hit_Rearward and the view to top. Select Fix Camera to marker .world.sled.seat1, select top view and select PLAY.

Step 46: Bring up results panel
Select DATA DISPLAY in the sub-menu and Contacts as the Data Type.

Step 47: Plot the head impact forces from the rearward crash
Plot the Z-component of the head contact for the Hit_Rearward analysis using the same filter settings as above and select Create Full Plot to create the data curve.

Step 48: Plot the head impact forces from the forward crash
Plot the Z-component of the head contact for the Hit_Forward analysis using the same filter settings as above and select Create Full Plot to create the data curve.

Step 49: Animate side view for forward hit
Select ANIMATION in the sub-menu. Set the analysis to Hit_Forward and the view to right, select Divide Window and select PLAY.

Step 50: Animate side view for rearward hit
Set the analysis to Hit_Rearward and the view to Iso and select PLAY.

Step 51: Bring up results panel
Select DATA DISPLAY in the sub-menu and Joints as the Data Type.

Step 52: Plot the neck torque from the rearward crash
Select the sagittal component of torque for the Upper_Neck joint of the Hit_Rearward analysis. Select Create Full Plot to create the data curve.

Step 53: Plot the neck torque from the forward crash
Select the sagittal component of torque for the Upper_Neck joint of the Hit_Forward analysis .Select Create Full Plot to create the data curve.

Step 54: Animate side view for forward hit
Select ANIMATION in the sub-menu. Set the analysis to Hit_Forward and the view to right, select Divide Window and select PLAY.

Step 55: Animate side view for rearward hit
Set the analysis to Hit_Rearward and select PLAY.

Step 56: DEMO COMPLETE


Further

This model was put forth to demonstrate the creation of a passive human model to determine the physical reactions to a human during a car crash. Also, to demonstrate how to examine the effects of separate conditions of a crash (i.e., forward vs. rearward collisions).

This model may be refined in many areas including:

  • Creating a more biofidelic spine model to examine local loadings on the vertebrae and soft tissues (see Section 4: Non-Standard Model Example - Detailed Cervical Spine).
  • Creating simulations with varying boundary conditions crash pulse, posture, seatbelt configurations, airbag forces, etc.
  • Adding "human reaction" by adding PD controllers to several joints.