Process Experimental Data - OpenKnee(s)

Kinematics

The experimentally measured tibial kinetics are imported from the appropriate .tdms file, and the data under the heading State.JCS are utilized. Two adjustments are made to the experimental data. The first converts the relative joint kinematics reported in State.JCS to absolute joint kinematics. The second converts to the sign conventions used by CSU.

Kinematics Adjustment 1 - Offset

The experimentally measured kinematics from OpenKnee(s) reports the change in kinematics relative to a “neutral” joint position. These kinematics are adjusted to the absolute joint kinematics because the knee model inputs are absolute kinematics, and the model’s kinematic results are reported as absolute kinematics. This adjustment is made by applying a constant offset to the reported experimental kinematics. This offset is the joint kinematics necessary needed to achieve a experimentally measured “neutral” position.

The kinematics needed to achieve this “neutral” joint position are reported in the State.cfg file. Given that the kinematics from the .tdms file under the State.JCS heading are utilized, the neutral position from the [JCS] block of the State.cfg file is used. Below is an example of the relevant parts from the State.cfg file.

[JCS]
Position Offset (m,rad) = "<size(s)=6> -0.0006018416 -0.0042514883 -0.0255631685 0.1450310182 0.0232244115 -0.2681618244"

These values are parsed using custom Python scripts, and the values are converted from m to mm, and radians to degrees. These values are taken to correspond to the following kinematics in this order: [Medial tibial translation, Posterior tibial translation, Superior tibial translation, Flexion, Valgus, Internal tibial rotation].

The absolute joint kinematics are defined by adding the offset values to the corresponding kinematics from the .tdms file (State.JCS).

Kinematics Adjustment 2 - CSU convention

The joint kinematics are converted to the convention used by CSU after the offsets are applied to the kinematics. This adjustment is made to keep the experimental descriptions of motion consistent the the descriptions of motion output by the knee model. The CSU convention describes motions as:

  • Medial tibial translation
  • Anterior tibial translation
  • Superior tibial translation
  • Flexion
  • Varus
  • Internal tibial rotation.

To convert to the CSU convention, the sign of the kinematics for two motions are changed:

  1. JCS Posterior kinematics are multiplied by -1 to convert to anterior tibial translation.
  2. JCS Valgus kinematics are multiplied by -1 to convert to varus rotation.

Kinetics

The experimentally measured tibial kinetics are imported from the appropriate .tdms file, and the data under the heading State.JCS Load are used to define the load inputs for the test case simulation step. However, the data is processed to adjust the description of the positive loading directions. These adjustments are made by changing the sign of the reported data.

The following sections described how the experimentally measured loads are adjusted. Note that the sign changes may be redundant, however this is done intentionally to keep a consistent workflow between data sources and between right and left knee models.

Kinetics Adjustment 1 - CSU convention

The first adjustment is used to change from the reported SimVitro convention on directions to the CSU convention. The CSU convention has the positive x direction pointing to the right, and the positive y direction pointing anteriorly. The signs of the data reported in the .tdms file under State.JCS Load are adjusted based on their descriptions (Table 1). This step is not strictly necessary, however this keeps the data consistent with the modeling workflow used at CSU.

These adjustments are made when the data is imported from the .tdms file, and before the loading profiles are defined for the Abaqus simulation. The loading profiles are defined using these adjustments, and the data can be found in the appropriate .inp files. Below is a description of the adjustments described in Table 1

  • Lateral Drawer is converted to medial tibial drawer by multiplying the corresponding experimental data by -1
  • Anterior Drawer is not adjusted
  • Distraction is not adjusted
  • Extension Torque is converted to flexion torque by multiplying the corresponding experimental data by -1
  • Varus Torque is not adjusted
  • External Rotation Torque is converted to internal tibial rotation torque by multiplying the corresponding experimental data by -1

Kinetics Adjustment 2 - Right or Left Knee

The signs of the loads may be changed depending on whether a right or left knee specimen is being simulated. This is because the loads are applied with respect to the fixed tibial coordinate system, and the positive directions of this coordinate system may not match the experimental data’s loading directions.

