Академический Документы
Профессиональный Документы
Культура Документы
Item a): Reescrever a estimativa de modo que s(t) seja atualizado com s(t 1)
quando uma nova medita y(t) esteja disponvel. Esta equacao captura a essencia
de algoritmos de estimacao recursivos?
Solucao:
Item a):
A partir da Equacao (1), podemos rescreve-la da seguinte maneira:
t t1
1X 1X
sb(t) = y(k) = [ y(k) + y(t)] (2)
t k=1 t k=1
1
Aplicando a formula para t = t - 1, encontramos a seguinte equacao:
t1
1 X
sb(t 1) = y(k)
t 1 k=1
Pt1
Isolando o termo k=1 y(k) nos temos a seguinte equacao:
t1
X
y(k) = sb(t 1)(t 1) (3)
k=1
Portanto, substituindo a equacao (3) na equacao (2) nos encontramos a solucao:
1
sb(t) = [b s(t 1)(t 1) + y(t)]
t
t1 1
sb(t) = sb(t 1) + y(t) (4)
t t
Item b):
Assumindo que s(t) e um sinal constante caracterizado por s(t) = 8 e que o e(t)
e gerado aleatoriamente, foi desenvolvido um codigo em Matlab para ilustrar os
sinais s(t), y(t) e sb(t). Segue a seguir o codigo em Matlab.
1
2 % Questao 1 - Lista 01
3
4 N = 100;
5
6 s = 8*ones(1,N); % Obter funcao constante s(t)
7 e = randn(1,N); % Obter rudo e(t)
8
2
O plot realizado das funcoes s(t), y(t) e sb(t) e ilustrado na Figura 2 a seguir.
E possvel observar que o sinal sb(t) converge para o sinal s(t) com o tempo,
reduzindo portanto o erro.
3
O modelo obtido com o algoritmo dos mnimos quadrados que apresenta o
menor valor de J e considerado o modelo mais preciso.
Solucao:
4
O custo J foi calculado utilizando a seguinte equacao:
5
34 %yest2 = fi*teta; % Outra forma de encontrar o y estimado
35
36 for t=4:N
37 yest(t) = -a1*y(t-1) -a2*y(t-2) -a3*y(t-3) + b0*u(t-1) + ...
b1*u(t-2) + b2*u(t-3);
38 end
39
40 for i=1:N
41 e(i) = y(i) - yest(i); % Calculo do custo J
42 J = J + e(i)2;
43 end
44
45 J = J/2;
46 plot(y,'g');
47 hold on
48 plot(yest,'r');
49 h legend = legend('y(t)','y e(t)');
50 set(h legend,'FontSize',10);
6
E importante perceber que os dados de sada y(t) e muito proximo dos dados
yb(t) estimados pelo modelo 9. Atraves da Figura 3 nao e possvel ver os dois
graficos pois eles estao se sobrepondo.
Ao dar um zoom no grafico da pra ver que existe um pequeno erro, que em
muitas aplicacoes pode ser desprezado.A Figura 4 ilustra o erro apresentado na
estimacao do sistema.
7
0.2738 + 0.4689z 1 0.2469z 2
Gp(z 1 ) =
1 2.782z 1 + 2.752z 2 0.9731z 3
A resposta ao degrau do modelo estimado e mosrado na Figura 5.
8
1 b0 = -0.2738; b1 = 0.4689; b2 = -0.2469; % Parametros do modelo
2 a1 = -2.7822; a2 = 2.7517; a3 = -0.9731;
3
4 numz = [b0 b1 b2];
5 denz = [1 a1 a2 a3];
6 Ts = 0.5;
7
8 gpz = tf(numz,denz,Ts,'variable','z-1'); % Funcao transferencia
9 gpz
10
11 [y,t] = step(gpz); % Resposta ...
ao degrau
12 stepResults = stepinfo(y,t);
Tabela 3: Sistema 1
Amostras Entrada Sada
0 0 0
1 1 0.18
2 1 0.33
3 1 0.45
4 1 0.55
5 1 0.67
9
Tabela 4: Sistema 2
Amostras Entrada Sada
0 0 -0.1274
1 0.01 0.5560
2 0.01 -1.0940
3 0.01 -0.7268
4 0.01 1.4100
5 0.01 -0.6139
6 0.01 0.2441
7 0.01 -1.5790
8 0.01 -0.3935
9 0.01 -0.7623
10 0.01 -0.5417
b0 z 1
Obter um modelo de primeira ordem discreto da forma G
cp (z 1 ) =
1 + a1 z 1
aplicando o estimador dos mnimos quadrados nao-recursivo
10
16
17 teta = inv(fi'*fi)*fi'*Y;
18 a1 = teta(1); b0 = teta(2);
19 yest(1) = b0*u(1);
20
21 for t=2:N
22 yest(t) = -a1*y(t-1) + b0*u(t-1);
23 end
24
25 yest = fi*teta;
26
27 J = 0; S = 0;
28 y mean = mean(y);
29
30 for i=1:N
31 e(i) = y(i) - yest(i);
32 J = J + e(i)2;
33 S = S + (y(i) - y mean)2;
34 end
35 P = inv(fi'*fi);
36 IC1 = norm(P)*norm(inv(P));
37 IC2 = 1 - (J/S);
38
39 plot(y,'g');
40 hold on
41 plot(yest,'r');
42 legend('y(t)','y e(t)');
cp (z 1 ) = 0.1032z 1
G
1 1.0337z 1
IC1 = 25.6090
IC2 = 0.9738
A Figura 6 ilustra os sinais y(t) e yb(t) referente ao Sistema 1.
11
Figura 6: Sinais y(t) e yb(t) do Sistema 1
12
16
17 teta = inv(fi'*fi)*fi'*Y;
18 a1 = teta(1);bb0 = teta(2);
19 yest(1) = b0*u(1);
20
21 for t=2:N
22 yest(t) = -a1*y(t-1) + b0*u(t);
23 end
24
25 yest = fi*teta;
26 J = 0; S = 0; y mean = mean(y);
27
28 for i=1:N
29 e(i) = y(i) - yest(i);
30 J = J + e(i)2;
31 S = S + (y(i) - y mean)2;
32 end
33 P = inv(fi'*fi);
34 IC1 = norm(P)*norm(inv(P));
35 IC2 = 1 - (J/S);
36
37 plot(y,'g');
38 hold on
39 plot(yest,'r');
40 legend('y(t)','y e(t)');
IC2 = 0.9738
13
Figura 7: Sinais y(t) e yb(t) do Sistema 2
04. O sistema de controle da Figura (2) esta sujeito a uma perturbacao a partir
de uma fonte e(t). Admitindo um perodo de amostragem e 0.5 segundos, deter-
minar a funcao de transferencia discreta do sistema na forma CAR (Controlled
Auto-Regressive) de acordo com a seguinte representacao:
A(z 1 )y(t) = B(z 1 )u(t d) + e(t)
14
Estruturar os vetores de medidas e parametros para aplicacao do estimador
dos mnimos quadrados nao-recursivo.
15
Tabela 5: Sistema de controle de temperatura
Amostras Entrada Sada
0 1.0838 0
1 1.0020 0.4225
2 1.0681 0.6559
3 1.0379 0.8137
4 1.0832 0.9039
5 1.0503 0.9715
6 1.0709 1.0046
b0
Gp (z) =
z + a1
Discutir a precisao do modelo matematico discreto estimado em funcao da
localizacao dos polos de malha aberta. Para auxiliar na analise do mod-
elo estimado admitir que a planta tem a seguinte funcao de transferencia
contnua:
10
Gp (s) =
(s + 1)(s + 10)
Solucao:
16
Figura 9: Comparacao dos sinais y(t) e yb(t)
Figura 10: Comparacao das respostas ao degrau dos sistemas Gp(s) e Gp(s)
c
17
E possvel ver nas Figuras 9 como a sada estimada se aproxima da sada original
do sistema. As curvas praticamente se sobrepoe. A resposta ao degrau apresentada
na Figura 10 tambem apresenta um resultado satisfatorio, validando a qualidade
do modelo estimado.
18
11 if i <= 1
12 y1=0;u1=0;
13 else
14 y1 = y(i - 1); u1 = u(i - 1);
15 end
16 Y = [Y; y(i)]; fi = [fi;-y1 u1];
17 end
18
19 teta = inv(fi'*fi)*fi'*Y;
20
21 a1 = teta(1); b0 = teta(2);
22 yest(1) = 0;
23 for t=2:N
24 yest(t) = -a1*y(t-1) + b0*u(t);
25 end
26
27 a1
28 b0
29
30 plot(y,'g');
31 hold on
32 plot(yest,'r');
33 legend('y(t)','y e(t)');
34
35 numz est = [b0];
36 denz est = [1 a1];
37 gpz est = tf(numz est,denz est,Ts);
38 gpz est
39
40 gp = zpk([], [-1,-10],10);
41 gp est = d2c(gpz est,'zoh');
42 figure, step(gp,gp est);
43 figure, pzmap(gp,gp est);
44 h legend = legend('G(s)','G e(s)');
45 gp
46 gp est
19
Solucao:
1 % Questao 06 da Lista 01
2 clear all
3 x = [1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0.8 0.6 0.4 0.2];
4 y = [0.9 2.5 2.4 1.3 1.2 0.8 0 0.9 1.4 1.9 2.3 2.4 2.3 1.3 1.2]';
5 N = 14;
6
7 for k = 7:N
8
9 fi = [x(2:k + 1) ; x(1:k)]';
10 y N = y(2:k + 1);
11
20
Anexo
Modelo 01
0.3647
Gp1 (z 1 ) =
1 1.0204z 1
16 teta = inv(fi'*fi)*fi'*Y;
17
18 a1 = teta(1); b0 = teta(2);
19 yest = fi*teta;
20
21 e = (y - yest).2;
22 J = sum(e)/2;
23 J
24
25 plot(y,'g');
26 hold on
27 plot(yest,'r');
28 legend('y(t)','y e(t)');
21