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!

回答 (1 件)

Torsten
Torsten 2023 年 2 月 14 日

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 件のコメント

structeng
structeng 2023 年 2 月 14 日
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 2023 年 2 月 14 日
編集済み: Torsten 2023 年 2 月 14 日
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 2023 年 2 月 14 日
Yeah, I have to couple Abaqus with Matlab.
Many thanks!
Torsten
Torsten 2023 年 2 月 14 日
編集済み: Torsten 2023 年 2 月 14 日
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 2023 年 2 月 14 日
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 2023 年 2 月 14 日
編集済み: Torsten 2023 年 2 月 14 日
angle0 = 15;
angle = fmincon(@obj,angle0)
function beam_deflection = obj(angle)
beam_deflection = abaqus(angle); % here is the coupling between the two programs
end

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeProblem-Based Optimization Setup についてさらに検索

質問済み:

2023 年 2 月 14 日

編集済み:

2023 年 2 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by