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+u25y2+v10

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

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

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

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

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

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

Алгоритмы

свернуть все

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

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

<reservedrangesplaceholder14> <reservedrangesplaceholder13> (k + j) + <reservedrangesplaceholder10> <reservedrangesplaceholder9> (k + j) + <reservedrangesplaceholder6> <reservedrangesplaceholder5> (k + j) ≤ <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>

Здесь 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