Problem with unscented kalman filter

2 次查看(过去 30 天)
Hi everybody!
I'm trying to implement in matlab a simple unscented or alternatively extended Kalman Filter. At the moment i'd like just to observ a simple pendulum.
So I create a pendulum function and integrate it in 10 seconds with some Initial Conditions:
% pendulum state equation
function dxdt = pendulum(~, x)
g = 9.81;
l = 2;
dxdt = [x(2); -g/l*sin(x(1))]; % state equation
end
% integration function
function [t, x, xdot] = ode
tspan = [0:0.01:10];
IC = [pi/4,0];
[t,stat] = ode45(@pendulum, tspan, IC);
x = stat(:, 1);
xdot = stat(:, 2);
end
[time, x1, x2] = ode; % generating the results
No troubles so far
Then I create an extended Kalman Filter object, a measurment function where I suppose to measure angle Theta and some sensor readings
R = 0.1; % measurment covariance
for i = 1:length(x1)
y(i) = x1(i) + randn(1)*sqrt(R); % sensor readings
end
IC = [pi/4; 0];
UKF_pendulum = unscentedKalmanFilter(@pendulum,@MeasurementFcn,IC); % UKF object
UKF_pendulum.ProcessNoise = 0.01;
UKF_pendulum.MeasurementNoise = R;
residBuf = [];
xcorBuf = [];
xpredBuf = [];
for i = 1:size(y,2)
[Residual,ResidualCovariance] = residual(UKF_pendulum,y(i));
[CorrectedState,CorrectedStateCovariance] = correct(UKF_pendulum,y(i));
[PredictedState,PredictedStateCovariance] = predict(UKF_pendulum);
residBuf(i,:) = Residual;
xcorBuf(i,:) = CorrectedState';
xpredBuf(i,:) = PredictedState';
end
The rest is kept the same with respect to the Van Der Pol oscillator example at this link: https://it.mathworks.com/help/control/ref/predict_method_state_estimation.html
Unfortunately when I try to run i get this message:
Which optional input am I supposed to give to the predict command? I tried with some variables but none of them worked.
I'll upload the file in the comment.
Thank you very much,
Andrea

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Online Estimation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by