For example, based on the CSU convention, the positive x direction points to the right. The SimVitro reported load that corresponds to this direction is Lateral Drawer. For a right knee, the Lateral Drawer direction and the tibia’s x-axis point in the same direction. Conversely, for a left knee the Lateral Drawer direction and the tibia’s x-axis point in opposite directions. The sign of the reported data is changed because the loads are applied with respect to the tibia’s fixed coordinate system.

These adjustments are applied in the part of the Abaqus .inp file that is used to define the test cases step. An example of these adjustments can be seen in the code block below.

Below is a description of how the experimental loads are adjusted for each degree of freedom.
  • After the previous adjustment (Table 1), the data is described as medial tibial drawer. For a right knee, the data is multiplied by -1 (Table 1) to change the load to lateral tibial drawer.
  • The data is reported as anterior tibial drawer, and not adjusted in the previous step (Table 1). The anterior direction is in the positive y relative to the fixed tibial coordinate system for left and right knees, so this value is not changed for right or left knees (Table 1).
  • The data is reported as distraction, and not adjusted in the previous step (Table 1). A load that acts in the inferior direction relative to the fixed tibial coordinate system will cause joint distraction regardless of a right or left knee. The positive direction for the tibia’s z-axis points in the superior direction, therefore the sign for both right and left knees is changed to make the distraction load act in the inferior direction (Table 1).
  • The flexion angle of the joint is prescribed, so the extension torque is not applicable.
  • The data is reported as varus torque, and not adjusted in the previous step (Table 1). The y-axis of tibia’s fixed coordinate system points in the anterior direction. For a right knee, a positive torque around the tibia’s y-axis causes varus, so the sign is not changed for a right knee. However the sign is changed for a left knee because a positive torque about the y-axis of a right tibia causes valgus.
  • After the previous adjustment (Table 1), the data is described as internal tibial rotation torque. A positive rotation about the positive z-direction of a right knee causes internal tibial rotation, so the sign is not changed for a right knee. However the sign is changed for a left knee because a positive rotation about the positive z-direction of a left knee causes external tibial rotation.
Table 1 The degree of freedom at the node that the loads are applied to, and the corresponding load description, and the relevant sign convention changes. The reported description is from the given .tdms files that contain experimental data under the State.JCS Load heading.
Axis Reported CSU convention Right knee Left knee
\(x_1\) JCS Load Lateral Drawer_LP Filtered 1.0 Hz -1 -1 1
\(x_2\) JCS Load Anterior Drawer_LP Filtered 1.0 Hz 1 1 1
\(x_3\) JCS Load Distraction_LP Filtered 1.0 Hz 1 -1 -1
\(x_4\) (N/A) JCS Load Extension Torque_LP Filtered 1.0 Hz -1 1 (N/A) 1 (N/A)
\(x_5\) JCS Load Varus Torque_LP Filtered 1.0 Hz 1 1 -1
\(x_6\) JCS Load External Rotation Torque_LP Filtered 1.0 Hz -1 1 -1

Below is an example code showing how loads are specified in the Abaqus input file for a simulation of a left knee:

** Medial tibial drawer force, -1. for right knee and 1. for left knee
*CLOAD, amplitude=medialTibialDrawerForce, follower, op=new
JointCoordSys.1, 1, 1.
** Anterior tibial drawer force, 1. for right and left knee
*CLOAD, amplitude=anteriorTibialDrawerForce, follower, op=new
JointCoordSys.1, 2, 1.
** Distraction force, -1. for right and left knee
*CLOAD, amplitude=distractionForce, follower, op=new
JointCoordSys.1, 3, -1.
** Varus torque, 1. for right knee and -1. for left knee
*CLOAD, amplitude=varusTorque, follower, op=new
JointCoordSys.1, 5, -1.
** Internal tibial rotation torque, 1. for right knee and -1. for left knee
*CLOAD, amplitude=internalTibialRotationTorque, follower, op=new
JointCoordSys.1, 6, -1.

Where each amplitude is the magnitude of the corresponding load, where the adjustments from adjustment 1 are reflected.

The node JointCoordSys.1 is the node that is coincident with the origin of the tibia’s fixed coordinate system. The integer following JointCoordSys.1 indicates the degree of freedom that the load is applied to, and this corresponds with \(x_i\) in Table 1. The final integer is multiplied by the specified amplitude. This is used to adjust for a right or left knee according to Table 1.