Questions about biceps activity in different external forces

Hello!
I met two questions when using AB. Firstly,in the “standing model.main”, I set the right shoulder flexion as 60 degrees, degrees elbow flexion as 90 degrees, and wrist flexion as 10 degrees, then applied an external force on the right hand( size of 101.34N). After Inverse dynamics calculated, the results of “Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.biceps_brachii_caput_breve.Activity” are “3.30e-015, 2.78e-016” ,which are close to 0. However, when the external force becomes smaller(for example an external force of 13.50N) , biceps activity (7.17E-02, 5.37E-03).I’m confused about that-why the activity is bigger than that under a smaller external force. Could anyone tell me the reason? Thanks very much.
Secondly, I’m wondering whether the move “fist” can be constructed in AB. I can not find the code to make the finger flexing, please give me some advice.
Thank you very much! Looking forward to your reply.

Dear Zhang Jing,

1: is it possible you applied the force in the wrong direction = upwards? How did you define the force in the hand?

2: there is the chance to work with the detailed hand, you can switch to the detailed hand using BM statements:
http://www.anybodytech.com/fileadmin/AnyBody/Docs/Tutorials/A_Getting_started_AMMR/lesson3.html

I hope that helps

Dear Amir,
Thanks very much for your reply. About the direction of the external force applied on the hand, it is along positive direction of the X-axis —the direction of force pointing to the front of the standing model man.
I forgot to say that the body size have been altered before, to simulate a subject’s size. The height was set as 169 cm. Other parameters of the body also have been modified, including the body weight, the ulna length,the humerus length, and the feet length. This maybe cause the muscle force values to change ​​, but I think the magnitude relationship of bicep muscle forces between different external forces should be the same with the model in standard scaling.
I also collected a subject’s bicep’s EMG under the two force(forces were generated by his initiative). The average rectified value of the EMG uner the 101N force is significantly higher than that under 40N force.
So,is this because the reverse dynamics calculations of AnyBody is different from the force producing under central nervous system’s controls? If not so, could you give me some other suggestions? Thank you very much.
Looking forward to your reply.
Best wishes to you
ZHANG Jing

Dear Zhang Jing,

I can say that there is some wrong in your model. THe muscle activation increases when applying a higher force. Can you upload it please, just the model folder?
I think the applied force is not correctly applied.

Dear Amir,
I changed the parameters in the folder used to set the posture and load. The codes are as below:(the load is 101.34N . in another conditon, I set a smaller force , which is 13.5N. The difference for the two calculation is just the value of the external force.)

Thank you very much !
Best wishes.
Zhang Jing

