bug muscle recruitment?

#1

Hello,

In this simple model there are two muscles, the lower (muscle, -y direction) pulls a 1-kg ball against gravity and his force is correctly 9.81 N. The upper (ghost_muscle, +y direction) is simply attached to a fully constrained segment which has no mass. Its force (Ft) should be identically zero all time. However, its force is not negligible, being 0.001858616, which is way above numerical noise.

Debugging

[ul]
[li]switching off the reaction of ghost_driver makes the ghost_muscle force go to zero (= 3.679053e-038 numerical noise)[/li][li]changing muscle recruitment criterion type or polynomial exponent changes the output force of this muscle[/li][li]changing the mass of the ghost_segment has no effect on this[/li][li]switching off the gravity has no effect on this[/li][li]force direction of ghost_muscle has no effect[/li][/ul]

Is there a flaw in this model or is this a bug in the muscle recruitment solver?

Using AnyBody version : 7. 2. 0. 6089 (64-bit version) Build : 17590.43440 (beta)

Tried as well with AnyBody version : 7. 1. 2. 6044 (64-bit version) Build : 17695.40860

Best regards,

Marco

#2

Hi Marco,

Sorry for the slow reply,

The short answer is that is not a bug, it can be explained by that the polynomial muscle criteria is more demanding on the numerics than a linear criterium, for muscles with very low activations. For any practical model this is not be a problem.

In this particular problem the ghost muscle is supposed to do nothing, but it has a relative high strength. This means the accuracy in the solver is at test because this muscle (with very low activation) is in the objective function with a power of 3. If you try with higher power you will see the error getting bigger supporting this explanation, this is also why we have limited the power to a maximum 5.

If you change the solver to minmax strict the error will be very low. I have made an issue in our system, we will take a closer look at the solver being used for the polynomial criteria to see if there are settings which can be improved, to allow a better accuracy for this type of problems, but it is clear that numerics is more demanding and it is not certain it is possible to do any better, it is a balance between accuracy, convergence ability and speed.

Hope it makes sense, please ask again if you have further questions.

Best regards
Søren

closed #3

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.