FEA Output

Hi, I have a question concerning the FEA Output by using the AnyMechOutputFileForceExport. What do the variables Jmatrix and rCoM show?
Jmatrix=jacobi matrix…?

best regards

Hi,
The Jmatrix member is an output variable (3 by 3 matrix) containing the resulting inertia matrix about the segment coordinate system. the rCoM refers to the position of the Center of Mass. You may also have a look at the definiton of AnySeg in the Ref manual.
Best regards,
Sebastian

Hi, thanks for reply, I have another problem concerning the calculations of the forces acting on a segment.
The FEA output shows the forces of the segment like a free body diagram. I use the bike2D model and I tried to recalculate the forces on the foot segment.
As I read, the forces refer to the global coordinate system.
I think I can calculate the forces in this way:

m*rddot=Fx_sol+Fx_gas+Fx_tibant+Fx_anklereaction+Fx_pedaljoint

Do you agree?
I tried to recalculate for instance the Fx_anklereaction (reaction force at the ankle in the x-direction) but I don’t get the right values? Are there any other components which I have to consider, maybe the centrifugal force from the pedal?

best regards

Hi,
just have a look at the FEA output, the given force entries should be all you need. The only thing that is currently not covered are wrapping muscles.
You can also simply use an AnyForceMomentMeasure2 to compute the forces for a given point/segment.
Best regards,
Sebastian

Hi, and all forces acting on the segment are shown in the global coordinate system? Thanks

Best regards

Hi,
in the FEA output its by default shown in global, if you switch UseRefFrameOnOff = On;
its given in local. The AnyForceMometMeasure2 given the forces in global, you can change them to local by multiplying the result with the orientation of the ref frames, have a look at the tips and tricks section on anyscript.org.
Best regards,
Sebastian

Hi, could you please have a look to my calculation problem, I don’t understand why I got the false values. That is the FEA Output for the bike2D modell of the right foot:

t=6.800000000000004e-001
step_no=68

Segment[0]: Main.Model.Leg2D.Right.Seg.Foot
m=1.050000000000000e+000
Jmatrix=5.405558155080213e-003,0.000000000000000e+000,0.000000000000000e+000;0.000000000000000e+000,7.311163101604278e-004,0.000000000000000e+000;0.000000000000000e+000,0.000000000000000e+000,5.405558155080213e-003;
rCoM=-3.820599045145594e-003;-7.723824796252762e-001;1.060000003858025e-001;
r=-3.820599045145594e-003;-7.723824796252762e-001;1.060000003858025e-001;
Axes=6.075337981701425e-001,-7.942938272962726e-001,2.135124645880104e-017;7.942938272962726e-001,6.075337981701425e-001,4.994934382948993e-010;-3.967445677842340e-010,-3.034591287692005e-010,1.000000000000000e+000;
rDot=-4.547925220710888e-001;9.664833316282251e-001;-4.827520726470534e-010;
Omega=-2.922569933477225e-017;-6.815342212246583e-010;-1.364450799401256e+000;
rDDot=6.072593868071620e+000;2.857545692092792e+000;-1.427325452566925e-009;
OmegaDot=1.669793646091977e-016;3.907754697333887e-009;7.823435499971804e+000;

Force[0]:
Name=Main.Model.Leg2D.Right.Mus.Gas
Class=AnyMainFolder.AnyFolder.AnyFolder.AnyFolder.AnyFolder.AnyViaPointMuscle
Segment=Main.Model.Leg2D.Right.Seg.Foot
SegmentID=0
Pos=-6.687832232449312e-002;-7.077216496365941e-001;1.060000003535049e-001;
RefFrame=Main.Model.Leg2D.Right.Seg.Foot.GasNodeR
NumComponents=1
F[0]=3.522430710746219e+001;4.118135972166583e+001;-2.056988211726580e-008;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;

Force[1]:
Name=Main.Model.Leg2D.Right.Mus.Sol
Class=AnyMainFolder.AnyFolder.AnyFolder.AnyFolder.AnyFolder.AnyViaPointMuscle
Segment=Main.Model.Leg2D.Right.Seg.Foot
SegmentID=0
Pos=-6.687832232449312e-002;-7.077216496365941e-001;1.060000003535049e-001;
RefFrame=Main.Model.Leg2D.Right.Seg.Foot.SolNodeR
NumComponents=1
F[0]=4.840700983279683e-006;4.674081008595798e-006;-2.334683397607441e-015;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;

Force[2]:
Name=Main.Model.Leg2D.Right.Mus.TibAnt
Class=AnyMainFolder.AnyFolder.AnyFolder.AnyFolder.AnyFolder.AnyViaPointMuscle
Segment=Main.Model.Leg2D.Right.Seg.Foot
SegmentID=0
Pos=1.422199896230279e-002;-7.863716203115950e-001;1.060000003927900e-001;
RefFrame=Main.Model.Leg2D.Right.Seg.Foot.Tib_AntNodeR
NumComponents=1
F[0]=-1.526330586015034e+000;1.725858347481354e+001;-8.620693494600669e-009;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;

Force[3]:
Name=Main.Model.Leg2D.Right.Jnt.Ankle.Constraints.Reaction
Class=AnyMainFolder.AnyFolder.AnyFolder.AnyFolder.AnyFolder.AnyRevoluteJoint.AnyKinEq.AnyReacForce
Segment=Main.Model.Leg2D.Right.Seg.Foot
SegmentID=0
Pos=-2.498301011739444e-002;-7.259804068525092e-001;1.060000003626250e-001;
RefFrame=Main.Model.Leg2D.Right.Seg.Foot.AnkleJoint
NumComponents=5
F[0]=-1.217182883013082e+001;9.183400179931384e+000;-4.587046643385947e-009;
M[0]=1.227952118015941e-015;1.227952118015941e-015;1.227952118015941e-015;
F[1]=-5.716819175649931e+001;-7.577165657104190e+001;3.784744179536891e-008;
M[1]=-4.686573930212944e-015;-4.686573930212944e-015;-4.686573930212944e-015;
F[2]=-1.235837986674448e-025;-2.895905920034512e-018;-5.797685611489112e-009;
M[2]=-3.034960072016088e-033;-3.034960072016088e-033;-3.034960072016088e-033;
F[3]=0.000000000000000e+000;0.000000000000000e+000;0.000000000000000e+000;
M[3]=1.138631545185053e-010;-8.590746126040930e-011;4.291021077005511e-020;
F[4]=0.000000000000000e+000;0.000000000000000e+000;0.000000000000000e+000;
M[4]=4.541277033735598e-009;6.019082871465035e-009;-3.006492495443397e-018;

Force[4]:
Name=Main.Model.BikeLegConnection.JointsAndDrivers.Right.PedalJointLinConstraints.Reaction
Class=AnyMainFolder.AnyFolder.AnyFolder.AnyFolder.AnyFolder.AnyKinEq.AnyReacForce
Segment=Main.Model.Leg2D.Right.Seg.Foot
SegmentID=0
Pos=-3.820599045145594e-003;-7.723824796252762e-001;1.060000003858025e-001;
RefFrame=Main.Model.Leg2D.Right.Seg.Foot.GroundJoint
NumComponents=2
F[0]=4.201826278532737e+001;-0.000000000000000e+000;-0.000000000000000e+000;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;
F[1]=-0.000000000000000e+000;2.144923150172542e+001;-0.000000000000000e+000;
M[1]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;

Force[5]:
Name=Main.Model.BikeLegConnection.JointsAndDrivers.Right.PedalRRotationFourier.Reaction
Class=AnyMainFolder.AnyFolder.AnyFolder.AnyFolder.AnyFolder.AnyKinEqFourierDriver.AnyReacForce
Segment=Main.Model.Leg2D.Right.Seg.Foot
SegmentID=0
Pos=-3.820599045145594e-003;-7.723824796252762e-001;1.060000003858025e-001;
RefFrame=Main.Model.Leg2D.Right.Seg.Foot.GroundJoint
NumComponents=1
F[0]=0.000000000000000e+000;0.000000000000000e+000;0.000000000000000e+000;
M[0]=-0.000000000000000e+000;0.000000000000000e+000;0.000000000000000e+000;

I would like to recalculate the x-force (F[0]) of the Main.Model.Leg2D.Right.Jnt.Ankle.Constraints.Reaction, which is in this case -12,17N.

In my opinion, the sum of all other forces in x-direction refer to the global coordinate system (positiv x direction right,positiv y direction up) should give my the result, which means:

-1.05*6.072593868071620e+000-3.522430710746219e+001-4.840700983279683e-006+1.526330586015034e+000-4.201826278532737e+001 = -82N

I think the result should be -12,17N.

Do you know why?
Thanks in advanced.

Best regards

Hi,
its not that simple, the forces are then in different coordinate systems. The ankle force is given in the coordinate system of the anklejoint node on the shank. Something like this will compute the free body diagram of the ankle joint:
AnyForceMomentMeasure2 AnkleForce =
{
//IncludeGravity = On;
//IncludeInertiaForces = Off;
AnyForceBase &f1 = Main.Model.Leg2D.Right.Mus.Ham;
AnyForceBase &f2 = Main.Model.Leg2D.Right.Mus.BiFemSh ;
AnyForceBase &f3 = Main.Model.Leg2D.Right.Mus.GlutMax;
AnyForceBase &f4 = Main.Model.Leg2D.Right.Mus.RectFem;
AnyForceBase &f5 = Main.Model.Leg2D.Right.Mus.Vasti;
AnyForceBase &f6 = Main.Model.Leg2D.Right.Mus.Gas;
AnyForceBase &f7 = Main.Model.Leg2D.Right.Mus.Sol;
AnyForceBase &f8 = Main.Model.Leg2D.Right.Mus.TibAnt;
AnyForceBase &f9 = Main.Model.BikeLegConnection.JointsAndDrivers.Right.PedalJointLinConstraints.Reaction;

  AnyRefFrame &ankle = Main.Model.Leg2D.Right.Seg.Foot.AnkleJoint;
  //AnyRefFrame &<Insert name1> = <Insert object reference (or full object definition)>; You can make any number of these objects!
  AnySeg &seg = Main.Model.Leg2D.Right.Seg.Foot;
  //AnySeg &<Insert name1> = <Insert object reference (or full object definition)>; You can make any number of these objects!
ankle = {AnyDrawRefFrame drws = {RGB={1,0,0};ScaleXYZ = {1,1,1}*0.4;};};
};
AnyVector Ankletrans = AnkleForce.F*Main.Model.Leg2D.Right.Seg.Shank.AnkleJoint.Axes;//transform into ankle joint coordinate system

};
Best regards,
Sebastian

Thank you, now I get the right values. But why are these forces at the ankle joint are not the totally forces? Is it not allowed to use a freebody diagram to show the totally force at a joint? Which forces are missing, from the shank?
I think I get the totally forces at the anklejoint from this value:

Main.Study.Output.Model.HumanFolder.Right.JntDOF.Ankle.Constraints.Reaction.Fout

Is this right?
But these are not the same values compared to the freebody diagram at the ankle joint.

Is is also possible to compute the joint moment at any time? Maybe with the AnyForceMomentMeasure2 ?But this object calculates only the forces, not the moment?

Best regards

Hi Manuel,
I’m not sure if I understand the question. In the Contraints.Reaction.Fout only the joint reaction forces are shown. e.g. no moments for the free joint axis. You can compute the joint moments, first they are given in the selected output folder, their definition can be found e.g. in the LegMoments.any file (Body\AAUHuman\Leg)
Best regards,
Sebastian

What I mean is that the computed ankle joint forces with the AnyForceMomentMeasure2 (see below) object have not the same values as the Main.Study.Output.Model.HumanFolder.Right.JntDOF.Ankle.Constraints.Reaction.Fout
I think these values should be equal, or?
Best regards

