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!

Answers (1)

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 Comments

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 on 14 Feb 2023
Edited: Torsten on 14 Feb 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 ?
Yeah, I have to couple Abaqus with Matlab.
Many thanks!
Torsten
Torsten on 14 Feb 2023
Edited: Torsten on 14 Feb 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.
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?
angle0 = 15;
angle = fmincon(@obj,angle0)
function beam_deflection = obj(angle)
beam_deflection = abaqus(angle); % here is the coupling between the two programs
end

Sign in to comment.

Categories

Asked:

on 14 Feb 2023

Edited:

on 14 Feb 2023

Community Treasure Hunt

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

Start Hunting!