AnyFolder Mannequin = {

AnyFolder Posture = {
//This controls the position of the pelvi wrt. to the global reference frame
AnyVar PelvisPosX=0.046;
AnyVar PelvisPosY=1.16;
AnyVar PelvisPosZ=0;

//This controls the rotation of the pelvis wrt. to the global reference frame
AnyVar PelvisRotX=0;
AnyVar PelvisRotY=0;
AnyVar PelvisRotZ=0;

// These variables control the rotation of the thorax wrt the
// pelvis    
AnyVar PelvisThoraxExtension=0; 
AnyVar PelvisThoraxLateralBending=0;  
AnyVar PelvisThoraxRotation=0;        

AnyVar NeckExtension=0; 

AnyFolder Right = {
  //Arm 
  AnyVar SternoClavicularProtraction=-23;   //This value is not used for initial position
  AnyVar SternoClavicularElevation=11.5;    //This value is not used for initial position
  AnyVar SternoClavicularAxialRotation=-20; //This value is not used for initial position
  
  AnyVar GlenohumeralFlexion =28; 
  AnyVar GlenohumeralAbduction = 0; 
  AnyVar GlenohumeralExternalRotation = 0; 
  
  AnyVar ElbowFlexion = 90; 
  AnyVar ElbowPronation = -5.0;
  
  AnyVar WristFlexion =5;
  AnyVar WristAbduction =0;
  
  //Leg
  AnyVar HipFlexion = 0.0; 
  AnyVar HipAbduction = 5.0; 
  AnyVar HipExternalRotation = 0.0;
  
  AnyVar KneeFlexion = 0.0; 
  
  AnyVar AnklePlantarFlexion =0.0; 
  AnyVar AnkleEversion =0.0; 
  
  AnyVar SubTalarEversion = 0;
};

AnyFolder Left = {
  //all values are set to be equal to the right side values 
  //feel free to change this!
  
  //Arm
  AnyVar SternoClavicularProtraction=.Right.SternoClavicularProtraction;
  AnyVar SternoClavicularElevation=.Right.SternoClavicularElevation;
  AnyVar SternoClavicularAxialRotation=.Right.SternoClavicularAxialRotation;
  
  AnyVar GlenohumeralFlexion = .Right.GlenohumeralFlexion ; 
  AnyVar GlenohumeralAbduction =.Right.GlenohumeralAbduction ;
  AnyVar GlenohumeralExternalRotation =.Right.GlenohumeralExternalRotation ;
  
  AnyVar ElbowFlexion = .Right.ElbowFlexion; 
  AnyVar ElbowPronation = .Right.ElbowPronation;       
  AnyVar WristFlexion =.Right.WristFlexion;
  AnyVar WristAbduction =.Right.WristAbduction;
  
  //Leg     
  AnyVar HipFlexion =.Right.HipFlexion;  
  AnyVar HipAbduction =.Right.HipAbduction;
  AnyVar HipExternalRotation = .Right.HipExternalRotation;
  AnyVar KneeFlexion = .Right.KneeFlexion;       
  AnyVar AnklePlantarFlexion = .Right.AnklePlantarFlexion ;
  AnyVar AnkleEversion =.Right.AnkleEversion; 
  
  AnyVar SubTalarEversion = .Right.SubTalarEversion;
};

};

AnyFolder PostureVel={
//This controls the position of the pelvi wrt. to the global reference frame
AnyVar PelvisPosX=0;
AnyVar PelvisPosY=0;
AnyVar PelvisPosZ=0;

//This controls the rotation of the pelvis wrt. to the global reference frame
AnyVar PelvisRotX=0;
AnyVar PelvisRotY=0;
AnyVar PelvisRotZ=0;

// These variables control the rotation of the thorax wrt the
// pelvis    
AnyVar PelvisThoraxExtension=0; 
AnyVar PelvisThoraxLateralBending=0;  
AnyVar PelvisThoraxRotation=0;        

AnyVar NeckExtension=0; 

AnyFolder Right = {
  //Arm 
  AnyVar SternoClavicularProtraction=0;   //This value is not used for initial position
  AnyVar SternoClavicularElevation=0;    //This value is not used for initial position
  AnyVar SternoClavicularAxialRotation=0; //This value is not used for initial position
  
  AnyVar GlenohumeralFlexion =0; 
  AnyVar GlenohumeralAbduction = 0; 
  AnyVar GlenohumeralExternalRotation = 0; 
  
  AnyVar ElbowFlexion = 0.0;
  AnyVar ElbowPronation = 0.0;
  
  AnyVar WristFlexion =0;
  AnyVar WristAbduction =0;
  
  //Leg
  AnyVar HipFlexion = 0.0; 
  AnyVar HipAbduction = 0.0; 
  AnyVar HipExternalRotation = 0.0;
  
  AnyVar KneeFlexion = 0.0; 
  
  AnyVar AnklePlantarFlexion =0.0; 
  AnyVar AnkleEversion =0.0; 
  
  AnyVar SubTalarEversion = 0;
};

AnyFolder Left = {
  //all values are set to be equal to the right side values 
  //feel free to change this!
  
  //Arm
  AnyVar SternoClavicularProtraction=.Right.SternoClavicularProtraction;
  AnyVar SternoClavicularElevation=.Right.SternoClavicularElevation;
  AnyVar SternoClavicularAxialRotation=.Right.SternoClavicularAxialRotation;
  
  AnyVar GlenohumeralFlexion = .Right.GlenohumeralFlexion ; 
  AnyVar GlenohumeralAbduction =.Right.GlenohumeralAbduction ;
  AnyVar GlenohumeralExternalRotation =.Right.GlenohumeralExternalRotation ;
  
  AnyVar ElbowFlexion = .Right.ElbowFlexion; 
  AnyVar ElbowPronation = .Right.ElbowPronation;       
  AnyVar WristFlexion =.Right.WristFlexion;
  AnyVar WristAbduction =.Right.WristAbduction;
  
  //Leg     
  AnyVar HipFlexion =.Right.HipFlexion;  
  AnyVar HipAbduction =.Right.HipAbduction;
  AnyVar HipExternalRotation = .Right.HipExternalRotation;
  AnyVar KneeFlexion = .Right.KneeFlexion;       
  AnyVar AnklePlantarFlexion = .Right.AnklePlantarFlexion ;
  AnyVar AnkleEversion =.Right.AnkleEversion; 
  
  AnyVar SubTalarEversion = .Right.SubTalarEversion;
};

};

AnyFolder Load = {
AnyVec3 TopVertebra = {0.000, 0.000, 0.000};

AnyFolder Right = {
  AnyVec3 Shoulder  = {0.000, 0.000, 0.000};
  AnyVec3 Elbow     = {0.000, 0.000, 0.000};
  AnyVec3 Hand      = {-101.340, 0.000, 0.000};
  AnyVec3 Hip       = {0.000, 0.000, 0.000};
  AnyVec3 Knee      = {0.000, 0.000, 0.000};
  AnyVec3 Ankle     = {0.000, 0.000, 0.000};
};
AnyFolder Left = {
  AnyVec3 Shoulder  = {0.000, 0.000, 0.000};
  AnyVec3 Elbow     = {0.000, 0.000, 0.000};
  AnyVec3 Hand      = {101.340, 0.000, 0.000};
  AnyVec3 Hip       = {0.000, 0.000, 0.000};
  AnyVec3 Knee      = {0.000, 0.000, 0.000};
  AnyVec3 Ankle     = {0.000, 0.000, 0.000};
};

}; // Loads

Hi Jinger,

When trying to replicate experimental conditions it is important to replicate the boundary conditions like they where in the experiment.

The situation you are asking the model to do is as i read your script to hold a line in the hand with a pulling force of around 100 N pointing straight forward is this what you wnat? if you want the model to push you need to shift the sign as i see it.

If while doing the experiment other reactions was availble to the subject like holding on a handle or similar these reactions should be incorporated into the model.

In general looking at the activation of a single muscle it not sure a decrease in load will decrease its activity, this depends on the conditions.

Best regards
Søren

Hi Søren,

Thank you very much for your patience to answer my question.
I think your advice is acceptable. Maybe I oversimplified the model, when it needed some necessary boundary conditions.
Thank you again for your help.

Best regards
ZHANG Jing