Problem with MPC Control (Poor Tracking)

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.

Answers (2)

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:

2 Comments

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.
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.

Sign in to comment.

Categories

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

Products

Release

R2020b

Asked:

on 21 Sep 2020

Edited:

on 26 Oct 2020

Community Treasure Hunt

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

Start Hunting!