MATLAB Answers

What is the 'MeasurementFcn1Inputs' input on the Extended Kalman Filter Simulink block?

3 views (last 30 days)
Bill Tubbs
Bill Tubbs on 5 Apr 2021
Answered: Bill Tubbs on 5 Apr 2021
I'm trying to implement an Extended Kalman Filter Simulink block similar to the example shown for the inverted pendulum here which looks like this and works:
However, when I copy and edit this block, or when I try to recreate one from a new block, it adds a third input called 'MeasurementFcn1Inputs':
What is this? Should it be there or how do I remove it? (I only have one set of measurements and did not specify 'MeasurementFcn1Inputs').
Here are the properties of my block:
When I click 'Remove Measurement' it reports a warning in the dialog box:
7015/homeworks/hw5/SwingupControlOfPendulumUsingNMPCExample/mpc_pendcartNMPC.slx. The file higher on the MATLAB path is: /Applications/MATLAB_R2019b.app/examples/mpc/mpc_pendcartNMPC.slx
Component:Simulink | Category:Block diagram warning
If I click 'Add Measurement' it adds a fourth input called 'y2'.
If I then click 'Remove Measurement' twice it removes the 'y2' measurement then reports the following in the diagnostics window:
At least one measurement model is required in robot_nmpc_sim/State Estimator (EKF).
At least one measurement model is required in robot_nmpc_sim/State Estimator (EKF).
This behaviour is repeatable (with a new EKF block or by copying and pasting the one from the Pendulum example and editing it).

Accepted Answer

Bill Tubbs
Bill Tubbs on 5 Apr 2021
I found the problem.
I was using the same function (robot_outputs) for the NLMPC and the EKF:
function y = robot_outputs(x,u)
% Output equation
y = x([1 2 3 4 5 7 8]);
end
But the EKF requires a different function (without the u argument):
function y = robot_measurements(x)
% Measurement function
y = x([1 2 3 4 5 7 8]);
end

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by