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

12 views (last 30 days)
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?

Answers (1)

Bill Tubbs
Bill Tubbs on 5 May 2021
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.
% 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;
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)];

Community Treasure Hunt

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

Start Hunting!