setconstraint

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

Описание

пример

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

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

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

пример

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

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

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

пример

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

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

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

пример

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

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

Алгоритмы

свернуть все

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2011a