Upload
leandro-tome-martins
View
212
Download
1
Embed Size (px)
DESCRIPTION
Trabalho controle adaptativo
Citation preview
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
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
√
[ ]
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;
%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);
% 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.
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.