1. EXERCÍCIOS LMI CONTROL TOOLBOX MATLAB
Manuel Ricardo Vargas Ávila
Manuel06_20@hotmail.com
Universidade Federal do Rio Grande do Sul
Programa de Pós-Graduação em Engenharia Elétrica
Controle Multivariável
RESUMO: O presente documento consiste em um Então aplicando um lema podemos fazer uma
desenvolvimento dos exercícios propostos (Inequações transformação para LMI.
Matriciais Lineares- LMI) na aula de controle
multivariavel. Para a solução de LMIs, será usado o Lema1: Seja , , e seja uma
pacote de LMI CONTROL TOOLBOX de Matlab. matriz , onde o , então:
PALAVRAS-CHAVE: Traço, Feasp, minCX, ganho
estabilizante.
Então aplicando o Lema1 na equação (3).
1 EXERCÍCIO 1 Tendo
Fazendo multiplicação a esquerda de (3) por e
Calcular um ganho estabilizante usando a á direita por , então a equação fica:
condição LMI. Onde:
(4)
Agora fazendo mudança de variável , a
[ ] [ ] equação (4) fica:
(5)
Por tanto (5) é LMI em .
1.1 BASE TEORICA Agora nós podemos definir um novo teorema.
Seja o seguinte sistema linear na forma: Teorema (Final): Tendo que , onde
e , tais que (5) é verificada, então o
̇ +BU(t) sistema (1) com a lei de controle (2), é assintoticamente
(1) estável, onde .
The LMI system:
Onde:
{ (6)
(2)
Teorema1: O sistema (1) é assintoticamente 1.2 DESENVOLVIMENTO
estável se:
O desenvolvimento do exercício será feito na LMI
(3) TOOLBOX de Matlab.
Para especificar a LMI system em Matlab, nós
Agora nós temos um problema de síntese, no qual devemos desenvolver dois passos.
o objetivo é encontrar o valor de tal que seja
verificada (3).
Declarar as dimensões e estrutura de cada uma
Para encontrar o valor de , nós devemos das matrizes variável (lmivar).
assegurar que a equação (3) seja uma LMI. Se nós Descrever os termos de cada umas das LMI
olhamos a equação (3) podemos concluir que não é uma (lmiterm).
LMI, já que na equação temos um produto entre dois
ariáveis desconhecidas.
1
2. Vai ser usado o comando 1.
A simulação dos estados do sistema com
E para encontrar o valor das matrizes é usado o realimentação K é:
comando 2.
Linear Simulation Results
Código Matlab: 1
To: Out(1)
0
clc -1
clear all 1
To: Out(2)
A=[0 1 0 0;9.8 0 -9.8 0;0 0 0 1;-9.8 0
2.94 0]; 0
B=[0 0;1 -2;0 0;-2 5];
Amplitude
C=eye(4); -1
2
To: Out(3)
setlmis([])
1
%%%% DECLARACAO DAS DIMENSOES E
ESTRUCTURA DE CADA UMA DAS MATRIZES
0
W=lmivar(1,[4 1])
1
Y=lmivar(2,[2 4])
To: Out(4)
0
% % 1 LMI [WA'+AW+BY+B'Y']<0
lmiterm([1 1 1 W],1,A','s')%%% WA'+AW
-1
lmiterm([1 1 1 Y],B,1,'s')%%% BY+Y'B' 0 2 4 6 8 10 12 14 16 18 20
Time (seconds)
% 2 LMI W=W'>0
lmiterm([-2 1 1 W],1,1) %%%%% W>0 Figura1. Simulação dos estados do sistema com
realimentação
lmis=getlmis;
Nós podemos olhar que foi encontrado um ganho
[tmin,xfeas]=feasp(lmis) estabilizante usando a condição LMI.
w=dec2mat(lmis,xfeas,W); 2 EXERCÍCIO 2
y=dec2mat(lmis,xfeas,Y);
Calcular um ganho estabilizante tal que a norma
K=y*inv(w) do sistema em malha fechada seja minimizada.
%%%% SIMULACAO DO SISTEMA
D=0;
T = 0:0.1:20;
U =[ones(size(T)); ones(size(T))] ; [ ] [ ]
lsim(A+B*K,B,C,D,U,T); % simulate
CON REALIMENTACION K
grid
2.1 BASE TEORICA
Onde o ganho é:
Seja o seguinte sistema linear na forma:
[ ]
̇
(7)
1 2
Encontra uma solução de um sistema de LMIs Dado o valor da variável decisão , ele computa o valor
[ ] , correspondente da matriz variável.
onde é chamada variável decisão
2
3. Por tanto (10) é uma LMI em
Onde:
Agora seja uma variável auxiliar, se minimizamos
e garantimos que:
(8) (11)
Fazendo substituição de (8) em (7)
O sistema fica: Passando todos os termos de (11) para a esquerda
(12)
̅
̇ ⏞ Agora, nós devemos aplicar de novo o complemento
(7) de Schur, então (12) é equivalente á:
⏟
̅ [ ] (13)
A determinação da norma é feita a traves de uma
proba de optimização convexo onde: Então o novo problema de optimização fica:
{ (8) [ ]
{
{
Fazendo substituição do sistema (7) em (8), o novo
problema de optimização fica: {[ ]
{
2.2 DESENVOLVIMENTO
{ O desenvolvimento do exercício será feito na LMI
TOOLBOX de Matlab.
Para encontrar o valor de , nós devemos
assegurar que (9) seja uma LMI. Se nós olhamos a Para especificar a LMI system em Matlab, nós
equação (9) podemos concluir que não é uma LMI, já que devemos desenvolver dois passos.
na equação temos um produto entre dois variáveis
desconhecidas . Declarar as dimensões e estrutura de cada uma
das matrizes variável (lmivar).
Então, multiplicando (9) pela matriz , (9) e
fazendo mudança de variável , a equação (9) é Descrever os termos de cada umas das LMI
equivalente à: (lmiterm).
⏟
Se define 4
O termo da equacao (10) não é linear em
Se define [ ] ,o
qual minimiza o valor do vetor das variáveis
Então, nós devemos aplicar o complemento de
decisão. Onde por defecto é .
Schur3, por tanto o novo problema de optimização fica:
E para encontrar o valor correspondente da
[ ] matriz variáveis, é usado o comando
{ (10)
Código Matlab:
3 4
O complemento de Schur é um resultado da teoria de matrizes Retorna o vetor da variável decisão correspondente ao valor
que ajuda na transformação de inequações não lineares para a particular das matrizes variáveis. Está definido como:
forma de LMI.
3
4. [ ]
clc
clear all A simulação dos estados do sistema com
A=[0 1 0 0;9.8 0 -9.8 0;0 0 0 1;-9.8 0 realimentação K é:
2.94 0];
B=[0 0;1 -2;0 0;-2 5]; -5
x 10
C=eye(4); 8
Bw=eye(4);
7
setlmis([])
%%%% DECLARACAO DAS DIMENSOES E 6
ESTRUCTURA DE CADA UMA DAS MATRIZES
W=lmivar(1,[4 1]) 5
Y=lmivar(2,[2 4])
X=lmivar(1,[4 1]) 4
% % 1 LMI [WA'+AW + Y'B' BY WC'+Y'D ; 3
CW+DY -I]
lmiterm([1 1 1 W],1,A','s')%%%% WA'+AW 2
lmiterm([1 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([1 2 1 W],C,1) %%%%% WC' 1
lmiterm([1 2 2 0],-1) %%%%% -I
0
0 1 2 3 4 5 6 7 8 9 10
% 2 LMI
lmiterm([-2 1 1 W],1,1) %%%%% W>0
Figura2. Simulação dos estados do sistema com
% 3 LMI [ X Bw'; Bw W] realimentação
lmiterm([-3 1 1 X],1,1) %%%%% X
lmiterm([-3 2 1 0],Bw) %%%%% Bw Nós podemos olhar que o ganho é estabilizante
lmiterm([-3 2 2 W],1,1) %%%%% W minimizando a norma
LMIs=getlmis;
3 REFERÊNCIAS
c=mat2dec(LMIs,eye(4),eye(2,4),eye(4))
[1] LMI CONTROL TOOLBOX, For use with MATLAB
options=[10^-2,0,0,0,0]
[2] Controle robusto, professor Alexandre Trofino
[copt,xopt]=mincx(LMIs,c,options)
[3] Linear Quadratic Control, Peter Dorato and Chaouki Abdallah
Wopt=dec2mat(LMIs,xopt,W)
Yopt=dec2mat(LMIs,xopt,Y)
%%%%GANHO
K=Yopt*inv(Wopt)
%%%%SIMULACAO
D=0;
T = 0:0.1:10;
U =[ones(size(T)); ones(size(T))] ;
[XX,YY]=lsim(A+B*K,B,C,D,U,T);%
simulate CON REALIMENTACION K
plot(T,XX)
grid
Onde o ganho é:
4