Escolar Documentos
Profissional Documentos
Cultura Documentos
Controle PDF
Controle PDF
CONTROLE DISCRETO
DO ACROBOT
©Marco Antonio Meggiolaro
PUC-Rio
Sistema
• M – massa do carro (0.5 kg)
• m – massa do pêndulo (0.5 kg)
• b – coef. atrito viscoso do carro (0.1 N/(m/s))
• l – comprimento até o centro de massa do pêndulo (0.3m)
• I – momento de inércia do pêndulo (0.006 kgm2)
• f – força aplicada ao carro
• x – posição do carro m, I
q
• teta (q) – ângulo do pêndulo
l
f
M
bx
x
Meggiolaro 3
1 2 1 2 1
T Mx m | v pendulo | Iq 2
2 2 2 m, I
q
M m ml cos q x
1
2
T x q ml cos q I ml q
2
l
f
U mgl cos q M
bx
x
Meggiolaro 4
Equações do Movimento
d L L m, I
dt x x f bx L TU q
Lagrangeano
d L L 0 l
dt q q
F M
L
(M m)x mlq cos q bx
x
L
(I ml 2 )q mlx cos q x
q
L L
0, mlxq sin q mgl sin q
x q
(M m)x mlq cos q mlq 2 sin q f bx
(I ml )q mlx cos q mgl sin q 0
2
Meggiolaro 5
(M m)x mlq f bx
(I ml 2
)q mlx mglq 0
Meggiolaro 6
Função de Transferência
(M m)x bx mlq f U m, I
q
(I ml 2
)q mlx mglq 0
l
Laplace
(M m)Xs 2 bXs mls 2 U(s) f M
bx
(I ml )s mlXs mgl 0
2 2 2
x
X(s) g I ml 2
2
(s) s ml
X(s)[(M m)s bs] (s)[mls ] U(s)
2 2
U(s) g I ml 2
[(M m)s bs][ 2
2
] mls 2
(s) s ml
Meggiolaro 7
Função de Transferência
q m, I
X(s) g I ml mgl (I ml )s
2 2 2
2 l
(s) s ml mls 2 f M
bx
x
(s) mls
U(s) (MI mI Mml 2 )s 3 (I ml 2 )bs 2 (M m)mgl s bmgl
X(s) (I ml 2 )s 2 mgl
U(s) (MI mI Mml 2 )s 4 (I ml 2 )bs 3 (M m)mgls 2 bmgls
Meggiolaro 8
Espaço Estado
q (mglq mlx) /(I ml 2 )
m 2l 2 m 2 l 2 gq
[(M m) ] x bx f
I ml 2
I ml 2
px (I ml 2 )bx m 2l 2gq (I ml 2 )f
pq mlbx (M m)mglq mlf
p MI mI Mml 2
X FX GU
x 0 1 0 0 x 0
x
0 (I ml 2
)b / p m 2 2
l g/p 0 x (I ml ) / p
2
[f ]
q 0 0 0
1 q 0
q 0 mlb / p (M m)mgl / p 0 q ml / p
Meggiolaro 10
Espaço Estado
• assumindo que há somente sensores de posição, que
medem x e q:
Y HX JU
x
x 1 0 0 0 x 0
Y [f ]
q 0 0 1 0 q 0
q
• se medisse posição do pêndulo e velocidade do carro:
0 1 0 0 0
H , J
0 0 1 0 0
Meggiolaro 11
Resposta ao Degrau
acro02.m
M = 0.5; m = 0.2; b = 0.1; l = 0.3; I = 0.006; g = 9.81;
t = 0:0.05:2;
U = 0.2*ones(size(t));
[Y,X] = lsim(F,G,H,J,U,t);
plot(t,Y)
axis([0 2 -100 100]); legend('x','teta');
xlabel('t'); title('step input for f = 0.2N');
Meggiolaro 12
Equivalente ZOH
• matrizes equivalentes para período de controle T=10ms
T acro03.m
e FT
, e ds G, H, J
Fs T = 1/100; %control period in seconds
[Fi,Gama,H,J] = c2dm(F,G,H,J,T,'zoh')
0
x(k 1) 1 0.01 0.0001 0 x(k) 0.0001
x(k 1) 0 0.9982 0.0267 0.0001 x(k) 0.0182
[f (k)]
q(k 1) 0 0 1.0016 0.01 q(k) 0.0002
q(k 1) 0 0.0045 0.3122 1.0016 q(k) 0.0454
x(k)
x(k) 1 0 0 0 x(k) 0
Y(k) [f (k)]
q(k) 0 0 1 0 q(k) 0
q(k)
Meggiolaro 13
Controlabilidade e Observabilidade
H C 2 3
H
acro04.m
O
H 2
co = ctrb (Fi,Gama); Controllability = 4
ob = obsv (Fi,H);
Observability = 4
H 3 Controllability = rank (co)
Observability = rank (ob)
1
J(X, U, ) [X(k)T Q1 X(k) U(k) T Q 2 U(k)
2 k 0
(k 1)T
( X(k 1) X(k) U(k))]
• derivando em relação ao multiplicador variável (k+1)
e às amostras X(k) e U(k):
J equação
X(k ) Q 1 (k ) (k 1) 0 adjunta
T T T
X(k )
termo obtido quando k = k1 no somatório
J
U(k ) Q 2 (k 1) 0 equação de controle
T T
U(k )
J 1
[ X(k 1) X(k ) U(k )] 0
T T
(k 1) 2 equação de estado, logo sempre dá zero
• definindo matrizes S(k) com (k) = S(k)X(k), a
Meggiolaro 25
1 0 0 0
0 0 0 0
Q1 H T H , Q 2 [1]
0 0 1 0
0 0 0 0
• a matriz Q1 acima vai tentar minimizar o erro em x e q,
enquanto que Q2 vai tentar minimizar a força u = f
requerida pelo controle
se Q1 fosse escolhida como identidade,
. . tentaria
minimizar também os erros em x e q durante a trajetória,
mas isso só seria relevante em um controle de velocidade
(ao invés de controle de posição), e penalizaria x e q
Entrada de Referência
• para posicionar o carro em x ≠ 0, é possível calcular a
referência Uref a ser comandada, onde U : Uref – KX e
X(k 1) ( K ) X(k ) U ref (k )
• se o valor desejado é Xd, então em regime permanente
X(k 1) X(k ) X d
X d ( K ) X d U ref (k )
U ref ( I K ) X d
U ref pinv( ) ( I ) X d K X d
• onde pinv() é a pseudo-inversa de Moore–Penrose,
que no caso vale pinv() = (T)1T (a pseudo-inversa
esquerda de , não use a pseudo-inversa direita pois
pinv() = T(T)1 não é definida se det(T ) = 0)
Meggiolaro 34
U : U ref KX K (X X d ) pinv( ) ( I ) X d
Projeto do Estimador/Observador
• os controles anteriores assumem que o estado completo
X pode ser medido
• mas ao usar apenas sensores de posição, apenas a saída
Y é medida, onde H foi definida anteriormente
• implementa-se então um estimador preditivo para
prever a estimativa X(k+1) a partir da estimativa
anterior X(k), do valor de U(k), e da medição Y(k)
X(k 1) : X(k ) U(k ) L p (Y(k ) H X(k ))
• pólos de controle 0.91 ± 0.07i e 0.98 ± 0.02i geram
números característicos de amostras 1/(10.91) 11 e
1/(10.98) 50
• deseja-se um estimador 3 a 6 vezes mais rápido que o
controlador, com número característico 11/6 1.8
Meggiolaro 37
Meggiolaro 39
acro11.m
K = dlqr(Fi,Gama,Q1,Q2) %digital LQR design
• o resultado foi
essencialmente o
mesmo que o do LQR
sem observador, mas
usando 2 sensores a
menos!
Meggiolaro 41
acro12.m
X0 = [0 0 0 1 0 0 0 0]'; %initial condition of state and estimation error
Kce = [K zeros(size(K))]; %controller adapted to the extended state
Xce = X0; Xcevector = []; Yvector = [];
t = [0:T:5]'; %5-second simulation
for t0 = t'
Uref = [0]; %zero reference
Y = Hce*Xce + Jce*(Uref-Kce*Xce); %current sensor reading
Yvector = [Yvector Y]; %stacks Y values
Xcevector = [Xcevector Xce]; %stacks Xce values
Xce = Fice*Xce + Gamace*Uref; %new value of Xce
end
Xce = Xcevector';
Y = Yvector';
fmax = max(abs(Uref'-Kce*Xce')); %maximum control effort
stairs(t,Y);
Meggiolaro 43
acro13.m
X0 = [0 0 0 1]'; %initial condition of state
X = X0; Xest = X0; %initial actual value and estimate
Urefvector = []; %vector of reference inputs
Xestvector = []; %vector of estimated states
Xvector = []; %vector of actual states
Yvector = []; %vector of measured outputs
t = [0:T:5]'; %5-second simulation
for t0 = t'
Uref = [0]; %zero reference input
U = Uref - K*Xest; %control law
Y = H*X + J*U; %actual sensor reading
Xest = Fi*Xest + Gama*U + Lp*(Y - H*Xest); %observer
Urefvector = [Urefvector Uref]; Xestvector = [Xestvector Xest];
Xvector = [Xvector X]; Yvector = [Yvector Y];
X = Fi*X + Gama*U; %actual system
end
Uref = Urefvector'; Xest = Xestvector'; X = Xvector'; Y = Yvector';
fmax = max(abs(Uref'-K*X')); %maximum control effort
stairs(t,Y);
Meggiolaro 45
Efeitos de Quantização
• assumindo que o sensor do carro mede valores entre 1
e 1m e que um conversor A/D de b1 bits é usado, sua
resolução (em metros) é q1 = 2 / 2b1
• se o sensor do pêndulo mede entre –p e p com A/D de
b2 bits (ou usa encoder de 2b2 pulsos/volta), a sua
resolução (em radianos) é q2 = 2p / 2b2
• para incorporar este efeito, basta usar na simulação:
Y(k ) H X(k ) J U(k )
acro14.m
q1 = 2/2^b; q2 = 2*pi/2^b;
Urefvector = []; %vector of reference inputs
Xestvector = []; %vector of estimated states
Xvector = []; %vector of actual states
Yvector = []; %vector of measured outputs for perfect sensors
Ysensor = [];
Ysensorvector = []; %vector of actually measured outputs
t = [0:T:5]'; %5-second simulation
for t0 = t'
Uref = [0]; %zero reference input
U = Uref - K*Xest; %control law
Y = H*X + J*U; %reading for ideal sensors
Ysensor(1,1) = q1*floor(Y(1)/q1); %actual sensor readings
Ysensor(2,1) = q2*floor(Y(2)/q2);
Xest = Fi*Xest + Gama*U + Lp*(Ysensor - H*Xest); %observer
Urefvector = [Urefvector Uref]; Xestvector = [Xestvector Xest];
Xvector = [Xvector X]; Yvector = [Yvector Y];
Ysensorvector = [Ysensorvector Ysensor];
X = Fi*X + Gama*U; %actual system
end
Meggiolaro 47
Matriz de Covariância
• estimadores mais avançados consideram a estatística
dos erros das estimativas, através da variância V (desvio
padrão s ao quadrado) de uma variável escalar x
var(x) s E[(x E(x)) ] E[x ] (E[x])
2 2 2 2
1 0
r1 r2
0 1
Meggiolaro 50
s
2 2 7.64 2.76
0.85 0.53
r1 r2
0.53 0.85
Meggiolaro 51
s (k)
2 2.9k mX(1)
1 0 mX(0)
evolução
r1 (k) r2 (k)
do sistema
0 1
Meggiolaro 52
x
X x X x
X(k 1)
x X̂(k) x
x x
x x
t t
X 3) medição Y(k+1) X 4) correção Y(k+1)
(no próximo T) bons sensores
grandes perturbações
x
X̂(k 1)
x X̂(k 1)
X x
x
X x
x
X(k 1)
X(k 1)
x x maus sensores
x x pequenas perturbações
x x
t t
Meggiolaro 55
E[w12 ] 0 0 s w12 0 0
0 E[w 2 2 ] 0 0 s w2 2 0
W
0
0 E[w n 2 ] 0 0 s wn 2
E[v12 ] 0 0 s v12 0 0
0 E[v 2 2 ] 0 0 s v2 2 0
V
0
0 E[v n 2 ] 0 0 s vn 2
acro15.m
M = 1; F = [0 1; 0 0]; G = [0 1/M]'; H = [1 0]; J = [0];
T = 1/10; %measurement period in seconds
[Fi,Gama,H,J]=c2dm(F,G,H,J,T,'zoh');
Gamaw = Gama; %matrix for disturbance w
vstd = 1.5; V = [vstd^2]; %noise standard deviation and covariance matrix
wstd = 2; W = [wstd^2]; %disturbance standard dev. and covariance matrix
X = [0 0]'; %initial condition of state
Xpred = X; %initial predicted estimate
Ppred = 1e-6*ones(2,2); %initial P (zero if X0 is known)
t = [0:T:5]'; %5-second simulation
for t0 = t'
Y = H*X + (vstd*randn(1)); %GPS sensor reading with noise
Lc = Ppred * H' * inv(H*Ppred*H' + V); %optimal Kalman gain
Xcorr = Xpred + Lc*(Ysensor - H*Xpred); %Kalman observer
Pcorr = (eye(2) - Lc*H) * Ppred; %corrected estimate of P
U = 3; %open loop control (or use Xcorr for closed loop law)
Xpred = Fi*Xcorr + Gama*U; %prediction for next sample
Ppred = Fi*Pcorr*Fi' + Gamaw*W*Gamaw'; %prediction of next P
X = Fi*X + Gama*U + Gamaw*(wstd*randn(1)); %actual X with disturbance
end
Meggiolaro 63
• Kalman estima muito
bem a posição, mesmo
com ruído e
perturbações aleatórios
• estimativa da
velocidade é muito
ruim sem Kalman,
mesmo com filtro
digital para suavizar
Meggiolaro 64
• Kalman estima a
velocidade sem
descontinuidades, que
podem ser grandes sob
pior resolução ou
frequências de
aquisição muito altas
Meggiolaro 66
Controlador LQG
• o controlador LQG (Linear Quadratic Gaussian) nada
mais é do que a combinação do estimador/observador de
Kalman (um LQE baseado em erros gaussianos) com o
controlador/regulador LQR
• consegue-se assim controlar um sistema sem conhecimento
completo dos estados e com perturbações, usando sensores
ruidosos, e com um mínimo “esforço” devido ao LQR
acro17.m (definições)
wstd = 0.01; %stdev of disturbance, in N
vstd1 = 0.001; %stdev of cart sensor errors, in m
vstd2 = 0.001; %stdev of pendulum sensor errors, in rad
q1 = 2/2^12; %12 bits for a position sensor with range 2m
q2 = 2*pi/1024; %pendulum encoder with 1024 pulses/turn
V = [[vstd1^2+q1^2/12 0]
[0 vstd2^2+q2^2/12]]; %noise covariance matrix
W = [wstd^2]; %disturbance covariance matrix
Q1 = [500 0 0 0; 0 0 0 0; 0 0 1000 0; 0 0 0 0]; Q2 = 1;
K = dlqr(Fi,Gama,Q1,Q2) %digital LQR design
Meggiolaro 70
acro17.m
X0 = [0 0 0 1]'; %initial condition of state
Xpred = X0; %initial prediction estimate
Ppred = 0*ones(n,n); %initial cov. matrix (if unknown, set very small or zero)
X = X0; %state is initially at X0
Xd = [0.5 0 0 0]'; %desired position
Uref = pinv(Gama)*(eye(size(Fi))-Fi)*Xd; %this should be equal to zero
t = [0:T:5]'; %5-second simulation
for t0 = t'
Y = H*X; %reading for ideal position sensor (assume J = 0)
Ysensor(1,1) = q1*floor(Y(1,1)/q1) + vstd1*randn(1); %sensor readings with
Ysensor(2,1) = q2*floor(Y(2,1)/q2) + vstd2*randn(1); %quantization and noise
Lc = Ppred*H'*inv(H*Ppred*H'+V); %optimal Kalman gain
Xcorr = Xpred + Lc*(Ysensor - H*Xpred); %Kalman observer
Pcorr = (eye(n)-Lc*H)*Ppred; %corrected estimate of P
U = Uref - K*(Xcorr-Xd); %closed loop with LQR gain
Xpred = Fi*Xcorr + Gama*U; %prediction for next sample
Ppred = Fi*Pcorr*Fi' + Gamaw*W*Gamaw'; %prediction of next P
X = Fi*X + Gama*U + Gamaw*wstd*randn(1); %actual system with disturb.
end
fmax = max(abs(U')); %maximum control effort
Meggiolaro 71
• LQG consegue
controlar o
pêndulo mesmo
com ruído e
perturbações
aleatórios e
efeitos de
quantização
• note no entanto
que há um erro
significativo
em regime
permanente
para a posição
x do carro,
causada em
especial pelas
perturbações
Meggiolaro 72
Controlador LQG + I
• é fácil eliminar o erro de regime permanente do carro,
introduzindo um ganho integral para o erro em x
• a maneira mais fácil de implementá-lo é integrando
numericamente o erro em x dentro do algoritmo de controle,
no entanto a escolha do ganho integral é heurística
sempre que usar ganho integral em qualquer sistema,
implemente anti-windup e anti-chattering
acro18.m
Xd = [0.5 0 0 0]'; %desired position
errorint = [0 0 0 0]'; %error integral
KI = [K(1)/2 0 0 0]; %integral gain only for x
t = [0:T:5]'; %5-second simulation
for t0 = t'
...
errorint = errorint + (Xcorr-Xd)*T; %numerical integral
U = Uref - K*(Xcorr-Xd) - KI*errorint; %closed loop with LQR gain
...
end
Meggiolaro 73
• o ganho
integral
consegue
reduzir o erro
de x em regime
permanente, no
entanto
aumenta o
overshoot
• para obter
resposta mais
rápida, seria
necessário usar
matriz de peso
Q1 maior no
cálculo do
ganho pelo
LQR
Meggiolaro 75
acro19.m (cont.)
Xd = [0 0.5 0 0 0]'; %desired position
for t0 = [0:T:5]'; %5-second simulation
Y = H*X; %reading for ideal position sensor (assume J = 0)
Ysensor(1,1) = q1*floor(Y(1,1)/q1) + vstd1*randn(1); %actual sensor readings
Ysensor(2,1) = q2*floor(Y(2,1)/q2) + vstd2*randn(1); %with quantization & noise
Lc = Ppred*H'*inv(H*Ppred*H'+V); %optimal Kalman gain
Xcorr = Xpred + Lc*(Ysensor - H*Xpred); %Kalman observer
Pcorr = (eye(n)-Lc*H)*Ppred; %corrected estimate of P
Xd(1) = Xd(1) + Xd(2)*T; %numerical integral of desired cart position xd
U = Uref - K*(Xcorr-Xd); %closed loop with LQR gain
Xpred = Fi*Xcorr + Gama*U; %prediction for next sample
Ppred = Fi*Pcorr*Fi' + Gamaw*W*Gamaw'; %prediction of next P
X = Fi*X + Gama*U + Gamaw*wstd*randn(1); %actual system with disturb.
end
xd dt
xd
Xd x Xd (1) xddt xd T Xd,old (1) Xd (2) T
d
qd
q
d
Meggiolaro 78
Simulação Não-Linear
• as simulações anteriores só são válidas para
a linearização feita para pequenos q q m, I
• para avaliar corretamente a eficácia dos
controladores propostos, é preciso simular o l
sistema incluindo todas não-linearidades f M
• a partir das equações do movimento, temos bx
ml(g sin q x cos q ) x
q
I ml 2
• e assim
(I ml 2 )(f bx mlq 2 sin q ) m 2l 2g sin q cos q
x
(I ml )(M m) m l cos q
2 2 2 2
x f1 x
x f [I '(f bx mlq sin q) m l g sin q cos q]/ p
2 2 2
X 2
q f 3 q
q f 4 [(M m)mlg sin q bmlx cos q m 2l 2q 2 sin q cos q fml cos q]/ p
x h1 x
Y h (X, U)
q h 2 q
I ' (I ml 2 )
p I '(M m) m 2 l 2 cos 2 q
Meggiolaro 81
f 1 / x f 1 / x f 1 / q f 1 / q f 1 / f
f f 2 / x f 2 / x f 2 / q f 2 / q f f 2 / f
F G
X f 3 / x f 3 / x f 3 / q f 3 / q U f 3 / f
f 4 / x f 4 / x f 4 / q f 4 / q f 4 / f
0 1 0 0 0
0 I 'b / p f / q 2I 'ml q sin q / p
F , G
2 I '/ p
0 0 0 1 0
0 mlb cos q / p f 4 / q m l q sin 2q / p ml cos q / p
2 2
f 2
(I 'mlq 2 cos q m 2l 2 g cos 2q) / p m 4l 4g(sin 2 2 q) /(2p 2 )
q
I ' (f bx mlq 2 sin q )m 2l 2 (sin 2q ) / p 2
f 4
[(M m)m lg cos q bmlx sin q m 2l 2q 2 cos 2q fml sin q]/ p
q
[(M m)mlg sin q bmlx cos q m 2l 2 q 2 sin q cos q fml cos q] m 2l 2 sin 2 q / p 2
1 0 0 0 0
H , J
0 0 1 0 0
como essas matrizes dependem de X e U, elas precisam ser
recalculadas a cada passo de simulação
Meggiolaro 83
• na simulação (realista)
não-linear, o uso do filtro
de Kalman Estendido (à
esquerda) gera bons
resultados, e com valores
reais e estimados
praticamente idênticos ao
longo de toda a simulação
Estimador Preditivo
xn
(k ) L p (Y(k ) H X(k )) X (k 1)
X(k 1) X(k ) U
X (k)
Predição
X [x1 ... x n ]T x1
Meggiolaro 92
Estimador Preditivo-Corretivo
xn
X̂ (k)
X(k
Correção 1)
))
ˆ
)
(k
X(k
HX
(k
)
X
)
Predição U(k
k)
(k
X̂(
)
(Y
X (k) X (k 1)
c
L
X [x1 ... x n ]T x1
Meggiolaro 93
Correção X(k
))
1)
ˆ
(k
k)
HX
X(k
X(
)
)
)
U(k
(k
k
ˆ
P(k 1) : P(k) T
X̂(
(Y
)
P(k ) Predição
c
L
w W wT
X (k)
sxn sxn
34.1% 34.1%
xn(k)
X (k 1)
34.1% 34.1%
s x1 s x1
x1(k)
X [x1 ... x n ]T x1
Meggiolaro 94
Correção X(k
)]
k) 1)
) )
f( Xˆ
X(
k
h(
X(
( k ),
)
U(k
(k
P(k 1) : ˆ
ˆ P(k) ˆT
k
))
[Y
P(k )
X̂(
Predição
ˆ w W ˆ w T
c
L
X (k)
sxn sxn
34.1% 34.1%
xn(k)
X (k 1)
34.1% 34.1%
s x1 s x1
x1(k)
X [x1 ... x n ]T x1
Meggiolaro 95
P(k )
(k
X̂
i
c
L
X (k)
34.1% 34.1%
sxn sxn
xn(k)
pontos
sigma
34.1% 34.1%
s x1 s x1
x1(k)
X [x1 ... x n ]T x1
Meggiolaro 99
^ ^ ^
• novos pontos sigma X0(k), X1(k), ..., X2n(k) são então
^
escolhidos ao redor de X(k), usando a transformada
^
unscented baseada na matriz recém-obtida P(k)
• analogamente, 2n+1 valores de perturbações w0, w1, ...,
w2n são escolhidos usando a transformada unscented
aplicada à matriz W, onde w0 = 0 é a perturbação média
• os pontos sigma são então propagados de forma não-
linear pela equação de predição do EKF usando o
mesmo valor da entrada U(k), mas considerando os
valores escolhidos para as (prováveis) perturbações wi
X i (k 1) : f(Xˆ i (k ), U(k ), w i ) (i 0,1, ..., 2n)
• a transformada unscented inversa é então aplicada aos
pontos sigma preditos para gerar estimativas mais
precisas para as predições X(k+1) e P(k+1), e o
processo de correção-predição continua
Meggiolaro 100
X X X(k )
x̂n(k)
X(
i k
1
Predição
) :
f( Xˆ
i (k ) (média ponderada dos
34.1% 34.1% , U( 2n+1 pontos sigma)
s x̂1 s x̂1 k ),
w
i ) X (k 1)
X (k) x̂1(k)
P(k )
P(k 1)
(reconstruído a partir dos
novos 2n+1 pontos sigma)
X [x1 ... x n ]T x1
Meggiolaro 101
(média simples
i (k
)
(k i (k
X
i (k ) dos N pontos)
[Y : X
X (k) , U(
)
k ), X (k 1)
)
(k
w
Predição
X̂
i
i )
c
L
P(k )
ensemble
P(k 1) : cov(pontos)
P(k) Gaussiana
X [x1 ... x n ]T x1
Meggiolaro 106
P(k) real
X(k)
X(k+1)
EKF
P(k+1) real
P(k) real
sigma
points
EKF
sigma P(k+1) real UKF
points
UKF é melhor que EKF, mas ainda não estima bem P(k+1)
Meggiolaro 109
P(k) real
ensemble
EnKF
EnKF (N=30)
EnKF
(N=300) P(k+1) real
EnKF (N=5)
EKF
KF
Meggiolaro 118
EnKF
Meggiolaro 119
EnKF
Meggiolaro 120
Meggiolaro 121
Meggiolaro 122
Meggiolaro 123
Meggiolaro 124
KF
UKF
PF
Meggiolaro 127