Exercicios LMIs 2
-
Upload
manuel-vargas -
Category
Documents
-
view
443 -
download
4
description
Transcript of Exercicios LMIs 2
1
EXERCÍCIOS LMI CONTROL TOOLBOX MATLAB
Manuel Ricardo Vargas Ávila [email protected]
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
desenvolvimento dos exercícios propostos (Inequações Matriciais Lineares- LMI) na aula de controle multivariavel. Para a solução de LMIs, será usado o pacote de LMI CONTROL TOOLBOX de Matlab.
PALAVRAS-CHAVE: Traço, Feasp, minCX, ganho
estabilizante.
1 EXERCÍCIO 1
Determine uma condição LMI que possibilite a síntese de uma realimentação de estados de forma a
garantir o posicionamento dos polos do sistema em malha fechada, nas seguintes regiões:
1.1 BASE TEÓRICA
Considere o seguinte sistema controlável,
observável, linear e invariante no tempo:
𝒙(𝒕)̇ = 𝑨𝑥(𝑡) + 𝑩𝑢(𝑡) (1)
𝒛(𝒕) = 𝑪𝑥(𝑡)
Sendo 𝑨 ∈ 𝓡𝒏𝒙𝒏, 𝑩 ∈ 𝓡𝒏𝒙𝒑, 𝑪 ∈ 𝓡𝒎𝒙𝒏 , 𝑥(𝑡) é o
vetor de estados, 𝒛(𝒕) a saída de interesse e 𝑢(𝑡) a
entrada de controle. O objetivo do problema é projetar uma condição LMI
que possibilite a síntese de uma realimentação de estados tal que os pólos de malha fechada fiquem em uma determinada região especifica.
Considerando: Teorema 1: (Estabilidade de Lyapunov) Dado o
sistema:
�̇� = 𝐴𝑥 Existe uma solução 𝑷 > 0 simétrica de modo que 𝑨′𝑷 + 𝑷𝑨 +𝑵 < 0, onde N > 0 (simétrica) é uma matriz
arbitrária ao ponto de operação [1]. Definição 1: A Região LMI é uma região convexa
no plano complexo, denotada por 𝒟 simétrica com
respeito ao eixo real (GAHINET et al., 1995), definida por:
𝕯 ≜ {𝑧 𝜖 ℂ|𝐿 + 𝑧𝑴+ 𝑧̅𝑴′ < 0} (2)
Sendo 𝑳 = 𝑳′ e M matrizes reais.
Corolário 1: Seja o modelo simplificado com base em (2) (GAHINET et al., 1995), de modo que:
𝒇𝕯(𝒛) = 𝐿 + 𝑧𝑴+ 𝑧̅𝑴′ (3)
As regiões mais utilizadas em projetos de sistemas
de controle com otimizacao LMI são mostradas de acordo o Colorario 1 e nas figuras 1 e 2.
Semiplano esquerdo, 𝑅𝑒(𝑧) < 𝛼1
𝒇𝕯(𝒛) = −2𝛼1 + 𝑧 + 𝑧̅ (4)
Figura 1 - ℜ{𝜆} ≤ 𝛼1
Semiplano direito, 𝑹𝒆(𝒛) > 𝛼2:
𝒇𝕯(𝒛) = −2𝛼2 − 𝑧 − 𝑧̅ (5)
Figura 2 - ℜ{𝜆} ≥ 𝛼2
2
Setor cônico com vértice na origem e ângulo
interno de 2𝜃 onde 𝑹𝒆(𝒛)𝑡𝑔𝜃 < |𝑰𝒎(𝒛)| é
descrito por:
𝒇𝕯(𝒛) = [(𝒔𝒆𝒏𝜽)(𝑧 + 𝑧̅) (𝒄𝒐𝒔𝜽)(𝑧 − 𝑧̅)(𝒄𝒐𝒔𝜽)(𝑧̅ − 𝑧) (𝒔𝒆𝒏𝜽)(𝑧 + 𝑧̅)
] (6)
1.2 Faixa: 𝜶𝟐 ≤ 𝕽{𝝀} ≤ 𝜶𝟏, 𝜶𝟏 > 𝟎,𝜶𝟐 > 𝟎
Corolario 2: A partir do teorema 1 e o corolário 1.
Para sistemas no tempo continuo, sendo 𝕯 no semipleno
esquerdo, de modo que:
𝒇𝕯(𝒛) = 𝑧 + 𝑧̅ < 0
Fazendo substituição de (1, 𝑧, 𝑧̅) ↔ (𝑷,𝑨𝑷, (𝑨𝑷)′), tem-se que:
semiplano esquerdo, 𝑅𝑒(𝑧) < 𝛼1, tendo
que 𝛼1 ∈ ℜ:
∀𝑧 ∈ 𝐶, 𝑹𝒆(𝒛) < 𝛼1 ⟹ −𝟐𝜶𝟏𝑷 + 𝑨𝑷 + (𝑨𝑷)′ < 𝟎 (7)
semiplano direito, 𝑅𝑒(𝑧) > 𝛼2, tendo que 𝛼2 ∈
ℜ:
∀𝑧 ∈ 𝐶, 𝑹𝒆(𝒛) > 𝛼2 ⟹ 𝟐𝜶𝟐𝑷− (𝑨𝑷 + (𝑨𝑷)′) < 𝟎 (8)
Agora considerando uma síntese de realimentação de estados em (1):
𝑢 = 𝑲𝑥
O sistema em malha fechada fica na forma:
�̇� = (𝑨 + 𝑩𝑲)𝑥 (9)
Agora fazendo substituição em (7), nós podemos
encontrar a LMI que define o posicionamento a esquerda de uma reta vertical que passa por 𝜶𝟏:
−2𝛼1𝑷 + (𝐴 + 𝐵𝐾)𝑷 + 𝑷(𝐴 + 𝐵𝐾)′ < 0 (10)
A equação (10) não é uma LMI, então nós devemos
fazer uma transformação para que seja uma LMI. Multiplicando (10) a esquerda por 𝒘′ e a direita por 𝒘,
considerando que 𝒘 = 𝑷−𝟏 −2𝑊′𝜶𝟏𝑷𝑊 +𝑊′(𝐴 + 𝐵𝐾)′𝑷𝑊 +𝑊′𝑷(𝐴 + 𝐵𝐾)𝑊 < 0
Tendo que:
𝑷𝑊 = 1
−2𝜶𝟏𝑊+𝑊′(𝐴 + 𝐵𝐾)′ + (𝐴 + 𝐵𝐾)𝑊 < 0
Reescrevendo:
−2𝜶𝟏𝑊 +𝑊′𝐴′ + 𝐵′𝐾′𝑊′ + 𝐴𝑊 +𝐵𝐾𝑊 < 0
Agora fazendo:
𝒀 = 𝐾𝑊
A LMI é:
{−2𝜶𝟏𝑊 +𝑊′𝐴′ + 𝐵′𝑌′ + 𝐴𝑊 + 𝐵𝑌 < 0
𝑊 = 𝑊′ > 0 (11)
Agora fazendo substituição de (9) em (8), nós
podemos encontrar a LMI que define o posicionamento a direita de uma reta vertical que passa por 𝜶𝟐:
2𝜶𝟐𝑷 − (𝐴 + 𝐵𝐾)𝑷 − 𝑷(𝐴 + 𝐵𝐾)′ < 0 (12)
Figura 3 - Sector definido por 𝜃
Figura4 - faixa 𝛼2 ≤ ℜ{𝜆} ≤ 𝛼1
3
A equação (12) não é uma LMI, então fazendo
transformação para que seja uma LMI: 2𝑊′𝜶𝟐𝑷𝑊 −𝑊′(𝐴 + 𝐵𝐾)′𝑷𝑊 −𝑊′𝑷(𝐴 + 𝐵𝐾)𝑊 < 0
Considerando que:
𝑷𝑊 = 1
2𝜶𝟐𝑊 − (𝐴 + 𝐵𝐾)′ − (𝐴 + 𝐵𝐾)𝑊 < 0
Reescrevendo:
2𝜶𝟐𝑊 −𝑊′𝐴′ − 𝐵′𝐾′𝑊′ − 𝐴𝑊 −𝐵𝐾𝑊 < 0
Agora fazendo:
𝒀 = 𝐾𝑊
A LMI é:
{2𝜶𝟐𝑊 −𝑊′𝐴′ − 𝑌′𝐵′ − 𝐴𝑊 − 𝐵𝑌 < 0
𝑊 = 𝑊′ > 0 (13)
Agora juntando (11) e (13), nós podemos definir
uma LMI, para garantir o posicionamento dos polos do sistema em malha fechada, naquela faixa entre 𝜶𝟏 e 𝜶𝟐.
{−2𝜶𝟏𝑊 +𝑊′𝐴′ + 𝐵′𝑌′ + 𝐴𝑊 +𝐵𝑌 < 0
2𝜶𝟐𝑊 −𝑊′𝐴′ − 𝑌′𝐵′ − 𝐴𝑊 −𝐵𝑌 < 0
𝑊 = 𝑊′ > 0
(14)
1.3 Setor no semipleno-esquerdo: fator de amortecimento dos pólos maior que um dado 𝝃 (Figura 3)
Primeiro, nós devemos descrever quem é 𝜽:
𝝈 =Constante de amortecimento, cuja ubiquação está no
eixo real.
𝝈 = 𝜉𝑤𝑛
𝒘𝒅= Frequência de amortecimento, cuja ubiquação está
no eixo imaginário.
𝒘𝒅 = 𝑤𝑛√1− 𝜉2
𝒘𝒏= Frequência natural, é a hipotenusa do triangulo
retângulo formado por os catetos de amortecimento 𝝈 e frequência de amortecimento 𝒘𝒅.
O ângulo de apertura dos polos complexos 𝜃 , está
relacionado com o coeficiente de amortecimento 𝜉.
𝜉 = 𝑐𝑜𝑠𝜃
Onde:
0 ≤ |𝜉| ≤ 1
Considerando o Corolário1:
Podemos definir que: Setor cônico com vértice na origem e ângulo 𝜃, onde
𝑹𝒆(𝒛)𝑡𝑔𝜃 < |𝑰𝒎(𝒛)| é descrito por (6).
Agora, a partir do Teorema1 e do corolário 2, para
sistemas no tempo contınuo, sendo 𝒟 no semiplano esquerdo, de modo que:
𝒇𝕯(𝒛) = 𝑧 + 𝑧̅ < 0
Fazendo substituição de (1, 𝑧, 𝑧̅) ↔ (𝑷, 𝑨𝑷, (𝑨𝑷)′) em (6),
tem-se que:
[(𝒔𝒆𝒏𝜽)(𝐴𝑃 + (𝐴𝑃)′) (𝒄𝒐𝒔𝜽)(𝐴𝑃 − (𝐴𝑃)′)
(𝒄𝒐𝒔𝜽)((𝐴𝑃)′ − 𝐴𝑃) (𝒔𝒆𝒏𝜽)(𝐴𝑃 + (𝐴𝑃)′)] < 𝟎 (15)
Escrevendo que:
𝑻𝟏 = 𝐴𝑃 + 𝑃𝐴′
𝑻𝟐 = 𝐴𝑃 − 𝑃𝐴′
𝑻𝟑 = 𝑃𝐴′ − 𝐴𝑃
Fazendo substituição em (14):
[𝑠𝑖𝑛𝜃(𝑻𝟏) 𝑐𝑜𝑠𝜃(𝑻𝟐)𝑐𝑜𝑠𝜃(𝑻𝟑) 𝑠𝑖𝑛𝜃(𝑻𝟏)
] < 0
Agora considerando uma síntese de realimentação de estados:
𝑢 = 𝑲𝑥
Figura5 - Polos complexos conjugados
4
O sistema (1) em malha fechada:
�̇� = (𝑨 + 𝑩𝑲)⏟
�̅�
𝑥
Agora fazendo substituição em (15), nós podemos
encontrar a LMI que define o posicionamento dos polos no setor descrito pelo ângulo 𝜽:
[𝑠𝑖𝑛𝜃((𝐴 + 𝐵𝐾)𝑷 + 𝑷(𝐴 + 𝐵𝐾)′) 𝑐𝑜𝑠𝜃((𝐴 + 𝐵𝐾)𝑷 − 𝑷(𝐴 + 𝐵𝐾)′)
𝑐𝑜𝑠𝜃(𝑷(𝐴 + 𝐵𝐾)′ − (𝐴 + 𝐵𝐾)𝑷) 𝑠𝑖𝑛𝜃((𝐴 + 𝐵𝐾)𝑷 + 𝑷(𝐴 + 𝐵𝐾)′)] < 0
(16)
Nós podemos olhar que a equação (16) não é uma LMI em P e K
Agora multiplicando a equação (16) pela matriz 𝑊 = 𝑷−𝟏
[𝑠𝑖𝑛𝜃(𝑾′(𝐴 + 𝐵𝐾)𝑷𝑾) +𝑾′𝑷(𝐴 + 𝐵𝐾)′𝑾) 𝑐𝑜𝑠𝜃(𝑾′(𝐴 + 𝐵𝐾)𝑷𝑾−𝑾′𝑷(𝐴 + 𝐵𝐾)′𝑾
𝑐𝑜𝑠𝜃(𝑾′𝑷(𝐴 + 𝐵𝐾)′𝑾−𝑾′(𝐴 + 𝐵𝐾)𝑷𝑾) 𝑠𝑖𝑛𝜃(𝑾′(𝐴 + 𝐵𝐾)𝑷𝑾+𝑾′𝑷(𝐴 + 𝐵𝐾)′𝑾)] < 0 (17)
Agora a equação (17), resulta:
[𝑠𝑖𝑛𝜃(𝑾𝐴 + 𝐵𝐾𝑾+ 𝐴′𝑾+ 𝐵′𝐾′𝑾′) 𝑐𝑜𝑠𝜃(𝑾𝐴 + 𝐵𝐾𝑾−𝐴′𝑾−𝐵′𝐾′𝑾′)
𝑐𝑜𝑠𝜃(𝐴′𝑾+ 𝐵′𝐾′𝑾′ −𝑾𝑨 − 𝐵𝐾𝑾) 𝑠𝑖𝑛𝜃(𝑾𝐴 + 𝐵𝐾𝑾+ 𝐴′𝑾+𝐵′𝐾′𝑾′)] < 0 (18)
Fazendo 𝒀 = 𝐾𝑊 na equação (18):
[𝑠𝑖𝑛𝜃(𝑾𝐴 + 𝐵𝑌 + 𝐴′𝑾+𝐵′𝑌′) 𝑐𝑜𝑠𝜃(𝑾𝐴 + 𝐵𝑌 − 𝐴′𝑾− 𝐵′𝑌′)
𝑐𝑜𝑠𝜃(𝐴′𝑾+𝐵′𝑌′ −𝑾𝑨 − 𝐵𝑌) 𝑠𝑖𝑛𝜃(𝑾𝐴 + 𝐵𝑌 + 𝐴′𝑾+ 𝐵′𝑌′)] < 0
Então a LMI que define o posicionamento dos polos
no setor é:
{[𝑠𝑖𝑛𝜃(𝑾𝐴 + 𝐵𝑌 + 𝐴′𝑾+ 𝐵′𝑌′) 𝑐𝑜𝑠𝜃(𝑾𝐴 + 𝐵𝑌 − 𝐴′𝑾− 𝐵′𝑌′)
𝑐𝑜𝑠𝜃(𝐴′𝑾+𝐵′𝑌′ −𝑾𝑨 − 𝐵𝑌) 𝑠𝑖𝑛𝜃(𝑾𝐴 + 𝐵𝑌 + 𝐴′𝑾+ 𝐵′𝑌′)] < 0
𝑊 = 𝑊′ > 0
(19)
2 EXERCÍCIO 2 Usando o LMItoolbox, implemente a solução dos
seguintes problemas:
Síntese de realimentação de estados para a
minimização de ‖𝑇𝑊𝑍‖2 sujeito ao
posicionamento de pólos em uma strip.
Seja o seguinte sistema linear na forma:
𝑿(𝒕)̇ = 𝑨𝑋(𝑡) + 𝐁U(t) + 𝑩𝒘𝑤(𝑡)
𝒁(𝒕) = 𝑪𝒛𝑋(𝑡) + 𝑫𝒛𝒘𝑊(𝑡) + 𝑫𝒛𝒖𝑈(𝑡)
Onde Z(t) são as saídas de rendimento.
A LMI que define a norma H2 é:
min(𝑡𝑟𝑎𝑐𝑜 𝑊)
{
{
[𝑾′𝐴′ + 𝒀′𝐵′ + 𝐴𝑾 + 𝐵𝒀 𝑾𝐶𝑧
′ + 𝒀′𝐷𝑧𝑢′
𝐶𝑧𝑾+𝐷𝑧𝑢𝒀 −𝐼] < 0 𝐿𝑀𝐼 𝑒𝑚 𝑊 𝑒 𝑌
𝑾 = 𝑾′ > 0
(𝟐𝟎)
{[𝑿 𝐵′𝑤𝐵𝑤 𝑊
] > 0 𝐿𝑀𝐼 𝑒𝑚 𝑋 𝑒 𝑊
Agora juntando a LMI (14) (posicionamento de polos numa strip) com a LMI (20) (Norma H2), nós podemos
obter uma minimização da norma sujeito ao posicionamento dos polos numa strip.
{
[𝑾′𝐴′ + 𝒀′𝐵′ + 𝐴𝑾+𝐵𝒀 𝑾𝐶𝑧
′ + 𝒀′𝐷′𝑧𝑢𝐶𝑧𝑾+𝐷𝑧𝑢𝒀 −𝐼
] < 0 𝐿𝑀𝐼 𝑒𝑚 𝑊 𝑒 𝑌
{[𝑿 𝐵′𝑤𝐵𝑤 𝑊
] > 0 𝐿𝑀𝐼 𝑒𝑚 𝑋 𝑒 𝑊
−2𝜶𝟏𝑾+𝑾′𝐴′ + 𝑩′𝒀′ + 𝐴𝑾+𝐵𝒀 < 02𝜶𝟐𝑾−𝑾′𝐴′ − 𝒀′𝑩′ − 𝐴𝑾−𝐵𝒀 < 0
𝑾 = 𝑊′ > 0
(𝟐𝟏)
Agora usando a LMItoolbox de matlab podemos definir as LMIs:
setlmis([])
%%%% DECLARACAO DAS DIMENSOES E ESTRUCTURA
DE CADA UMA DAS MATRIZES
W=lmivar(1,[3 1])
Y=lmivar(2,[1 3])
X=lmivar(1,[3 1])
% % 1 LMI [WA'+AW + Y'B'+BY WC'+Y'D ;
CW+DY -I]
lmiterm([1 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([1 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([1 2 1 W],Cz,1) %%%%% CzW
lmiterm([1 2 1 Y],Dzu,1) %%%%% DzuY
lmiterm([1 2 2 0],-1) %%%%% -I
% 2 LMI [ X Bw'; Bw W]
lmiterm([-2 1 1 X],1,1) %%%%% X
lmiterm([-2 2 1 0],Bw) %%%%% Bw
lmiterm([-2 2 2 W],1,1) %%%%% W
% % 3 LMI [WA'+AW+BY+B'Y'+2uW]<0
lmiterm([3 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([3 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([3 1 1 W],2*u,1) %%%%% 2uW
%%%% 4 LMI [WA'+AW+BY+B'Y'+2uW]>0
lmiterm([-4 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([-4 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([-4 1 1 W],2*uu,1) %%%%% 2uW
% 5 LMI W=W'>0
lmiterm([-5 1 1 W],1,1) %%%%% W>0
lmis=getlmis;
5
Síntese de realimentação de estados para a
minimização de ‖𝑇𝑊𝑍‖∞ sujeito ao
posicionamento de pólos em uma strip.
A LMI que define a norma Hinfinito está definida por:
{
[
𝑾′𝐴′ + 𝒀′𝐵′ + 𝐴𝑾+𝐵𝒀 𝐵𝑤 𝐵𝑤𝐵𝑤 −𝛾2𝐼 𝐷′𝑤𝐶𝑧𝑾 𝐷𝑤 −𝐼
] < 0
𝑾 = 𝑾′ > 0
(22)
Agora juntando a LMI (14) (posicionamento de polos numa strip) com a LMI (22) (Norma Hinfinito), nós
podemos obter uma minimização da norma sujeito ao posicionamento dos polos numa strip:
{
[
𝑾′𝐴′ + 𝒀′𝐵′ + 𝐴𝑾+𝐵𝒀 𝐵𝑤 𝐵𝑤𝐵𝑤 −𝛾2𝐼 𝐷′𝑤𝐶𝑧𝑾 𝐷𝑤 −𝐼
] < 0
−2𝜶𝟏𝑾+𝑾′𝐴′ + 𝑩′𝒀′ + 𝐴𝑾+𝐵𝒀 < 0
2𝜶𝟐𝑾−𝑾′𝐴′ − 𝒀′𝑩′ − 𝐴𝑾−𝐵𝒀 < 0
𝑾 = 𝑊′ > 0
(23)
Agora usando a LMItoolbox de matlab podemos definir as LMIs:
3 EXERCÍCIO 3 Test os problemas do item anterior considerando o
sistema do exemplo 7 do artigo Scherer et al:
Multiobjective Output-Feedback Control, IEEE-TAC 1997.
Considere o seguinte sistema:
[
�̇�𝟏�̇�𝟐�̇�𝟑
] = [0 10 2−1 1 00 2 −5
]
⏞ 𝐴
[
𝒙𝟏𝒙𝟐𝒙𝟑] + [
101]
⏞𝑩𝒘
𝑤 + [010]
⏞𝐵
𝑢
𝑦 = [0 1 0]⏟ 𝑪
[
𝑥1𝑥2𝑥3] + 2⏟
𝐷𝑤
𝑤
E tem saídas de rendimento definidas por:
𝒛 = [0 1 00 0 10 0 0
]⏟
𝑪𝒛
[
𝒙𝟏𝒙𝟐𝒙𝟑] + [
001]
⏟𝑫𝒛𝒖
𝑢 = [𝑥2𝑥3𝑢]
Síntese de realimentação de estados para a
minimização de ‖𝑇𝑊𝑍‖2 sujeito ao
posicionamento de pólos em uma strip.
%%% SINTESE DE REALIMENTACAO DE ESTADOS PARA
MINIMIZACAO DE H2 SUJEITO AO
%%% POSICIONAMENTO DE POLOS EM UMA STRIP.
clc
clear all
A=[0 10 2;-1 1 0;0 2 -5];
B=[0;1;0];
Bw=[1 0 0;0 0 0;1 0 0];
Cz=[0 1 0;0 0 1;0 0 0];
Dzu=[0;0;1];
%%% ALOCACAO DA FAIXA DOS POLOS
u=5;
uu=6;
setlmis([])
%%%% DECLARACAO DAS DIMENSOES E ESTRUCTURA DE
CADA UMA DAS MATRIZES
W=lmivar(1,[3 1])
Y=lmivar(2,[1 3])
X=lmivar(1,[3 1])
% % 1 LMI [WA'+AW + Y'B'+BY WC'+Y'D ; CW+DY
-I]
lmiterm([1 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([1 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([1 2 1 W],Cz,1) %%%%% CzW
lmiterm([1 2 1 Y],Dzu,1) %%%%% DzuY
lmiterm([1 2 2 0],-1) %%%%% -I
% 2 LMI [ X Bw'; Bw W]
lmiterm([-2 1 1 X],1,1) %%%%% X
lmiterm([-2 2 1 0],Bw) %%%%% Bw
lmiterm([-2 2 2 W],1,1) %%%%% W
% % 3 LMI [WA'+AW+BY+B'Y'+2uW]<0
lmiterm([3 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([3 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([3 1 1 W],2*u,1) %%%%% 2uW
setlmis([])
%%%% DECLARACAO DAS DIMENSOES E ESTRUCTURA DE
CADA UMA DAS MATRIZES
W=lmivar(1,[3 1])
Y=lmivar(2,[1 3])
gamma=lmivar(1,[1 1])
u=5
uu=7
% % 1 LMI [WA'+AW + Y'B'+BY Bw WCz'+Y'Dzu';
Bw' -gamma*I Dw';
% CzW+Dzu*Y Dw -I]%%%%% se agrego nuevo
termino Dzu*Y
lmiterm([1 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([1 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([1 2 1 0],Bw') %%% Bw'
lmiterm([1 2 2 gamma],-1,1) %%% -gamma*I
lmiterm([1 2 3 0],Dzw') %%% Dzw'
lmiterm([1 3 1 W],Cz,1) %%% Cz
lmiterm([1 3 1 Y],Dzu,1) %%% Dzu*Y
lmiterm([1 3 3 0],-1) %%% -I
% % 2 LMI [WA'+AW+BY+B'Y'+2uW]<0
lmiterm([2 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([2 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([2 1 1 W],2*u,1) %%%%% 2uW
%%%% 3 LMI [WA'+AW+BY+B'Y'+2uW]>0
lmiterm([-3 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([-3 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([-3 1 1 W],2*uu,1) %%%%% 2uW
% 4 LMI W=W'>0
lmiterm([-4 1 1 W],1,1) %%%%% W>0
lmis=getlmis;
6
Figura6 - Simulação dos estados do sistema com realimentação de estados
Síntese de realimentação de estados para a
minimização de ‖𝑇𝑊𝑍‖∞ sujeito ao
posicionamento de pólos em uma strip.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
%%%% 4 LMI [WA'+AW+BY+B'Y'+2uW]>0
lmiterm([-4 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([-4 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([-4 1 1 W],2*uu,1) %%%%% 2uW
% 5 LMI W=W'>0
lmiterm([-5 1 1 W],1,1) %%%%% W>0
lmis=getlmis;
c=mat2dec(lmis,eye(3),eye(1,3),eye(3))
options=[10^-5,0,0,0,0]
[copt,xopt]=mincx(lmis,c,options)
Wopt=dec2mat(lmis,xopt,W)
Yopt=dec2mat(lmis,xopt,Y)
Xopt=dec2mat(lmis,xopt,X);
%%%%GANHO
K=Yopt*inv(Wopt)
K=[-4.8824 -12.5450 -0.7992]
%%%%% alocação dos autovalores de (A+BK)
AA=A+B*K;
eig(AA)
𝜆12 − 5.4862 ± 5.1869i
𝜆3 = -5.5725 %%%%% Fazendo simulação do sistema em malha
fechada com realimentação de estados
C=[0 1 0];
D=0;
T = 0:0.1:1; % simulation time =
10 seconds
U =ones(size(T)) ; % u = 1, a step
input
[XX,YY]=lsim(A+B*K,B,C,D,U,T); % simulate CON
REALIMENTACION K
plot(T,YY)
grid
%%%%% A norma H2 do sistema em malha fechada é
dada por
G2=sqrt(trace(Wopt))
G2= 0.8425
%%% SINTESE DE REALIMENTACAO DE ESTADOS PARA
MINIMIZACAO DE Hinfinito SUJEITO AO
%%% POSICIONAMENTO DE POLOS EM UMA STRIP
clc
clear all
A=[0 10 2;-1 1 0;0 2 -5];
B=[0;1;0];
Bw=[1;0;1];
Cz=[1 0 0;0 0 0;0 0 0];
Dzw=0;
Dzu=[0;1;0];
%%% ALOCACAO DA FAIXA DOS POLOS
u=30;
uu=31;
setlmis([])
%%%% DECLARACAO DAS DIMENSOES E ESTRUCTURA DE
CADA UMA DAS MATRIZES
W=lmivar(1,[3 1])
Y=lmivar(2,[1 3])
gamma=lmivar(1,[1 1])
% % 1 LMI [WA'+AW + Y'B'+BY Bw
WCz'+Y'Dzu'; Bw' -gamma*I Dw';
% CzW+Dzu*Y Dw -I]%%%%% se agrego nuevo
termino Dzu*Y
lmiterm([1 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([1 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([1 2 1 0],Bw') %%% Bw'
lmiterm([1 2 2 gamma],-1,1) %%% -gamma*I
lmiterm([1 2 3 0],Dzw') %%% Dzw'
lmiterm([1 3 1 W],Cz,1) %%% Czw
lmiterm([1 3 1 Y],Dzu,1) %%% Dzu*Y
lmiterm([1 3 3 0],-1) %%% -I
% % 2 LMI [WA'+AW+BY+B'Y'+2uW]<0
lmiterm([2 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([2 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([2 1 1 W],2*u,1) %%%%% 2uW
%%%% 3 LMI [WA'+AW+BY+B'Y'+2uW]>0
lmiterm([-3 1 1 W],1,A','s') %%%% WA'+AW
lmiterm([-3 1 1 Y],B,1,'s') %%% BY+Y'B'
lmiterm([-3 1 1 W],2*uu,1) %%%%% 2uW
% 4 LMI W=W'>0
lmiterm([-4 1 1 W],1,1) %%%%% W>0
lmis=getlmis;
c=mat2dec(lmis,eye(3),eye(1,3),eye(1))
options=[10^-5,0,0,0,0]
[copt,xopt]=mincx(lmis,c,options)
Wopt=dec2mat(lmis,xopt,W)
Yopt=dec2mat(lmis,xopt,Y)
Gammaopt=dec2mat(lmis,xopt,gamma)
%%%%GANHO
K=Yopt*inv(Wopt)
K=[ -5.7055 -12.9999 0.0020]
7
Figura7 - Simulação dos estados do sistema com
realimentação de estados
4 EXERCÍCIO 4
Determine uma condição LMI que possibilite a
síntese de uma realimentação dinâmica de saída de
forma a garantir:
Figura8 – Realimentação dinâmica de saída
Seja o seguinte sistema linear na forma:
�̇� = 𝑨𝑋 + 𝐁U + 𝑩𝒘𝑊
𝒀 = 𝑪𝑋 + 𝑫𝒘𝑊
(24)
𝒁𝟐 = 𝑪𝒛𝟐𝑋 +𝑫𝒛𝒖𝟐𝑈 + 𝐃𝐳𝐰𝟐𝑊
𝒁∞ = 𝑪𝒛∞𝑋 +𝑫𝒛𝒖∞𝑈 + 𝐃𝐳𝐰∞𝑊
Com realimentação dinâmica:
�̇� = 𝐴𝑘𝛏 + 𝐵𝑘𝒀 (25)
𝑼 = 𝐶𝑘𝝃 + 𝐷𝑘𝑌
Onde:
𝑿 = 𝑉𝑒𝑡𝑜𝑟 𝑑𝑒 𝑒𝑠𝑡𝑎𝑑𝑜𝑠
𝑾 = 𝑠𝑖𝑛𝑎𝑙 𝑒𝑥𝑡𝑒𝑟𝑛𝑎 ( Sinal de perturbação) 𝒀 = 𝑆𝑎í𝑑𝑎 𝑚𝑒𝑑𝑖𝑑𝑎
𝒁 = 𝑆𝑎í𝑑𝑎𝑠 𝑑𝑒 𝑟𝑒𝑛𝑑𝑖𝑚𝑒𝑛𝑡𝑜 𝝃 = 𝑉𝑒𝑡𝑜𝑟 𝑑𝑒 𝑣𝑎𝑟𝑖𝑎𝑣𝑒𝑖𝑠 𝑑𝑒 𝑒𝑠𝑡𝑎𝑑𝑜 𝑑𝑜 𝑐𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑑𝑜𝑟
𝑼 = 𝑆𝑖𝑛𝑎𝑖 𝑑𝑒 𝑐𝑜𝑛𝑡𝑟𝑜𝑙𝑒
O sistema em malha fechada é:
[�̇��̇�]
⏞�̇�𝑐𝑙
= [𝐴 + 𝐁𝐷𝑘 𝑩𝐶𝑘𝐵𝑘𝑪 𝐴𝑘
]⏞
𝐴𝑐𝑙
[𝑿�̇�]
⏞𝑋𝑐𝑙
+ [𝑩𝒘 + 𝐵𝐷𝑘𝑫𝒘
𝐵𝑘𝑫𝒘]
⏞ 𝐵𝑐𝑙
𝑾
𝒁𝟐 = [𝑪𝒛𝟐 +𝑫𝒛𝒖𝟐𝐷𝑘𝑪 𝑫𝒛𝒖𝟐𝐶𝑘]⏞
𝐶𝑐𝑙2
[𝑿�̇�] + [𝐃𝐳𝐰𝟐 +𝑫𝒛𝒖𝟐𝐷𝑘𝑫𝒘]
⏞
𝐷𝑐𝑙2
𝑾
𝒁∞ = [𝑪𝒛∞ +𝑫𝒛𝒖∞𝐷𝑘𝑪 𝑫𝒛𝒖∞𝐶𝑘]⏞
𝐶𝑐𝑙∞
[𝑿�̇�] + [𝐃𝐳𝐰∞ +𝑫𝒛𝒖∞𝐷𝑘𝑫𝒘]
⏞
𝐷𝑐𝑙∞
𝑾
Equação correspondente ao espaço de estados em
malha fechada:
�̇�𝑐𝑙 = 𝑨𝒄𝒍𝑋𝑐𝑙 +𝑩𝒄𝒍𝑊
𝒁𝟐 = 𝑪𝒄𝒍𝟐𝑋𝑐𝑙 +𝑫𝒄𝒍𝟐𝑊
𝒁∞ = 𝑪𝒄𝒍∞𝑋𝑐𝑙 +𝑫𝒄𝒍∞𝑊
‖𝑇𝑤𝑧‖2 ≤ 𝛽
A é estável e ‖𝑇𝑤𝑧‖2 ≤ 𝛽 se existe uma matriz 𝑷
simétrica e 𝑸 tal que:
{
[𝐴′𝑷+𝑷𝐴 𝑷𝐵𝑤𝐵𝑤′𝑷 −𝐼
] < 0 (𝟐𝟔)
[𝑷 𝐶𝑍′𝐶𝑍 𝑸
] > 0 (𝟐𝟕)
𝑇𝑟(𝑸) < 𝛽
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.02
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
%%%%% alocação dos autovalores de (A+BK)
AA=A+B*K;
eig(AA)
𝜆12 =−5.5680 ± 5.5450i
𝜆3 = -5.8639
%%%%% Fazendo simulação do sistema em malha
fechada com realimentação de estados
D=0;
T = 0:0.1:1; % simulation time =
10 seconds
U =ones(size(T)) ; % u = 1, a step
input
[XX,YY]=lsim(A+B*K,B,Cz,D,U,T); % simulate CON
REALIMENTACION K
plot(T,YY)
grid
%%%%% A norma Hinfinito do sistema em malha
fechada é dada por
Gamma=sqrt(Gammaopt)
Gamma= 1.4510
8
O objetivo do exercício é calcular 𝑨𝒌, 𝑩𝒌, 𝑪𝒌, 𝑫𝒌 do compensador dinâmico (25), de forma garantir que 𝜎(𝑨𝒄𝒍) tenham parte real negativa. Nós vamos definir agora as seguintes matrizes:
𝝅𝟏 = [𝑋 𝐼𝑀′ 0
] (28)
𝝅𝟐 = [𝐼 𝑌0 𝑁′
] (29)
Agora multiplicando ao lado esquerdo de (26) por
𝒅𝒊𝒂𝒈(𝝅𝟏′ , 𝑰) e o lado direito por 𝒅𝒊𝒂𝒈(𝝅𝟏, 𝑰).
[𝝅𝟏′ 00 𝐼
] [𝐴′𝑷+ 𝑷𝐴 𝑷𝐵𝑤𝐵𝑤′𝑷 −𝐼
] [𝝅𝟏 00 𝐼
] < 0
[𝝅𝟏′ 𝑨′𝑷+𝝅𝟏
′ 𝑷𝐴 𝝅𝟏′ 𝑷𝐵𝑤
𝐵𝑤′𝑷 −𝐼] [𝝅𝟏 00 𝐼
] < 0
[𝝅𝟏′ 𝑨′𝑷𝝅𝟏 +𝝅𝟏
′ 𝑷𝐴𝝅𝟏 𝝅𝟏′ 𝑷𝐵𝑤
𝐵𝑤′𝑷𝝅𝟏 −𝐼] < 0 (30)
Agora considerando:
𝝅𝟏′ 𝑷 = 𝝅𝟐′
(31)
𝑷𝝅𝟏 = 𝝅𝟐
Fazendo substituição em (30)
[𝝅𝟏′ 𝑨′𝝅𝟐 + 𝝅𝟐′𝐴𝝅𝟏 𝝅𝟐′𝐵𝑤
𝐵𝑤 ′𝝅𝟐 −𝐼] < 0 (32)
Considerando:
𝐴 = 𝑨𝒄𝒍 Agora fazendo substituição de (28) e (29) em (32):
𝝅𝟐′ 𝐴𝝅𝟏 = [
𝐴𝑋 + 𝐵�̂� 𝐴 + 𝐵�̂�𝐶�̂� 𝑌𝐴 + �̂�𝐶
] (33)
𝝅𝟏′ 𝑨′𝝅𝟐 = [
𝑋𝐴′ + �̂�𝐵′ �̂�′(𝐴 + 𝐵�̂�𝐶)′ 𝐴′𝑌 + 𝐶′�̂�
] (34)
𝝅𝟐′𝐵𝑤 = [𝐵𝑤 + 𝐵�̂�𝐷𝑤𝑌𝐵𝑤 + �̂�𝐷𝑤
] (35)
Onde:
�̂� = 𝑌𝐴𝑋 + 𝑌𝐵𝐷𝑘𝐶𝑋 + 𝑁𝐵𝑘𝐶𝑋 + 𝑌𝐵𝐶𝑘𝑀′ + 𝑁𝐴𝑘𝑀
�̂� = 𝑌𝐵𝐷𝑘 + 𝑁𝐵𝑘 (36)
�̂� = 𝐷𝑘𝐶𝑋 + 𝐶𝑘𝑀′
�̂� = 𝐷𝑘
Agora fazendo substituição de (33), (34) e (35) em (32), nós podemos definir a primeira LMI que garante a
minimização da norma H2 considerando uma realimentação dinâmica de saída:
[
𝐴𝑋 + 𝐵�̂� + 𝑋𝐴′ + �̂�𝐵 𝐴 + 𝐵�̂�𝐶 + �̂�′ 𝐵𝑤 + 𝐵�̂�𝐷𝑤
𝑨 + (𝐴 + 𝐵�̂�𝐶)′̂ 𝑌𝐴 + �̂�𝐶 + 𝐴′𝑌 + 𝐶′�̂� 𝑌𝐵𝑤 + �̂�𝐷𝑤𝐵𝑤′ + (𝐵�̂�𝐷𝑤)′ (𝑌𝐵𝑤)′ + (�̂�𝐷𝑤)′ −𝐼
] < 0 (37)
É uma LMI em 𝑿, 𝒀, �̂�, �̂�, �̂� e �̂�.
Agora multiplicando ao lado esquerdo de (27) por
𝒅𝒊𝒂𝒈(𝝅𝟏′ , 𝑰) e o lado direito por 𝒅𝒊𝒂𝒈(𝝅𝟏, 𝑰).
[𝝅𝟏′ 00 𝐼
] [𝑷 𝐶𝑍′𝐶𝑍 𝑸
] [𝝅𝟏 00 𝐼
] > 0
[𝝅𝟏′ 𝑷 𝝅𝟏
′ 𝐶𝑍′𝐶𝑍 𝑸
] [𝝅𝟏 00 𝐼
] > 0
[𝝅𝟏′ 𝑷𝝅𝟏 𝝅𝟏
′ 𝐶𝑍′𝐶𝑍𝝅𝟏 𝑸
] > 0 (38)
Fazendo substituição de (31) em (38)
[𝝅𝟏′ 𝝅𝟐 𝝅𝟏
′ 𝐶𝑍′𝐶𝑍𝝅𝟏 𝑸
] > 0 (39)
Agora fazendo substituição de (28) e (29) em (39):
𝝅𝟏′ 𝝅𝟐 = [
𝑋 𝐼𝐼 𝑌
] (40)
𝐶𝑍𝝅𝟏 = [𝐶𝑍𝑋 + 𝐷𝑍�̂� 𝐶𝑍 +𝐷𝑍�̂�𝐶] (41)
Onde �̂� 𝒆 �̂� são definidas por (36). Agora fazendo substituição de (40) e (41) em (39),
nós podemos definir a segunda LMI que garante a minimização da norma H2 considerando uma realimentação dinâmica de saída:
[
𝑋 𝐼 (𝐶𝑍𝑋)′ + (𝐷𝑍�̂�)′
𝐼 𝑌 𝐶𝑍′ + (𝐷𝑍�̂�𝐶)′
𝐶𝑍𝑋 + 𝐷𝑍�̂� 𝐶𝑍 +𝐷𝑍�̂�𝐶 𝑄
] > 0 (42)
É uma LMI em 𝑿, 𝒀, �̂�, 𝑸 e �̂�.
9
Agora, fazendo união da LMI (37) e (42), nos
encontramos a condição LMI que possibilita a síntese de uma realimentação dinâmica de saída que garante a minimização da norma H2.
{
[
𝐴𝑋 + 𝐵�̂� + 𝑋𝐴′ + �̂�𝐵 𝐴 + 𝐵𝑫𝐶 + �̂�′ 𝐵𝑤 + 𝐵𝑫𝐷𝑤
�̂� + (𝐴 + 𝐵𝑫𝐶)′ 𝑌𝐴 + �̂�𝐶 + 𝐴′𝑌 + 𝐶′�̂� 𝑌𝐵𝑤 + �̂�𝐷𝑤
𝐵𝑤′ + (𝐵𝑫𝐷𝑤)′ (𝑌𝐵𝑤)′ + (�̂�𝐷𝑤)′ −𝐼
] < 0
[
𝑋 𝐼 (𝐶𝑍𝑋)′ + (𝐷𝑍�̂�)′
𝐼 𝑌 𝐶𝑍′ + (𝐷𝑍�̂�𝐶)′
𝐶𝑍𝑋 + 𝐷𝑍�̂� 𝐶𝑍 + 𝐷𝑍�̂�𝐶 𝑄
] > 0
𝑇𝑟(𝑸) < 𝛽
(43)
É uma LMI em 𝑿, 𝒀, �̂�, �̂�, �̂� e �̂�.
Agora, resolvendo (43) com LMI Toolbox de Matlab,
nós podemos encontrar as matrizes do controlador dinâmico (25). Elas são definidas por:
𝑫𝒌 = �̂�
𝑪𝒌 = (�̂� − 𝐷𝑘𝐶𝑋)(𝑀′)−𝟏
(44)
𝑩𝒌 = 𝑁−1(�̂� − 𝒀𝑩𝐷𝑘)
𝑨𝒌 = 𝑁−1(�̂� − (𝑌𝐴𝑋 + 𝑌𝐵𝐷𝑘𝐶𝑋 +𝑁𝐵𝑘𝐶𝑋 + 𝑌𝐵𝐶𝑘𝑀
′))(𝑀′)−𝟏
‖𝑇𝑤𝑧‖∞ ≤ 𝜸
A é estável e ‖𝑇𝑤𝑧‖∞ ≤ 𝜸 se e só se existe uma
matriz 𝑷 simétrica tal que:
{[
𝐴′𝑷+ 𝑷𝐴 𝑷𝐵𝑤 𝐶𝑧′
𝐵𝑤 ′𝑃 −𝜸𝐼 𝐷𝑧𝑤′𝐶𝑧 𝐷𝑧𝑤 −𝜸𝐼
] < 0
𝑷 > 0
(45)
O objetivo é calcular 𝑨𝒌, 𝑩𝒌, 𝑪𝒌, 𝑫𝒌 do compensador
dinâmico (25), de forma garantir que 𝜎(𝑨𝒄𝒍) tenham parte
real negativa e minimize a norma 𝑯∞. Multiplicando ao lado esquerdo de (45) por
𝒅𝒊𝒂𝒈(𝝅𝟏′ , 𝑰, 𝑰) e o lado direito por 𝒅𝒊𝒂𝒈(𝝅𝟏, 𝑰, 𝑰).
[𝝅𝟏′ 0 00 𝐼 00 0 𝐼
] [
𝐴′𝑷 + 𝑷𝐴 𝑷𝐵𝑤 𝐶𝑧′
𝐵𝑤′𝑃 −𝜸𝐼 𝐷𝑧𝑤′𝐶𝑧 𝐷𝑧𝑤 −𝜸𝐼
] [𝝅𝟏 0 00 𝐼 00 0 𝐼
] < 0
[
𝝅𝟏′ 𝐴′𝑷+ 𝝅𝟏
′ 𝑷𝐴 𝝅𝟏′ 𝑷𝐵𝑤 𝝅𝟏
′ 𝐶𝑧′
𝐵𝑤 ′𝑃 −𝜸𝐼 𝐷𝑧𝑤′𝐶𝑧 𝐷𝑧𝑤 −𝜸𝐼
] [𝝅𝟏 0 00 𝐼 00 0 𝐼
] < 0
[
𝝅𝟏′ 𝐴′𝑷𝝅𝟏 +𝝅𝟏
′ 𝑷𝐴𝝅𝟏 𝝅𝟏′ 𝑷𝐵𝑤 𝝅𝟏
′ 𝐶𝑧′
𝐵𝑤 ′𝑃𝝅𝟏 −𝜸𝐼 𝐷𝑧𝑤′𝐶𝑧𝝅𝟏 𝐷𝑧𝑤 −𝜸𝐼
] < 0
Agora considerando (31).
[
𝝅𝟏′ 𝐴′𝝅𝟐 + 𝝅𝟐
′ 𝐴𝝅𝟏 𝝅𝟐′ 𝐵𝑤 𝝅𝟏
′ 𝐶𝑧′
𝐵𝑤′𝝅𝟐 −𝜸𝐼 𝐷𝑧𝑤′𝐶𝑧𝝅𝟏 𝐷𝑧𝑤 −𝜸𝐼
] < 0 (46)
Agora fazendo substituição de (28) e (29) em (46):
𝝅𝟐′ 𝐴𝝅𝟏 = [
𝐴𝑋 + 𝐵�̂� 𝐴 + 𝐵�̂�𝐶�̂� 𝑌𝐴 + �̂�𝐶
]
𝝅𝟏′ 𝑨′𝝅𝟐 = [
𝑋𝐴′ + �̂�𝐵′ �̂�′(𝐴 + 𝐵�̂�𝐶)′ 𝐴′𝑌 + 𝐶′�̂�
]
𝝅𝟐′𝐵𝑤 = [𝐵𝑤 + 𝐵�̂�𝐷𝑤𝑌𝐵𝑤 + �̂�𝐷𝑤
]
𝐶𝑍𝝅𝟏 = [𝐶𝑍𝑋 + 𝐷𝑍�̂� 𝐶𝑍 +𝐷𝑍�̂�𝐶]
Onde �̂�, �̂�, �̂� 𝑒 �̂� são definidas em (36). Agora fazendo substituição em (46), nós podemos
definir a LMI que garante a minimização da norma 𝑯∞ considerando uma realimentação dinâmica de saída:
[ 𝐴𝑋 + 𝐵�̂� + 𝑋𝐴′ + �̂�𝐵 𝐴 + 𝐵�̂�𝐶 + �̂�′ 𝐵𝑤 + 𝐵�̂�𝐷𝑤 (𝐶𝑍𝑋)′ + (𝐷𝑍�̂�)′
�̂� + (𝐴 + 𝐵�̂�𝐶)′ 𝑌𝐴 + �̂�𝐶 + 𝐴′𝑌 + 𝐶′�̂� 𝑌𝐵𝑤 + �̂�𝐷𝑤 𝐶𝑍′ + (𝐷𝑍�̂�𝐶)′
𝐵𝑤′ + (𝐵�̂�𝐷𝑤)′ (𝑌𝐵𝑤)′ + (�̂�𝐷𝑤)′ −𝜸𝐼 Dzw′ + (𝐷𝑧�̂�𝐷𝑤)′
𝐶𝑍𝑋 + 𝐷𝑍�̂� 𝐶𝑍 + 𝐷𝑍�̂�𝐶 Dzw + 𝐷𝑧�̂�𝐷𝑤 −𝜸𝐼 ]
< 𝟎
É uma LMI em 𝑿, 𝒀, �̂�, �̂�, �̂� e �̂�.
Agora, resolvendo com LMI Toolbox de Matlab, nós podemos encontrar as matrizes do controlador dinâmico (25), que estão definidas em (44).
5 EXERCÍCIO 5 Com base nas condições do item anterior resolva e
confira os resultados apresentados no exemplo 7 do
artigo Scherer et al: Multiobjective Output-Feedback
Control, IEEE-TAC 1997.
Considere o seguinte sistema:
[
�̇�𝟏�̇�𝟐�̇�𝟑
] = [0 10 2−1 1 00 2 −5
]
⏞ 𝐴
[
𝒙𝟏𝒙𝟐𝒙𝟑] + [
101]
⏞𝑩𝒘
𝑤 + [010]
⏞𝐵
𝑢
𝑦 = [0 1 0]⏟ 𝑪
[
𝑥1𝑥2𝑥3] + 2⏟
𝐷𝑤
𝑤
E tem saídas de rendimento definidas por:
𝒛 = [0 1 00 0 10 0 0
]⏟
𝑪𝒛
[
𝒙𝟏𝒙𝟐𝒙𝟑] + [
000]
⏟𝑫𝒛𝒖
𝑢
10
Miminizar ‖𝑇𝑤𝑧‖2 considerando que a norma
‖𝑇𝑤𝑧‖∞ ≤ 𝟐𝟑. 𝟔
O sistema em malha fechada é:
[�̇��̇�]
⏞�̇�𝑐𝑙
= [𝐴 + 𝐁𝐷𝑘 𝑩𝐶𝑘𝐵𝑘𝑪 𝐴𝑘
]⏞
𝐴𝑐𝑙
[𝑿�̇�]
⏞𝑋𝑐𝑙
+ [𝑩𝒘 + 𝐵𝐷𝑘𝑫𝒘
𝐵𝑘𝑫𝒘]
⏞ 𝐵𝑐𝑙
𝑾
𝒁𝟐 = [𝑪𝒛𝟐 +𝑫𝒛𝒖𝟐𝐷𝑘𝑪 𝑫𝒛𝒖𝟐𝐶𝑘]⏞
𝐶𝑐𝑙2
[𝑿�̇�] + [𝐃𝐳𝐰𝟐 +𝑫𝒛𝒖𝟐𝐷𝑘𝑫𝒘]
⏞
𝐷𝑐𝑙2
𝑾
Onde:
𝑨𝒄𝒍 =
[ 0 10 2 0 0 0−1 −12.81 0 1.013𝑒 + 09 6.639𝑒 + 07 5.019𝑒 + 070 2 −5 0 0 00 131.1 0 −8.13𝑒 + 09 −5.33𝑒 + 08 −4.029𝑒 + 080 666.8 0 −4.137𝑒 + 10 −2.712𝑒 + 09 −2.05𝑒 + 090 −3527 0 2.186𝑒 + 11 1.433𝑒 + 10 1.083𝑒 + 10 ]
𝑩𝒄𝒍 =
[
1−27.621
262.3 1334 −7053]
%%Implementação de realimentação dinâmica de
saída para norma H2 tendo que a norma de
Hinf<=23.6
clear all
clc
%% Definindo matrizes A, B, C e D
A = [0 10 2; -1 1 0; 0 2 -5];
B = [0;1;0];
C = [0 1 0]; %Matriz C de desempenho
Bw = [1 0 1]'; %Com relação a perturbação
D = 0;
Dw = 2;
Cz = [0 1 0; 0 0 1];
z = [0; 0];
Dzw = [0];
setlmis([]);
%% Declaracao das variaveis
X = lmivar(1, [3 1]);
Y = lmivar(1, [3 1]);
A_c = lmivar(1, [3 1]);
B_c = lmivar(2, [3 1]);
C_c = lmivar(2, [1 3]);
D_c = lmivar(1,[1 1]);
Q=lmivar(1,[2 1]);
I = 1;
%% 1 LMI
lmiterm([1 1 1 X],A,1,'s')% A*X+X*A'
lmiterm([1 1 1 C_c],B,1,'s');% B*C_c+C_c*B'
lmiterm([1 2 1 A_c],1,1); % A_c
lmiterm([1 2 1 0], A'); % A'
lmiterm([1 2 1 -D_c], C', B'); % (B*D_c*C)'
lmiterm([1 2 2 Y],1,A,'s');% Y*A+A'*Y
lmiterm([1 2 2 B_c],1,C,'s');% B_c*C+C'*B_c
lmiterm([1 3 1 0], Bw'); % Bw'
lmiterm([1 3 1 -D_c], Dw', B');% (B*D_c*Dw)'
lmiterm([1 3 2 -Y],Bw', 1);% (Y*Bw)'
lmiterm([1 3 2 -B_c],Dw', 1);% (B_c*Dw)'
lmiterm([1 3 3 0],-I); % -I
%% 2 LMI
lmiterm([-2 1 1 X],1,1);% X
lmiterm([-2 2 1 0],I); % I
lmiterm([-2 2 2 Y],1,1);% Y
lmiterm([-2 3 1 X],Cz,1); % Cz*X
lmiterm([-2 3 1 C_c],Dz,1);% Dz*C_c
lmiterm([-2 3 2 0],Cz); % Cz
lmiterm([-2 3 2 D_c],Dz,C);% Dz*D_c*C
lmiterm([-2 3 3 Q],1,1); % Q
%% 3 LMI
lmiterm([-3 1 1 X],1,1); % X>0 positiva definida
%% 4 LMI
lmiterm([-4 1 1 Y],1,1); % Y>0 positiva definida
%% 5 LMI
lmiterm([5 1 1 X],A,1,'s'); % AX+XA'
lmiterm([5 1 1 C_c],B,1,'s'); % B*C_c+C_c'B'
lmiterm([5 1 2 -A_c],1,1); % A_c'
lmiterm([5 1 2 0],A); % A
lmiterm([5 1 2 D_c],B,C); % B*D_c*C
lmiterm([5 1 3 D_c],B,Dw); % B*D_c*Dw
lmiterm([5 1 3 0],Bw); % Bw
lmiterm([5 1 4 X],1,Cz'); % XCz'
lmiterm([5 1 4 -C_c],1,Dz'); % C_c'Dz'
lmiterm([5 2 2 Y],1,A,'s'); % YA+A'Y
lmiterm([5 2 2 B_c],1,C,'s'); % B_c*C+C'B1'
lmiterm([5 2 3 Y],1,Bw); % Y*Bw
lmiterm([5 2 3 B_c],1,Dw); % B_c*Dw
lmiterm([5 2 4 -D_c],C',Dz'); % C'*D_c'*Dz'
lmiterm([5 2 4 0],Cz'); % Cz'
lmiterm([5 3 3 0],-gamma); % -(gama)*I
lmiterm([5 3 4 -D_c],Dw',Dz'); % Dw'D_c'Dz'
lmiterm([5 3 4 0],Dzw'); % Dzw'
lmiterm([5 4 4 0],-gamma); % -(gama)*I
lmis=getlmis;
c=mat2dec(lmis,eye(3),eye(3),eye(3),eye(3,1),eye(
1,3),eye(1),eye(2))
options=[1e-2,100,1e4,0,0]
[copt,xopt]=mincx(lmis,c,options)
Q_Optimo = dec2mat(lmis,xopt,Q);
X_Otimo = dec2mat(lmis,xopt,X)
Y_Otimo = dec2mat(lmis,xopt,Y)
A_c_Otimo = dec2mat(lmis,xopt,A_c);
B_c_Otimo = dec2mat(lmis,xopt,B_c);
C_c_Otimo = dec2mat(lmis,xopt,C_c);
D_c_Otimo = dec2mat(lmis,xopt,D_c);
%% Determinando das matrizes do controlador
dinamico
N = eye(3);
M = eye(3)-X_Otimo*Y_Otimo;
Dk=D_c_Otimo;
Ck=(C_c_Otimo-Dk*C*X_Otimo)*inv(M');
Bk=inv(N)*(B_c_Otimo-Y_Otimo*B*Dk);
Ak=inv(N)*(A_c_Otimo-N*Bk*C*X_Otimo-
Y_Otimo*B*Ck*M'-
Y_Otimo*(A+B*Dk*C)*X_Otimo)*inv(M');
%%%%Sistema em malha fechada com controlador
dinamico
A_ = [A+B*Dk*C B*Ck; Bk*C Ak];
B_ = [Bw+B*Dk*Dw; Bk*Dw];
C_ = [Cz+Dz*Dk*C Dz*Ck];
D_ = [Dzw+Dz*Dk*Dw];
sys=ss(A_,B_,C_,D_)
a=norm(sys,2) % função para determinar valor da
norma H2 para um sistema
a= 3.1144 %%% Valor da norma H2 minimizada
11
𝑪𝒄𝒍 = [0 1 0 0 0 00 0 1 0 0 0
]
𝑫𝒄𝒍 = [00]
6 EXERCÍCIO 6 Determine uma condição LMI que permita a síntese de uma realimentação dinâmica de saída estabilizante para o caso discreto no tempo.
Considere o sistema discreto dado por:
𝑥𝑐𝑙[𝑘 + 1] = 𝐴𝑑𝑥𝑐𝑙[𝑘] (47)
O sistema (47) é assintoticamente estável se ∃𝑃 =𝑃′ > 0 tal que:
𝑃 − 𝐴𝑑′ 𝑷𝐴𝑑 > 0 (48)
Nós podemos observar que (48) não é uma LMI.
Então seja:
𝑉(𝑥𝑐𝑙[𝑘]) = 𝑥𝑐𝑙[𝑘]′𝑷𝑥𝑐𝑙[𝑘] (49)
O teorema de Lyapunov discreto é definido por: Se:
𝚫𝑽(𝒙𝒄𝒍[𝒌]) = 𝑉(𝑥𝑐𝑙[𝑘 + 1]) − 𝑉(𝑥𝑐𝑙[𝑘]) < 0 (50)
Então o sistema é A.E. Agora reescrevendo (50) a partir de (49).
𝑥𝑐𝑙[𝑘 + 1]′𝑷𝑥𝑐𝑙[𝑘 + 1] − 𝑥𝑐𝑙[𝑘]
′𝑷𝑥𝑐𝑙[𝑘] < 0
Agora a partir de (47):
((𝐴𝑑𝑥𝑐𝑙[𝑘])′𝑷(𝐴𝑑𝑥𝑐𝑙[𝑘]) − 𝑥𝑐𝑙[𝑘]′𝑷𝑥𝑐𝑙[𝑘] < 0
𝑥𝑐𝑙[𝑘]′(𝐴𝑑′𝑷𝐴𝑑 − 𝑷)𝑥𝑐𝑙[𝑘] < 0 Se:
𝑷 − 𝐴𝑑′ 𝑷𝐴𝑑 > 𝟎 (51)
Então 𝚫𝑽(𝒙) < 0
Agora aplicando complemento de Schur em (51),
o qual está definido da seguinte maneira:
[𝑸 𝑺
𝑺′ 𝑹] > 0
Considerando:
𝑹 > 0
𝑸 − 𝑺𝑹−𝟏𝑺′ > 0 Obtém-se:
[𝑷 𝐴𝑑′𝑷𝑷𝐴𝑑 𝑷
] > 0 (52)
Agora considerando as seguintes matrizes:
𝝅𝟏 = [𝑋 𝐼𝑀′ 0
] (53)
𝝅𝟐 = [𝐼 𝑌0 𝑁′
] (54)
Agora pré e pós multiplicando todos os elementos por 𝝅𝟏′ e 𝝅𝟏, obtém-se que:
[𝜋′1 0
0 𝜋′1] [
𝑷 𝐴𝑑′𝑷𝑷𝐴𝑑 𝑷
] [𝜋1 00 𝜋1
] > 0
[𝜋′1𝑷 𝜋′1𝐴𝑑′𝑷
𝜋′1𝑷𝐴𝑑 𝜋′1𝑷] [𝜋1 00 𝜋1
] > 0
[𝜋′1𝑷𝜋1 𝜋′1𝐴𝑑′𝑷𝜋1𝜋′1𝑷𝐴𝑑𝜋1 𝜋′1𝑷𝜋1
] > 0 (55)
Agora considerando:
𝝅𝟏′ 𝑷 = 𝝅𝟐′
𝑷𝝅𝟏 = 𝝅𝟐 Então (55) fica:
[𝜋′1𝜋2 𝜋′1𝐴𝑑′𝜋2𝜋′2𝐴𝑑𝜋1 𝜋′1𝜋2
] > 0 (56)
Agora fazendo substituição de (53) e (54) em (56):
𝝅𝟏′ 𝝅𝟐 = [
𝑋 𝐼𝐼 𝑌
] (57)
𝝅𝟐′ 𝐴𝑑𝝅𝟏 = [
𝐴𝑋 + 𝐵�̂� 𝐴 + 𝐵�̂�𝐶�̂� 𝑌𝐴 + �̂�𝐶
] (58)
𝝅𝟏′ 𝐴𝑑
′𝝅𝟐 = [𝑋𝐴′ + �̂�𝐵′ �̂�′(𝐴 + 𝐵�̂�𝐶)′ 𝐴′𝑌 + 𝐶′�̂�
] (59)
Onde �̂�, �̂�, �̂� 𝑒 �̂� são definidas em (36).
Agora fazendo substituição de (57), (58) e (59) em (56), nós podemos definir a LMI que permite a síntese de
uma realimentação dinâmica de saída estabilizante para o caso discreto no tempo.
[
𝑋 𝐼 𝑋𝐴′ + �̂�𝐵′ �̂�′𝐼 𝑌 (𝐴 + 𝐵�̂�𝐶)′ 𝐴′𝑌 + 𝐶′�̂�
𝐴𝑋 + 𝐵�̂� 𝐴 + 𝐵�̂�𝐶 𝑋 𝐼�̂� 𝑌𝐴 + �̂�𝐶 𝐼 𝑌 ]
> 0
É uma LMI em 𝑿, 𝒀, �̂�, �̂�, �̂� e �̂�.
12
7 REFERÊNCIAS
[1] LMI CONTROL TOOLBOX, For use with MATLAB [2] Controle robusto, professor Alexandre Trofino [3] Linear Quadratic Control, Peter Dorato and Chaouki Abdallah