setconstraint

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

Синтаксис

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

Описание

пример

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

E u (k + j |k) + F y (k + j |k) ≤ G + ε

где j = 0..., p, и:

  • p является горизонтом прогноза.

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

  • E, F и G являются постоянными матрицами. Каждая строка E, F и G представляет линейное ограничение, которое будет наложено на каждом шаге горизонта прогноза.

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

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

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

пример

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

E u (k + j |k) + F y (k + j |k) ≤ G + ε V

где V является постоянным вектором, представляющим равное беспокойство о релаксации (ECR).

пример

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

E u (k + j |k) + F y (k + j |k) + S v (k + j |k) ≤ G + ε V

где:

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

  • S является постоянной матрицей.

пример

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

Примеры

свернуть все

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

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

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

Введенный в R2011a