Static Optimization during a squat jump

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Andrea Morelli
Posts: 89
Joined: Thu Jan 24, 2008 1:10 pm

Static Optimization during a squat jump

Post by Andrea Morelli » Wed Jul 25, 2018 9:20 am

Good morning.
I'm doing an analysis on a squat jump (countermovement).

I did scaling, IK, RRA, ID and CMC and now performing SO.

I use model 2392 (added 2 DOF at the knee with knee adduction and rotation).

All seems work fine but during SO I have this results
time = 8.771 Performance =2910.08 Constraint violation = 0.000100142
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 = 8.772

The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
add_mag1_r approaching upper bound of 1
add_mag2_r approaching upper bound of 1
add_mag3_r approaching upper bound of 1
glut_max1_r approaching upper bound of 1
glut_max2_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
peri_r approaching upper bound of 1
vas_med_r approaching upper bound of 1
vas_int_r approaching upper bound of 1
vas_lat_r approaching upper bound of 1
glut_med3_l approaching upper bound of 1
add_mag1_l approaching upper bound of 1
add_mag2_l approaching upper bound of 1
add_mag3_l approaching upper bound of 1
glut_max1_l approaching upper bound of 1
glut_max2_l approaching upper bound of 1
glut_max3_l approaching upper bound of 1
quad_fem_l approaching upper bound of 1
peri_l approaching upper bound of 1
vas_med_l approaching upper bound of 1
vas_int_l approaching upper bound of 1
vas_lat_l approaching upper bound of 1
ercspn_r approaching upper bound of 1
ercspn_l approaching upper bound of 1
I did create a reserve actuator for every DOF with this settings:

for pelvis

Code: Select all

     <PointActuator name="pelvis_tx_reserve">
        <!--Flag indicating whether the force is disabled or not. Disabled means that the force is not active in subsequent dynamics realizations.-->
        <isDisabled>false</isDisabled>
        <!--Minimum allowed value for control signal. Used primarily when solving for control values.-->
        <min_control>-Inf</min_control>
        <!--Maximum allowed value for control signal. Used primarily when solving for control values.-->
        <max_control>Inf</max_control>
        <!--Name of Body to which this actuator is applied.-->
        <body>pelvis</body>
        <!--Location of application point; in body frame unless point_is_global=true-->
        <point>-0.0796693 0 0</point>
        <!--Interpret point in Ground frame if true; otherwise, body frame.-->
        <point_is_global>false</point_is_global>
        <!--Force application direction; in body frame unless force_is_global=true.-->
        <direction>1 -0 -0</direction>
        <!--Interpret direction in Ground frame if true; otherwise, body frame.-->
        <force_is_global>true</force_is_global>
        <!--The maximum force produced by this actuator when fully activated.-->
        <optimal_force>100</optimal_force>
      </PointActuator>
and other DOF...

Code: Select all

      <CoordinateActuator name="hip_rotation_r_reserve">
        <!--Flag indicating whether the force is disabled or not. Disabled means that the force is not active in subsequent dynamics realizations.-->
        <isDisabled>false</isDisabled>
        <!--Minimum allowed value for control signal. Used primarily when solving for control values.-->
        <min_control>-Inf</min_control>
        <!--Maximum allowed value for control signal. Used primarily when solving for control values.-->
        <max_control>Inf</max_control>
        <!--Name of the generalized coordinate to which the actuator applies.-->
        <coordinate>hip_rotation_r</coordinate>
        <!--The maximum generalized force produced by this actuator.-->
        <optimal_force>1</optimal_force>
      </CoordinateActuator>
I went trough whole SO analysis but now if I understand well I should modify model muscle strength right ?

I can find help from the results on how much to increase it ?

Thank you
Andrea

Tags:

User avatar
Thomas Uchida
Posts: 1793
Joined: Wed May 16, 2012 11:40 am

Re: Static Optimization during a squat jump

Post by Thomas Uchida » Sun Aug 05, 2018 9:25 pm

You may be using the model beyond the range of motion for which it has been designed. The "Musculoskeletal Models" page in the Confluence documentation ("gait2392_simbody" row) indicates that "Results may be inaccurate during motions with high degrees of knee flexion." You might consider using a different model before trying to modify gait2392 (e.g., see topic 9001: viewtopicPhpbb.php?f=91&t=9001), as building and validating a model can be a lengthy process.

POST REPLY