problem 5: 'Lack of progress (FMINCON)' using YALMIP. Can someone help me to figure out the problem?

472 views
Skip to first unread message

Ang Zhao

unread,
Jun 11, 2015, 3:13:40 AM6/11/15
to yal...@googlegroups.com
Hi there,
I am using Matlab R2011b. Here is the program of pole placement. I want to place the poles of the matrix As at p1. 
% pole placement. Set the poles of As to p1.
clear all; clc;
I=eye(3);
O=zeros(3);
% initialization 
k10=sdpvar(1);
a0=sdpvar(1);
b0=sdpvar(1);
c0=sdpvar(1);
d0=sdpvar(1);
% matrices construction
A1=[-k10*I I O;
    O O O;
    O O O;];
B1=[O O;
    I O;
    O I;];
C1=[I O O;
    O O I];
K1=[-d0*1*I -c0*1*I;
    -b0*1*I -a0*1*I];

As=A1-B1*K1*C1;

p0=[-0.04 -0.6 -2]; %
p1=[p0 p0 p0];% expected pole position

A0=diag(p1);
coeffp=poly(As);
coeffp0=poly(A0);
F=[diag(coeffp)-diag(coeffp0)==0];
err = solvesdp(F)

When I ran the code, Matlab generated the following information:

No feasible solution found.

fmincon stopped because the size of the current search direction is less than
twice the default value of the step size tolerance but constraints are not 
satisfied to within the selected value of the constraint tolerance.

<stopping criteria details>


err = 

    yalmiptime: 0.7480
    solvertime: 0.6900
          info: 'Lack of progress (FMINCON)'
       problem: 5
        dimacs: [NaN NaN NaN NaN NaN NaN]

Can someone help me why this happen? 

Johan Löfberg

unread,
Jun 11, 2015, 3:18:20 AM6/11/15
to yal...@googlegroups.com
It happens because this is a very hard nonconvex problem, so you will have to rely on luck for anything to work.

Try altering the various options in fmincon, in particular the Algorithm option. When I run it on my machine, it works when I use 'sqp'

Johan Löfberg

unread,
Jun 11, 2015, 3:19:07 AM6/11/15
to yal...@googlegroups.com
err = optimize(F,[],sdpsettings('fmincon.algorithm','sqp'))


Ang Zhao

unread,
Jun 11, 2015, 3:30:00 AM6/11/15
to yal...@googlegroups.com
Thank you, Mr Johan, however, the code 
err = optimize(F,[],sdpsettings('fmincon.algorithm','sqp'))
does not work on my machine...Matlab shows the following errors:

Undefined function 'optimize' for input arguments of type 'constraint'.

Error in test (line 33)
err = optimize(F,[],sdpsettings('fmincon.algorithm','sqp'))

why is this?

Johan Löfberg

unread,
Jun 11, 2015, 3:31:11 AM6/11/15
to yal...@googlegroups.com
You have a very old version of YALMIP and should thus update it.

Ang Zhao

unread,
Jun 11, 2015, 4:06:26 AM6/11/15
to yal...@googlegroups.com
It works! Thank you for your consideration! 
Reply all
Reply to author
Forward
0 new messages