setterminal

Терминальные веса и ограничения

Синтаксис

setterminal(MPCobj,Y,U)
setterminal(MPCobj,Y,U,Pt)

Описание

setterminal(MPCobj,Y,U) задает диагональные квадратичные веса штрафа и ограничения на последнем шаге в горизонте предсказания. Веса и ограничения находятся на терминале выход y (t +p) и терминальный вход u (t +p – 1), где p является горизонтом предсказания контроллера MPC MPCobj.

setterminal(MPCobj,Y,U,Pt) задает диагональные квадратичные веса штрафа и ограничения от шага Pt к концу горизонта. По умолчанию Pt является последним шагом в горизонте.

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

MPCobj

Контроллер MPC в виде контроллера MPC объект

Y

Терминальные веса и ограничения для выходных переменных в виде структуры со следующими полями:

Weight1 ny вектором неотрицательных весов
Min1 ny вектором нижних границ
Max1 ny вектором верхних границ
MinECR1 ny вектором смягчающего ограничение Равного Беспокойства о Релаксации (ECR) значения для нижних границ
MaxECR1 ny вектором смягчающих ограничение значений ECR для верхних границ

ny является количеством управляемых выходных параметров контроллера MPC.

Если Weightmin или Max поле пусто, значения в MPCobj используются на всех шагах горизонта предсказания включая последнее. Для стандартных границ, если любой элемент Min или Max поле бесконечно, соответствующая переменная неограничена на терминальном шаге.

Недиагональные веса являются нулем (как описано в Стандартной Функции стоимости). Чтобы применить ненулевые недиагональные терминальные веса, необходимо увеличить модель объекта управления. Смотрите Обеспечивают Производительность LQR Используя Терминальные Веса Штрафа.

По умолчанию, Y.MinECR = Y.MaxECR = 1 (мягкие выходные ограничения).

Выберите ECR величины тщательно, составляя важность каждого ограничения и числовую величину типичного нарушения.

U

Терминальные веса и ограничения для переменных, которыми управляют, в виде структуры со следующими полями:

Weight1 nu вектором неотрицательных весов
Min1 nu вектором нижних границ
Max1 nu вектором верхних границ
MinECR1 nu вектором смягчающего ограничение Равного Беспокойства о Релаксации (ECR) значения для нижних границ
MaxECR1 nu вектором смягчающих ограничение значений ECR для верхних границ

nu является количеством переменных, которыми управляют, контроллера MPC.

Если Weightmin или Max поле пусто, значения в MPCobj используются на всех шагах горизонта предсказания включая последнее. Для стандартных границ, если отдельные элементы Min или Max поля бесконечны, соответствующая переменная неограничена на терминальном шаге.

Недиагональные веса являются нулем (как описано в Стандартной Функции стоимости). Чтобы применить ненулевые недиагональные терминальные веса, необходимо увеличить модель объекта управления. Смотрите Обеспечивают Производительность LQR Используя Терминальные Веса Штрафа.

По умолчанию, U.MinECR = U.MaxECR = 0 (трудно переменные ограничения, которыми управляют)

Выберите величины ECR тщательно, объяснив важность каждого ограничения и числовую величину типичного нарушения.

Pt

Продвиньтесь в горизонт предсказания в виде целого числа между 1 и p, где p является горизонтом предсказания. Конечная стоимость применяется к Y и U из предсказания продвигаются Pt в конец.

Значение по умолчанию: горизонт Предсказания p

Примеры

свернуть все

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

plant = rss(3,3,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.
   for output(s) y1 y2 and zero weight for output(s) y3 

Задайте горизонт предсказания 8.

MPCobj.PredictionHorizon = 8;

Задайте следующие веса штрафа и ограничения:

  • Диагональные веса штрафа 1 и 10 на первых двух выходных переменных

  • Нижние границы 0 и -1 на первом и трети выходные параметры соответственно

  • Верхняя граница 2 на втором выходе

  • Нижняя граница 1 на первой переменной, которой управляют,

Y = struct('Weight',[1,10,0],'Min',[0,-Inf,-1],'Max',[Inf,2,Inf]);
U = struct('Min',[1,-Inf]);

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

setterminal(MPCobj,Y,U)

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

plant = rss(3,3,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.
   for output(s) y1 y2 and zero weight for output(s) y3 

Задайте горизонт предсказания 10.

MPCobj.PredictionHorizon = 10;

Задайте следующие терминальные ограничения:

  • Нижние границы 0 и -1 на первом и трети выходные параметры соответственно

  • Верхняя граница 2 на втором выходе

  • Нижняя граница 1 на первой переменной, которой управляют,

Y = struct('Min',[0,-Inf,-1],'Max',[Inf,2,Inf]);
U = struct('Min',[1,-Inf]);

Задайте ограничения, начинающиеся на шаге 5 и окончание на последнем шаге горизонта предсказания.

setterminal(MPCobj,Y,U,5)

Советы

  • Опытные пользователи могут наложить терминальные многогранные ограничения состояния:

    K 1H xK 2.

    Во-первых, увеличьте модель объекта управления с дополнительными искусственными (неизмеренными) выходными параметрами, y = H x. Затем задайте, ограничивает K 1 и K 2 на них y выходные параметры.

Введенный в R2011a