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

Clinical Application - Rehabilitation Machine

With the capability to simulate musculoskeletal human models joined to mechanical systems, many questions concerning the effects of the machine on the body may be studied.

This simple example displays the effects of ramping up the stepping machine resistance torque on the muscle force magnitudes and timings. The information may be useful to researchers interested in the bodies response to changing load patterns.

An inverse dynamics - forward dynamics method is used to first "train" the muscles to generate the forces necessary for the human model to use the stepping machine.

Various muscle forces are reported and viewed graphically via scaled force vectors.

Features of this model include:

  • Full body point-to-point muscle forces
  • Inverse-dynamics, forward-dynamics simulations.
  • Scaled muscle force vector animation
  • Complete human model - mechanical system simulation.

Sections


Import the Body Model

In this phase, the SLF file from the model library is used to create the human body model from measurements, joints from joint data, posture from posture data and motion from recorded motion data. The body segments are created using the parameters stored in the SLF file.

This file contains information on the subject name, gender, age, height and weight. LifeMOD/BodySIM™ uses this information to extract body segment measurements and mass properties from the internal anthropometric database.

Passive joints are created for the inverse-dynamics phase of the simulation process. For this model passive joints will be created for the inverse-dynamics simulation. The passive joint consists of a tri-axis hinge joint (3 DOF) which includes angulation stops, stiffness and damping torques. This type of joint is used primarily to stabilize the body during the inverse-dynamics simulation. The parameters are included in the SLF file. For more information on the format of the SLF file see appendix.


Figure 1: Resulting model created from the data stored in the SLF file.

Step 1: Bring up the import panel
Select _Xchange on the main-menu and IMPORT SLF MODEL FILE on the sub-menu.

Step 2: Import the body model
Select Model Library and Full Body Elliptical Exercise Machine as the Model Library SLF File. At the bottom of the panel, Body, Joints and Posture should be checked. Select Apply to create the body segments, joints and posture.


Creating the Soft Tissues

The next step in the process is to create soft tissues (muscles) on the model. LifeMOD/BodySIM™ automatically creates a set of basic muscle groups for the body. Muscles consist of training elements or trained elements. The training elements are simple data collectors which record the contraction history of the muscle during an activity when the model is moved using external drivers such as motion agents. The trained elements use the contraction data in a PD-Servo linear force actuator to induce the force on the skeleton the replicate the recorded motion. Muscle parameters such as physiological cross sectional area (pCSA) and maximum tissue stress are used to calculate the maximum force potential of the particular muscle. LifeMOD/BodySIM™ contains a database of pCSA values for each muscle and is scaled accordingly based on the input body parameters (ht, wt, gender and age). Further, the force output of the muscle may be scaled from 0% to 200% to change the contributions of each particular muscle.


Figure 2: Muscle set created on the body. Note that the color of the muscles is "rust" indicating passive training elements.


Figure 3: Panel to create muscle forces on the legs

Step 3: Bring up the soft tissue panel
Select SOFT TISSUES on the main-menu and CREATE BASE SET on the sub-menu.

Step 4: Set the fields for the muscle generation
Select the light bulb to bring up the panel displayed in figure 3. Set the muscle tone multiplier to be 200%, the tissue stress to be .15 lbs/in2 and the muscle resting load to be 0.0455 lbs.

Step 5: Create the soft tissues on the body
Specify "Execute" to create the muscle sets on the body.


Merging the Stepping Machine Model

A model for the exercise machine exists in the LifeMOD/BodySIM model library. The model consists of six parts; arms, steps, disk and frame. Simple revolute joints are used to join all parts. A torque with a ramping function is added to the disk.


Figure 4: Pre built stepping machine model is merged with the human model.


Figure 5: Human model is connected to the stepping machine via ADAMS bushing elements.

Step 6: Import the stepper machine from the mechanical environment library
Select XCHANGE on the main-menu and IMPORT MECHANICAL ENVIRONMENT on the sub-menu. Select Stepper Machine as the Model Library SLF File and select Apply to create the model.

Step 7: Create a bushing elements on the left foot
Use the following ADAMS/View commands to create a new marker on the foot and a marker on the pedal.

marker create marker=.World.Homer_Left_Foot.pedal location=133, 311, -413 ori=0,0,0 rel=.World
marker create marker=.World.CyclePedalL.Lfoot location=133, 311, -413 ori=0,0,0 rel=.World

Use the following ADAMS/View command to create a bushing connecting the markers.

force create element bushing bushing=.World.BUSH_lfoot &
i_mark=.World.Homer_Left_Foot.pedal j_mark=.World.CyclePedalL.Lfoot &
stiffness=1e4,1e4,1e4 damping=1e3,1e3,1e3 force_preload=0.0,0.0,0.0 &
tstiffness=1e6,1e6,1e6 tdamping=1e5,1e5,1e5 torque_preload=0.0,0.0,0.0

Step 8: Create a bushing elements on the right foot
Use the following ADAMS/View commands to create a new marker on the foot and a marker on the pedal.

marker create marker=.World.Homer_Right_Foot.pedal location=-165, 201, -294ori=0,0,0 rel=.World
marker create marker=.World.CyclePedalR.Rfoot location=-165, 201, -294 ori=0,0,0 rel=.World

Use the following ADAMS/View command to create a bushing connecting the markers.

force create element bushing bushing=.World.BUSH_rfoot &
i_mark=.World.Homer_Right_Foot.pedal j_mark=.World.CyclePedalR.Rfoot &
stiffness=1e4,1e4,1e4 damping=1e3,1e3,1e3 force_preload=0.0,0.0,0.0 &
tstiffness=1e6,1e6,1e6 tdamping=1e5,1e5,1e5 torque_preload=0.0,0.0,0.0

Step 9: Create a bushing elements on the left hand
Use the following ADAMS/View commands to create a new marker on the hand and a marker on the machine arm.

marker create marker=.World.Homer_Left_Hand.handle location= 253, 1634, 69 ori=0,0,0 rel=.World
marker create marker=.World.CycleHandleL.Lhand location= 253, 1634, 69 ori=0,0,0 rel=.World

Use the following ADAMS/View command to create a bushing connecting the markers.

force create element bushing bushing=.World.BUSH_lhand &
i_mark=.World.Homer_Left_Hand.handle j_mark=.World.CycleHandleL.Lhand &
stiffness=1e4,1e4,1e4 damping=1e3,1e3,1e3 force_preload=0.0,0.0,0.0 &
tstiffness=1e6,1e6,1e6 tdamping=1e5,1e5,1e5 torque_preload=0.0,0.0,0.0

Step 10: Create a bushing elements on the right hand
Use the following ADAMS/View commands to create a new marker on the hand and a marker on the machine arm.

marker create marker=.World.Homer_Right_Hand.handle location= -253, 1574, -27 ori=0,0,0 rel=.World
marker create marker=.World.CycleHandleR.Rhand location=-253, 1574, -27 ori=0,0,0 rel=.World

Use the following ADAMS/View command to create a bushing connecting the markers.

force create element bushing bushing=.World.BUSH_rhand &
i_mark=.World.Homer_Right_Hand.handle j_mark=.World.CycleHandleR.Rhand &
stiffness=1e4,1e4,1e4 damping=1e3,1e3,1e3 force_preload=0.0,0.0,0.0 &
tstiffness=1e6,1e6,1e6 tdamping=1e5,1e5,1e5 torque_preload=0.0,0.0,0.0


Adding Motion Agents to the Model

In the inverse simulation phase, the machine will be actually generating the motion and the human model will be responding to the activity of the machine. The motion agents added at the pelvis and head during this phase will be used to stabilize the model during the inverse simulation. They will be fixed in space and attached to the model with springs with small stiffness and damping values.


Figure 6: Motion agents are added to the pelvis and head to stabilize the model during the inverse dynamics simulation.


Figure 7: Motion Agent creation panel.

Step 11: Bring up the create motion agent panel
Select MOTION on the main-menu and CREATE SINGLE AGENT sub-menu.

Step 12: Create motion agent on pelvis
Select .World.Homer_Lower_Torso as the body segment and select Manually Select Location for the agent positioning method using a location of -4, 1092, -661. Set the stiffness properties as in Figure 7. Specify all dof's to be fixed.

Step 13: Create motion agent on head
Select .World.Homer_Lower_Torso as the body segment and select Manually Select Location for the agent positioning method using a location of 5, 1757, -568. Set the stiffness properties as in Figure 9. Specify all dof's to be fixed.


Running the Equilibrium Simulation

To produce smooth simulations for both the inverse-dynamics and forward-dynamics simulations, it is strongly recommended that an equilibrium simulation be performed to equilibrate the forces in the model. In this case to bring in balance the human model with the gravity force.


Figure 8: Joints Constraining Model to the Environment.

Step 14: Set the wheel motion driver to 0
Use the ADAMS/View command to modify the motion driver

constraint modify motion motion_name = .World.Driver function = "0"

Step 15: Bring up the analyze panel
Select ANALYZE on the main-menu and DYNAMICS sub-menu. Select "Robust" as the integrator.

Step 16: Run the simulation
Specify the end time of the simulation as 1 seconds with 100 time steps using the default integrator settings. Select ANALYZE.

Step 17: Display animation
Use the ADAMS/View toolbox to animate the model.

Step 18: Update the model configuration with static results
Select UPDATE MODEL POSTURE WITH EQUILIBRIUM RESULTS to change the position of the body to match the last frame in the simulation.


Running the Inverse-Dynamics Simulation

With the human model in the proper position, the model connected to the stepping machine and the motion agents installed, an inverse-dynamics simulation may be performed. In this phase, the machine will actually drive the model. This simulation is performed to record the muscle contractile history for the stepping activity. In the forward-dynamics simulation, to be done later, the muscle contraction histories will be used in the contractile elements in the muscles to produce forces to allow the model the replicate the motion.


Figure 9: Successive animation frames from the inverse-dynamics simulation

Step 19: Update the motion driver on the wheel
Use the following ADAMS/View command to update the motion driver on the wheel.

constraint modify motion motion_name = .World.Driver function = "-360d*time"

Step 20: Run the dynamics simulation
Check the gravity box and set the y-value to -9806.65. Select "Default" integrator settings. Set the simulation end time to 3 seconds with 150 time steps. Specify the default integrator settings and select ANALYZE.

Step 21: Display animation
Use the ADAMS/View toolbox to animate the model.


Preparing the Model for Direct Dynamics Simulation

With the muscle contraction history recorded from the inverse-dynamics simulation, it is now used in linear PD-Servo formulation to produce a force to recreate the motion history. The process entails deactivating the Motion Agents and updating the muscles. For information on selecting specific model parameters for this section see Choosing Model Parameters.

The motion agents are removed from the model and a "Tracker Agent" is installed. The tracker agent is a motion agent located at the center of the pelvis which provides force-stabilization for the forward-dynamics simulation. During the inverse-dynamics simulation the location and orientation of the frame of the tracker agent is recorded (it is not generating a force during the inverse-dynamics simulation). The location and orientation information may then be used to drive the tracker agent in the forward-dynamics simulation. Usually various degrees-of freedom are specified as "free" to allow for proper dynamical interaction. For this example the freedom in the direction normal to the floor would be specified as free, to allow for proper ground reaction force generation between the feet and the steps.

In this example the tracker agent accounts for the fact that the upper body is missing from the model. It compensates for the forces of the arms and upper body transmitted through the trunk.


Figure 10: Deactivate wheel driver and activate wheel resistance torque for forward dynamics analysis


Figure 11: Resistance torque value at the wheel


Figure 12: Panel to create tracking agent

Step 22: Bring up the tissue training panel
Select SOFT TISSUES from the main-menu and TRAINING from the sub-menu.

Step 23: Install ACTIVE contractile element
Select the light bulb to bring up the INSTALL TRAINED DRIVER ELEMENTS panel.

Step 24: Set fields and update joints
Specify 1751.2 as the proportional gain and 17.512 as the derivative gain. These values control how well the PD-servo actuators will track the desired contraction at each time step in the analysis. Note that the individual muscle will not produce a force greater than the physiological cross section area (pCSA) times the maximum tissue stress.

Step 25: Bring up the motion agent tracker panel
Select MOTION from the main-menu and CREATE TRACKER AGENT from the sub-menu.

Step 26: Create the tracking agent
Specify the stiffness/damping parameters as in Figure 12. Specify all freedoms as driven except for the Y-Dof. Select APPLY.

Step 27: Deactivate wheel driver
Select the wheel driver motion (see figure 10) and select "Deactivate"


Running the Direct Dynamics Simulation

With the wheel driver deactivated and the resistance torque at the wheel in place, the human model is now ready to drive the stepper using the muscle forces.


Figure 13: Disable motion agents and run the forward dynamics simulation


Figure 14: Animation frames from the direct-dynamics simulation (machine graphics turned off for clarity). Note that the color of the muscles is now red indicating active elements.

Step 28: Bring up the analysis panel
Select ANALYZE on the main-menu and DYNAMICS on the sub-menu.

Step 29: Disable motion agents and run the forward dynamics simulation
Select "Disable Motion Agents". Run the simulation 3.0 seconds and 150 time steps using the "Default" integrator settings. Select ANALYZE.

Step 30: Display animation
Use the ADAMS/View toolbox to animate the model.

Step 31: Save the simulation results
On the analyze panel, select Save Analysis and enter Case_1, then OK.

Step 32: Bring up the results panel.
Select RESULTS on the main-menu and DATA DISPLAY on the sub-menu. Select Soft Tissues as the Data Type.

Step 33: Display right and left leg muscle strip charts
To view a sampling of the forces running through the muscles, select Homer_VasLat_Rtiss_1 as the Soft Tissue, Tension as the Characteristic and select Create Strip Chart Measure. Select Homer_Iliac_Ltiss_1 as the Soft Tissue, Tension as the Characteristic and select Create Strip Chart Measure.

Step 34: Turn muscle graphics scaling on
Select ANIMATION in the sub-menu. Turn on the global scaling of the muscle graphics by selecting Scale Joint/Tissue Graphics, Tissues, Scale Globally and the light bulb to scale the muscle graphics.

Step 35: Turn off machine and display animation
For clarity turn off the graphics of the machine using the following Adams/View command:

group att vis=off group=machine Use the ADAMS/View toolbox to animate the model.

Select the right view and play animation.

Step 36: Save the animation curves
On each strip chart, right click on the curve and select "save".


Running the Parametric Analysis

LifeMOD/BodySIM™ manages the redundant muscle problem in human mechanics by allowing for equal contribution for each muscle involved in the motion across the joint. This contribution is effected by the maximum force output of each muscle and can further be effected by the user. This section the user will reduce the contributions of three muscles to examine the effects load redistribution effects on the other muscles.

The simulation results will show that by reducing the knee extensor forces on the right leg, the hip extensors on the left leg must increase to compensate.


Figure 15: Right leg muscle properties panel used to reduce the contributions of the Vastus Medialis and the Vastus Lateralis muscles to 25%.

Step 37: Bring up the tissue edit training panel
Select SOFT TISSUES from the main-menu and EDIT PROPERTIES from the sub-menu. Select the "Edit Individual Tissue Properties" light bulb. Check left leg to bring up the muscle panel.

Step 38: Reduce the contribution of the right leg vastus muscles Muscles
Move the slider to read 25% of the normal value for the vastus medialis and the vastus lateralis muscles and select APPLY.

Step 39: Bring up the analysis panel
Select ANALYZE on the main-menu and DYNAMICS on the sub-menu.

Step 40: Disable motion agents and run the forward dynamics simulation
Select "Disable Motion Agents". Run the simulation 3.0 seconds and 150 time steps using the "Default" integrator settings. Select ANALYZE.

Step 41: Display animation
Use the ADAMS/View toolbox to animate the model.

