411 REFERENCE · Wikibooks
LMIs in Control/pages/Mixed H2 Hinf optimal state feedback control
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Mixed Optimal State Feedback Control
The Optimization Problem
This Optimization problem involves the same process used on the full-feedback control design; however, instead of optimizing the full output-feedback design of the Optimal output-feedback control design. This is done by defining the 9-matrix plant as such: , , , , , , , , and . Using this type of optimization allows for stacking of optimization LMIs in order to achieve the controller synthesis for both and .
The Data
The 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 .
The LMI: Mixed Optimal State Feedback Control
There exists the scalars , , along with the matrices , and where:
Where is the controller matrix.
Conclusion:
The results from this LMI give a controller that is a mixed optimization of both an , and optimization.
Implementation
Hinf/H2 Mixed state-feedback optimization example
% Mixed Hinf/H2 state feedback optimization
% -- 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];
B2 = [ 0 0 0;
-1 0 1;
-1 1 0;
1 -1 0;
-1 0 -1;
0 1 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(B2,2); %actuators
numb1 = size(B1,2); %external inputs
numc1 = size(C1,1); %regulated outputs
%variables
gam1= sdpvar(1);
gam2= sdpvar(1);
Y = sdpvar(numa);
Z = sdpvar(numb2,numa,'full');
W = sdpvar(numc1);
%Matrix for LMI optimization
M1 = Y*A'+A*Y+B2*Z+Z'*B2'+B1*B1';
M2 = [Y (C1*Y+D12*Z)' ;
C1*Y+D12*Z W ];
M3 = [Y*A'+A*Y+Z'*B2'+B2*Z B1 Y*C1'+Z'*D12';
B1' -eye(numb1) D11';
C1*Y+D12*Z D11 -gam1*eye(numc1)];
%Constraints
Fc = (M1 <= 0);
Fc = [Fc; M3 <= 0];
Fc = [Fc; trace(W) <= gam2];
Fc = [Fc; Y >= eta*eye(numa)];
Fc = [Fc; M2 >= zeros(numa+numc1)];
opt = sdpsettings('solver','sedumi');
%Objective function
obj = gam1 + gam2;
%Optimizing given constraints
optimize(Fc,obj,opt);
F = value(Z)*inv(value(Y)); %#ok<MINV>
fprintf('\n\nState-Feedback controller F matrix')
display(F)
External Links
LMI Methods in Optimal and Robust Control - A course on LMIs in Control by Matthew Peet.
Return to Main Page: