trabalho de controle
DESCRIPTION
Exercicio do OgataTRANSCRIPT
Trabalho T2 - Simulação do Ex. 12.2 - Ogata
EE. 611 - Sistemas de Controle
Prof. Carlos Mendes Richter
Aluno: Henrique da Silva Couto
Desenvolvimento realizado em grupo pelos alunos: Christopher Fonseca, Henrique Couto e Joana Marini.
Proposta do Trabalho: "Consideraremos que se pretende realimentar o sistema com os estados observados e obter um sistema
realimentado com dinâmica duas vezes mais rápida que o sistema original."
Baseado no Exemplo 12.2 do livro:
Engenharia de Controle Moderno, Katsuhiko Ogata, 3ª edição.
Simular no Matlab ou Simulink
PROJETO DO SISTEMA UTILIZANDO OS PÓLOS DADOS PELO AUTOR
O seguinte código foi desenvolvido para obter a resposta ao impulso do sistema original:
%Matrizes SS dadas (planta original): A = [0 20.6; 1 0];
B = [0; 1];
C = [0 1];
D = 0; %Representação no SS sys = ss(A,B,C,D);
%Avaliação da Resposta ao Impulso do sistema step(sys,1);
Como podemos ver até então, a planta original é um sistema instável, conforme mostra a figura abaixo, gerada pela
última linha do código mostrado acima.
Para estabilizar esse sistema, usaremos inicialmente os pólos 𝜇1 e 𝜇2 sugeridos. O posto (ou rank) da matriz de
controlabilidade M é 2, segundo o próprio autor. Isso garante, portanto, que o sistema é controlável, logo
observável.
Sabemos que, pela realimentação de estados, o estímulo de entrada é dado por:
𝑢 = −𝑲𝒙 (1)
Vamos substituir a equação (1) no sistema original, onde obteremos:
�̇� = 𝑨𝒙 + 𝑩(−𝐾𝒙)
�̇� = (𝑨 − 𝑩𝑲)𝒙 (2)
Podemos calcular o vetor de ganho 𝐾 = [𝑘1 𝑘2] igualando a equação característica gerada pelos pólos 𝜇1 e 𝜇2
com a equação característica do sistema aterado, representado na equação (2). Portanto:
(𝑠 − 𝜇1)(𝑠 − 𝜇2) = 𝑠2 + 3,6𝑠 + 9 = |𝑠𝑰 − 𝑨 + 𝑩𝑲|
𝑠2 + 3,6𝑠 + 9 = |[𝑠0
0𝑠
] − [01
20,6
0] + [
01
] [𝑘1 𝑘2]|
{𝑘1 = 1,4369
𝑘2 = 3,6
Portanto,
𝑲 = [1,4369 3,6] (3)
Podemos, agora, simular a resposta ao impulso do sistema com realimentação de estados. O código abaixo foi
utilizado para calcular e plotar a resposta em frequência do sistema simulado.
%% Determinando a resposta ao degrau do sistema com realimentacao de estados
K = [1.4369 3.6]; %Ganho k de acordo com os polos escolhidos
At = A-B*K;
sys = ss(At,B,C,0);
figure; step(sys);
Inserindo o sistema observador na análise
Para obter o dobro da rapidez do sistema de estados realimentados, vamos multiplicar por 2 os pólos 𝜇1 e 𝜇2.
Os pólos (ou autovalores da matriz de ganho do observador) serão, portanto:
𝜆 = −3,6 ± 𝑗4,8
Agora vamos calcular a matriz Ke através da fórmula de Ackermann (método 3 utilizado na solução do exemplo no
Ogata). A fórmula de Ackermann é dada por:
Aplicando a fórmula ao problema dado, tem-se:
𝑲𝑒 = 𝜙(𝑨) [𝑪
𝑪𝑨]
−1
[01
] (4)
Onde: 𝜙(𝑠) = (𝑠 − 𝜆1)(𝑠 − 𝜆2) = 𝑠2 + 7,2𝑠 + 36
Deste modo, 𝜙(𝑨) fica:
𝜙(𝑨) = 𝑨2 + 7,2𝑨 + 36𝑰 (5)
Portanto,
𝑲𝑒 = 𝑨2 + 7,2𝑨 + 36𝑰 [𝑪
𝑪𝑨]
−1
[01
]
= [56,67,2
148,32
56,6] [
01
10
] [01
]
𝑲𝑒 = [56,67,2
] (6)
A figura abaixo mostra a equação do observador de estado de ordem plena:
Com isso, podemos obter nosso sistema observador como sendo:
[𝑥1̇̃
𝑥2̇̃
] = [01
−36−7,2
] [𝑥1̃
𝑥2̃] + [
01
] 𝑢 + [56,67,2
] 𝑦 (7)
Analogamente à equação (1), sabemos que a entrada u pode ser definida como:
𝑢 = −𝑲𝒆 𝒙 (8)
Aplicando a equação (8) no sistema observador mostrado na equação (7), obtemos:
[𝑥1̇̃
𝑥2̇̃
] = [0
−0,43
−36−10,8
] [𝑥1̃
𝑥2̃] + [
56,67,2
] 𝑦 (9)
O sistema completo equivalente
Desejamos agora, sintetizar todo o sistema em uma única função de transferência. Para tanto, utilizaremos da
imagem a seguir retirada de Ogata:
Vamos, primeiramente, calcular a função de transferência de 𝑈(𝑠)
−𝑌(𝑠) :
𝑈(𝑠)
−𝑌(𝑠)= [1,4369 3,6] ([
𝑠0
0𝑠
] − [01
20,6
0] + [
56,67,2
] [0 1] + [01
] [1,4369 3,6])−1
[56,67,2
]
𝑈(𝑠)
−𝑌(𝑠)=
106,9𝑠 + 415,9
𝑠2 + 10,8𝑠 − 15,48 (10)
O próximo passo é obter a função de transferência do processo a controlar e fazer a realimentação unitária. O
código abaixo mostra esse procedimento:
%% Calculo do sistema equivalente final s = tf('s'); U_Sobre_Y = (106.9*s + 415.9)/(s^2 + 10.8*s - 15.48);
[num, den] = ss2tf(A,B,C,0); Planta = tf(num,den);
Y_Sobre_MenosY = U_Sobre_Y*Planta;
T_Eq = feedback(Y_Sobre_MenosY,1)
O código mostrado calcula a seguinte equação de transferência equivalente: