Problem with MPC Control (Poor Tracking)

5 views (last 30 days)
Navaneeth Rajan on 21 Sep 2020
Edited: fouad koudsi on 26 Oct 2020
I'm trying to get an MPC controller working on this discrete state space model.
zc = 0.6;
g = 9.81;
dt = 0.01;
A = [1 dt (dt^2)/2;
0 1 dt;
0 0 1];
B = [dt^3/6
dt^2/2
dt];
C = [1,0, -zc/g];
D = [0];
model = ss(A,B,C,D,dt)
I have used mpcDesigner to get a controller with preview references, but I cannot get a good step response even after adjusting the closed loop Performance slider.
I'm new to MPC and I think that I'm missing something very obvious.

Keyur Mistry on 24 Sep 2020
I understand you are trying to get good step response of the system using MPL Designer app. After analyzing the system, I can say system is uncontrollable as determinant of the controllability matrix for the system is in the range of 10^-12.
To find controllability matrix you can use “ctrb” command:
To find determinant of matrix you can use “det” command:

Navaneeth Rajan on 24 Sep 2020
The thing is that I was able to get very good tracking with other non-Matlab packages.
This is an example from do-mpc library on Python. I'm not sure what I'm doing wrong on MATLAB.
Keyur Mistry on 25 Sep 2020
I wonder how output of uncontrollable unstable system is bounded after applying simple linear feedback. Please make sure the system parameters (A,B,C,D) you have provided in the question are correct. Also in do-mpc library on Python you are using linear feedback law to tune the system and not using any non-linear control.

fouad koudsi on 26 Oct 2020
Edited: fouad koudsi on 26 Oct 2020

R2020b

Community Treasure Hunt

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

Start Hunting!