LMIs in Control/pages/Switched systems Hinf Optimization
LMIs in Control/pages/Switched systems Hinf Optimization
Switched Systems Optimization
The Optimization Problem
editThis Optimization problem involves the use of the State-feedback plant design, with the difference of optimizing the system with a system matrix which "switches" in properties during optimization. This is similar to considering the system with variable uncertainty; an example of this would be polytopic uncertainty in the matrix . which ever matrix is switching states, there must be an optimization for both cases using the same variables for both.
This is first done by defining the 9-matrix plant as such: , , , , , , , , and . Using this type of optimization allows for stacking different LMI matrix states in order to achieve the controller synthesis for .
The Data
editThe data is dependent on the type the state-space representation of the 9-matrix plant; therefore the following must be known for this LMI to be calculated: , , , , , , , , and . What must also be considered is which matrix or matrices will be "switched" during optimization. This can be denoted as .
The LMI: Switched Systems Optimization
editThere exists a scalar , along with the matrices and where:
Where is the controller matrix. This also assumes that the only switching matrix is ; however, other matrices can be switched in states in order for more robustness in the controller.
Conclusion:
editThe results from this LMI gives a controller gain that is an optimization of for a switched system optimization.
Implementation
edit% Switched System Hinf example
% -- EXAMPLE --
clear; clc; close all;
%Given
A = [ 1 1 0 1 0 1;
-1 -1 -1 0 0 1;
1 0 1 -1 1 1;
-1 1 -1 -1 0 0;
-1 -1 1 1 1 -1;
0 -1 0 0 -1 -1];
B1 = [ 0 -1 -1;
0 0 0;
-1 1 1;
-1 0 0;
0 0 1;
-1 1 1];
B21= [ 0 0 0;
-1 0 1;
-1 1 0;
1 -1 0;
-1 0 -1;
0 1 1];
B22= [ 0 0 0;
-1 0 1;
-1 1 0;
1 1 0;
1 0 1;
0 -3 -1];
C1 = [ 0 1 0 -1 -1 -1;
0 0 0 -1 0 0;
1 0 0 0 -1 0];
D12= [ 1 1 1;
0 0 0;
0.1 0.2 0.4];
D11= [ 1 2 3;
0 0 0;
0 0 0];
%Error
eta = 1E-4;
%sizes of matrices
numa = size(A,1); %states
numb2 = size(B21,2); %actuators
numb1 = size(B1,2); %external inputs
numc1 = size(C1,1); %regulated outputs
%variables
gam = sdpvar(1);
Y = sdpvar(numa);
Z = sdpvar(numb2,numa,'full');
%Matrix for LMI optimization
M1 = [Y*A'+A*Y+Z'*B21'+B21*Z B1 Y*C1'+Z'*D12';
B1' -gam*eye(numb1) D11';
C1*Y+D12*Z D11 -gam*eye(numc1)];
M2 = [Y*A'+A*Y+Z'*B22'+B22*Z B1 Y*C1'+Z'*D12';
B1' -gam*eye(numb1) D11';
C1*Y+D12*Z D11 -gam*eye(numc1)];
%Constraints
Fc = (M1 <= 0);
Fc = [Fc; M2 <= 0];
Fc = [Fc; Y >= eta*eye(numa)];
opt = sdpsettings('solver','sedumi');
%Objective function
obj = gam;
%Optimizing given constraints
optimize(Fc,obj,opt);
%Displays output Hinf gain
fprintf('\n\nHinf for Hinf optimal state-feedback problem is: ')
display(value(gam))
F = value(Z)*inv(value(Y)); %#ok<MINV>
fprintf('\n\nState-Feedback controller F matrix')
display(F)
External Links
edit- LMI Methods in Optimal and Robust Control - A course on LMIs in Control by Matthew Peet.