Reserve forces too high - issue with Static Optimization algorithm?
Posted: Tue Jul 28, 2020 9:12 am
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!
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!