exponenta event banner

getconstraint

Получение смешанных ограничений ввода/вывода от контроллера прогнозирования модели

Описание

пример

[E,F,G,V,S] = getconstraint(MPCobj) возвращает ограничения смешанного ввода/вывода, ранее определенные для контроллера MPC, MPCobj. Дополнительные сведения см. в разделе Смешанные ограничения ввода/вывода.

Примеры

свернуть все

Создайте модель завода третьего порядка с двумя управляемыми переменными, одним измеренным возмущением и двумя измеренными выходами.

plant = rss(3,2,3);
plant.D = 0;
plant = setmpcsignals(plant,'mv',[1 2],'md',3);

Создайте контроллер 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+u2≤5y2+v≤10

Установите ограничения для контроллера MPC.

E = [1 1; 0 0];
F = [0 0; 0 1];
G = [5;10];
V = [1;1];
S = [0;1];
setconstraint(MPCobj,E,F,G,V,S)

Извлеките ограничения из контроллера.

[E,F,G,V,S] = getconstraint(MPCobj)
E = 2×2

     1     1
     0     0

F = 2×2

     0     0
     0     1

G = 2×1

     5
    10

V = 2×1

     1
     1

S = 2×1

     0
     1

Входные аргументы

свернуть все

Контроллер прогнозирования модели, указанный как объект контроллера MPC. Для создания контроллера MPC используйте mpc.

Выходные аргументы

свернуть все

Константа изменяемой зависимости, возвращаемая как массив Nc-by-Nmv, где Nc - количество зависимостей, а Nmv - количество обрабатываемых переменных.

Если MPCobj не имеет смешанных ограничений ввода/вывода, то E является [].

Константа ограничения управляемого выхода, возвращаемая как массив Nc-by-Ny, где Ny - количество контролируемых выходов (измеренных и неизмеренных).

Если MPCobj не имеет смешанных ограничений ввода/вывода, то F является [].

Константа смешанного ограничения ввода/вывода, возвращаемая в виде вектора столбца длиной Nc., где Nc - число ограничений.

Если MPCobj не имеет смешанных ограничений ввода/вывода, то G является [].

Константа смягчения ограничения, представляющая равную заботу о релаксации (ECR), возвращается в виде вектора столбца длины Nc, где Nc - число ограничений. Если MPCobj не имеет смешанных ограничений ввода/вывода, то V является [].

Если V не указано, значение по умолчанию: 1 применяется ко всем неравенствам ограничений, и все ограничения являются мягкими. Это поведение совпадает с поведением по умолчанию для границ вывода, как описано в разделе Функция стандартных затрат.

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

Чтобы сделать ограничение i мягким, укажите V (i) > 0 в соответствии с допустимой величиной нарушения ограничения. Нарушение величины зависит от численного масштаба переменных, участвующих в ограничении.

В общем случае, когда V (i) уменьшается, контроллер усиливает ограничения, уменьшая допустимое нарушение ограничения.

Измеренная константа ограничения возмущения, возвращаемая в виде матрицы Nc-by-Nv, где Nv - количество измеренных возмущений.

Если нет измеренных возмущений в смешанных ограничениях ввода/вывода, или MPCobj не имеет смешанных ограничений ввода/вывода, то S является [].

Алгоритмы

свернуть все

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

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

Eu (k + j) + Fy (k + j) + Sv (k + j) ≤ G + αV

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

  • p - горизонт прогнозирования.

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

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

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

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

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

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

Поскольку контроллер MPC не оптимизирует u (k + p),getconstraint вычисляет последнее ограничение в момент времени k+p предполагая, что u (k + p) = u (k + p-1).

Представлен в R2011a