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.

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

Недиагональные веса являются нулем (как описано в Стандартной Функции стоимости). Чтобы применить ненулевые недиагональные терминальные веса, необходимо увеличить модель объекта управления. См. Модель Разработки Прогнозирующий диспетчер Экуивэлент к Infinite-Horizon LQR.

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

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

U

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

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

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

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

Недиагональные веса являются нулем (как описано в Стандартной Функции стоимости). Чтобы применить ненулевые недиагональные терминальные веса, необходимо увеличить модель объекта управления. См. Модель Разработки Прогнозирующий диспетчер Экуивэлент к Infinite-Horizon 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