AnyForceMomentMeasure2 AnkleForce =
{
IncludeGravity = On;
IncludeInertiaForces = On;

AnyForceBase &f1 = Main.Model.Leg2D.Right.Mus.Ham;
AnyForceBase &f2 = Main.Model.Leg2D.Right.Mus.BiFemSh ;
AnyForceBase &f3 = Main.Model.Leg2D.Right.Mus.GlutMax;
AnyForceBase &f4 = Main.Model.Leg2D.Right.Mus.RectFem;
AnyForceBase &f5 = Main.Model.Leg2D.Right.Mus.Vasti;
AnyForceBase &f6 = Main.Model.Leg2D.Right.Mus.Gas;
AnyForceBase &f7 = Main.Model.Leg2D.Right.Mus.Sol;
AnyForceBase &f8 = Main.Model.Leg2D.Right.Mus.TibAnt;

AnyForceBase &f9 = Main.Model.BikeLegConnection.JointsAndDrivers.Right.PedalJointLinConstraints.Reaction;

AnyRefFrame &ankle = Main.Model.Leg2D.Right.Seg.Foot.AnkleJoint;
//AnyRefFrame &<Insert name1> = <Insert object reference (or full object definition)>; You can make any number of these objects!
AnySeg &seg = Main.Model.Leg2D.Right.Seg.Foot;
//AnySeg &<Insert name1> = <Insert object reference (or full object definition)>; You can make any number of these objects!
ankle = {AnyDrawRefFrame drws = {RGB={1,0,0};ScaleXYZ = {1,1,1}*0.8;};};
};

Yes, they should be the same, but they are given in a different coordinate system. They are given in global.
Best regards,
Sebastian

Hi, I would like to calculate the acting Forces on the Kneejoint, for a freebody diagram.
is this the right syntax to compute them? The results are given in the global coordinate system?

AnyForceMomentMeasure2 KneeForce =
{
IncludeGravity = On;
IncludeInertiaForces = On;

AnyForceBase &f1 = Main.Model.Leg2D.Right.Mus.Ham;
AnyForceBase &f2 = Main.Model.Leg2D.Right.Mus.BiFemSh ;
AnyForceBase &f3 = Main.Model.Leg2D.Right.Mus.GlutMax;
AnyForceBase &f4 = Main.Model.Leg2D.Right.Mus.RectFem;
AnyForceBase &f5 = Main.Model.Leg2D.Right.Mus.Vasti;
AnyForceBase &f6 = Main.Model.Leg2D.Right.Mus.Gas;
AnyForceBase &f7 = Main.Model.Leg2D.Right.Mus.Sol;
AnyForceBase &f8 = Main.Model.Leg2D.Right.Mus.TibAnt;

AnyForceBase &f9 = Main.Model.BikeLegConnection.JointsAndDrivers.Right.PedalJointLinConstraints.Reaction;

AnyRefFrame &knee = Main.Model.Leg2D.Right.Seg.Shank.KneeJoint;
//AnyRefFrame &<Insert name1> = <Insert object reference (or full object definition)>; You can make any number of these objects!
AnySeg &seg = Main.Model.Leg2D.Right.Seg.Foot;
AnySeg &seg1 = Main.Model.Leg2D.Right.Seg.Shank;
//AnySeg &<Insert name1> = <Insert object reference (or full object definition)>; You can make any number of these objects!
//ankle = {AnyDrawRefFrame drws = {RGB={1,0,0};ScaleXYZ = {1,1,1}*0.8;};};
};

i am not sure about the these line:
AnySeg &seg = Main.Model.Leg2D.Right.Seg.Foot;

Best regards,
Manuel

Hi Manuel,

The syntax looks right, the foot segment has to be included as you did. And yes the results are given in global coordinate system.

Best regards, Sylvain.

ok, now i get the right values…is it right, that the computed forces of the

AnyForceMomentMeasure2 KneeForce

are the totally joint forces which are acting on the knee (in global coordinate system)?

In comparison with the
Main.Study.Output.Model.HumanFolder.Right.JntDOF.Knee.Constraints.Reaction.Fout
the values are not the same, the reason is, that this value is given in the local coordinate system??

Best regards,
Manuel

ok, now i get the right values…is it right, that the computed forces of the

AnyForceMomentMeasure2 KneeForce

are the totally joint forces which are acting on the knee?

Best regards,
Manuel

Hi Manuel,
yes, thats true.
Best regards,
Sebastian