setconstraint

Установите смешанные ограничения ввода/вывода для прогнозирующего контроллера модели

Описание

пример

setconstraint(MPCobj,E,F,G) задает смешанные входные/выходные ограничения следующей формы для контроллера MPC, MPCobj:

<reservedrangesplaceholder11> <reservedrangesplaceholder10> (k + j | k) + <reservedrangesplaceholder6> <reservedrangesplaceholder5> (k + j | k) ≤ <reservedrangesplaceholder1> + ε

Для получения дополнительной информации смотрите Смешанные ограничения ввода/вывода.

пример

setconstraint(MPCobj,E,F,G,V) добавляет ограничения следующей формы:

<reservedrangesplaceholder12> <reservedrangesplaceholder11> (k + j | k) + <reservedrangesplaceholder7> <reservedrangesplaceholder6> (k + j | k) ≤ <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>

Используйте этот синтаксис, чтобы задать жесткие пользовательские ограничения или изменить смягчение ограничений по умолчанию.

пример

setconstraint(MPCobj,E,F,G,V,S) добавляет ограничения следующей формы:

<reservedrangesplaceholder17> <reservedrangesplaceholder16> (k + j | k) + <reservedrangesplaceholder12> <reservedrangesplaceholder11> (k + j | k) + <reservedrangesplaceholder7> <reservedrangesplaceholder6> (k + j | k) ≤ <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>

Используйте этот синтаксис, если ваши смешанные входные/выходные ограничения включают измеренные нарушения порядка.

пример

setconstraint(MPCobj) удаляет все смешанные входные/выходные ограничения с контроллера MPC.

Примеры

свернуть все

Задайте ограничение формы 0u2-2u3+y215 на контроллере MPC.

Создайте модель объекта управления третьего порядка с тремя манипулированными переменными и двумя измеренными выходами.

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

Создайте контроллер MPC для этого объекта.

MPCobj = mpc(plant,0.1);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->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.

Сформулируйте ограничение в необходимой форме:

[0-1201-2][u1u2u3]+[0-101][y1y2][015]+ε[11]

Задайте матрицы ограничений.

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

Установите ограничения в контроллере MPC.

setconstraint(MPCobj,E,F,G)

Создайте модель объекта управления третьего порядка с двумя манипулированными переменными и двумя измеренными выходами.

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

Создайте контроллер MPC для этого объекта.

MPCobj = mpc(plant,0.1);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->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.

Предположим, что у вас есть два жестких ограничения.

u1+u25y1+y210

Задайте матрицы ограничений.

E = [1 1; 0 0];
F = [0 0; 1 1];
G = [5;10];

Задайте ограничения как жесткие путем установки V в нуль для обоих ограничений.

V = [0;0];

Установите ограничения в контроллере MPC.

setconstraint(MPCobj,E,F,G,V)

Создайте модель объекта управления третьего порядка с двумя манипулированными переменными, двумя измеренными нарушениями порядка и двумя измеренными выходами.

plant = rss(3,2,4);
plant.D = 0;
plant = setmpcsignals(plant,'mv',[1 2],'md',[3 4]);

Создайте контроллер MPC для этого объекта.

MPCobj = mpc(plant,0.1);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->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.

Предположим, что у вас есть три мягких ограничения.

u1+u25y1+v110y2+v212

Задайте матрицы ограничений.

E = [1 1; 0 0; 0 0];
F = [0 0; 1 0; 0 1];
G = [5;10;12];
S = [0 0; 1 0; 0 1];

Установите ограничения в контроллере MPC, используя значение по умолчанию для V.

setconstraint(MPCobj,E,F,G,[],S)

Определите модель объекта управления и создайте контроллер MPC.

plant = rss(3,2,2);
plant.D = 0;
MPCobj = mpc(plant,0.1);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->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.

Задайте пользовательские ограничения контроллера.

E = [-1 2; 1 -2];
F = [0 1; 0 -1];
G = [0; 10];
setconstraint(MPCobj,E,F,G)

Удалите пользовательские ограничения.

setconstraint(MPCobj)
-->Removing mixed input/output constraints.

Входные параметры

свернуть все

Моделируйте прогнозирующий контроллер, заданный как объект контроллера MPC. Чтобы создать контроллер MPC, используйте mpc.

Манипулируемая константа ограничения, заданная как Nc -by - Nmv массив, где Nc - количество ограничений, а Nmv - количество манипулируемых переменных.

Управляемая выходная константа ограничения, заданная как Nc -by - Ny массив, где Ny - количество управляемых выходов (измеренных и не измеренных).

Смешанная константа входного/выходного ограничения, заданная как вектор-столбец длины Nc.

Константа смягчения ограничений, представляющая равную проблему для релаксации (ECR), заданная как вектор-столбец Nc длины.

Если V не задан, значение по умолчанию 1 применяется ко всем неравенствам ограничений, и все ограничения являются мягкими. Это поведение аналогично поведению по умолчанию для выхода границ, как описано в Standard Cost Function.

Чтобы сделать ith жесткое ограничение, задайте V (i) = 0 .

Чтобы сделать ith мягкое ограничение, задайте V (i) > 0 в соответствии с величиной нарушения ограничений, которую можно допустить. Нарушение величины зависит от численной шкалы переменных, участвующих в ограничении.

В целом, когда V (i) уменьшается, контроллер усиливает ограничения, уменьшая допустимое нарушение ограничений.

Примечание

Если ограничение трудно удовлетворить, уменьшение его V (i) значения, чтобы сделать его более трудным, может быть контрпродуктивным. Это может привести к неустойчивым действиям управления, нестабильности или отказу решателя QP, который определяет действие управления.

Измеренная константа возмущения, заданная как Nc -by - Nmd массив, где Nmd - количество измеренных нарушений порядка.

Совет

  • Выходы, y, предсказываются с помощью модели. Если модель несовершенна, нет гарантии, что ограничение может быть выполнено.

  • Поскольку контроллер MPC не оптимизирует u (k + p | k), последнее ограничение в момент времени k + p принимает, что u (k + p | k) = u (k + p -1 | k).

  • При симуляции контроллера MPC можно обновить E, F, G, и S ограничивающие массивы во время выполнения. Для получения дополнительной информации см. раздел «Обновление ограничений во время выполнения».

Алгоритмы

свернуть все

Смешанные входные/выходные ограничения

Общая форма смешанных входных/выходных ограничений:

<reservedrangesplaceholder14> <reservedrangesplaceholder13> (k + j) + <reservedrangesplaceholder10> <reservedrangesplaceholder9> (k + j) + <reservedrangesplaceholder6> <reservedrangesplaceholder5> (k + j) ≤ <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>

Здесь j = 0,..., p и:

  • p - горизонт предсказания.

  • k - текущий временной индекс.

  • u - вектор-столбец манипулируемые переменные.

  • y является вектором-столбцом всех переменных выходов объекта.

  • v является вектором-столбцом измеренных переменных нарушений порядка.

  • ε - скалярная переменная слабения, используемая для смягчения ограничений (как в функции стандартных затрат).

  • E, F, G, V, и S являются постоянными матрицами.

Введенный в R2011a