How to solve an optimization problem with stability constraints using 'fmincon'?

4 visualizaciones (últimos 30 días)
Hi,
Let us say that a plant model of the following form is given:
The output of the model (y) is its position (x) and velocity (v).
Using this output, I am going to construct a PI controller (u) of the following form:
Then, the task is to find the optimal gains () and () such that the following quantity is maximized:
Without any constraints, this problem can be solve easily using the MATLAB command 'fminsearch' or 'fminunc.'
But I'd like to add a stability constraint such that the closed-loop system with PI control is always stable.
Mathematically, it is realized by constraining the eigenvalues of the closed-loop system in the left-hand plane.
But I'm wondering how to add this constraint using MATLAB commands.
Any comments will be greatly appreciated.
Thank you.

Respuestas (2)

Alan Weiss
Alan Weiss el 2 de Abr. de 2019
Perhaps this example will give you some ideas. It is written as a multiobjective problem, but you can adapt the code easily to single-objective minimization.
Alan Weiss
MATLAB mathematical toolbox documentation
  2 comentarios
Stephan
Stephan el 2 de Abr. de 2019

Alan could you please explain the reason for the warning the OP gets, when trying to use eig? I could not find something in the documentation so far.

Alan Weiss
Alan Weiss el 2 de Abr. de 2019
I have no idea. The link I gave was to an optimization example using eig, so I know that it can work, and the warning the OP referred to must be for something else.
Alan Weiss
MATLAB mathematical toolbox documentation

Iniciar sesión para comentar.


Matt J
Matt J el 2 de Abr. de 2019
Editada: Matt J el 2 de Abr. de 2019
Since it isn't clear that such an eigenvalue constraint is smooth, I would use ga instead of fmincon. This is closer to what you were doing with fminsearch, but with ga you can specify a nonlinear constraint function like the following,
function [c,ceq]=nonlcon(x)
ceq=[];
c=max(real(eig(x)));
end

Categorías

Más información sobre Adaptive Control en Help Center y File Exchange.

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by