Page 1 of 1

static optimization failed at some instances

Posted: Thu Mar 02, 2023 5:40 am
by karthick_ganesan
Dear All,
As I was running a static optimization for loaded walking, optimizer failed at some instances with error messages similar to below. I have appended reserve actuators. This happened for about 2% of time steps. Is this OK? Any other suggestions?


SimTK Exception thrown at InteriorPointOptimizer.cpp:261:
Optimizer failed: Ipopt: Restoration failed (status -2)
OPTIMIZATION FAILED...

StaticOptimization.record: WARN- The optimizer could not find a solution at time = 0.804

The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
lat_gas_r approaching upper bound of 1
med_gas_r approaching upper bound of 1


time = 0.804 Performance =1286.06 Constraint violation = 4.06989e-013

SimTK Exception thrown at InteriorPointOptimizer.cpp:261:
Optimizer failed: Ipopt: Restoration failed (status -2)
OPTIMIZATION FAILED...

StaticOptimization.record: WARN- The optimizer could not find a solution at time = 1.311


imTK Exception thrown at InteriorPointOptimizer.cpp:261:
Optimizer failed: Ipopt: Restoration failed (status -2)
OPTIMIZATION FAILED...

StaticOptimization.record: WARN- The optimizer could not find a solution at time = 1.548

The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
flex_dig_l approaching upper bound of 1
flex_hal_l approaching upper bound of 1
lat_gas_l approaching upper bound of 1
med_gas_l approaching upper bound of 1
per_brev_l approaching upper bound of 1
per_long_l approaching upper bound of 1
soleus_l approaching upper bound of 1
tib_post_l approaching upper bound of 1


time = 1.548 Performance =965.794 Constraint violation = 3.67499e-005


Thanks,
Karthick

Re: static optimization failed at some instances

Posted: Sat Mar 04, 2023 11:39 am
by nbianco
Hi Karthick,

It's not uncommon to have a few time points where Static Optimization can't find a solution since the model is "too weak". Adding reserves is a good solution, as long as they do not produce torques that are large relative to the net joint moment. If you find that the reserves are dominating the solution, you might need to consider updating the model (e.g., increase muscle max isometric forces values).

Best,
Nick