MATLAB Answers

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

조회 수: 3(최근 30일)
Bill Tubbs
Bill Tubbs 2021년 4월 5일
답변: Bill Tubbs 2021년 4월 5일
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).

채택된 답변

Bill Tubbs
Bill Tubbs 2021년 4월 5일
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

추가 답변(0개)

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by