36
Filtro de Kalman Identificação de Sistemas Dinâmicos Adaptado de: Aguirre, Cap. 9 - Introdução à Indentificação de Sistemas, Ed. UFMG, 3ª edição

Filtro de Kalman - UnB

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Filtro de Kalman - UnB

Filtro de Kalman

Identificação de Sistemas Dinâmicos

Adaptado de:

Aguirre, Cap. 9 - Introdução à Indentificação de Sistemas,

Ed. UFMG, 3ª edição

Page 2: Filtro de Kalman - UnB

Introdução

• Modelo Linear Discreto

mk

rk mediçõeseentradadesequência

PxIniciaisCondições

ℜ∈ℜ∈ yu

00,ˆ

Page 3: Filtro de Kalman - UnB

Função de Probabilidade

Page 4: Filtro de Kalman - UnB

Função de densidade

de Probabilidade Gaussiana

Page 5: Filtro de Kalman - UnB

Combinação de 2 sensores

Page 6: Filtro de Kalman - UnB

Medidas de um mesmo instrumento

Nova Nomenclatura

Page 7: Filtro de Kalman - UnB

O Caso Dinâmico

Movimento do Objeto:

e.g. Aproximação de Euler

Page 8: Filtro de Kalman - UnB

O Filtro de Kalman Discreto

Lei de Movimento – propagação do vetor de estados estimado:

Nova NomenclaturaNova Nomenclatura

Predição

Correção

Page 9: Filtro de Kalman - UnB

Matriz de Covariância

• Erro de estimação na propagação

Matriz de covariância de

...

Page 10: Filtro de Kalman - UnB

Equações de Filtro de Kalman Discreto

Page 11: Filtro de Kalman - UnB

Estimação conjunto de estados e

parâmetros

Matriz aumentada:

Page 12: Filtro de Kalman - UnB

O Filtro de Kalman EstendidoModelo não-linear

Jacobianas:

Page 13: Filtro de Kalman - UnB

Estimação Caixa Cinza

• Conhecimento à priori

(da estrutura, via leis físicas, princípios

fundamentais)

• Informação auxiliar• Informação auxiliar

Page 14: Filtro de Kalman - UnB

Estimador MQR

Page 15: Filtro de Kalman - UnB

Ex.1 – Processo Térmico

46

48

50

52

54

ºCIdentificação Processo Térmico - Filtro de Kalman

medido

estimado

simulado

6500 7000 7500 8000 8500 9000 9500 10000 10500 11000

42

44

46

t/[seg]

Page 16: Filtro de Kalman - UnB

u2 - Tamb

[tid ur]

WS1

[tid yr]

z

1350

-5

-K-

exp(-1/40)

x1

[tid uid]

u1

WS

z

1

simd

To WS

Scope1

-5Z

-K-

exp(-1/270)

x2x2

Page 17: Filtro de Kalman - UnB

Modelo do Processo PWM

Capacitância Térmica LM35

u2 - Tamb

[tid uid]

u1z

1

z

1

simd

To WSScope1

25

-5Z

4

0.001

-K-

exp(-1/30)

x1

q f luxode calor x2

x2

x3-x7

%Modelo discreto do processo térmico no espaço de e stados% x(k+1)=phi*x(k)+gama*u(k)% y(k) = C*x(k) phi=[exp(-1/30) 0 0 0 0 0 0

(1-exp(-1/30))*4*0.001 1 0 0 0 0 -5*0.0010 1 0 0 0 0 00 0 1 0 0 0 00 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0]

gama=[1 10 0.0010 00 00 0 0 00 0]

H=[0 0 0 0 0 0 1];

Page 18: Filtro de Kalman - UnB

Ex. 2 Levitação Magnética

Page 19: Filtro de Kalman - UnB

Ex. 2 Levitação Magnética

Diagrama de blocos em um dos canais

Processo Compensador em avanço

121 s

21+s

