Gold Standard 2 (Crandall 2011-2016)#
Frontal Sledtests
Model validation information
Performed by : Johan Iraeus
Reviewed by : Corina Klug
Added to VIVA+ Validation Catalog on : 2022-11-30
Last modified :
Model version (this notebook run for): 0.3.2
© 2019-2023, OpenVT Organization (OVTO)
Available openly under Creative Commons Attribution 4.0 International License
Experiment by Crandall et al. (2011. 2013, and 2016)#
Summary:#
The simulated outputs are compared to the references from two male PMHS tests (S00028 and S00029) reported by Crandall (2011), and two female PMHS tests (S0212 and S0373) reported in Crandall (2013) and Crandall (2016)
Crandall, J. (2011). ATD THORACIC RESPONSE TEST DEVELOPMENT, Gold Standard Buck Condition 2: Force Limited Belt, 30 km/h Frontal, PMHS 494, 492. A Report Prepared for NHTSA, Cooperative Agreement No. DTNH22-09-H-00247, May 2012
Crandall, J. (2011). ATD THORACIC RESPONSE TEST DEVELOPMENT, Gold Standard Buck Condition 2.1: Force Limited Belt, 30 km/h Frontal, PMHS 509, 517, 568, 656, 657. A Report Prepared for NHTSA, Cooperative Agreement No. DTNH22-09-H-00247, January 2014
Crandall, J. (2011). Small Female/Older Occupant Thoracic Biofidelity, Gold Standard Buck Condition 2.1: 2 kN Force Limited Belt, 30 km/h Frontal, PMHS 667, 729, 741, 820, 822. A Report Prepared for NHTSA, Contract Number: DTNH2215D00022, March 2017
(Setup for the VIVA+ 50F model)
Experiment#
Information on the subjects/specimens#
From the test series two male and two female PMHS, close to the average male and female antropometries have been selected for evaluation.
Test No |
Sex |
Stature |
Body Mass |
Age |
T-score |
---|---|---|---|---|---|
s0212 |
F |
1640 |
54.4 |
88 |
-1.4 |
S0373 |
F |
1630 |
55.9 |
72 |
1.2 |
S0028 |
M |
1780 |
68.0 |
59 |
-2.3 |
S0029 |
M |
1790 |
70.0 |
66 |
-1.1 |
Loading and Boundary Conditions#
The pelvis, knees and legs were constrained by a rigid seat and rigid knee and foot supports. The upper body was constrained using a force limited shoulder belt and a separate lap belt. The shoulder belt force limit level in the female tests was about 2kN and in the male tests about 2.7kN.
Impact#
A square crash pulse corresponding to a frontal impact with a change in velocity of 30km/h and a peak acceleration of about 8.5-9 G’s was used (separate crash pulses corresponding to the actual tests have been used for teh simulation of eth female and male models).
Positioning#
For the definitions of the measurements see any of the reports listed above.
Female PMHSs
Test No |
Torso Angle |
Belt Angle D-ring |
Femur Angle |
Tibia Angle |
Belt Angle across chest |
---|---|---|---|---|---|
s0212 |
9 |
23 |
12 |
33 |
48.0 |
S0373 |
8.1 |
26 |
12 |
26 |
55.0 |
VIVA+ 50F |
7.3 |
27.7 |
13.5 |
33.8 |
49.5 |
Male PMHSs
Test No |
Torso Angle |
Belt Angle D-ring |
Femur Angle |
Tibia Angle |
Belt Angle across chest |
---|---|---|---|---|---|
S0028 |
10 |
25 |
9 |
32 |
46.2 |
S0029 |
10 |
26 |
11 |
32 |
48.5 |
VIVA+ 50M |
7.8 |
27.8 |
10 |
33 |
43 |
Responses recorded#
The reference values from the reports were digitalised and are included in the package. The data is not normalized, but inertia compensated (where appropriate). …
Other Notes for simulation#
During the first 350 ms the simulation model is gravity settled, and the foot support and the knee support is moved towards the model. During the first 300 ms global damping is applied.
In the figure below the energy balance is shown for the simulations using the 50F and 50M models.
Show code cell source
fig_energy, (ax1, ax2) = plt.subplots(1,2, figsize=(10,5))
fig_energy.suptitle('Model Energies', y=1.02)
#plt.set_title('Simulation #1')
#plt.set_ylabel('Energies (J)')
#ax.set_title('Simulation #1')
ax1.set_ylabel('Energies (J)')
ax1.set(title='50F', xlabel='time (ms)')
ax2.set(title='50M', xlabel='time (ms)')
ax1.plot(simData_50F.MODEL.Hourglass_Energy.time, simData_50F.MODEL.Hourglass_Energy.energy, label = "Hourglass Energy")
ax1.plot(simData_50F.MODEL.Internal_Energy.time, simData_50F.MODEL.Internal_Energy.energy, label = "Internal Energy")
ax1.plot(simData_50F.MODEL.Kinetic_Energy.time, simData_50F.MODEL.Kinetic_Energy.energy, label = "Kinetic Energy")
ax1.plot(simData_50F.MODEL.Sliding_Energy.time, simData_50F.MODEL.Sliding_Energy.energy, label = "Contact Energy")
ax1.plot(simData_50F.MODEL.Total_Energy.time, simData_50F.MODEL.Total_Energy.energy, label = "Total Energy")
ax2.plot(simData_50M.MODEL.Hourglass_Energy.time, simData_50M.MODEL.Hourglass_Energy.energy, label = "Hourglass Energy")
ax2.plot(simData_50M.MODEL.Internal_Energy.time, simData_50M.MODEL.Internal_Energy.energy, label = "Internal Energy")
ax2.plot(simData_50M.MODEL.Kinetic_Energy.time, simData_50M.MODEL.Kinetic_Energy.energy, label = "Kinetic Energy")
ax2.plot(simData_50M.MODEL.Sliding_Energy.time, simData_50M.MODEL.Sliding_Energy.energy, label = "Contact Energy")
ax2.plot(simData_50M.MODEL.Total_Energy.time, simData_50M.MODEL.Total_Energy.energy, label = "Total Energy")
ax1.legend();
ax2.legend();
Seat Belt Force Plots#
The figure below shows the comparison between teh predicted seat belt forces for the 50F and 50M models compared to the PMHS tests. Note that different seat belt force limiters were used in the male and female tests.
Show code cell source
fig_Belt, (ax1, ax2, ax3) = plt.subplots(nrows=1, ncols=3, figsize=(15,5))
fig_Belt.suptitle('Seat Belt Forces')
ax1.set_ylabel('Force (N)')
ax1.set(title='Upper Shoulder belt', xlabel='time (ms)')
ax2.set(title='Lower Shoulder belt', xlabel='time (ms)')
ax3.set(title='Lap belt', xlabel='time (ms)')
ax1.plot(simData_50F.BELT.Belt_force_Shoulder_upper_F.time-350., 1000*simData_50F.BELT.Belt_force_Shoulder_upper_F.force, label = "VIVA+ 50F", **plot50F)
ax1.plot(simData_50M.BELT.Belt_force_Shoulder_upper_M.time-350, 1000*simData_50M.BELT.Belt_force_Shoulder_upper_M.force, label = "VIVA+ 50M", **plot50M)
ax1.plot(experiment_50F['Time_Upper_sh_S0212'], experiment_50F['Force_Upper_sh_S0212'], label = "s0212", **plotExperimentFemale)
ax1.plot(experiment_50F['Time_Upper_sh_S0373'], experiment_50F['Force_Upper_sh_S0373'], label = "s0373", **plotExperimentFemale2)
ax1.plot(experiment_50M['Time_Upper_sh_s0028'], experiment_50M['Force_Upper_sh_s0028'], label = "s0028", **plotExperimentMale)
ax1.plot(experiment_50M['Time_Upper_sh_s0029'], experiment_50M['Force_Upper_sh_s0029'], label = "s0029", **plotExperimentMale2)
ax1.set_xlim(0,200)
ax1.set_ylim(0 ,3500)
ax2.plot(simData_50F.BELT.Belt_force_Shoulder_lower_F.time-350., 1000*simData_50F.BELT.Belt_force_Shoulder_lower_F.force, **plot50F)
ax2.plot(simData_50M.BELT.Belt_force_Shoulder_lower_M.time-350, 1000*simData_50M.BELT.Belt_force_Shoulder_lower_M.force, **plot50M)
ax2.plot(experiment_50F['Time_lower_sh_S0212'], experiment_50F['Force_lower_sh_S0212'], **plotExperimentFemale)
ax2.plot(experiment_50F['Time_lower_sh_S0373'], experiment_50F['Force_lower_sh_S0373'], **plotExperimentFemale2)
ax2.plot(experiment_50M['Time_lower_sh_s0028'], experiment_50M['Force_lower_sh_s0028'], **plotExperimentMale)
ax2.plot(experiment_50M['Time_lower_sh_s0029'], experiment_50M['Force_lower_sh_s0029'], **plotExperimentMale2)
ax2.set_xlim(0,200)
ax2.set_ylim(0,3500)
ax3.plot(simData_50F.BELT.Belt_force_Lap_F.time-350., 1000*simData_50F.BELT.Belt_force_Lap_F.force, **plot50F)
ax3.plot(simData_50M.BELT.Belt_force_Lap_M.time-350, 1000*simData_50M.BELT.Belt_force_Lap_M.force, **plot50M)
ax3.plot(experiment_50F['Time_outer_lap_S0212'], experiment_50F['Force_outer_lap_S0212'], **plotExperimentFemale)
ax3.plot(experiment_50F['Time_outer_lap_S0373'], experiment_50F['Force_outer_lap_S0373'], **plotExperimentFemale2)
ax3.plot(experiment_50M['Time_outer_lap_s0028'], experiment_50M['Force_outer_lap_s0028'], **plotExperimentMale)
ax3.plot(experiment_50M['Time_outer_lap_s0029'], experiment_50M['Force_outer_lap_s0029'], **plotExperimentMale2)
ax3.set_xlim(0,200)
ax3.set_ylim(0,3500)
fig_Belt.legend(loc='center left', bbox_to_anchor=(1, 0.5));
fig_Belt.tight_layout(pad=0.5)
plt.show()
Other BC Force Plots#
In the figure below boundary condition forces (except) the seat belt are shown.
Show code cell source
fig_BC, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(15,10))
fig_BC.suptitle('Other BC Forces')
ax1.set_ylabel('Force (N)')
ax4.set_ylabel('Force (N)')
ax1.set(title='Seat X force', xlabel='time (ms)')
ax2.set(title='Seat Z force', xlabel='time (ms)')
ax3.set(title='Left Knee X-force', xlabel='time (ms)')
ax4.set(title='Right Knee X-force', xlabel='time (ms)')
ax5.set(title='Feet resultant X-Z force', xlabel='time (ms)')
ax1.plot(simData_50F.BC.Contactforce_seat_CFC_180_x.time-350., -1000*simData_50F.BC.Contactforce_seat_CFC_180_x.force-70, label = "VIVA+ 50F", **plot50F)
ax1.plot(simData_50M.BC.Contactforce_seat_CFC_180_x.time-350, -1000*simData_50M.BC.Contactforce_seat_CFC_180_x.force-100, label = "VIVA+ 50M", **plot50M)
ax1.plot(experiment_50F['Time_seat_FX_s0212'], experiment_50F['Force_seat_FX_s0212'], label = "s0212", **plotExperimentFemale)
ax1.plot(experiment_50F['Time_seat_FX_s0373'], experiment_50F['Force_seat_FX_s0373'], label = "s0373", **plotExperimentFemale2)
ax1.plot(experiment_50M['Time_seat_FX_s0028'], experiment_50M['Force_seat_FX_s0028'], label = "s0028", **plotExperimentMale)
ax1.plot(experiment_50M['Time_seat_FX_s0029'], experiment_50M['Force_seat_FX_s0029'], label = "s0029", **plotExperimentMale2)
ax1.set_xlim(0,200)
ax2.plot(simData_50F.BC.Contactforce_seat_CFC_180_z.time-350., -1000*simData_50F.BC.Contactforce_seat_CFC_180_z.force+512, **plot50F)
ax2.plot(simData_50M.BC.Contactforce_seat_CFC_180_z.time-350, -1000*simData_50M.BC.Contactforce_seat_CFC_180_z.force+700, **plot50M)
ax2.plot(experiment_50F['Time_seat_FZ_s0212'], experiment_50F['Force_seat_FZ_s0212'], **plotExperimentFemale)
ax2.plot(experiment_50F['Time_seat_FZ_s0373'], experiment_50F['Force_seat_FZ_s0373'], **plotExperimentFemale2)
ax2.plot(experiment_50M['Time_seat_FZ_s0028'], experiment_50M['Force_seat_FZ_s0028'], **plotExperimentMale)
ax2.plot(experiment_50M['Time_seat_FZ_s0029'], experiment_50M['Force_seat_FZ_s0029'], **plotExperimentMale2)
ax2.set_xlim(0,200)
ax3.plot(simData_50F.BC.Contactforce_left_knee_CFC_180_x.time-350., -1000*(math.cos(36*3.1415/180)*simData_50F.BC.Contactforce_left_knee_CFC_180_x.force-math.sin(36*3.1415/180)*simData_50F.BC.Contactforce_left_knee_CFC_180_z.force), **plot50F)
ax3.plot(simData_50M.BC.Contactforce_left_knee_CFC_180_x.time-350., -1000*(math.cos(36*3.1415/180)*simData_50M.BC.Contactforce_left_knee_CFC_180_x.force-math.sin(36*3.1415/180)*simData_50M.BC.Contactforce_left_knee_CFC_180_z.force), **plot50M)
ax3.plot(experiment_50F['Time_Left_knee_FX_s0212'], experiment_50F['Force_Left_knee_FX_s0212'], **plotExperimentFemale)
ax3.plot(experiment_50F['Time_Left_knee_FX_s0373'], experiment_50F['Force_Left_knee_FX_s0373'], **plotExperimentFemale2)
ax3.plot(experiment_50M['Time_Left_knee_FX_s0028'], experiment_50M['Force_Left_knee_FX_s0028'], **plotExperimentMale)
ax3.plot(experiment_50M['Time_Left_knee_FX_s0029'], experiment_50M['Force_Left_knee_FX_s0029'], **plotExperimentMale2)
ax3.set_xlim(0,200)
ax4.plot(simData_50F.BC.Contactforce_Right_knee_CFC_180_x.time-350., -1000*(math.cos(36*3.1415/180)*simData_50F.BC.Contactforce_Right_knee_CFC_180_x.force-math.sin(36*3.1415/180)*simData_50F.BC.Contactforce_Right_knee_CFC_180_z.force), **plot50F)
ax4.plot(simData_50M.BC.Contactforce_Right_knee_CFC_180_x.time-350., -1000*(math.cos(36*3.1415/180)*simData_50M.BC.Contactforce_Right_knee_CFC_180_x.force-math.sin(36*3.1415/180)*simData_50M.BC.Contactforce_Right_knee_CFC_180_z.force), **plot50M)
ax4.plot(experiment_50F['Time_Right_knee_FX_s0212'], experiment_50F['Force_Right_knee_FX_s0212'], **plotExperimentFemale)
ax4.plot(experiment_50F['Time_Right_knee_FX_s0373'], experiment_50F['Force_Right_knee_FX_s0373'], **plotExperimentFemale2)
ax4.plot(experiment_50M['Time_Right_knee_FX_s0028'], experiment_50M['Force_Right_knee_FX_s0028'], **plotExperimentMale)
ax4.plot(experiment_50M['Time_Right_knee_FX_s0029'], experiment_50M['Force_Right_knee_FX_s0029'], **plotExperimentMale2)
ax4.set_xlim(0,200)
ax5.plot(simData_50F.BC.Contactforce_Left_foot_CFC_180_x.time-350., -1000*((simData_50F.BC.Contactforce_Left_foot_CFC_180_x.force+simData_50F.BC.Contactforce_Left_foot_CFC_180_z.force)**2+(simData_50F.BC.Contactforce_Right_foot_CFC_180_x.force+simData_50F.BC.Contactforce_Right_foot_CFC_180_z.force)**2)**0.5, **plot50F)
ax5.plot(simData_50M.BC.Contactforce_Left_foot_CFC_180_x.time-350., -1000*((simData_50M.BC.Contactforce_Left_foot_CFC_180_x.force+simData_50M.BC.Contactforce_Left_foot_CFC_180_z.force)**2+(simData_50M.BC.Contactforce_Right_foot_CFC_180_x.force+simData_50M.BC.Contactforce_Right_foot_CFC_180_z.force)**2)**0.5, **plot50M)
ax5.plot(experiment_50F['Time_feet_FZ_s0373'], experiment_50F['Force_feet_FZ_s0373'], **plotExperimentFemale2)
ax5.plot(experiment_50M['Time_feet_FZ_s0028'], experiment_50M['Force_feet_FZ_s0028'], **plotExperimentMale)
ax5.plot(experiment_50M['Time_feet_FZ_s0029'], experiment_50M['Force_feet_FZ_s0029'], **plotExperimentMale2)
ax5.set_xlim(0,200)
ax5.set_ylim(-3500 ,500)
fig_BC.legend(loc='center left', bbox_to_anchor=(0.8, 0.3));
fig_BC.tight_layout(pad=0.5)
fig_BC.delaxes(ax6)
plt.show()
Spine and head kinematic Plots#
In the figure below the predicted spine kinematics is compared to PMHS results for teh 50F and 50M models.
Show code cell source
fig_Kin, ((ax1, ax2, ax3),(ax4, ax5, ax6),
(ax7, ax8, ax9),(ax10, ax11, ax12),(ax13, ax14, ax15)) = plt.subplots(nrows=5, ncols=3, figsize=(15,15),
sharex=True)
fig_Kin.suptitle('Head and spine kinematics')
ax1.set_ylabel('Displacement (mm)')
ax4.set_ylabel('Displacement (mm)')
ax7.set_ylabel('Displacement (mm)')
ax10.set_ylabel('Displacement (mm)')
ax13.set_ylabel('Displacement (mm)')
ax1.set(title='Head X', xlabel='time (ms)')
ax2.set(title='Head Y', xlabel='time (ms)')
ax3.set(title='Head Z', xlabel='time (ms)')
ax4.set(title='T1 X', xlabel='time (ms)')
ax5.set(title='T1 Y', xlabel='time (ms)')
ax6.set(title='T1 Z', xlabel='time (ms)')
ax7.set(title='T8 X', xlabel='time (ms)')
ax8.set(title='T8 Y', xlabel='time (ms)')
ax9.set(title='T8 Z', xlabel='time (ms)')
ax10.set(title='L2 X', xlabel='time (ms)')
ax11.set(title='L2 Y', xlabel='time (ms)')
ax12.set(title='L2 Z', xlabel='time (ms)')
ax13.set(title='Pelvis X', xlabel='time (ms)')
ax14.set(title='Pelvis Y', xlabel='time (ms)')
ax15.set(title='Pelvis Z', xlabel='time (ms)')
ax1.plot(simData_50F.SLED.Head_Disp_x.time-350., simData_50F.SLED.Head_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement, label = "VIVA+ 50F", **plot50F)
ax1.plot(simData_50M.SLED.Head_Disp_x.time-350, simData_50M.SLED.Head_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement-50, label = "VIVA+ 50M", **plot50M)
ax1.plot(experiment_50F['Time_Head_x_disp_s0212'], experiment_50F['Disp_Head_x_disp_s0212'], label = "s0212", **plotExperimentFemale)
ax1.plot(experiment_50F['Time_Head_x_disp_s0373'], experiment_50F['Disp_Head_x_disp_s0373'], label = "s0373", **plotExperimentFemale2)
ax1.plot(experiment_50M['Time_Head_x_disp_s0028'], experiment_50M['Disp_Head_x_disp_s0028'], label = "s0028", **plotExperimentMale)
ax1.plot(experiment_50M['Time_Head_x_disp_s0029'], experiment_50M['Disp_Head_x_disp_s0029'], label = "s0029", **plotExperimentMale2)
ax1.set_xlim(0,200)
ax1.set_ylim(0 ,500)
ax2.plot(simData_50F.SLED.Head_Disp_y.time-350., simData_50F.SLED.Head_Disp_y.displacement, **plot50F)
ax2.plot(simData_50M.SLED.Head_Disp_y.time-350, simData_50M.SLED.Head_Disp_y.displacement, **plot50M)
ax2.plot(experiment_50F['Time_Head_y_disp_s0212'], experiment_50F['Disp_Head_y_disp_s0212'], **plotExperimentFemale)
ax2.plot(experiment_50F['Time_Head_y_disp_s0373'], experiment_50F['Disp_Head_y_disp_s0373'], **plotExperimentFemale2)
ax2.plot(experiment_50M['Time_Head_y_disp_s0028'], experiment_50M['Disp_Head_y_disp_s0028'], **plotExperimentMale)
ax2.plot(experiment_50M['Time_Head_y_disp_s0029'], experiment_50M['Disp_Head_y_disp_s0029'], **plotExperimentMale2)
ax2.set_ylim(0 ,500)
ax3.plot(simData_50F.SLED.Head_Disp_z.time-350., simData_50F.SLED.Head_Disp_z.displacement-38, **plot50F)
ax3.plot(simData_50M.SLED.Head_Disp_z.time-350, simData_50M.SLED.Head_Disp_z.displacement-48, **plot50M)
ax3.plot(experiment_50F['Time_Head_z_disp_s0212'], experiment_50F['Disp_Head_z_disp_s0212'], **plotExperimentFemale)
ax3.plot(experiment_50F['Time_Head_z_disp_s0373'], experiment_50F['Disp_Head_z_disp_s0373'], **plotExperimentFemale2)
ax3.plot(experiment_50M['Time_Head_z_disp_s0028'], experiment_50M['Disp_Head_z_disp_s0028'], **plotExperimentMale)
ax3.plot(experiment_50M['Time_Head_z_disp_s0029'], experiment_50M['Disp_Head_z_disp_s0029'], **plotExperimentMale2)
ax3.set_ylim(-100 ,500)
ax4.plot(simData_50F.SLED.T1_Disp_x.time-350., simData_50F.SLED.T1_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement+6, **plot50F)
ax4.plot(simData_50M.SLED.T1_Disp_x.time-350, simData_50M.SLED.T1_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement, **plot50M)
ax4.plot(experiment_50F['Time_T1_x_disp_s0212'], experiment_50F['Disp_T1_x_disp_s0212'], **plotExperimentFemale)
ax4.plot(experiment_50F['Time_T1_x_disp_s0373'], experiment_50F['Disp_T1_x_disp_s0373'], **plotExperimentFemale2)
ax4.plot(experiment_50M['Time_T1_x_disp_s0028'], experiment_50M['Disp_T1_x_disp_s0028'], **plotExperimentMale)
ax4.plot(experiment_50M['Time_T1_x_disp_s0029'], experiment_50M['Disp_T1_x_disp_s0029'], **plotExperimentMale2)
ax4.set_ylim(-100 ,400)
ax5.plot(simData_50F.SLED.T1_Disp_y.time-350., simData_50F.SLED.T1_Disp_y.displacement, **plot50F)
ax5.plot(simData_50M.SLED.T1_Disp_y.time-350, simData_50M.SLED.T1_Disp_y.displacement, **plot50M)
ax5.plot(experiment_50F['Time_T1_y_disp_s0212'], experiment_50F['Disp_T1_y_disp_s0212'], **plotExperimentFemale)
ax5.plot(experiment_50F['Time_T1_y_disp_s0373'], experiment_50F['Disp_T1_y_disp_s0373'], **plotExperimentFemale2)
ax5.plot(experiment_50M['Time_T1_y_disp_s0028'], experiment_50M['Disp_T1_y_disp_s0028'], **plotExperimentMale)
ax5.plot(experiment_50M['Time_T1_y_disp_s0029'], experiment_50M['Disp_T1_y_disp_s0029'], **plotExperimentMale2)
ax5.set_ylim(-100 ,400)
ax6.plot(simData_50F.SLED.T1_Disp_z.time-350., simData_50F.SLED.T1_Disp_z.displacement-35, **plot50F)
ax6.plot(simData_50M.SLED.T1_Disp_z.time-350, simData_50M.SLED.T1_Disp_z.displacement-35, **plot50M)
ax6.plot(experiment_50F['Time_T1_z_disp_s0212'], experiment_50F['Disp_T1_z_disp_s0212'], **plotExperimentFemale)
ax6.plot(experiment_50F['Time_T1_z_disp_s0373'], experiment_50F['Disp_T1_z_disp_s0373'], **plotExperimentFemale2)
ax6.plot(experiment_50M['Time_T1_z_disp_s0028'], experiment_50M['Disp_T1_z_disp_s0028'], **plotExperimentMale)
ax6.plot(experiment_50M['Time_T1_z_disp_s0029'], experiment_50M['Disp_T1_z_disp_s0029'], **plotExperimentMale2)
ax6.set_ylim(-100 ,400)
ax7.plot(simData_50F.SLED.T8_Disp_x.time-350., simData_50F.SLED.T8_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement+10, **plot50F)
ax7.plot(simData_50M.SLED.T8_Disp_x.time-350, simData_50M.SLED.T8_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement+10, **plot50M)
ax7.plot(experiment_50F['Time_T8_x_disp_s0212'], experiment_50F['Disp_T8_x_disp_s0212'], **plotExperimentFemale)
ax7.plot(experiment_50F['Time_T8_x_disp_s0373'], experiment_50F['Disp_T8_x_disp_s0373'], **plotExperimentFemale2)
ax7.plot(experiment_50M['Time_T8_x_disp_s0028'], experiment_50M['Disp_T8_x_disp_s0028'], **plotExperimentMale)
ax7.plot(experiment_50M['Time_T8_x_disp_s0029'], experiment_50M['Disp_T8_x_disp_s0029'], **plotExperimentMale2)
ax7.set_ylim(0 ,500)
ax8.plot(simData_50F.SLED.T8_Disp_y.time-350., simData_50F.SLED.T8_Disp_y.displacement, **plot50F)
ax8.plot(simData_50M.SLED.T8_Disp_y.time-350, simData_50M.SLED.T8_Disp_y.displacement, **plot50M)
ax8.plot(experiment_50F['Time_T8_y_disp_s0212'], experiment_50F['Disp_T8_y_disp_s0212'], **plotExperimentFemale)
ax8.plot(experiment_50F['Time_T8_y_disp_s0373'], experiment_50F['Disp_T8_y_disp_s0373'], **plotExperimentFemale2)
ax8.plot(experiment_50M['Time_T8_y_disp_s0028'], experiment_50M['Disp_T8_y_disp_s0028'], **plotExperimentMale)
ax8.plot(experiment_50M['Time_T8_y_disp_s0029'], experiment_50M['Disp_T8_y_disp_s0029'], **plotExperimentMale2)
ax8.set_ylim(-100 ,400)
ax9.plot(simData_50F.SLED.T8_Disp_z.time-350., simData_50F.SLED.T8_Disp_z.displacement-33, **plot50F)
ax9.plot(simData_50M.SLED.T8_Disp_z.time-350, simData_50M.SLED.T8_Disp_z.displacement-33, **plot50M)
ax9.plot(experiment_50F['Time_T8_z_disp_s0212'], experiment_50F['Disp_T8_z_disp_s0212'], **plotExperimentFemale)
ax9.plot(experiment_50F['Time_T8_z_disp_s0373'], experiment_50F['Disp_T8_z_disp_s0373'], **plotExperimentFemale2)
ax9.plot(experiment_50M['Time_T8_z_disp_s0028'], experiment_50M['Disp_T8_z_disp_s0028'], **plotExperimentMale)
ax9.plot(experiment_50M['Time_T8_z_disp_s0029'], experiment_50M['Disp_T8_z_disp_s0029'], **plotExperimentMale2)
ax9.set_ylim(-100 ,400)
ax10.plot(simData_50F.SLED.L2_Disp_x.time-350., simData_50F.SLED.L2_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement+7, **plot50F)
ax10.plot(simData_50M.SLED.L2_Disp_x.time-350, simData_50M.SLED.L2_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement+7, **plot50M)
ax10.plot(experiment_50F['Time_L2_x_disp_s0212'], experiment_50F['Disp_L2_x_disp_s0212'], **plotExperimentFemale)
ax10.plot(experiment_50F['Time_L2_x_disp_s0373'], experiment_50F['Disp_L2_x_disp_s0373'], **plotExperimentFemale2)
ax10.plot(experiment_50M['Time_L2_x_disp_s0028'], experiment_50M['Disp_L2_x_disp_s0028'], **plotExperimentMale)
ax10.plot(experiment_50M['Time_L2_x_disp_s0029'], experiment_50M['Disp_L2_x_disp_s0029'], **plotExperimentMale2)
ax10.set_ylim(-100 ,400)
ax11.plot(simData_50F.SLED.L2_Disp_y.time-350., simData_50F.SLED.L2_Disp_y.displacement, **plot50F)
ax11.plot(simData_50M.SLED.L2_Disp_y.time-350, simData_50M.SLED.L2_Disp_y.displacement, **plot50M)
ax11.plot(experiment_50F['Time_L2_y_disp_s0212'], experiment_50F['Disp_L2_y_disp_s0212'], **plotExperimentFemale)
ax11.plot(experiment_50F['Time_L2_y_disp_s0373'], experiment_50F['Disp_L2_y_disp_s0373'], **plotExperimentFemale2)
ax11.plot(experiment_50M['Time_L2_y_disp_s0028'], experiment_50M['Disp_L2_y_disp_s0028'], **plotExperimentMale)
ax11.plot(experiment_50M['Time_L2_y_disp_s0029'], experiment_50M['Disp_L2_y_disp_s0029'], **plotExperimentMale2)
ax11.set_ylim(-100 ,400)
ax12.plot(simData_50F.SLED.L2_Disp_z.time-350., simData_50F.SLED.L2_Disp_z.displacement-30, **plot50F)
ax12.plot(simData_50M.SLED.L2_Disp_z.time-350, simData_50M.SLED.L2_Disp_z.displacement-30, **plot50M)
ax12.plot(experiment_50F['Time_L2_z_disp_s0212'], experiment_50F['Disp_L2_z_disp_s0212'], **plotExperimentFemale)
ax12.plot(experiment_50F['Time_L2_z_disp_s0373'], experiment_50F['Disp_L2_z_disp_s0373'], **plotExperimentFemale2)
ax12.plot(experiment_50M['Time_L2_z_disp_s0028'], experiment_50M['Disp_L2_z_disp_s0028'], **plotExperimentMale)
ax12.plot(experiment_50M['Time_L2_z_disp_s0029'], experiment_50M['Disp_L2_z_disp_s0029'], **plotExperimentMale2)
ax12.set_ylim(-100 ,400)
ax13.plot(simData_50F.SLED.Pelvis_Disp_x.time-350., simData_50F.SLED.Pelvis_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement+12, **plot50F)
ax13.plot(simData_50M.SLED.Pelvis_Disp_x.time-350, simData_50M.SLED.Pelvis_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement+7, **plot50M)
ax13.plot(experiment_50F['Time_Pelvis_x_disp_s0212'], experiment_50F['Disp_Pelvis_x_disp_s0212'], **plotExperimentFemale)
ax13.plot(experiment_50F['Time_Pelvis_x_disp_s0373'], experiment_50F['Disp_Pelvis_x_disp_s0373'], **plotExperimentFemale2)
ax13.plot(experiment_50M['Time_Pelvis_x_disp_s0028'], experiment_50M['Disp_Pelvis_x_disp_s0028'], **plotExperimentMale)
ax13.plot(experiment_50M['Time_Pelvis_x_disp_s0029'], experiment_50M['Disp_Pelvis_x_disp_s0029'], **plotExperimentMale2)
ax13.set_ylim(-100 ,400)
ax14.plot(simData_50F.SLED.Pelvis_Disp_y.time-350., simData_50F.SLED.Pelvis_Disp_y.displacement, **plot50F)
ax14.plot(simData_50M.SLED.Pelvis_Disp_y.time-350, simData_50M.SLED.Pelvis_Disp_y.displacement, **plot50M)
ax14.plot(experiment_50F['Time_Pelvis_y_disp_s0212'], experiment_50F['Disp_Pelvis_y_disp_s0212'], **plotExperimentFemale)
ax14.plot(experiment_50F['Time_Pelvis_y_disp_s0373'], experiment_50F['Disp_Pelvis_y_disp_s0373'], **plotExperimentFemale2)
ax14.plot(experiment_50M['Time_Pelvis_y_disp_s0028'], experiment_50M['Disp_Pelvis_y_disp_s0028'], **plotExperimentMale)
ax14.plot(experiment_50M['Time_Pelvis_y_disp_s0029'], experiment_50M['Disp_Pelvis_y_disp_s0029'], **plotExperimentMale2)
ax14.set_ylim(-100 ,400)
ax15.plot(simData_50F.SLED.Pelvis_Disp_z.time-350., simData_50F.SLED.Pelvis_Disp_z.displacement-29, **plot50F)
ax15.plot(simData_50M.SLED.Pelvis_Disp_z.time-350, simData_50M.SLED.Pelvis_Disp_z.displacement-20, **plot50M)
ax15.plot(experiment_50F['Time_Pelvis_z_disp_s0212'], experiment_50F['Disp_Pelvis_z_disp_s0212'], **plotExperimentFemale)
ax15.plot(experiment_50F['Time_Pelvis_z_disp_s0373'], experiment_50F['Disp_Pelvis_z_disp_s0373'], **plotExperimentFemale2)
ax15.plot(experiment_50M['Time_Pelvis_z_disp_s0028'], experiment_50M['Disp_Pelvis_z_disp_s0028'], **plotExperimentMale)
ax15.plot(experiment_50M['Time_Pelvis_z_disp_s0029'], experiment_50M['Disp_Pelvis_z_disp_s0029'], **plotExperimentMale2)
ax15.set_ylim(-100 ,400)
fig_Kin.legend(loc='center left', bbox_to_anchor=(1, 0.5));
fig_Kin.tight_layout(pad=0.9);
Shoulder kinematic Plots#
In the figure below the predicted shoulder kinematics is compared to PMHS results for the 50F and 50M models.
Show code cell source
fig_Sh, ((ax1, ax2, ax3),(ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(15,10),
sharex=True, sharey=True)
fig_Sh.suptitle('Shoulder kinematics')
ax1.set_ylabel('Displacement (mm)')
ax4.set_ylabel('Displacement (mm)')
ax1.set(title='Right Shoulder X', xlabel='time (ms)')
ax2.set(title='Right Shoulder Y', xlabel='time (ms)')
ax3.set(title='Right Shoulder Z', xlabel='time (ms)')
ax4.set(title='Left Shoulder X', xlabel='time (ms)')
ax5.set(title='Left Shoulder Y', xlabel='time (ms)')
ax6.set(title='Left Shoulder Z', xlabel='time (ms)')
ax1.plot(simData_50F.SLED.Right_shoulder_Disp_x.time-350., simData_50F.SLED.Right_shoulder_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement+7, label = "VIVA+ 50F", **plot50F)
ax1.plot(simData_50M.SLED.Right_shoulder_Disp_x.time-350, simData_50M.SLED.Right_shoulder_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement, label = "VIVA+ 50M", **plot50M)
ax1.plot(experiment_50F['Time_R_shoulder_x_disp_s0212'], experiment_50F['Disp_R_shoulder_x_disp_s0212'], label = "s0212", **plotExperimentFemale)
ax1.plot(experiment_50F['Time_R_shoulder_x_disp_s0373'], experiment_50F['Disp_R_shoulder_x_disp_s0373'], label = "s0373", **plotExperimentFemale2)
ax1.plot(experiment_50M['Time_R_shoulder_x_disp_s0028'], experiment_50M['Disp_R_shoulder_x_disp_s0028'], label = "s0028", **plotExperimentMale)
ax1.plot(experiment_50M['Time_R_shoulder_x_disp_s0029'], experiment_50M['Disp_R_shoulder_x_disp_s0029'], label = "s0029", **plotExperimentMale2)
ax2.plot(simData_50F.SLED.Right_shoulder_Disp_y.time-350., simData_50F.SLED.Right_shoulder_Disp_y.displacement, **plot50F)
ax2.plot(simData_50M.SLED.Right_shoulder_Disp_y.time-350, simData_50M.SLED.Right_shoulder_Disp_y.displacement, **plot50M)
ax2.plot(experiment_50F['Time_R_shoulder_y_disp_s0212'], experiment_50F['Disp_R_shoulder_y_disp_s0212'], **plotExperimentFemale)
ax2.plot(experiment_50F['Time_R_shoulder_y_disp_s0373'], experiment_50F['Disp_R_shoulder_y_disp_s0373'], **plotExperimentFemale2)
ax2.plot(experiment_50M['Time_R_shoulder_y_disp_s0028'], experiment_50M['Disp_R_shoulder_y_disp_s0028'], **plotExperimentMale)
ax2.plot(experiment_50M['Time_R_shoulder_y_disp_s0029'], experiment_50M['Disp_R_shoulder_y_disp_s0029'], **plotExperimentMale2)
ax2.set_xlim(0,200)
ax2.set_ylim(-200 ,450)
ax3.plot(simData_50F.SLED.Right_shoulder_Disp_z.time-350., simData_50F.SLED.Right_shoulder_Disp_z.displacement-42, **plot50F)
ax3.plot(simData_50M.SLED.Right_shoulder_Disp_z.time-350, simData_50M.SLED.Right_shoulder_Disp_z.displacement-40, **plot50M)
ax3.plot(experiment_50F['Time_R_shoulder_z_disp_s0212'], experiment_50F['Disp_R_shoulder_z_disp_s0212'], **plotExperimentFemale)
ax3.plot(experiment_50F['Time_R_shoulder_z_disp_s0373'], experiment_50F['Disp_R_shoulder_z_disp_s0373'], **plotExperimentFemale2)
ax3.plot(experiment_50M['Time_R_shoulder_z_disp_s0028'], experiment_50M['Disp_R_shoulder_z_disp_s0028'], **plotExperimentMale)
ax3.plot(experiment_50M['Time_R_shoulder_z_disp_s0029'], experiment_50M['Disp_R_shoulder_z_disp_s0029'], **plotExperimentMale2)
ax4.plot(simData_50F.SLED.Left_shoulder_Disp_x.time-350., simData_50F.SLED.Left_shoulder_Disp_x.displacement-simData_50F.SLED.Sled_Disp_x.displacement+7, **plot50F)
ax4.plot(simData_50M.SLED.Left_shoulder_Disp_x.time-350, simData_50M.SLED.Left_shoulder_Disp_x.displacement-simData_50M.SLED.Sled_Disp_x.displacement, **plot50M)
ax4.plot(experiment_50F['Time_L_shoulder_x_disp_s0212'], experiment_50F['Disp_L_shoulder_x_disp_s0212'], **plotExperimentFemale)
ax4.plot(experiment_50F['Time_L_shoulder_x_disp_s0373'], experiment_50F['Disp_L_shoulder_x_disp_s0373'], **plotExperimentFemale2)
ax4.plot(experiment_50M['Time_L_shoulder_x_disp_s0028'], experiment_50M['Disp_L_shoulder_x_disp_s0028'], **plotExperimentMale)
ax4.plot(experiment_50M['Time_L_shoulder_x_disp_s0029'], experiment_50M['Disp_L_shoulder_x_disp_s0029'], **plotExperimentMale2)
ax5.plot(simData_50F.SLED.Left_shoulder_Disp_y.time-350., simData_50F.SLED.Left_shoulder_Disp_y.displacement, **plot50F)
ax5.plot(simData_50M.SLED.Left_shoulder_Disp_y.time-350, simData_50M.SLED.Left_shoulder_Disp_y.displacement, **plot50M)
ax5.plot(experiment_50F['Time_L_shoulder_y_disp_s0212'], experiment_50F['Disp_L_shoulder_y_disp_s0212'], **plotExperimentFemale)
ax5.plot(experiment_50F['Time_L_shoulder_y_disp_s0373'], experiment_50F['Disp_L_shoulder_y_disp_s0373'], **plotExperimentFemale2)
ax5.plot(experiment_50M['Time_L_shoulder_y_disp_s0028'], experiment_50M['Disp_L_shoulder_y_disp_s0028'], **plotExperimentMale)
ax5.plot(experiment_50M['Time_L_shoulder_y_disp_s0029'], experiment_50M['Disp_L_shoulder_y_disp_s0029'], **plotExperimentMale2)
ax6.plot(simData_50F.SLED.Left_shoulder_Disp_z.time-350., simData_50F.SLED.Left_shoulder_Disp_z.displacement-42, **plot50F)
ax6.plot(simData_50M.SLED.Left_shoulder_Disp_z.time-350, simData_50M.SLED.Left_shoulder_Disp_z.displacement-40, **plot50M)
ax6.plot(experiment_50F['Time_L_shoulder_z_disp_s0212'], experiment_50F['Disp_L_shoulder_z_disp_s0212'], **plotExperimentFemale)
ax6.plot(experiment_50F['Time_L_shoulder_z_disp_s0373'], experiment_50F['Disp_L_shoulder_z_disp_s0373'], **plotExperimentFemale2)
ax6.plot(experiment_50M['Time_L_shoulder_z_disp_s0028'], experiment_50M['Disp_L_shoulder_z_disp_s0028'], **plotExperimentMale)
ax6.plot(experiment_50M['Time_L_shoulder_z_disp_s0029'], experiment_50M['Disp_L_shoulder_z_disp_s0029'], **plotExperimentMale2)
fig_Sh.legend(loc='center left', bbox_to_anchor=(1, 0.5));
fig_Sh.tight_layout(pad=0.9)
Chest compression#
In the figure below the predicted chest compression is compared to PMHS results for the 50F and 50M models.
Show code cell source
fig_Chest, ((ax1, ax2, ax3),(ax4, ax5 , ax6),(ax7, ax8 , ax9)) = plt.subplots(nrows=3, ncols=3, figsize=(15,15),
sharex=True, sharey=True)
fig_Chest.suptitle('Chest compression')
ax1.set_ylabel('Displacement (mm)')
ax4.set_ylabel('Displacement (mm)')
ax1.set(title='Sternum X', xlabel='time (ms)')
ax2.set(title='Sternum Y', xlabel='time (ms)')
ax3.set(title='Sternum Z', xlabel='time (ms)')
ax4.set(title='Upper Right X', xlabel='time (ms)')
ax6.set(title='Upper Left X', xlabel='time (ms)')
ax7.set(title='Lower Right X', xlabel='time (ms)')
ax9.set(title='Lower Left X', xlabel='time (ms)')
ax1.plot(simData_50F.SLED.Sternum_Disp_x.time-350., simData_50F.SLED.Sternum_Disp_x.displacement-1, label = "VIVA+ 50F", **plot50F)
ax1.plot(simData_50M.SLED.Sternum_Disp_x.time-350, simData_50M.SLED.Sternum_Disp_x.displacement-4, label = "VIVA+ 50M", **plot50M)
ax1.plot(experiment_50F['Time_sternum_x_s0212'], experiment_50F['Disp_sternum_x_s0212'], label = "s0212", **plotExperimentFemale)
ax1.plot(experiment_50F['Time_sternum_x_s0373'], experiment_50F['Disp_sternum_x_s0373'], label = "s0373", **plotExperimentFemale2)
ax1.plot(experiment_50M['Time_sternum_x_s0028'], experiment_50M['Disp_sternum_x_s0028'], label = "s0028", **plotExperimentMale)
ax1.plot(experiment_50M['Time_sternum_x_s0029'], experiment_50M['Disp_sternum_x_s0029'], label = "s0029", **plotExperimentMale2)
# ax1.set_xlim(0,200)
# ax1.set_ylim(-40 ,10)
ax2.plot(simData_50F.SLED.Sternum_Disp_y.time-350., simData_50F.SLED.Sternum_Disp_y.displacement, **plot50F)
ax2.plot(simData_50M.SLED.Sternum_Disp_y.time-350, simData_50M.SLED.Sternum_Disp_y.displacement, **plot50M)
ax2.plot(experiment_50F['Time_sternum_y_s0212'], experiment_50F['Disp_sternum_y_s0212'], **plotExperimentFemale)
ax2.plot(experiment_50F['Time_sternum_y_s0373'], experiment_50F['Disp_sternum_y_s0373'], **plotExperimentFemale2)
ax2.plot(experiment_50M['Time_sternum_y_s0028'], experiment_50M['Disp_sternum_y_s0028'], **plotExperimentMale)
ax2.plot(experiment_50M['Time_sternum_y_s0029'], experiment_50M['Disp_sternum_y_s0029'], **plotExperimentMale2)
# ax2.set_xlim(0,200)
# ax2.set_ylim(-20 ,30)
ax3.plot(simData_50F.SLED.Sternum_Disp_z.time-350., simData_50F.SLED.Sternum_Disp_z.displacement-6, **plot50F)
ax3.plot(simData_50M.SLED.Sternum_Disp_z.time-350, simData_50M.SLED.Sternum_Disp_z.displacement-3, **plot50M)
ax3.plot(experiment_50F['Time_sternum_z_s0212'], experiment_50F['Disp_sternum_z_s0212'], **plotExperimentFemale)
ax3.plot(experiment_50F['Time_sternum_z_s0373'], experiment_50F['Disp_sternum_z_s0373'], **plotExperimentFemale2)
ax3.plot(experiment_50M['Time_sternum_z_s0028'], experiment_50M['Disp_sternum_z_s0028'], **plotExperimentMale)
ax3.plot(experiment_50M['Time_sternum_z_s0029'], experiment_50M['Disp_sternum_z_s0029'], **plotExperimentMale2)
# ax3.set_xlim(0,200)
# ax3.set_ylim(-20 ,30)
ax4.plot(simData_50F.SLED.Upper_right_Disp_x.time-350., simData_50F.SLED.Upper_right_Disp_x.displacement, **plot50F)
ax4.plot(simData_50M.SLED.Upper_right_Disp_x.time-350, simData_50M.SLED.Upper_right_Disp_x.displacement-4, **plot50M)
ax4.plot(experiment_50F['Time_Upper_right_x_s0212'], experiment_50F['Disp_Upper_right_x_s0212'], **plotExperimentFemale)
ax4.plot(experiment_50F['Time_Upper_right_x_s0373'], experiment_50F['Disp_Upper_right_x_s0373'], **plotExperimentFemale2)
ax4.plot(experiment_50M['Time_Upper_right_x_s0028'], experiment_50M['Disp_Upper_right_x_s0028'], **plotExperimentMale)
ax4.plot(experiment_50M['Time_Upper_right_x_s0029'], experiment_50M['Disp_Upper_right_x_s0029'], **plotExperimentMale2)
# ax4.set_xlim(0,200)
# ax4.set_ylim(-30 ,20)
ax6.plot(simData_50F.SLED.Upper_left_Disp_x.time-350., simData_50F.SLED.Upper_left_Disp_x.displacement, **plot50F)
ax6.plot(simData_50M.SLED.Upper_left_Disp_x.time-350, simData_50M.SLED.Upper_left_Disp_x.displacement-4, **plot50M)
ax6.plot(experiment_50F['Time_Upper_left_x_s0212'], experiment_50F['Disp_Upper_left_x_s0212'], **plotExperimentFemale)
ax6.plot(experiment_50F['Time_Upper_left_x_s0373'], experiment_50F['Disp_Upper_left_x_s0373'], **plotExperimentFemale2)
ax6.plot(experiment_50M['Time_Upper_left_x_s0028'], experiment_50M['Disp_Upper_left_x_s0028'], **plotExperimentMale)
ax6.plot(experiment_50M['Time_Upper_left_x_s0029'], experiment_50M['Disp_Upper_left_x_s0029'], **plotExperimentMale2)
# ax6.set_xlim(0,200)
# ax6.set_ylim(-40 ,10)
ax7.plot(simData_50F.SLED.Lower_right_Disp_x.time-350., simData_50F.SLED.Lower_right_Disp_x.displacement+3, **plot50F)
ax7.plot(simData_50M.SLED.Lower_right_Disp_x.time-350, simData_50M.SLED.Lower_right_Disp_x.displacement-3, **plot50M)
ax7.plot(experiment_50F['Time_Lower_right_x_s0212'], experiment_50F['Disp_Lower_right_x_s0212'], **plotExperimentFemale)
ax7.plot(experiment_50F['Time_Lower_right_x_s0373'], experiment_50F['Disp_lower_right_x_s0373'], **plotExperimentFemale2)
ax7.plot(experiment_50M['Time_Lower_right_x_s0028'], experiment_50M['Disp_Lower_right_x_s0028'], **plotExperimentMale)
ax7.plot(experiment_50M['Time_Lower_right_x_s0029'], experiment_50M['Disp_lower_right_x_s0029'], **plotExperimentMale2)
# ax7.set_xlim(0,200)
# ax7.set_ylim(-10 ,40)
ax9.plot(simData_50F.SLED.Lower_left_Disp_x.time-350., simData_50F.SLED.Lower_left_Disp_x.displacement+3, **plot50F)
ax9.plot(simData_50M.SLED.Lower_left_Disp_x.time-350, simData_50M.SLED.Lower_left_Disp_x.displacement-3, **plot50M)
ax9.plot(experiment_50F['Time_Lower_left_x_s0212'], experiment_50F['Disp_Lower_left_x_s0212'], **plotExperimentFemale)
ax9.plot(experiment_50F['Time_Lower_left_x_s0373'], experiment_50F['Disp_lower_left_x_s0373'], **plotExperimentFemale2)
ax9.plot(experiment_50M['Time_Lower_left_x_s0028'], experiment_50M['Disp_Lower_left_x_s0028'], **plotExperimentMale)
ax9.plot(experiment_50M['Time_Lower_left_x_s0029'], experiment_50M['Disp_lower_left_x_s0029'], **plotExperimentMale2)
ax9.set_xlim(0,200)
#ax9.set_ylim(-40 ,20)
ax9.set_ylim(-40 ,50)
fig_Chest.legend(loc='center left', bbox_to_anchor=(0.5, 0.5));
fig_Chest.tight_layout(pad=1.0)
fig_Chest.delaxes(ax5)
fig_Chest.delaxes(ax8);