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 Exchange에서 Mathematics에 대해 자세히 알아보기

질문:

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