LMIs in Control/pages/Peak to Peak norm
LMIs in Control/pages/Peak to Peak norm
Peak-to-peak norm performance of a system
The System
[edit | edit source]Considering the following system:
Where is the state signal, is the input signal, and is the output. When given an initial condition , the system can be defined to map the output and input signals for the peak-to-peak performance.
The Data
[edit | edit source]The matrices , , , and are the only data sets required for this optimization problem.
The Optimization Problem
[edit | edit source]Consider a continuous-time LTI system, , given that: , , , and , , , and . Given that the matrix is Hurwitz,The peak-to-peak norm of is given as:
The LMI: Peak-to-Peak norm
[edit | edit source]There exists a matrix and , , , where the following constraints are used:
Since this optimization has 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 .
Conclusion:
[edit | edit source]The results from this LMI will give the peak to peak norm of the system:
Implementation
[edit | edit source]% 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))
External Links
[edit | edit source]- LMI Properties and Applications in Systems, Stability, and Control Theory - A List of LMIs by Ryan Caverly and James Forbes.
- LMIs in Systems and Control Theory - A downloadable book on LMIs by Stephen Boyd.
- Linear Matrix Inequalities in Control - A downloadable book on LMIs by Carsten Scherer and Siep Weiland