% 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 constructionA1=[-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)
err = optimize(F,[],sdpsettings('fmincon.algorithm','sqp'))
err = optimize(F,[],sdpsettings('fmincon.algorithm','sqp'))