LMIs in Control/pages/Peak to Peak norm

From testwiki
Revision as of 07:49, 16 April 2020 by imported>DannyS712 (Update syntaxhighlight tags - remove use of deprecated <source> tags)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

LMIs in Control/pages/Peak to Peak norm


Peak-to-peak norm performance of a system


The System

Considering the following system:

x˙=Ax+Buz=Cx+Du


Where x(t)n is the state signal, u(t)m is the input signal, and z(t)p is the output. When given an initial condition x(0)=0, the system can be defined to map the output and input signals for the peak-to-peak performance.

||T||,:=sup\limits 0<||u||<||z||||u||

The Data

The matrices A, B, C, and D are the only data sets required for this optimization problem.

The Optimization Problem

Consider a continuous-time LTI system, G:L2eL2e, given that: A, B, C, and D An×n, Bn×m, Cp×n, and Dp×m. Given that the matrix A is Hurwitz,The peak-to-peak norm of G is given as:

||T||,:=sup\limits 0<||w||<||z||||u||

The LMI: Peak-to-Peak norm

There exists a matrix P𝕊n and γ, ϵ, μ>0, where the following constraints are used: minμ

P<0[ATP+PA+γPPBBPϵI]<0[γP0CT0(μϵ)IDTCDμI]>0


Since this optimization has γP in the constraints, this does make this optimization bi-linear. attempting to solve this LMI is not feasible unless some type of substitute is implemented to the variables γP.

Conclusion:

The results from this LMI will give the peak to peak norm of the system:

sup\limits 0<||u||<||z||||u||<μ

Implementation

% Peak-to-Peak Norm
% -- EXAMPLE --

%Clears all variables
clear; clc; close all;

%Example Matrices
A  = [ 1  1  0  1  0  1;
      -1  0 -1  0  0  1;
       1  0  0 -1  1  1;
      -1  1 -1  0  0  0;
      -1 -1  1  1 -1 -1;
       0 -1  0  0 -1  0];
  
B =  [ 0 -1 -1;
       0  0  0;
      -1 -1  1;
      -1  0  0;
       0  0  1;
      -1  1  1];
  
C = [ 0  1  0 -1 -1 -1;
      0  0  0 -1  0  0;
      1  0  0  0 -1  0];
  
D = [ 0  1  1;
      0  0  0;
      1  1  1];

%SDPVAR variables
gam = sdpvar(1);
eps = sdpvar(1);
up  = sdpvar(1);

%SDPVAR MATRIX
P = sdpvar(size(A,1),size(A,1),'symmetric');

%Constraint matrices
M1 = [A'*P+P*A+gam*P  P*B       ; 
      B'*P           -eps*eye(3)];

M2 = [gam*P       zeros(6,3)     C'        ;
      zeros(3,6) (up-eps)*eye(3) D'        ;
      C           D              up*eye(3)];

%Constraints
Fc = (P >= 0);
Fc = [Fc; gam >= 0];
Fc = [Fc; eps >= 0];
Fc = [Fc; M1  <= 0];
Fc = [Fc; M2  >= 0];

%Objective function
obj = up;

%Settings for YALMIP
opt = sdpsettings('solver','sedumi');

%Optimization
optimize(Fc,obj,opt)

fprintf('\nRepresentation of what occurs when attempting to solve \n')
fprintf('problem without considering bilinearity\n\n')

fprintf('setting gamma to a certain value\n eg: 0.5')
gam = 0.5;

eps = sdpvar(1);
up  = sdpvar(1);

%SDPVAR MATRIX
P = sdpvar(size(A,1),size(A,1),'symmetric');

%Constraint matrices
M1 = [A'*P+P*A+gam*P  P*B       ; 
      B'*P           -eps*eye(3)];

M2 = [gam*P       zeros(6,3)     C'        ;
      zeros(3,6) (up-eps)*eye(3) D'        ;
      C           D              up*eye(3)];

%Constraints
Fc = (P >= 0);
Fc = [Fc; eps >= 0];
Fc = [Fc; M1  <= 0];
Fc = [Fc; M2  >= 0];

%Objective function
obj = up;

%Optimization
optimize(Fc,obj,opt)

fprintf('mu value: ')
disp(value(up))

Return to Main Page:

Template:BookCat