%% Specify Custom Constraints on Linear Combination of Inputs and Outputs
% Specify a constraint of the form 0 \le u_2 - 2u_3 + y_2 \le 15 on an MPC controller.
% Create a third-order plant model with three manipulated variables and two measured outputs.

plant = rss(3,2,3);
plant.D = 0;

%
% Create an MPC controller for this plant.

MPCobj = mpc(plant,0.1);

% Formulate the constraint in the required form:
% \left[ \begin{array}{l}
% \begin{array}{*{20}{c}}
% 0&{ - 1}&2
% \end{array}\\
% \begin{array}{*{20}{c}}
% 0&1&{ - 2}
% \end{array}
% \end{array} \right]\left[ {\begin{array}{*{20}{c}}
% {{u_1}}\\
% {{u_2}}\\
% {{u_3}}
% \end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
% 0&{ - 1}\\
% 0&1
% \end{array}} \right]\left[ {\begin{array}{*{20}{c}}
% {{y_1}}\\
% {{y_2}}
% \end{array}} \right] \le \left[ {\begin{array}{*{20}{c}}
% 0\\
% {15}
% \end{array}} \right] + \varepsilon \left[ {\begin{array}{*{20}{c}}
% 1\\
% 1
% \end{array}} \right]
%
% Specify the constraint matrices.

E = [0 -1 2;0 1 -2];
F = [0 -1;0 1];
G = [0;15];

%
% Set the constraints in the MPC controller.

setconstraint(MPCobj,E,F,G)

% Copyright 2012 The MathWorks, Inc.