Step 42: Save the simulation results
On the analyze panel, select Save Analysis and enter Case_2, then OK.


Interrogating the Results

When the simulation is complete the model may be animated and the results reviewed. Various data may be presented from the forward-dynamics simulation including:

  • All muscle force histories
  • All muscle contraction histories
  • Hand-machine contact forces
  • Foot-machine contact forces


Figure 16: Animation Sequence and Data Display from comparing case 1 (before muscle contribution adjustment) to case 2 (after reducing the GM and Soleus muscles. The simulation results show how that when the right knee extensors are reduced, the left hip extensors must compensate.


Figure 17: Machine resistance torque


Figure 18: Left foot interface force with the machine for both cases


Figure 19: Right arm triceps muscle forces case_1 (blue) case_2 (red).


Figure 20: Erectus Spinaes muscle forces for case_1 (blue) and case_2 (red)


Figure 21: Animation frames displaying scaling muscle force graphics

Step 43: Bring up results panel
Select RESULTS in the main-menu and DATA DISPLAY in the sub-menu. Select Soft Tissues as the Data Type. Select "Results Window" button to bring up the results processor.

Step 44: Plot the machine resistance
Use the ADAMS/View tools to generate a plot of the Machine Torque request and the u2 component.

Step 45: Animate side view
Select Divide Window. Select right view, divide window. Select PLAY.

Step 46: Compare the left foot/machine contact forces for the two cases.
Use the ADAMS/View tools to generate a plot of the foot forces using the request .World.case_1.Interface_Lfoot and the u2 component for case 1 and .World.case_1.Interface_Lfoot and the u2 component for case 2.

Step 47: Turn on interface force vectors and animate iso view
Turn on the foot and hand contact forces using the following ADAMS/View commands:

entity attributes entity_name = .World."*hand_force_graphic_1*" visibility = on
entity attributes entity_name = .World."*foot_force_graphic_1*" visibility = on

Step 48: Plot the left leg biceps femoris muscle force - Case_1
Enter Case_1 as the analysis. Select Homer_Bicfem2_Ltiss_1 for the muscle force and the tension characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 1. Check New Plot and select Create Full Plot to create the curve.

Step 49: Plot the left leg biceps femoris muscle force - Case_2
Enter Case_2 as the analysis. Select Homer_Bicfem2_Ltiss_1 for the muscle force and the tension characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 1. Check New Plot and select Create Full Plot to create the curve.

Step 50: Turn muscle graphics scaling on
Turn on the global scaling of the muscle graphics by selecting Scale Joint/Tissue Graphics, Tissues, Scale Globally and the light bulb to scale the muscle graphics.

Step 51: Animate right view
Select right view, divide window and select PLAY.

Step 52: Plot the right arm medial triceps muscle tension - Case_1
Select Homer_tric3_Rtiss_1 for the muscle force and the tension characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 1. Check New Plot and select Create Full Plot to create the curve.

Step 53: Plot the right arm medial triceps muscle tension - Case_2
Select Homer_tric3_Rtiss_1 for the muscle force and the tension characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 1. Check New Plot and select Create Full Plot to create the curve.

Step 54: Animate right view
Select right view, divide window and select PLAY.

Step 55: Plot the Erectus Spinaes muscle tension - Case_1
Select Homer_ErecSpin1_Rtiss_1 for the muscle force and the tension characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 1. Check New Plot and sselect Create Full Plot to create the curve.

Step 56: Plot the Erectus Spinaes muscle tension - Case_2
Select Homer_ErecSpin1_Rtiss_1 for the muscle force and the tension characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 1. Check New Plot and select Create Full Plot to create the curve.

Step 57: Animate rear view
Select back view, divide window and select PLAY.

Step 48: DEMO COMPLETE


Further

This model could be used for:

  • to determine the controller profile for the machine
  • to provide human-based loads for structural analysis
  • to evaluate effects of muscle force weakening

Acknowledgement

A special thanks for furnishing the data for this model to:

Youngaje Song
School of Mechanical & Aerospace Engineering
Seoul National University
www.snu.ac.kr