Dynamic Optimization - return_succes() failed: Infeasible_Problem_Detected

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Lars van Rengs
Posts: 16
Joined: Sat Jan 08, 2022 7:21 am

Dynamic Optimization - return_succes() failed: Infeasible_Problem_Detected

Post by Lars van Rengs » Mon Jul 04, 2022 2:59 am

Hi OpenSim-experts,

We aim to compare several biomechanical parameters (muscle force, joint reaction force, etc.) between running speeds. To this purpose we are using dynamic optimization (DO) in Matlab to solve the joint moments (CasADi optimization) over a 15-sec period of steady-state running. However we are running into an error when performing the DO for some trials (see attachment). This error message occurs mainly when the number of iterations is very high (most of the time at higher speeds). Besides this Infeasible_Problem_Detected-error, we also get the error Invalid_Number_Detected on several trials. This second error occurs more often at lower speeds and when the number of iterations is equal to 0.

We could not find any logic regarding when the DO could be solved. At first we suspected that this only went wrong at the higher speeds (possibly because the fibers have to function out of their force-length range), but after performing a few more trials, it turns out that in another subject an error occurs just for the lowest speed and that at higher speeds it goes well, which makes us suspect that the fiber-length range is not the cause.

We also looked again closely at the files of the ground reaction force, kinematics and inverse dynamics, but there were no strange or unrealistic values in these files, so this seems to be good for all trials. In addition, we also looked to see if there are any major differences in these files between the trials where the DO goes well and the trials where the DO does not. This does not appear to be the case. We solved the DO for hip, knee and ankle flexion/extension and hip ab/adduction. When we omit hip ab/adduction we still get the error message. Finally, we also increased the max isometric force of the model by 3x for all trials, and increasing it to 5x did also not solve the issue.

Overall, we are therefore unsure what might cause this error to occur. Does anyone of you have an idea why this error message comes/what this indicates/what is going wrong here?
Attachments
Error DO.png
Error DO.png (41.39 KiB) Viewed 416 times

Tags:

User avatar
Nicos Haralabidis
Posts: 194
Joined: Tue Aug 16, 2016 1:46 am

Re: Dynamic Optimization - return_succes() failed: Infeasible_Problem_Detected

Post by Nicos Haralabidis » Mon Jul 04, 2022 6:34 pm

Hey Lars,

When IPOPT returns that the problem is infeasible it means that isn't able to find a set of variables which satisfy your constraints - in this case I think you are just trying to solve the muscle redundancy problem using direct collocation (match the net joint moments), so there is no feasible combination of muscle states which is able to do so. Which model are you using? Have you checked the model is able to produce sensible moment arm estimates for the more extreme ranges of motion seen at higher running speeds? Similarly, how do the MTU lengths behave. Increasing the Fmax is a good idea, but it also means you are likely to get very high passive fibre forces - which then may also be an issue. Have you altered the model's optimum fibre length or maximum fibre shortening velocity for example?

Best wishes,

Nicos Haralabidis

User avatar
Lars van Rengs
Posts: 16
Joined: Sat Jan 08, 2022 7:21 am

Re: Dynamic Optimization - return_succes() failed: Infeasible_Problem_Detected

Post by Lars van Rengs » Tue Jul 12, 2022 5:24 am

Hi Nicos Haralabidis,

First of all, thank you very much for your quick response.

We are using the Catelli model (https://pubmed.ncbi.nlm.nih.gov/30398067/). This model has optimized the MTU paths and moment arms of the knee and hip extensors for movements like deep squating and cycling so it should also work well for the less extreme range of motions involved in running. Since the joint angles are in line with values reported in the literature, and because the moment arms of the muscles are optimized, the MTU lenghts therefore also look plausible for several muscles we checked.

Thank you also for your suggestion to altered the model's optimum fiber length or maximum fiber shortening velocity. We already tried the MuscleParamOptimizer OpenSim plugin (https://github.com/modenaxe/MuscleParamOptimizer) developed by Luca Modenese to optimize the muscle parameters (slack length and optimal fiber length) and applied this optimization to our default-strength Catelli-model. However unfortunately this does not fix the error in the Dynamic Optimization. Moreover, when we compare the muscle forces of the original model and the optimized model for a trial were we do not get an error, the differences are very small, which probably explains why this does not solve the error. Do you have any further suggestions (resources/references) on how we can sensibly adjust other values like max fiber shortening velocity?

Finally, if you have any other suggestions on what may be causing the issue we are more than happy to here these!

POST REPLY