Page 1 of 1

Reserve forces too high - issue with Static Optimization algorithm?

Posted: Tue Jul 28, 2020 9:12 am
by cemb202
Dear OpenSim community,

I have encountered an issue with my OpenSim simulation and was hoping this forum would be an appropriate platform to explain my issue, in the hope of being able to receive feedback and/or advice from more experienced users.

As part of my research I am using the Static Optimization Tool to determine the muscle forces for a simple arm curl motion, in which the elbow goes from full extension (0 deg) to full flexion (145 deg) in 3.7 s, and back down again (no shoulder rotation). The simulation uses the right upper extremity OpenSim model "Arm26" (slightly adjusted through the addition of two more muscles - the Anconeus and Brachioradialis), including all the predefined muscle parameters (such as max_isometric_force and optimal_fibre_length).

The simulation produces good results with low reserve torques for both degrees of freedom. However, when I place a 5 kg (49.05 N) mass in the hand to simulate a weight being lifted (attached using a WeldJoint), the reserve torque applied by the elbow reserve actuator is very high (over 50% of the maximum required elbow torque for the motion).

This is an unexpected results, as lifting a mass of 5 kg should certainly be an achievable task. The only information I was able to find on this issue in the OpenSim documentation, was that this signifies the muscles in the model being too weak, and their strengths should be increased until the reserve forces are within the acceptable range. However, even when using the highest maximum muscle force values that can be justified by literature, the reserve elbow torques are still at unacceptably high levels (around 35% of the maximum required torque). It should be noted that CMC produced the same reserve force results.

This brings me to the following two points:

1) If the solution really is to simple increase muscle forces, on what basis should this be done? Can all muscles simply be scaled by a set percentage value? Or is there a different method for doing this?

2) Assuming the predefined muscle parameters are not the issue (which I consider to be likely, as there is research supporting the values used), could this be an issue with the optimization algorithms used by OpenSim? For example, could it be that the initial starting values for the optimization have been set too low, resulting in a local minimum rather than a global minimum being found by the algorithm? Is there a way to gain insight into the details of the algorithm, to better understand how it works?

3) Is there anything else I am missing, that could cause the reserves to be too high?


I would be very grateful for any advice, ideas or feedback on this issue!

Re: Reserve forces too high - issue with Static Optimization algorithm?

Posted: Tue Jul 28, 2020 2:26 pm
by ongcf
While arm26 is a good model to do prototype work to check your workflow, it's not generally a good model to use for a real study and to draw conclusions from because it lacks so many muscles (which may be contributing to these issues). You may want to check out other models either through simtk.org directly or some on this website: https://simtk-confluence.stanford.edu/d ... tal+Models

You can find more about static optimization from the OpenSim documentation website: https://simtk-confluence.stanford.edu/d ... timization

In theory, static optimization is formulated to be a convex problem (i.e., there is one minimum that is both a local and global minimum). Of course, since there are numerical calculations involved here, it may not necessarily follow theory. However, it's been used successfully for many years in many cases that it seems to be a well-behaved problem in these contexts.

Re: Reserve forces too high - issue with Static Optimization algorithm?

Posted: Tue Jul 28, 2020 6:02 pm
by cemb202
Hi Carmichael,

Thanks so much for your comment. I have now run the same study using the much more comprehensive "Upper Extremity Dynamic Model" (https://simtk.org/projects/upexdyn), but unfortunately encountered the exact same problem with this model too. The reserve elbow torque for the loaded hand simulation is around the same level as that of the simplified arm26 model. Additionally, the following error message appears multiple times during the SO process:

The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
DELT1 approaching upper bound of 1
TMIN approaching upper bound of 1
TMAJ approaching upper bound of 1
PECM1 approaching upper bound of 1
PECM2 approaching upper bound of 1
PECM3 approaching upper bound of 1
LAT1 approaching upper bound of 1
LAT3 approaching upper bound of 1
CORB approaching upper bound of 1
TRIlong approaching upper bound of 1
TRIlat approaching upper bound of 1
ANC approaching upper bound of 1
SUP approaching upper bound of 1

Do you have any other ideas, what the issue could be?

Kind regards

Re: Reserve forces too high - issue with Static Optimization algorithm?

Posted: Mon Aug 03, 2020 10:12 am
by ongcf
It could be helpful to run a MuscleAnalysis to see if the muscles are in a state with low force generating capacity. I am not sure over which ranges of motion for which that model has been validated.