Static Optimization Problem

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
John De Witt
Posts: 11
Joined: Wed Aug 29, 2007 8:05 am

Static Optimization Problem

Post by John De Witt » Wed Feb 23, 2011 2:49 pm

All,
I have an issue with trying perform a static optimization on a motion. I have collected motion capture and force data during a squat exercise, and have used the gait2354 model sucessfully with scaling, inverse kinematics, and inverse dynamics. I am now interested in obtaining muscle forces. I have tried to run a static optimization, but OpenSim appears to hang.

I performed the procedure successfully with the gait2354 data, so I am unsure why my data is not working given succesful IK and ID runs.


Here is the initial message that I receive:
Loaded model subject5555_scale_normal from file \\Bac-ifs-01\HACO\Exercise Countermeasures Program\Engineering\Biomechanics\ARED Ground Evaluation\data\OpenSim Files\Final scaled models\ARED_Ground_S5555_scaled_IH.osim
Updating Model file to latest format...
Loaded model subject1111_scale from file D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\ARED_Ground_S1111_scaled_IH.osim

Loading coordinates from file D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto.
Storage: file=D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto (nr=1047 nc=156)


Low-pass filtering coordinates data with a cutoff frequency of 6...

Found 2093 state vectors with time stamps ranging from -2.092 to 6.276.


Loading external loads kinematics from file D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto ...
Storage: file=D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto (nr=1047 nc=156)
Low-pass filtering external load kinematics with a cutoff frequency of 6...
Storage: file=D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111NS.mot (nr=1047 nc=19)
Executing the analyses from 2.5 to 4.1...
SimTK Exception thrown at InteriorPointOptimizer.cpp:262:
Optimizer failed: Ipopt: Infeasible problem detected (status 2)
OPTIMIZATION FAILED...

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

The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
sar_r approaching upper bound of 1
pect_r approaching upper bound of 1
glut_max3_r approaching upper bound of 1
quad_fem_r approaching upper bound of 1
gem_r approaching upper bound of 1
rect_fem_r approaching upper bound of 1
bifemlh_l approaching upper bound of 1
sar_l approaching upper bound of 1
pect_l approaching upper bound of 1
glut_max3_l approaching upper bound of 1
quad_fem_l approaching upper bound of 1
gem_l approaching upper bound of 1
rect_fem_l approaching upper bound of 1
ercspn_l approaching upper bound of 1


time = 2.5 Performance =15.8874 Constraint violation = 216.094


User avatar
Ajay Seth
Posts: 136
Joined: Thu Mar 15, 2007 10:39 am

RE: Static Optimization Problem

Post by Ajay Seth » Tue Mar 01, 2011 10:39 pm

During ID the model can generate potentially huge torques at the joints, whereas during static optimization the model is limited by the capacity of muscle actuators, unless you add ideal actuators. The message above indicates the model is not strong enough since the muscles are reaching maximum activation and are still unable to match the acceleration. You can append CoordinateActuators to the model to see how much "reserve" actuation is required and then strengthen your model accordingly.

User avatar
Sylvia Wan
Posts: 18
Joined: Thu Oct 07, 2010 6:43 am

RE: Static Optimization Problem

Post by Sylvia Wan » Mon Mar 14, 2011 7:05 am

Hi,

I got very high outcome from ID as well. Did you have any luck strengthening the model. How do you determine how much reserve actuation is required?

Also, should static optimisation be run straight after ID or after RRA since RRA would give a more reliable model file?

Cheers.

Sylvia

User avatar
Ayman Habib
Posts: 2248
Joined: Fri Apr 01, 2005 12:24 pm

RE: Static Optimization Problem

Post by Ayman Habib » Wed Mar 16, 2011 1:09 pm

Hi Sylvia,

I'd use ID as a diagnostic tool to help zoom in on potential problems (e.g. GRF not applied correctly would lead to huge ID solution). If ID outcome (or RRA which is basically a variation of ID applied over a whole trajectory) shows a degree of freedom with large torque and you don't have muscles actuating this degree of freedom or can't provide enough torque then you'll have to provide reserves to compensate for the difference between the ID solution and what the model can generate.

Hope this helps,
-Ayman

User avatar
Hossein Mokhtarzadeh
Posts: 37
Joined: Sun Dec 13, 2009 9:44 pm

RE: Static Optimization Problem

Post by Hossein Mokhtarzadeh » Fri Mar 18, 2011 8:19 pm

HI Ayman,

How big this reserve can be? I figure out that in high impact loads(such as jumping

and landing) I need very big reserves in which this reserve not muscles actually providing the

torque from RRA(I am talking about CMC).


CMC can not be solved if I provide small reserve forces and high MIF(max isometric

force), I have also changed tendon slack length to let normalized fiber length of

muscles be around 1. ACtually, the problem with large reserves can be solved which

is not correct I suppose.

When I try SO(static opt) using higher MIF, changed slack length , it cannot be

solved. Constraint violation is big.

My understanding to solve SO and CMC is as follows: please correct me if I am

wrong.

- if torques from RRA ,ID are correct so we need to look at reserve(reserve

actuator should be small but big reserve excitation ) that are needed to strengthen

that joint. In order to do that we would increase MIF(I don't know how much)

- if this is not solving the problem, muscles may not work on their effective

length, So we would change tendon slack length to provide normalized fiber length

around 1(for instance, one plus minus 0.5 or 0.25) during the motion.

- I don't know if changing the cost function would be helpful.(e.g. in SO changing power 2 to 3 or so)

In general, it seems we can change MIF, tendon slack length, adding reserves to be

able to solve CMC and SO.

I wonder if there are any other issues to be considered in order to know why SO or CMC can not solve the problem.

Regards

POST REPLY