Adaptive MPC input x[k|k] with mismatching dimensions

6 views (last 30 days)
Hi!
I am having problems with input dimension to the Adaptive MPC block in Simuink. Plant matrices: A=[12x12], B=[12x4], C=[12x12], D=[12x4]. Controller: Disable Kalman filter in MPC block allowing for me to use a custom state estimator.
The error can be seen in the picture below. Why does the MPC block want an input of 20 elements when my system clearly has dimension of 12 states? Anybody had similar problems?

Answers (1)

Sebastian K
Sebastian K on 22 May 2017
Hi Alexander,
The reason for this error message is that the block is expecting the so-called "Controller States", which include the plant, disturbance and noise model states, not just the plant states.
If you refer to the documentation of this block, more specifically to the section "Measured output or State estimate", you will notice the following statement.
"... Checking this option changes the label on this inport to x[k|k]. Connect a signal that provides estimates of the controller state (plant, disturbance, and noise model states). ..."
The documentation page for Controller State Estimation provides more details about the structure and contents of the controller state.
I hope this helps.
Sebastian
  2 Comments
Alexander Waldejer
Alexander Waldejer on 22 May 2017
Hi Sebastian!
I actually found the problem. When defining a plant model as a MPC Object, it is important to specify whether or not the plant outputs have disturbance models. As default, Matlab assumes that a number of outputs have disturbance models (not the same as measurement noise). As a result of this, the MPC block expects feedback from the plant x(k|k) in terms of both plant states and disturbance states.
So in my case, the MPC Object added 8 extra output disturbance models giving a total feedback of 20 states to x(k|k). To avoid this, specify a number of zero dynamic transfer functions (equal to the number of output of the plant). Then it will only expect the 12 state feedback. How to remove the disturbance models added by Matlab is described here:
I hope this helps anybody else who has a similar problem.
Mário Morais
Mário Morais on 13 Mar 2018
Hi alexander!
I'm having troubles with tihs controller too, then I would like if it is possible that you share your scripts and simulink files to get a idea how to turn my simulation functional.
OBS: I'm asking it because I'm working in a assignment classof my Digital control class and I need some extra points to pass.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!