How convergence is checked in OptiStruct?

Rahul_P1
Rahul_P1
Altair Employee
edited October 2020 in Community Q&A

I have a model running in OptiStruct. I am working of a non-linear optimization of an a-pillar structure of a vehicle using equivalent static loads methods. The explicit-model is setup for roof crush test.

The explicit analysis is running correctly in OptiStruct but I have a problem with the optimization side. As you can also see in plots below, the lower boundary constraint is violated but the optimizer gives OPTIMIZATION HAS CONVERGED and

FEASIBLE DESIGN (ALL CONSTRAINTS SATISFIED) messages after 5th iteration and finally writes JOB COMPLETED.

My objective is to minimize mass by reducing 9 thickness design variables.

Can you please help me for understanding how convergence is checked and evaluated by the optimizer?

Kindest regards,

Emrah Tokyürek

0xsa9-OptiStruct_6th_RUN.png

Answers

  • Rahul_P1
    Rahul_P1
    Altair Employee
    edited September 2014

    Emrah,

    I would say Convergence in Optistruct is the situation where logically no more iterations are necessary that is the optimizer has found the best solution.

    Consider the three parts of the problem, you have the objective function, constraints and the design variables.

    So If for successive iterations (two iterations to be exact) of the solution process there is no change in the objective function and the constraints are not violated significantly (within 1% to be exact) the solution has converged.
    And with respect to the design variables if for successive iterations the design variables cannot be changed significantly then again your solution has converged because no change in the design variables mean no change in the model or the problem itself (so no new solutions are possible and the current solution is best).

    So maybe you can check if the violation you see is less than 1% or so ? If not we need to investigate further

     

    Also since ESLM is more about the load calculation, the equivalent static load is that load which creates the same response field as that of the dynamic/nonlinear analysis at a given time step. The convergence criteria is the same.

    Read regular and soft convergence here
    User's Guide > OptiStruct > Design Optimization > Gradient-based Optimization Method > iterative solution

  • Rahul_P1
    Rahul_P1
    Altair Employee
    edited September 2014

    hi Rahul-Ponginan,

    your reply was very helpful to me. actually after i check the eslout file i realised that my optimization converges well. but the graph that i plotted slightly differs from the results (maybe there is a problem with my plotting) therefore i plotted another one with indicating the function that im trying to optimize (you can see in the picture below.)

    another thing i could not understand, why my first iteration violation result differs from eslout results? for example in the first iteration the most violated constrain in eslout is 9560N @ 60.msec but in the curve that i plot it is 8032.27N @ 52.msec.

    is there a practical way (a specific keyword) to print out functions directly for plotting?

    thanks again in advance,

    emrah

    doy1m-function_6th_Run.jpg

  • Rahul_P1
    Rahul_P1
    Altair Employee
    edited September 2014

    emrah,

    I see that the eslout shows the maximum violation percentage and the time step at which you get the violation, How exactly are the plots you have shown plotted? Do you use the FEA results (output in h3d) from the optimization run? ( These are the constraint function values which is a response value right? )

    You can use the HGHIST option in the OUTPUT card, or by default you should see a mvw session file with the maximum constraint violation with iteration and the objective function vs iteration etc