No BSD License  

Highlights from
Model-based Predictive Control: A Practical Approach

example3_mimo.m
%%%%%  Typical data entry required for a 
%%%%%  MIMO state space  example
%%%%%    x(k+1) = A x(k) + B u(k)
%%%%%    y(k) = C x(k) + D u(k) + dist     Note: Assumes D=0
%%%%%
%%%%%   Assumes J = sum (r-y)^2 +  (u(k+i-1)-uss) R (u(k+i-1)-uss)
%%%%%                uss the steady state input
%%%%%
%%%%%  Illustrates closed-loop simulations with constraint handling
%%%%%  
%%%%%
%%%%%   THIS IS A SCRIPT FILE. CREATES ITS OWN DATA AS REQUIRED
%%%%%   EDIT THIS FILE TO ENTER YOUR OWN MODELS, ETC.
%%  
%% Author: J.A. Rossiter  (email: J.A.Rossiter@shef.ac.uk)

%%% Model
A = [0.6000   -0.4000    0.2000;
    1.0000    0.4000    0.4000;
    0.8000    1.0000    0.4000];
B =[ 0.4 0.3;
     0 -1;
     0 0.1]/2;
C =[1.0000   -2.2000    1.1200;
     0        1          1];
D =[0 0;0 0];

%%%% Constraints
umax=[0.8;2];
umin=-[1.5;2];
Dumax=[0.4;0.5];

%%%% Tuning parameters
R=eye(2)*2;
ny=15;          %%%% prediction horizon
nu=4;           %%%% control horizon
x0=[1;1;0]*0;   %%%% Initial state

ref = [zeros(2,20),[1*ones(2,60)]];    %%%% Set point
dist = [zeros(2,35),-ones(2,45)*.5];   %%%% disturbance
noise = [zeros(2,50),randn(2,30)*.04]; %%%% measurement noise

%%%%% Closed-loop simulation 
[x,y,u,r] = imgpc_simulate(A,B,C,D,R,ny,nu,umax,umin,Dumax,x0,ref,dist,noise);

Contact us