exponenta event banner

ss

Преобразовать контроллер MPC без ограничений в линейную системную форму state-space

Описание

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

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

пример

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

kssFull = ss(MPCobj,signals) возвращает линейный дискретно-временной динамический контроллер kss, в форме «full state-space» и позволяет указать сигналы, которые требуется включить в качестве входных данных для 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'

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

свернуть все

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

x (k + 1) = Ax (k) + Bym (k)

u (k) = Cx (k) + Dym (k)

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

Примечание

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

Примечание

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

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

x (k + 1) = Ax (k) + Bym (k) + Brr (k) + Bvv (k) + Bututarget (k) + Boff

u (k) = Cx (k) + Dym (k) + Drr (k) + Dvv (k) + Dututarget (k) + Doff

Здесь:

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

  • r - вектор уставок как для измеренных, так и для неизмеренных выходов установки

  • v - вектор измеренных возмущений.

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

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

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

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

x (k + 1) = Ax (k) + Bym (k) + Br [r (k); r (k + 1);...; r (k + p-1)] +...

u (k) = Cx (k) + Dym (k) + Dr [r (k); r (k + 1);...; r (k + p- 1)] +...

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

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

u (k) = Cx (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