exponenta event banner

setconstraint

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

Описание

пример

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

Eu (k + j 'k) + Fy (k + j' k) G +

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

пример

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

Eu (k + j 'k) + Fy (k + j' k) G + αV

Этот синтаксис используется для задания жестких пользовательских ограничений или изменения смягчения ограничений по умолчанию.

пример

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

Eu (k + j 'k) + Fy (k + j' k) + Sv (k + j 'k) ≤ G + αV

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

пример

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

Примеры

свернуть все

Укажите ограничение формы, 0≤u2-2u3+y2≤15 на 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+u2≤5y1+y2≤10

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

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+u2≤5y1+v1≤10y2+v2≤12

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

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 применяется ко всем неравенствам ограничений, и все ограничения являются мягкими. Это поведение совпадает с поведением по умолчанию для границ вывода, как описано в разделе Функция стандартных затрат.

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

Чтобы сделать ограничение i мягким, укажите 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 массивы ограничений во время выполнения. Дополнительные сведения см. в разделе Обновление ограничений во время выполнения.

Алгоритмы

свернуть все

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

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

Eu (k + j) + Fy (k + j) + Sv (k + j) ≤ G + αV

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

  • p - горизонт прогнозирования.

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

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

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

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

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

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

Представлен в R2011a