Можно ограничить линейные комбинации входных и выходных переменных завода. Например, можно ограничить определенную управляемую переменную (MV), чтобы она была больше, чем линейная комбинация двух других MV.
Общая форма таких ограничений заключается в следующем:

Здесь:
- переменная ослабления QP, используемая для смягчения ограничений. Дополнительные сведения см. в разделе Смягчение ограничений.
являются
управляемыми значениями переменных в технических единицах.
являются
прогнозируемыми выходами установки, в технических единицах.
являются
измеряемыми входами возмущения установки, в технических установках.

,,, 
и являются
постоянными матрицами и векторами. Дополнительные сведения см. в разделе setconstraint.
Как и в случае функции затрат QP, прогнозирование выхода с использованием наблюдателя состояния делает эти ограничения функцией переменных решения QP.
Чтобы установить смешанные ограничения ввода/вывода контроллера MPC, используйте setconstraint функция. Чтобы получить существующие ограничения от контроллера, используйте getconstraint.
При использовании смешанных ограничений ввода/вывода необходимо учитывать следующее:
По умолчанию смешанные зависимости ввода/вывода являются размерными.
Обновление во время выполнения смешанных ограничений ввода/вывода поддерживается в командной строке и в Simulink ®. Дополнительные сведения см. в разделе Обновление ограничений во время выполнения.
Использование смешанных ограничений ввода/вывода не поддерживается в MPC Designer.
В качестве примера рассмотрим контроллер MPC для установки двойного интегратора со смешанными ограничениями ввода/вывода.
Базовая настройка контроллера MPC включает в себя:
Двойной интегратор в качестве модели прогнозирования
Горизонт прогнозирования 20
Горизонт управления 20
Ограничения ввода: 
plant = tf(1,[1 0 0]); Ts = 0.1; p = 20; m = 20; mpcobj = mpc(plant,Ts,p,m); mpcobj.MV = struct('Min',-1,'Max',1);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000. -->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000. -->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.
Ограничение суммы входных данных u(t) и выходные данные y(t) должен быть неотрицательным и менее 1,2:

Чтобы наложить это комбинированное (смешанное) ограничение ввода-вывода, сформулируйте его как набор ограничений неравенства с участием
и.

Чтобы определить эти ограничения с помощью setconstraint задайте константы ограничения следующим образом:
![$$E = \left[ {\begin{array}{*{20}{c}}
1\\
{ - 1}
\end{array}} \right],\;F = \left[ {\begin{array}{*{20}{c}}
1\\
{ - 1}
\end{array}} \right],\;G = \left[ {\begin{array}{*{20}{c}}
{1.2}\\
0
\end{array}} \right]$$](../../examples/mpc/win64/mpcmixedconstraints_eq10872806264070694669.png)
setconstraint(mpcobj,[1;-1],[1;-1],[1.2;0]);
Моделирование управления по замкнутому контуру линейной модели установки в Simulink. Диспетчер mpcobj указывается в блоке контроллера MPC.
mdl = 'mpc_mixedconstraints';
open_system(mdl)
sim(mdl)
-->Converting the "Model.Plant" property of "mpc" object to state-space. -->Converting model to discrete time. Assuming no disturbance added to measured output channel #1. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.




Контроллер MPC сохраняет сумму
между 0 и 1,2 при отслеживании опорного сигнала,.
bdclose(mdl)