Why is my custom constraint for adaptive MPC controller not working?

4 views (last 30 days)
I am using Adaptive MPC controller in simulink to control a system with 4 states (same as 4 outputs) and 2 control inputs. Since the system is in the form of xdot=A*x+B*u+dc, "dc" is a constant matrix(4x1), so I regard them as "measured disturbance".
What I mean to do is let the system follow a reference [0 0 0 0]' and after 1 second, the fourth state(x(4)) is constrained to be less than 0 (force the system to deviate from the reference). So I let costum constriant E=zeros(1,2), F=[0 0 0 1], S=zeros(1,4), G is changing from 0 to -9. (as figure 2 shows, equally x(4)<G).
But the states never change. Neither do control inputs. They all remain zero as long as the reference is [0 0 0 0]'. It is as if the constraint is never set up. I could not find the way to work it out. But when I used ymax and ymin instead, it can be controlled to deviate from the reference. Still, I need to use custom constraints in the end.
Here I attached my files. Run 'controller_setup' first before you go to 'model.slx'.

Answers (0)

Categories

Find more on Model Predictive Control Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!