- Extract state-space data from the model using the IDSSDATA command, [A,B,C,D,K] = idssdata(SYS)
- In the Kalman filter block, check the "Use G and H matrices" checkbox.
- In the Kalman filter block, set A, B, C, D matrices. Also set Q = SYS.NoiseVariance, R = N = 0. Also set G = K and H = eye(ny), where ny = size(C,1).
Connecting a model to a Kalman filter or extended Kalman filter
2 views (last 30 days)
Show older comments
Hi, how do I connect a model, e.g a polynomial model identified from system identification toolbox to a Kalman filter in Simulink? What are the statetransitionfcn and the measurementfcn? Any example? Thank you!
0 Comments
Accepted Answer
Rajiv Singh
on 7 Nov 2022
Suppose your starting point is a linear model, SYS, identified using an offline identification routine such as TFEST, SSEST, ARMAX, etc. Follow these steps:
If you are using the identified linear model is an Extended Kalman Filter, Unscented Kalman Filter or a Particle Filter block:
Create a MATLAB function file that returns the state update x(t+1) as a function of the current state x(t) and input u(t) as follows:
%-------------------------------
function dx = stateFcn(x,u,A,B)
% state transition fcn
dx = A*x + B*u;
end
%-------------------------------
Similarly, write a function that returns the output as a function of the current state and input values:
%-------------------------------
function y = measurementFcn(x,u,C,D)
% measurement function
y = C*x + D*u;
end
%-------------------------------
In the block, set the state transition function to stateFcn, and the measurement function to measurementFcn. Make sure these functions are on MATLAB path.
2 Comments
Rajiv Singh
on 30 May 2023
Please see the following examples (in R2023a release of MATLAB):
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!