Setting up a multiobjective generic optimization
Mostrar comentarios más antiguos
Hey there!
I'm new to the Optimization Toolbox and I want to solve a problem with "gamultiobj".
I have a structural modell of a mechanical System with 10 degrees of freedom. I want to adjust the stiffness of the springs in a way that the system follows a certain mode shape.
So I wrote a function, using the spring stiffness for each spring as Input vector (length=10). The function output is a vector containing the differences between each calculated modeshape and the target modeshape (length 10).
function [modeshape_difference] = MultiObjective(stiffness)
...
end
So I want to minimize the difference. Using
fitnessfcn=@MultiObjective;
nvars=12;
[y] = gamultiobj(fitnessfcn,nvars)
does not work actually. Can you help me setting up the optimization? And is there a way to set the initial Points? I have an initial Solution for the Stiffness actually. Thanks
Respuesta aceptada
Más respuestas (1)
Alan Weiss
el 22 de Mayo de 2017
It sounds to me as if you chose the solver first, before really thinking about what you are trying to do. To me, it sounds as if you are trying to minimize a nonlinear sum of squares. So I would use lsqnonlin to minimize the difference.
x = lsqnonlin(@MultiObjective,x0)
where x0 is your initial guess of the spring stiffnesses.
The one potential problem is if your Multiobjective function is given as the result of a simulation, in which case you might need to take larger-than-default finite differences.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
Categorías
Más información sobre Multiobjective Optimization en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!