Error in using mpcmoveexplicit function

"There is a mismatch between the current state values in
"state.Plant"/"state.Disturbance"/"state.Noise" and the
fixed state values specified during construction of Explicit MPC controller."
I'm getting the above error while running simulation loop using mpcmoveexplicit function for explicit mpc of a quadcopter. I tried increasing the range of state variables, references, manipulated variables with no use.
Please help.

Answers (1)

Raag
Raag 2 minutes ago
Hi Rukmini,
It is my understanding that you are trying to run a simulation loop with 'mpcmoveexplicit' for a quadcopter, and you see an error mentioning that the current plant/disturbance/noise states are outside the fixed state values used when building the Explicit MPC controller.
The reason for this error is that Explicit MPC precomputes a region map based on specified bounds for states, references, and manipulated variables. If, during simulation, any of these values exceed their pre-defined design ranges, the explicit controller is unable to evaluate the control law, resulting in a mismatch error.
Here are some things to check:
  1. Confirm the initial states and any injected disturbance/noise lie within the ranges used to create the explicit controller.
  2. If your model shows large transients, regenerate the explicit controller with wider ranges (states, references, MVs).
  3. If ranges must be very wide (causing many regions), consider using implicit MPC 'mpcmove' for robustness during transients.
These steps should help you unblock the simulation without overhauling your setup.
You can refer to the following documentations for more information:

Asked:

on 20 Feb 2026 at 9:49

Answered:

on 3 Mar 2026 at 4:05

Community Treasure Hunt

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

Start Hunting!