6
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA ENGENHARIA DE CONTROLE E AUTOMAÇÃO MRAC TÓPICOS DE CONTROLE AVANÇADO Leandro Tomé Martins Santa Maria, RS, Brasil 2014

Controle adaptativo trabalho

Embed Size (px)

DESCRIPTION

Trabalho controle adaptativo

Citation preview

Page 1: Controle adaptativo trabalho

UNIVERSIDADE FEDERAL DE SANTA MARIA

CENTRO DE TECNOLOGIA

ENGENHARIA DE CONTROLE E AUTOMAÇÃO

MRAC

TÓPICOS DE CONTROLE AVANÇADO

Leandro Tomé Martins

Santa Maria, RS, Brasil

2014

Page 2: Controle adaptativo trabalho

1. TEORIA MRC – CONTROLE POR MODELO DE REFERÊNCIA

Model Reference Adaptative Control (MRAC) é uma derivação do problema do

Controle por Modelo de Referência (MRC). No MRC, um bom modelo de referência e

conhecimento dos requisitos de perfomance são necessários para que o projetista possa iniciar

com um bom modelo de refência. O objetivo do MRC é achar uma lei de controle que muda a

estrutura e dinâmica da planta para que a relação Entrada/Saída seja a mesma obtida pelo

modelo de referência. O modelo de referência é denotado por e o controlador por

, onde

é o vetor dos parâmetros desconhecidos da função de transferência do

controlador.

O controlador deve ser projetado para garantir que para qualquer dada entrada , o

erro de rastreamento , que representa o desvio da saída da planta da trajetória

desejada , convirja para zero com o tempo. O sistema em malha fechada é feito de uma lei

de controle retroativo comum que engloba a planta, o controlador e um mecanismo de

ajuste que gera estimativas de parâmetros do controlador on-line.

A Figura 1 mostra um esquema geral do MRAC.

Figura 1: Estrutura geral do MRAC.

O adaptador (Adjustment Mechanism) é obtido utilizando o RLS (Recursive Least-

Squares) que é um algoritmo adaptador que vai garantir a convergência dos parâmetros. Este

algoritmo é dado por

onde

[ ]

Page 3: Controle adaptativo trabalho

Além disso, é o erro de aumentado dado por

onde e é um erro de rastreamento.

O objetivo do controle é fazer uma estimativa para obter o vetor de ganhos tal que o

erro aumentado é minimizado e o vetor de ganhos convirja para . A lei de controle

pode ser dada, então, por

[ ]

2. SIMULAÇÃO MATLAB

A seguir segue o código para implementação do MRAC no Matlab

% Leandro Tomé Martins

% Prof. Hilton Grundling

% 26/11/2014

close all

clear all

clc

% Modelo de referencia

Am = [0 1;

-12.96 -5.76]; % Matriz A do modelo de ref.

Bm = [0; 12.96]; % Matriz B do modelo de ref.

% Planta

Ap = [0 1;

-2 -3]; % Matriz A da planta.

Bp = [0; 2]; % Matriz B da planta.

% Intervalo de amostragem:

Ts = 0.025;

%Incializações

Yp_old = [0; 0];

Yp = [0; 0];

Ym_old = [0; 0];

Ym = [0; 0];

omega = [1; -1; 0; 0];

u = 0;

r = 0;

Page 4: Controle adaptativo trabalho

%teta = [-0.4; -0.8; -0.3; -0.5];

teta = [-0.4; -0.8; -0.3; -0.5];

teta_old = teta;

zeta = [0.8; -0.4; 1; 0];

Ym_old1 = [0; 0];

Ym_old2 = [0; 0];

Ym_old3 = [0; 0];

Ym_old4 = [0; 0];

Ym_old5 = [0; 0];

P = 500*eye(4);

P_old = P;

for k = 1:400

tk(k) = k*Ts;

%r = 2+sin(2*pi*1*tk(k)); % Sinal de referencia pra

teste

r=heaviside(k); %entrada degrau unitario

%Control Law

u = (-teta(1)*omega(1) - teta(2)*omega(2) -

teta(3)*omega(3) -r) ./teta(4);

% Modelo de referencia

Ym = (eye(2) + Am*Ts)*Ym_old + Bm*Ts*r;

Ym_old = Ym;

% Vetor de estados.

omega(1) = Yp(1);

omega(2) = Yp(2);

omega(3) = r;

omega(4) = u;

% Calculo de Zeta

zt = (eye(2) + Am*Ts)*Ym_old1 + Bm*Ts*omega(1);

zeta(1) = zt(1);

Ym_old1 = zt;

zt = (eye(2) + Am*Ts)*Ym_old2 + Bm*Ts*omega(2);

zeta(2) = zt(1);

Ym_old2 = zt;

zt = (eye(2) + Am*Ts)*Ym_old3 + Bm*Ts*omega(3);

zeta(3) = zt(1);

Ym_old3 = zt;

zt = (eye(2) + Am*Ts)*Ym_old4 + Bm*Ts*omega(4);

zeta(4) = zt(1);

Ym_old4 = zt;

zt = (eye(2) + Am*Ts)*Ym_old5 + Bm*Ts*(teta'*omega);

Ym_old5 = zt; % teta'*omega filtrado pelo modelo de

Referência.

% Erro de rastreamento:

e1 = Yp(1) - Ym(1);

Page 5: Controle adaptativo trabalho

% Erro aumentado:

E = e1 + teta'*zeta - Ym_old5(1);

% Normalizador

m = 1 + zeta'*P*zeta;

% Matriz de covariancia

P_old = P;

P = P_old - P_old*zeta*zeta'*P_old ./m;

teta = teta_old - P_old*zeta*E ./m;

teta_old = teta;

% Planta

Yp = (eye(2) + Ap*Ts)*Yp_old + Bp*Ts*u;

Yp_old = Yp;

PlantOut(k) = Yp([1]); % Salvo para depois plotar, Y =

Cx, C=1.

ModelOut(k) = Ym([1]);

RefOut(k) = r;

end

plot(tk, PlantOut, ':', tk, ModelOut, tk, RefOut, '-');

legend('Yp', 'Ym', 'ref');

title('Exercicio RMRAC');

xlabel('Tempo - seg.');

ylabel('Output');

Neste caso o vetor dos ganhos foi inicializado com [

] e o tempo de

amostragem com . A resposta encontrada para este sistema de controle pode ser

vista nas Figuras 2 e 3, sendo uma para entrada degrau e outra para senoidal,

respectivamente.

Observa-se que a saída da planta seguiu o modelo de referência para ambas as

entradas, sendo que há um pouco de atraso que o efeito causado enquanto os parâmetros

estão convergindo para um valor.

Page 6: Controle adaptativo trabalho

Figura 3: Resposta do modelo de referência e da planta para entrada degrau.

Figura 4: Resposta do modelo de referência e da planta para entrada senoidal.