BergmannGH Validation and SHR


I am a fairly new user of AnyBody.7.2. AMMR.v2.2.1. I am interested in using the BergmannGH model to predict the JRF during arm abduction and have several questions.

  1. When running the simulation without modifying the script, the JRF are not equivalent to as shown in the webcast 'Validation of the AnyBody version of the Dutch Shoulder Model by the in-vivo measurement'. I'm aware that this webcast was broadcasted 13 years ago in 2007. Have there been any changes to the model which resulted in different values? In detail, each JRF component is approximately 100N lower than predicted.

  2. I want to implement the scapulohumeral rhythm for arm abduction up to 90-degree. To my understanding, I can do so by including the following statement at the beginning of the main script:


Then I deleted the joint driver for Sternoclavicular to avoid over-constraint. However, I am not getting similar results to Bergmann's data beyond 45-degree. Is this the correct approach?

  1. Is there a reason why the BergmannGH is validated up to 45-degree only?

Thank you,

Hi @HazimahM

Sorry for the late answer!

  1. Yes there have been many changes to the underlying human bodymodel throughout the years and you will not be able to see the same model results as the ones in the webcast. You can track recent changes in the AMMR changelog.

  2. You are correct in defining the BM_ARM_SHOULDER_RHYTHM ON to utilize the rhythm, and also correct that you have to disable the Sternoclavicular driver in the Joints&Drivers.any file. As mentioned the results will still be influenced by the human model changes that have went on through the years.

  3. You will have to look in the study by Bergmann et al. to learn were the 45 degrees was choosen. The AMS model just follow their protocol.

I hope this can help you move on, others feel free to post again here in the forum.

Best Regards,
AnyBody Technology

Hi Bjørn,

Thank you so much for the response. Definitely clarifies the matter. I have more questions.

  1. I wanted to analyse individual muscle forces (Fm) but is unsure of the unit (because the values are lower than expected). Is it in Newton? Also, is there a way to obtain the value of F0 as the output?

  2. I'm aware that the model was built based on 2 different persons. I would like to analyse the JRF as a percentage of body weight. Is there an overall data of the model?

  3. If I want to simulate subscapularis-deficient shoulder, is it sufficient to set the F0 of each subscapularis component to 0? I'm still figuring out other ways to deactivate the muscle forces.

  4. I wanted to simulate shoulder flexion. I have updated the following lines in Mannequin.any file:

AnyVar GlenohumeralFlexion = 45/Main.Study.tEnd; 
AnyVar GlenohumeralAbduction = 0;
AnyVar GlenohumeralExternalRotation = 0;

then in JointsandDrivers.any file:

AnyKinEqFourierDriver FlexionDriverRight={
    AnyKinMeasure& ref1 =...BodyModel.Interface.Right.GlenohumeralFlexion;
    Type = Sin;
    Freq = 0.0625; // 0.1;
    A = { {0.0, 90*pi/180} };
    B = { {0.0, 0.0 } };
    Reaction.Type = {Off};    

Then I disabled the constraint for keeping the hand in the frontal plane. However, there was an error upon running the application because "kinematic analysis failed in time step 0: Failed to solve position constraints". Is there other change that needs to be done?

Apologies for asking too many questions at once! I would really appreciate your response.

Best regards,

Hi @HazimahM

Great that it helps!

As to your new questions:

  1. Yes the muscle forces are outputted in newtons. If I understand you correctly you want to know what the F0 is for each muscle in the output? The F0 property can be found same place as the Fm property in the study output.
  2. Even though the underlying body models are based on different cadaver informations - it is scaled to some subject anthropometrics when you use it. So you can find the bodymass and corresponding segment proportions in the Main.HumanModel.Anthropometrics and the scaling parameters are located in the Main.HumanModel.Scaling folder.
  3. You can have a look at this forum question regarding a easier way to exclude muscles from the analysis.
  4. My guess is that the you should try and alter your initial position of the model and your different drivers and constraints - see if you can simplify it to make it run and then iterate towards the scenario you want.

No need to apologize - i hope this can bring you forward!

Best Regards

Hi @Bjorn,

Thank you. Your reply has been very helpful.

When removing the muscle (particularly the subscapularis), I am not getting the expected increase in JRF as reported in the literature that is also using AnyBody Shoulder model (Sins, 2016). Perhaps this is because their study used a model that incorporates joint translation instead of assuming ball-and-socket joint as in the BergmannGH model. Is it possible for me to obtain this 'advanced' model?

Best regards,

Hi Hazimah,

Please look at this wiki page

Best regards