Size Optimization doesn't lower desvar value

Altair Forum User
Altair Forum User
Altair Employee
edited November 2020 in Community Q&A

Hi,

I'm working on a complicated size optimization with many different beams. This script https://connect.altair.com/CP/kb-view.html?kb=41128 seems to be really useful for the problem.

Unfortunately, the values of the design variables doesn't reduce during the iterations, which leads to the soft convergence. If I change the initial value near the lower bound value, the optimization works. Of course this isn't an acceptable solution for bigger models.

 

I attached the example file. The initial values are set equal to the upper bound values, so that the problem becomes clear.

 

Could you help me with this problem?

 

Best regards,

Kai

 

 

Unable to find an attachment - read this blog

Answers

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited October 2017

    So it seems that the problem is based on the equations, but I cannot find the problem. The solutions of the equations are correct, but somehow the optimization cannot lower the desvar value...

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited October 2017

    Hi @Kaihes

     

    Sorry for a late reply. We will check and get back to you soon. 

  • Jan Grasmannsdorf_20379
    Jan Grasmannsdorf_20379 New Altair Community Member
    edited October 2017

    Hello,

    it seems that your optimization setup has a high chance to be 'caught' in a local optimum. When you start with 9.0 as your initial design variable, optistruct doesn't find a way to leave the local optimum and therefore converges in 1 iteration. The initial value of 1.0 however hurts the design constraint of displacement > 0,00012mm and forces the solver to 'react' to this constraint violation - and leads to another (local) optimum.

     

    To overcome the effect of local optima, you can use the DGLOBAL search function and start your optimization with multiple starting points to find a global optimum. I see that this card is already included in your setup but hasn't been activated. Activate the DGLOBAL entry and you will get a solution with an optimum and the best setup for starting values of your Design Variable.

    Best Regards

     Jan

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited November 2020

    Hi @Jan Grasmannsdorf,

     

    thank you for your reply. But why does it work, with my own linear function? I attached the file.

    The DGlobal function works well for this small example, but unfortunately my real optimization is much bigger, which make it necessary to use a high number of starting points.

     

    Best regards,

    Kai

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited October 2017

    @Kaihes

     

    How about with DGLOBAL with NGROUP and NPOINT set to AUTO?

  • Jan Grasmannsdorf_20379
    Jan Grasmannsdorf_20379 New Altair Community Member
    edited October 2017

    Hello,

    to answer the question on linear vs. other functions:

    A linear function is less likely to have local minimums or maximums, as opposed to more complex functions as shown below:

    image.png.5fee77050c7c159a612cd51c8fba79d0.png

     

    You also asked via mail about the Global Search Option: This is documented in the help of OptiStruct under the Keyword 'GSO' or 'GLOBAL SEARCH OPTION'.

    I think the comments section on the DGLOBAL Bulk Data Entry is also quite useful for additional information on how the parameters NGROUP etc. are defined?

     

    Jan

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited October 2017

    Thank you all for your replies. :)/emoticons/default_smile.png' srcset='/emoticons/smile@2x.png 2x' title=':)' width='20' /> I understand the problem now.

    It's more complex than I thought to optimize the cross sections of >80 beams based on a catalogue with >300 cross section possibilities. 

     

    Best regards,

    Kai