Contribution of individual muscles to knee loads

Hi all,

In Twente/Nijmegen we are busy with building a knee simulator. For this purpose we would like to know the contributions of the Quadriceps and Hamstring muscles on the knee load during walking. Until now, all of our attempts failed.

We use the gaitlowerextremity from the old repository (AMMRV1.2) and edited the LegMoments.Any in the LegTD folder and added:

AnyForceMomentMeasure2 KneeNetMomentMuscleQuadriceps = {
AnyRefNode &ref = …Seg.Thigh.KneeJoint.RotNode;
AnySeg &seg2=…Seg.Shank;
AnySeg &seg1=…Seg.Foot;
AnySeg &seg3=…Seg.Talus;

AnyReacForce &jnt=…Jnt.PatellaMovement.Reaction;

#include “LegMuscleNamesQuadriceps.any”
AnyVec3 Mlocal=Mref.Axes;
AnyVec3 Flocal=F

The folder LegMuscleNamesQuadriceps.any contains only the Quadriceps muscles (Vasti + RF). However, this does not produce any realistic results (e.g., we obtain forces produced by the Quadriceps and Hamstring that are larger than the total knee load :confused:).

So our question to the AnyBody members: how do we obtain the contribution of the Quadriceps muscles to the knee loads (all forces and moments). Should we use the AnyForceMomentMeasure2? Which segments to include?

Thanks in advance!

René Fluit

Hey René,

I just tried to reproduce your example and changed the LegMoment file as you describe and added a LegMuscleNamesQuad.any file with the Quad and Hamstring muscles. However, I could not see the higher loads that you describe. It seemed correct to me. Either I made something wrong, or just different…
Could you upload the files that you changed? I also use the newest Repository (1.3.1.).

Have a nice weekend

Hi Amir,

Attached you find the edited any files. I now applied it to AMMRV1.3.1 and I forgot to say I am using the TDleg (3E muscles).

If the AnyChart FX 2, I plotted the time versus Main.Studies.InverseDynamicStudy.Output.HumanModel.Right.Leg.MomentMeasure.KneeNetMomentMuscl*.FProxDist. FProxDist is the vertical knee load in the local reference frame of the knee. As you can hopefully reproduce, the FProxDist of the Quadriceps and Hamstrings exceed the total vertical knee load (predominantly after heel contact). Do you have any idea why?

Thanks in advance,


Hi Rene,

I hope there is no missunderstandiung, but I was running the example with the GaitLowerExtremity.
When I talk about the total Knee loads, I’m thinking of Knee Reaction Force (picture slide 2).
When I look at the Ham or Quad- ProxDist Loads (picture slide 1), they seem fine to me. Am I looking into something wrong? Or do I just not understand you?

Sorry for that!

Hi Amir,

We have solved our problem, it was a small error :D.

The image you uploaded (slide1) cannot be correct (we obtained the same results), since the compressive knee load of the Hamstrings and Quadriceps together exceeds the total compressive knee load.

The error is in the calculation of the Hamstring contribution to the knee load. We accidentily also included the bold line, which is the contibution of the patella to the knee load. This however, should NOT be included in the calculation (the patella is not part of the hamstrings)!!!

AnyForceMomentMeasure2 KneeNetMomentMuscleHamstrings = {
AnyRefNode &ref = …Seg.Shank.KneeJoint;
AnySeg &seg1=…Seg.Shank;
AnySeg &seg2=…Seg.Foot;
AnySeg &seg3=…Seg.Talus;

AnyReacForce &jnt=…Jnt.PatellaMovement.Reaction; :rolleyes:
#include “LegMuscleNamesHamstrings.any”

  AnyVec3 Mlocal=M*ref.Axes;
  AnyVec3 Flocal=F*ref.Axes;
  AnyVar MKneeFlexion=Mlocal[2];
  AnyVar FProxDist=Flocal[1];


Attached you find a nice in which we decomposed the knee load into contributions of the quadriceps (= patella), gastroc, hamstrings and the rest (AMMRV1.3.1 gait lower extremity, gait-001, 3E muscles, MinMaxAux recruitment, ).

Thanks for your help Amir :slight_smile: