ss

Преобразуйте неограниченный контроллер MPC в форму линейной системы пространства состояний

Описание

Используйте Model Predictive Control Toolbox™ ss функционируйте, чтобы преобразовать неограниченный контроллер MPC в форму передаточной функции (см. mpc для фона). Возвращенный контроллер эквивалентен исходному контроллеру MPC MPCobj когда никакие ограничения не активны. Можно затем использовать программное обеспечение Control System Toolbox™ для анализа чувствительности и других диагностических вычислений.

Чтобы создать или преобразовать типовой LTI динамическая система в форму пространства состояний, смотрите ss и модели динамической системы.

пример

kss = ss(MPCobj) возвращает линейное дискретное время динамический контроллер kss, в форме пространства состояний. kss эквивалентно контроллеру MPC MPCobj когда никакое ограничение не активно.

kssFull = ss(MPCobj,signals) возвращает линейное дискретное время динамический контроллер kss, в полной форме пространства состояний, и позволяет вам задавать сигналы, что вы хотите включать как входные параметры для kssFull.

kssFullPv = ss(MPCobj,signals,refPreview,mdPreview) задает, есть ли у возвращенного контроллера действие предварительного просмотра, это - то, если оно использует целую ссылку и измеренные последовательности воздействия как входные сигналы.

[kss,ut] = ss(MPCobj) также возвращает входные целевые значения для полной формы контроллера.

Примеры

свернуть все

Чтобы улучшить ясность примера, подавите сообщения о работе с контроллером MPC.

old_status = mpcverbosity('off');

Создайте модель объекта управления.

G = rss(5,2,3);
G.D = 0;
G = setmpcsignals(G,'mv',1,'md',2,'ud',3,'mo',1,'uo',2);

Сконфигурируйте контроллер MPC с ненулевой номинальной стоимостью, весами, и введите цели.

C = mpc(G,0.1);
C.Model.Nominal.U = [0.7 0.8 0];
C.Model.Nominal.Y = [0.5 0.6];
C.Model.Nominal.DX = rand(5,1); 
C.Weights.MV = 2;
C.Weights.OV = [3 4];
C.MV.Target = [0.1 0.2 0.3];

C неограниченный контроллер MPC. Определение C.Model.Nominal.DX как ненулевой означает, что номинальная стоимость не в устойчивом состоянии. C.MV.Target задает три шага предварительного просмотра.

Преобразуйте C к модели в пространстве состояний.

sys = ss(C);

Выход, sys, седьмой порядок модель в пространстве состояний SISO. Семь состояний включают пять состояний модели объекта управления, одно состояние от входного возмущения по умолчанию и одно состояние от предыдущего перемещения, u(k-1).

Восстановите mpcverbosity.

mpcverbosity(old_status);

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

свернуть все

Прогнозирующий контроллер модели в виде контроллера MPC объект. Чтобы создать контроллер MPC, использовать mpc.

Задайте signals как вектор символов или строка с любой комбинацией, которая содержит один или несколько следующих символов:

  • 'r' — Выведите ссылки

  • 'v' — Измеренные воздействия

  • 'o' — Возместите термины

  • 't' — Введите цели

Например, чтобы получить контроллер, который сопоставляет [ym; r; v] к u, используйте:

kss = ss(MPCobj,'rv');

Пример: 'r'

Если этим флагом является 'on', затем входные матрицы возвращенного контроллера имеют больший размер, чтобы умножить целую ссылочную последовательность.

Пример: 'on'

Если этим флагом является 'on', затем входные матрицы возвращенного контроллера имеют больший размер, чтобы умножить целую последовательность воздействия.

Пример: 'on'

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

свернуть все

Форма пространства состояний дискретного времени неограниченного контроллера MPC имеет следующую структуру:

x (k + 1) = A x (k) + B ym (k)

u (k) = C x (k) + D ym (k)

где A, B, C и D являются матрицами, формирующими реализацию пространства состояний контроллера kss, ym является вектором из измеренных выходных параметров объекта, и u является вектором из переменных, которыми управляют. Время выборки контроллера kss MPCobj.Ts.

Примечание

Векторный x включает состояния наблюдателя (объект + воздействие + шумовые состояния модели) и предыдущая переменная u, которой управляют (k-1).

Примечание

Только следующие поля MPCobj используются при вычислении модели в пространстве состояний: Model, PredictionHorizon, ControlHorizon, Ts, Weights.

Полная форма пространства состояний дискретного времени неограниченного контроллера MPC имеет следующую структуру:

x (k + 1) = A x (k) + B ym (k) + Br r (k) + Bv v (k) + But utarget (k) + Boff

u (k) = C x (k) + D ym (k) + Dr r (k) + Dv v (k) + Dut utarget (k) + Doff

Здесь:

  • A, B, C и D являются матрицами, формирующими реализацию пространства состояний контроллера от измеренного объекта выход к переменным, которыми управляют,

  • r является вектором из заданных значений и для измеренного и для неизмеренного объекта выходные параметры

  • v является вектором из измеренных воздействий.

  • utarget является вектором из предпочтительных значений для переменных, которыми управляют.

В общем случае ненулевых смещений y m, r, v и цель u должны быть интерпретированы как различие между вектором и соответствующим смещением. Смещения могут быть ненулевыми, MPCobj.Model.Nominal.Y или MPCobj.Model.Nominal.U являются ненулевыми.

Векторы Boff и Doff являются постоянными терминами. Они являются ненулевыми если и только если MPCobj.Model.Nominal.DX является ненулевым (модели предсказания непрерывного времени), или MPCobj.Model.Nominal.Dx- MPCobj.Model.Nominal.X является ненулевым (модели предсказания дискретного времени). Другими словами, когда Nominal.X представляет состояние равновесия, B прочь, D прочь нуль.

Если флаг refPreview = 'on', затем матрицы Br и Dr умножают целую ссылочную последовательность:

x (k + 1) = A x (k) + B ym (k) + Br [r (k); r (k + 1);...; r (k + p – 1)] +...

u (k) = C x (k) + D ym (k) + Dr [r (k); r (k + 1);...; r (k + p – 1)] +...

Точно так же, если флаг mdPreview='on', затем матрицы Bv и Dv умножают целую измеренную последовательность воздействия:

x (k + 1) = A x (k) +... + Bv [v (k); v (k + 1);...; v (k + p)] +...

u (k) = C x (k) +... + Dv [v (k); v (k + 1);...; v (k + p)] +...

ut возвращен, когда вектор из удваивается, [utarget(k); utarget(k+1); ... utarget(k+h)].

Здесь:

  • h Максимальная длина предварительно просмотренных входных параметров; то есть, h = max(length(MPCobj.ManipulatedVariables(:).Target))

  • utarget — Различие между входной целью и соответствующими входными смещениями; то есть, MPCobj.ManipulatedVariables(:).Targets - MPCobj.Model.Nominal.U

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте