Можно ограничить линейные комбинации входных и выходных переменных объекта. Для примера можно ограничить конкретную управляемую переменную (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
function, установите константы ограничений следующим образом:
setconstraint(mpcobj,[1;-1],[1;-1],[1.2;0]);
Симулируйте управление с обратной связью линейной модели объекта управления в Simulink. Контроллер mpcobj
задается в блоке MPC Controller.
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)