Shape Optimization, Frequency Response Modal Analysis: Minimize dynamic Stiffness

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

Hello,

 

i want to reduce the dynamic stiffness of a rubber bearing by changing the geometry. I have an approximate idea of the 'optimized' geometry of this rubber bearing therefore I created morphvolumes and changed the specified area (solid elements) by translating the handles. I saved these changes as shapes which are my design variables.

 

I know that the optimum is between the initial model and the changed model. I want to do an optimization with optistruct to find the optimum.

 

To reduce the dynamic Stiffness i need 3 responses and an equation (dont know another way so far).

 

The calculation of the dynamic Stiffness is simple: Cdyn = Force/Displacement.

 

First i defined an equation with the dequation-panel: F(x,y)=x/y --> where x is the 'frf force (ELFORCE)' and y the displacement (frf displacement) which are two of the three responses.

 

The Last response is 'function' which includes the dequation and the other two responses defined before.

 

I would like to minimize the response 'function' (which is the dynamic stiffness). But it's not possible to create an objective which minimizes my response 'function', i get following error:

 

 *** ERROR # 1812 ***
 Multiple responses are assigned to the DESOBJ objective function.
 A MINMAX/MAXMIN objective function definition with DOBJREF should
 be used instead.
 Number of responses = 1000

 

1) Do you know what the maximum number of responses is?

 

(It's an frequency response analyis from 0 Hz to 3000 Hz with an increment of 3, thats why its 1000 responses (i guess)) .

 

I created an obj reference 'dobjref' which includes the response 'function', then i created MINMAX objective.This works, and i can start the optimization but here i have some questions: 

 

2) When i define the obj reference i can choose neg and pos reference. What can i do with these references?

 

3) I don't really know what this minmax function does. Does it minimize the maximum value of the equation? It is not my goal to minimize only the maximum value of the equation, it's rather minimizing the area of the function.

 

4) Is it normal that optistruct finds a solution after 2 iterations? I have two different shapes and i would expect that it takes a lot of time and iterations to find the optimum. I guess i did something wrong or forgot sth.

 

Sry for asking so many questions and sry for my bad english. I thank you so much in advance.

 

Regards,

Fatih Uysal 

 

 


 

 

 

 

   

Answers

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited November 2020

    Hi,

    Attached document should help you to define the MINMAX function.

     

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited May 2016

    Thank you Rahul for the information. 

     

    The other problems are solved.

     

    Greets,

     

    Fatih Uysal 

  • Faisal
    Faisal Altair Community Member
    edited November 2020

    Hi,

    Attached document should help you to define the MINMAX function.

     

    Hello,

    Can i get tis file because i am getting the same error.

    Regards

    SFM

    Unable to find an attachment - read this blog

  • Adriano A. Koga
    Adriano A. Koga
    Altair Employee
    edited July 2020

    OptiStruct allows only 1 single value for objective.

     

    If you give it a vector response (multiple items) as an objective, it will give this error.

     

    That why you sometimes need to work with DOBJREF and MINMAX or MAXMIN.

    Is essence this combination will reduce your whole vector(s) to a single value (max or min) and OS will focus in this particular value as an objective.

    As the max or min might change from one to the ohter iteration, this combination will always track the worst value from your vector.

    The reference value will be used for normalizing your vector, so that your actual values will be =response/reference

    This is useful when you want to combine responses of different types and order of magnitude into a single objective.

    example: stress ranges ~100MPa and displacement ranges ~1mm >> if you combine them with no reference, Stresses will always prevail over displacement, simply becasue its value is greater. If you provide as references, 100 and 1, they will be normalized accordingly.

     

    This is described at the Help.

  • Faisal
    Faisal Altair Community Member
    edited July 2020

    OptiStruct allows only 1 single value for objective.

     

    If you give it a vector response (multiple items) as an objective, it will give this error.

     

    That why you sometimes need to work with DOBJREF and MINMAX or MAXMIN.

    Is essence this combination will reduce your whole vector(s) to a single value (max or min) and OS will focus in this particular value as an objective.

    As the max or min might change from one to the ohter iteration, this combination will always track the worst value from your vector.

    The reference value will be used for normalizing your vector, so that your actual values will be =response/reference

    This is useful when you want to combine responses of different types and order of magnitude into a single objective.

    example: stress ranges ~100MPa and displacement ranges ~1mm >> if you combine them with no reference, Stresses will always prevail over displacement, simply becasue its value is greater. If you provide as references, 100 and 1, they will be normalized accordingly.

     

    This is described at the Help.

    Hello,

    I understand you, but in my case can i keep objective as a displacemnt? Because when i am trying with this it says its already referenced, but i just created a response as static dispalcement and stress. Constraints only for stress.

  • Adriano A. Koga
    Adriano A. Koga
    Altair Employee
    edited July 2020

    you can use displacements as an objective as long as you create first a DOBJREF for it, and this DOBJREF will be used in MINMAX, so taht OS will extract the maximum displacement value and then minimize it.

     

    Disp response >> DOBJREF (ref value) >> objective MINMAX(DOBJREF)