p s

z+s )(

+=

+=sD

2223

2

mf1)-(K s 1)-(K ps s

z)(sK- (s)G

rr

r

ωωω

++++=(K=Ganho de malha)

Diagrama de blocos simplificado

Page 20: Filtro de Kalman - UnB

Ex. 2 idssze{i}=iddata(y-mean(y),u-mean(u),T);

gtf{i}=tfest(ze{i},3,1); % Id. Caixa Preta – estrutura: 3 pólos 1 zero

% idss (fixa pólo em comp. Avnaço em -121) - 4 par. livres.

par=[-2e5;-7500;-1.3e4;-220]; % valores iniciais ~gtf

A = [0 1 0; 0 0 1; par(1) par(2) -121]; A = [0 1 0; 0 0 1; par(1) par(2) -121];

B = [0; 0; 1];

C = [par(3) par(4) 0];

D = zeros(1,1);

gs=idss(A,B,C,D);

gs.Structure.a.Free=[0 0 0; 0 0 0;1 1 0];

gs.Structure.b.Free=[0; 0; 0];

gs.Structure.c.Free=[1 1 0];

gs.Structure.d.Free=0;

set(gs,'Ts',0); % modelo contínuo

%gss = ssest(ze,gss,ssestOptions('Display','on'));

gss{i}=ssest(ze{i},gs);

Page 21: Filtro de Kalman - UnB

Ex. 2 idgrey

function [A,B,C,D,K,x0] = myLevi(par,Ts,aux)

A = [0 1 0; 0 0 1; par(1) par(2) -121];

B = [0; 0; 1];

C = [par(3)*aux par(3) 0];

D = zeros(1,1);

K = zeros(3,1);

x0 =[0; 0; 0];

par=[-2e5;-7500;-1.3e4];

aux=21; % posição do zero - fixa!

Ts=0; % modelo contínuo

gr=idgrey('myLevi',par,'c',aux,Ts)

ggr{i}=greyest(ze{i},gr)

% Forma Canonica Controlável

% b1 s + b0

% ----------------------------------

% s^3 + a2 s^2 + a1 s + a0

%

%A=[0 1 0;

% 0 0 1;

% -a0 -a1 -a2]

%B=[0;0;1];

%C=[b0 b1 0]

Page 22: Filtro de Kalman - UnB

Ex. 2 Levitação Magnética

0.2

0.3

0.4i=3 arq.=dados\6-19+9-52-38_1 ms.txt

1.13e05 s 8560 s 67.46 s

17.11)+(s 726.9- tf(s)

23 +++=

20 20.2 20.4 20.6 20.8 21 21.2 21.4 21.6 21.8 22-0.4

-0.3

-0.2

-0.1

0

0.1

y adq

yt tfestyg greyest

u*.01

2.05e05 s 1.164e04 s 121 s

21) (s 1019.6- gr(s)

23 ++++=

1.13e05 s 8560 s 67.46 s +++

Page 23: Filtro de Kalman - UnB

MQR – MQ com Restrições

θc

ξξ

ξθy

S

parâmetrosossobrerestriçõesn

CustodeFunçãoaminimizar

r

T

=

+= ˆψ

Page 24: Filtro de Kalman - UnB

Ex. MQR – Característica Estática

Característica Estática

Page 25: Filtro de Kalman - UnB

Ex. Predial

Page 26: Filtro de Kalman - UnB
Page 27: Filtro de Kalman - UnB

T & UR

[tempo sac]

liga/desliga

ar condicionado

[tempo u_e]

Umidade relativa externa

16

Temperatura

serpentina

[tempo t_o]

Temp. sala

[tempo t_e]

Temp. externa

[tempo t_v]

Temp. Vizinhança

To_est

1

s

Intg

1

av.s+1

Gv

1

aue.s+1

Gue

1

ae.s+1

Ge

Kut

Kc K

Ktu

0.01Kue

Kv

Ke

1

ac.s+1

Gac

Erro To

carta_w

Carta Psicrométrica2

Ti_c

qc

qd

Tac To

To

Ti_v

qe

Ti_e

qv

[tempo su]

liga/desliga

umidificador

[tempo bomb]

liga/desliga

bomba d'água

[tempo u_v]

Umidade relativa vizinha

0

[tempo t_v]

Temperatura vizinha[tempo t_o]

Temperatura sala

[tempo t_e]

Temperatura externa

Uo_est

1

s

Intg1

1

auv.s+1

Guv

1

aum.s+1

Gum

1

au.s+1

Gu

0.01

KsKu

Kuv

Kum

100

Carta Psicrométrica2

carta_ur

Carta Psicrométrica1

carta_w

Carta Psicrométrica

Uo

Wi_v

Wo

Wi_u

Wu

Page 28: Filtro de Kalman - UnB

idgrey

function [A,B,C,D,K,x0] = myfunc5(par,Ts,aux)

A = [par(1) par(2) par(3) par(4) par(5) par(6) par(7); 0 par(8) 0 0 0 0 0; 0 0 par(9) 0 0 0 0; 0 0 0 par(10) 0 0 0; 0 0 0 0 par(11) par(12) par(13); 0 0 0 0 0 par(14) 0; 0 0 0 0 0 0 par(15)];

B = [par(16) par(17) par(18) par(19) par(20); (1-par(8)) 0 0 0 0; 0 B = [par(16) par(17) par(18) par(19) par(20); (1-par(8)) 0 0 0 0; 0 (1-par(9)) 0 0 0; 0 0 (1-par(10)) 0 0; 0 0 0 par(21) par(22); 0 0 0 par(23) 0; 0 0 0 0 (1-par(15))];

C = [1 0 0 0 0 0 0; 0 0 0 0 1 0 0];

D = zeros(2,5);

K = zeros(7,2);

x0 =[par(24);par(25);par(26);par(27);par(28);par(29);par(30)];

Page 29: Filtro de Kalman - UnB

0/100000

/

000/1000

0000/100

00000/10

555554535251

151511

α

αααα

u

s

c

v

e

sutcve

a

aKaaaaa

a

a

a

aKKK

aKKKKKK

a

A

−−

−−

−−

=

=

uu

c

v

e

a

aK

a

a

a

B

/10000

0/000

00000

00/100

000/10

0000/1

00000

;;)(

/1000000

0/100000

1511 ααuvsutcve

uv

u

KKKKa

KKKKa

a

a

=++−

=

−−

ααα

ααuvstusctusv

tusecvetus

KKa

KKKKa

KKKKa

KKKKa

KKKKKKa

−=−=−=

−=++=

555453

5251

;;

;;)(

uva/10000

=

0010000

0000001C

Page 30: Filtro de Kalman - UnB

Predial - Sinais

Umidade relativa da sala de reuniões

(uo), do ambiente externo (ue), sala

vizinha (uv) e pós-evaporativo (up).

Temperatura da sala de reuniões (to),

do ambiente externo (te), vizinhança

(tv) e pós-evaporativo (tp).

Page 31: Filtro de Kalman - UnB

Resultado da Identificação

i u uv ue um s

ai 168,5 164,9 80,82 171,7 -

Ki 2,19 3,77 0,151 -0,003 0,029

Page 32: Filtro de Kalman - UnB

Redução de Ordem

Utilização de Coeficientes de Agrupamento

• Modelo ARMAX

Page 33: Filtro de Kalman - UnB

Candidatos a Modelo

Page 34: Filtro de Kalman - UnB

Considerando:

pequenas períodos de amostragem

Page 35: Filtro de Kalman - UnB

Estimação dos Parâmetros

Page 36: Filtro de Kalman - UnB

Redução de Ordem

• Encontrar o “joelho”

acréscimo de termo é irrelevante: