MATLAB Answers

How to deal with Extended Kalman Filter in Simulink when my state transition function is given in continuous time form?

조회 수: 3(최근 30일)
Vinayak Dan
Vinayak Dan 2020년 3월 22일
답변: Bill Tubbs 2021년 5월 5일
I have an EKF with the above state transition function.
where u=[fm omega]
Control Systems Toolkit EKF requires state transition function in the discrete time form:
x(k+1) = f(x(k),w(k),StateTransitionFcnInputs)
However the equation I want to use is in the continuous time with derivative of the state space in LHS. Can I get Simulink EKF to work with such a state transition matrix?

답변(1개)

Bill Tubbs
Bill Tubbs 2021년 5월 5일
Check out the examples in the documentation here:
The example looks like this:
function x = vdpStateFcn(x)
% vdpStateFcn Discrete-time approximation to van der Pol ODEs for mu = 1.
% Sample time is 0.05s.
%
% Example state transition function for discrete-time nonlinear state
% estimators.
%
% xk1 = vdpStateFcn(xk)
%
% Inputs:
% xk - States x[k]
%
% Outputs:
% xk1 - Propagated states x[k+1]
%
% See also extendedKalmanFilter, unscentedKalmanFilter
% Copyright 2016 The MathWorks, Inc.
%#codegen
% The tag %#codegen must be included if you wish to generate code with
% MATLAB Coder.
% Euler integration of continuous-time dynamics x'=f(x) with sample time dt
dt = 0.05; % [s] Sample time
x = x + vdpStateFcnContinuous(x)*dt;
end
function dxdt = vdpStateFcnContinuous(x)
%vdpStateFcnContinuous Evaluate the van der Pol ODEs for mu = 1
dxdt = [x(2); (1-x(1)^2)*x(2)-x(1)];
end

Community Treasure Hunt

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

Start Hunting!

Translated by