Professional Documents
Culture Documents
Palavras-chave:
1.
INTRODUO
(17)
Supor que no instante (t+1) obtm-se nova medida
do sistema, ento os vetores de medida e sada so
reescritos como
(15)
(18)
(16)
(19)
As estimativas no instante de tempo t so
(20)
(17)
(22)
Uma vez conhecido (t+1) pode-se atualizar
a matriz anterior das correlaes T (t)(t) para
obter as matriz atual T(t+1)(t+1). Entretanto,
necessrio encontrar uma maneira de atualizar a
inversa de T(t)(t) sem calcular a matriz inversa
em cada instante de tempo.
1.1 METODOLOGIA
Nesta seo sero apresentados sistemas
simulados que foram programados com as tcnicas
de controle vistas neste relatrio, seguida de uma
discusso sobre a resposta desses sistemas para
cada tipo de controle.
1.2 INSTRUES PARA A SIMULAO
O trabalho foi escrito no editor de
programas do software MATLAB e simulado os
sistemas no Simulink com auxlio da placa de
desenvolvimento MCLAB2.
2.
EXEMPLO DE SIMULAO
sysd =
0.335 z + 0.2531
-------------------------z^3 - 1.314 z^2 + 0.4317 z
1
G ( z )=
nit=80;
% NUMERO DE INTERAES
% GERA SINAIS DE ENTRADA E RUIDO
for k=1:nit
u(k) = 10*rand(); %entrada randomica
e(k) = u(k)*0.01;
end
% -- Condies iniciais: matriz de
covarincia
p = 1000*eye(4,4);
% -- Condies iniciais: parmetros e
sada
teta = [0;0;0;0];
for k = 1:4
y(k) = 0; erro(k) = 0;
a1(k) = teta(1); a2(k) = teta(2);
b0(k) = teta(3); b1(k) = teta(4);
end
% INTERAES DA ESTIMAO
for k = 4:nit
% ----- Calcular a sada atual
y(k)= 1.314*y(k-1) - 0.4317*y(k-2) +
0.335*u(k-1) + 0.2531*u(k-2) + e(k);
% Atualizar Fi(t) com novas medidas no
tempo 't'
fi = [-y(k-1);-y(k-2);u(k-1);u(k-2)];
0.335 z + 0.2531 z
(49)
11.3 14 z 1 +0.4 317 z2
teta = teta+K*erro(k);
% Atualizar a matriz de covarincia
p = (p-K*fi'*p);
% Armazenar parmetros
a1(k)
a2(k)
b0(k)
b1(k)
=
=
=
=
teta(1);
teta(2);
teta(3);
teta(4);
end
%RESULTADOS
parametros = teta'
t = 1:nit;
subplot(221),plot(t,a1(t)),title('a1'),xla
bel('amostragem');
subplot(222),plot(t,a2(t)),title('a2'),xla
bel('amostragem');
subplot(223),plot(t,b0(t)),title('b0'),xla
bel('amostragem');
subplot(224),plot(t,b1(t)),title('b1'),xla
bel('amostragem');
figure(2)
plot(t,u(t)),title('u'),xlabel('entrada');
2.2
IMPLEMENTAO PRTICA
PROCESSO DE VELOCIDADE DO
MOTOR CC
2
T = =0.5 s . Esse o maior tempo de
4
u2=u(j-
end;
a1=teta(1) ; a2=teta(2) ;
b1=teta(3) ; b2=teta(4);
for k=3:npts,
yest(k)=-a1*yest(k-1)-a2*yest(k2)+b1*u(k-1)+b2*u(k-2);
end;
figure
plot(outrand, 'g');
hold on
%figure
plot(yest,'r');
hold off
= covar ; p(1,2)
p(1,4) = 0.0 ;
= 0.0
; p(2,2)
p(2,4) = 0.0 ;
= 0.0
; p(3,2)
p(3,4) = 0.0 ;
= 0.0
; p(4,2)
p(4,4) = covar;
= 0.0
; p(1,3) =
= covar ; p(2,3) =
= 0.0
; p(3,3) =
= 0.0
; p(4,3) =
teta(1,1)=-0.3893; teta(2,1)=0.473;
teta(3,1)=0.020; teta(4,1)=0.064;
for i=1:nit,
for i=1:nit,
recursivo no ventilador
Como pode ser observado na figura acima, o
modelo obtido com 100 amostras aproxima
razoavelmente bem o processo. A curva verde
corresponde a sada do sistema real e a curva
vermelha a sada do modelo obtido. De posse dos
parmetros da funo de transferncia discreta
obtida, agora podemos calcular um controlador
PID pelo posicionamento dos polos como feito em
sees anteriores. A funo de transferncia
estimada do processo dado por:
72.0714 z1 +16.1465 z2
(
)
G z=
(52)
10.4178 z 1 +0.0031 z 2
erro(i)=0; end;
er(i)=0; end;
for kx=4:nit
delta=1
t=[0:delta:nit];
u=rand(size(t));
aleatria
alfa=0.5;
for i=1:length(t),
%entrada
if u(i)<=alfa,sbpa(i)=-1;
else sbpa(i)=1;
end
end
set_pwm_duty(1,u(kx));
y(kx) = velocidade_ventilador;
real
%saida
%\\\\\\\\\\\\\\\\\\\\\
estimador
\\\\\\\\\\\\\\\\
fi(1,1)= -y(kx-1);
fi(2,1)= -y(kx-2);
fi(3,1)= u(kx-1);
fi(4,1)= u(kx-2);
chamar
ye(kx)=fi(1,1)*teta(1,1)+fi(2,1)*teta(2,1)+f
i(3,1)*teta(3,1)...
+fi(4,1)*teta(4,1);
Ganho do estimador }
pf(1,1)=p(1,1)*fi(1,1)+p(1,2)*fi(2,1)+p(1,3)
*fi(3,1)+p(1,4)*fi(4,1);
pf(2,1)=p(2,1)*fi(1,1)+p(2,2)*fi(2,1)+p(2,3)
*fi(3,1)+p(2,4)*fi(4,1);
pf(3,1)=p(3,1)*fi(1,1)+p(3,2)*fi(2,1)+p(3,3)
*fi(3,1)+p(3,4)*fi(4,1);
pf(4,1)=p(4,1)*fi(1,1)+p(4,2)*fi(2,1)+p(4,3)
*fi(3,1)+p(4,4)*fi(4,1);
den=1+fi(1,1)*pf(1,1)+fi(2,1)*pf(2,1)+fi(3,1
)*pf(3,1)+fi(4,1)*pf(4,1);
ganho(1,1) = pf(1,1)/den;
ganho(2,1) = pf(2,1)/den;
ganho(3,1) = pf(3,1)/den;
ganho(4,1) = pf(4,1)/den;
%
Vetor de parametros estimados }
for i = 1 : 4 ,
teta(i,1) = teta(i,1) +
ganho(i,1)*erro(kx);
end;
%
Matriz de covariancia do estimador }
p(1,1) = p(1,1) ganho(1,1)*ganho(1,1)*den;
p(1,2) = p(1,2) ganho(1,1)*ganho(2,1)*den;
ae(1)=teta(1,1);ae(2)=teta(2,1);be(1)=teta(3
,1);be(2)=teta(4,1);
ae1(kx)=teta(1,1);ae2(kx)=teta(2,1);
be1(kx)=teta(3,1);be2(kx)=teta(4,1);
%\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\
traco de P
%
figure(2)
plot(ae1,'m-');
hold on;
plot(ae2,'r-');
plot(be1,'g-');
plot(be2,'b-');
RESULTADOS E DISCUSSES
Analisou-se as respostas de cada um dos mtodos
mostrados nas figuras acima (8 e 9) e inferiu-se
que os dois mtodos aplicados no ventilador foram
capazes de estimar com uma boa preciso at certo
ponto, porm no podemos deixar de citar que o
mtodo dos mnimos quadrados recursivo um
mtodo on-line, portanto seu processo de
identificao e estimao dos parmetros
atualizado a cada perodo de amostragem, assim
para uma melhor eficcia, quando se for projetar
um controlador para uma planta o mais