# Scaling problems when creating subject-specific models

I am using AnyBody to analyze ingress/egress motions for a large subject pool and thus need to create ~60 subject-specific scaled models and am having problems creating scaled models for the smaller subjects. I am using the LengthMassFat scaling law and it seems that when the trunk height approaches ~0.5 the model fails to run. The model runs for the larger subjects but I cannot even get the SetInitialConditions operation to run for the smaller subjects. Are there any known scaling problems when creating models for small subjects? I have also encountered problems when trying to create scaled models for heavy subjects and came across one post that mentioned that the shoulder kinematics fail to be created correctly for high body mass individuals. Any information regarding failures pertaining to scaling would be greatly appreciated.

Thanks,
Suzanne

Hi Suzanne,

This is a known problem

The problem relates to the shoulder kinematics, the scapula floats on an elipsoid which is created using a combination of AnyKinLinears and two elipsoid focus points.

The dimension of the elipsoid is automatically created using three points, if the subject is too short and too heavy it may happen that the constructed elipsoid collapses because the calculation of the focus points ends up taking a sqrt of a negative number. When this happens the distance from the scapula contact node to the elipsoid will be infinite at load time, and the model will not solve.

We have recently done a fix to this which prevents this from happening.

You will need to go into the file “body/aauhuman/arm/AddOnOutsideBlockForKinematics.any”

here you need to look at the AnyRefNode named
“ScapulaEllipsoidOrigin”

and do these simple modification inside this object

//check if the long axis is longer than radius, it should be

//If the long axis is not longer than radius set F to zero… this avoids NAN solutions…

modify the FocusPointTop and FocusPointBottom to the following:

AnyRefNode FocusPointTop={ sRel={0,.Fsecure,0}; };
AnyRefNode FocusPointBottom={ sRel={0,-.Fsecure,0}; };

This will stop the elipsoid from collapsing and effectively create a point on sphere contact instead.

In the next version of the repository we will do a proper implementation of this.

Please write again if you have any questions

Best reagrds
Søren

Soren,

Thanks for your assistance. After making the changes you outlined the model now runs for short subjects. In the model view the scapulas however are not positioned correctly…they tend to be rotated downward such that they are inside the ribcage and/or rotated upward. I am using the BodyModel_NoMuscles.any body model so since I’m not dealing w/muscles and muscle wrapping, etc. I’m assuming that these errors in scapula positioning will have no effect on the results and are purely visual - is this correct? Our analysis is mainly focused on joint torques (in addition to the dynamics of the motion) and I want to be confident that these problems with the shoulder kinematics are not affecting our results.

Thanks again,
Suzanne

Hi Suzanne,

As you saw this first fix is not perfect because for short subject the ellipsoid becomes a sphere and it does not necesarily fit correctly the rib cage. This downward rotation of the scapula you mentioned will affect the results to some extend, but probably not very much.
Anyway it is safer to correct it, so we have implemented a new fix. It is creating the ellipsoid in a different way so that it always fit the rib cage and avoid the colapsing at the same time.

There are still some limitations, but it can do much shorter subject than before. So it should be good enough for the moment.

Please copy the attached files in “Body/AAUHuman/Arm”

Best regards, Sylvain.

Sylvain,

I am currently using V3.1 and Repository 7.1 and the files you sent don’t seem to be compatible with the versions I’m using. Is it possible to use the new arm files you posted with V 3.1?

Thanks,
Suzanne

Hi Suzanne,

That’s right, those files are suposed to be used with AMMR 1.2 and AMS 4.2 and won’t run with the version you are using. You can consider to upgrade your version of the system, big improvements add been added since v3.1, including the overdeterminate kinematic solver.

It is also posible to modify the files i sent so they will run with your version. The easiest is to compare the new file with the old for each error you get at loading and replace the piece of code by the old one. It should be the wrist and pronation joint in Jnt.any and a few lines in JointMuscles.any.
However in ThoraxScapulaContactReaction.any there are two unilateral reaction forces. As the unilaterality is not implemented in 3.1 you will have to replace those by pushing muscles. After that it should be ok.

Best regards, Sylvain.