Co-Simulation

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

Hello

I just want to know, is there any way that i can link Matlab and Optistruc together.For example i can applied NSGA 2 optimization method(which i had wrote it in matlab) to my model in hypermesh or optistruc?

 

Please help me on this,Thank you

Answers

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited January 2017

    Please refer below post. 

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Thank so much,i should check.

  • tinh
    tinh Altair Community Member
    edited January 2017

    Hello

    I just want to know, is there any way that i can link Matlab and Optistruc together.For example i can applied NSGA 2 optimization method(which i had wrote it in matlab) to my model in hypermesh or optistruc?

     

    Please help me on this,Thank you

     

     

    Do you mean you want to embed your optimization algorithm in to optistruct? so optistruct will run it instead of the original?

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    I want to use my Algorithm to optimize my model instead of methods that defined in optistruc.

    To explain in more i have write a code in Matlab for optimization, my code need a function which i haven't.I have just a model which i don't know the function.

    I want to find a way to link my code and my model in optisruc to run my code and use the data of my model and compute then replace the new value.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Hi Haghnejat,

     

    I know this is a very hard way to do it, but I've seen this been done with other solver by using the .fem file that run in the FEM solver.

    So you would need to run the solver in each MATLAB iteration of the otimization and actualize the .fem file in MATLAB to re-run it with the new design variables in the next iteration.

     

    It's really time consuming by making it this way, in terms of computation time and learning process in order to code this but it's possible. I dont know if there is other way but I'm not an Altair Pro. Either way i really doubt that it's possible in other way because you need to actualize the .fem model in every optimization iteration.

     

    Best regards,

     

    Gonçalo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Hi Haghnejat,

     

    I know this is a very hard way to do it, but I've seen this been done with other solver by using the .fem file that run in the FEM solver.

    So you would need to run the solver in each MATLAB iteration of the otimization and actualize the .fem file in MATLAB to re-run it with the new design variables in the next iteration.

     

    It's really time consuming by making it this way, in terms of computation time and learning process in order to code this but it's possible. I dont know if there is other way but I'm not an Altair Pro. Either way i really doubt that it's possible in other way because you need to actualize the .fem model in every optimization iteration.

     

    Best regards,

     

    Gonçalo

    Hello Gonçalo,

     

    Thank so much for taking time.

     

    Could you give me a reference about the problem you have seen, i really need it and i don't know from where should i start.

    My problem have more than 1000 variables....

     

    Best regards,

     

    Haghnejat

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Hi Haghnejat,

     

    If you understand optimization theory and algorithm, it's simple to model the problem. The issue is that there is a lot of coding to be done and it will be only apllicable to a certain problem unless you are very familiar with coding and structure the problem well.

    This one I'm telling you was made by a friend who needed to optimize carbon fiber structures such as fiber directions, thickness and I dont remember what else. It uses a genetic algorithm if I'm not mistaken, it's not the same but the problem is to actualize the FEM file, not the algorithm if you understand it.

    The genetic algorithm gives the possibility to run it in MATLAB because with a gradient method it will be hard to get convergence and will be hard to code it.

     

    You need to explain a little bit better of the problem because every problem has an way to go. My first recommendation is to try and get around it in other way, the amount of coding you need to do is very large and will take you too much time. Unless you are doing it for your education.

     

    In that case you should start with a simple plate and try to understand the design variables, how to get them from FEM, how to write a txt that will run in the Optistruct solver, how to change the rigidity matrix because of property changes in the elements and so on. My friend used Ansys solver, but this was because he was very familiar with coding for APDL.

    Use FMINCON algorithm to get started and then you can change algorithm. This way it will be easier to troubleshoot problems.

     

    I'm not familiar with multi-objective algorithms as I ve never used them.

    I dont know if this will help you but I tried :P/emoticons/default_tongue.png' srcset='/emoticons/tongue@2x.png 2x' title=':P' width='20' />

     

    Best regards,

     

    Gonçalo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    It is not possible to have multiple objectives in Optistruct but possible in Hyperstudy, 

     

    HS-4425:  Multi-Objective Shape Optimization Study


    HS-4205:  Multi-objective Optimization Study Using an Excel Spreadsheet

     

     

    http://insider.altairhyperworks.com/introduction-multi-objective-optimization/

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Hello  Gonçal

     

    Thank you for your prompt reply, i really appreciate it.

    I need to work hard, your recommendation was great.I just start from here but i have to work hard.

     

    My project is to model automotive by S.S.D model beam now i have many beam each have 3 parameter, height, width and thikness.

    My objective function is to reduce weight of vehicle due to minimize these variables to satisfied my constrain.

    This is what i wanna to do.

    I want to this by Gradient numerical base method.

    I really thank you for your answer and please send me message if you find related topic.

     

    Best regards,

     

    Haghnejat

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Is it necessary to use such algorithm then?? You have a one objective formulation, 3 design variables per beam and need to add some kind of constraint such that the volume of the beams doesn't go to zero which will happen when minimizing mass. Maximum displacement for example.

     

    I made a search on google and found that it's possible to do a multibody component optimization. I guess you should rather start there. It's far simpler than writing a code for it and it's experience gain in the software for further use.

     

    Is it just the suspension you want to model? Or chassis? Or both? This would be far simpler if only 1D elements were used. Besides if it's only properties of the cross section even better. And it would be doable in MATLAB if it's not possible to do in OPTISTRUCT of course. In my opinion always avoid to code big software.

     

    I think you should elaborate here your fully detailed ideia, in order to get help from who really understand about OPTISRUCT, they will help you far better then me.

    Hope it helped,

     

    Best regards,

     

    Gonçalo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    My model is simplified by 1D beams and i just want to optimize the chassis with hollow cross section of beam.

    I have only one objective function:

    The 3 design variables of cross section of beams.

    Torsional and bending stiffness as my constrain.

     

    • One way that i was thinking, write the stiffness matrix of each element and then i will find a total stiffness of matrix.

     

    • An other way that i was thinking, export my model to MSC.NASTRAN and from the .f file, write a code that search for defined beam and read data and by using derivative and second derivative definition, make computation in my code then update the model but i think this is very difficult to do.

    I am searching for a simpler method to do, I think, i should find a way to link my code to do this Automatically for reading my data and update the model, Its better to say I hope so.

    The reason that i want to use Gradient numerical base method, is that i have some idea in this method and i want to applying to check the amount of optimize value and run time. 

     

    I appreciate you,

     

    Best regards,

     

    Haghnejat

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Are you from Formula student?

     

    I've seen some video around using a topology optimization to get the best beams position of a chassis.

    In my opinion I think you could simplify a bit by considering only 2 design variables per beam, but it's up to you, just consider the manufacturing of the optimization because thats what matters. Even 1 design variable was very good, such as thickness, imagine welding a chassis with different cross section in the beams, its impossible if not using some kind of connection. Otherwise you will have to define the chassis in sections to avoid joining diferent cross section beams. Also remember that it will need to be a discrete optimization because of the availability of cross sections. This increases the dificult to get convergence of the method even with a heavy penalizing method.

     

    To link MATLAB with some software to make the optimization, you will need to re-write the .fem file everytime because the properties will change.

     

    For what i got of what you want to do, I ve a simple sugestion. I know that it's not the best but trust me that the result will not be that different and it takes much less time. Just use the diferent load cases of the car, optimize in Optistruct and check for safety.

    Because to really get the full potential of what you want to do I think you would need acelerometer data on the wheels and have a fatigue life target to get a stress limit. SSD is just an harmonic excitation right? So what's the gain using that if it will never happen in any track?

    Sometimes I tend to oversimplify but if there is no major gain what's the point of losing that much time with that?

    Of course if you are making a master thesis the case is different but it will be a good comparison to put in the discussion.

     

    Best regards,


    Gonçalo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited January 2017

    Sorry I was far too busy,

     

    I am student in Automotive engineering in chassis design.

     

    About the thinness, After concept of design the next step in Initial Design, by the modification and optimization that i want to do, i will find different cross section and give these data to Department who is working on detail.If i want to optimize all whole beam its infinity variables and its some how imposiible but in first step its possible to define for example 500 beam or 1000 beams and define cross section for these as initial design.

     

    S.S.C is one way  to model the beam, its stand for Simple structural surfaces and also i want to define Arbitrary cross section model.

     

    My model should pass my torsional and bending stiffness which have especial procedure and i cant define different load and check my model.

     

    Best regrds,

     

    Haghnejat