Optimization of a simple composite structure

Dear all,
I am new in Matlab, and I'm looking for some help to solve the following problem.
I have to minimize the deflection of a composite structure by changing the value of the fibre angle (theta) in one of its layer. Theta can vary between -90 and 90. I don't know the analytical function of the deflection of the structure but I can obtain it with a finite element analysis.
For example, if theta is 0, i know that the deflction is .0175 mm;
if theta is -45, the deflection is 0.0237 mm;
and so on...
Thank you for your time, and looking forward to hearing from you!

Respuestas (1)

Torsten
Torsten el 14 de Feb. de 2023

1 voto

Why not varying the angle between -90 and 90 in steps of delta_theta and choosing the value of minimum deflection ?
Do the finite element computations take too long for small increments of delta_theta ?

6 comentarios

structeng
structeng el 14 de Feb. de 2023
Hi Torsten,
Many thanks for your reply!
I see your point but I have to solve it as an optimization problem because each analysis takes too long.
Torsten
Torsten el 14 de Feb. de 2023
Editada: Torsten el 14 de Feb. de 2023
And for this, you also have to couple your finite element tool with MATLAB ? Or are the finite element computations are also done with MATLAB ?
structeng
structeng el 14 de Feb. de 2023
Yeah, I have to couple Abaqus with Matlab.
Many thanks!
Torsten
Torsten el 14 de Feb. de 2023
Editada: Torsten el 14 de Feb. de 2023
And this works already ? You can pass angles from MATLAB to Abaqus and deflections from Abaqus to MATLAB interactively ?
Then just start MATLAB with a guess for the angle. In the objective function of the optimizer you choose in MATLAB (e.g. fminsearch, fmincon), you will get passed an angle for which you have to call Abaqus to get the corresponding deflection. The deflection you get back from Abaqus is then passed back to MATLAB. The optimizer will generate a new suggestion for the angle, pass it to the objective function, Abaqus computes the deflection and so on until MATLAB claims to have found the optimal angle.
But I'm still convinced that calling Abaqus in increments of 5 degree, e.g., for the angle will be faster and less error prone.
structeng
structeng el 14 de Feb. de 2023
Sorry, Torsten, but I’m a bit lost. If I don’t know the function for the beam’s deflection, what should I use as a value for “fun” in fmincon?
Torsten
Torsten el 14 de Feb. de 2023
Editada: Torsten el 14 de Feb. de 2023
angle0 = 15;
angle = fmincon(@obj,angle0)
function beam_deflection = obj(angle)
beam_deflection = abaqus(angle); % here is the coupling between the two programs
end

Iniciar sesión para comentar.

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Preguntada:

el 14 de Feb. de 2023

Editada:

el 14 de Feb. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by