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