Преобразуйте неограниченный контроллер MPC в линейную систему пространства состояний
sys = ss(MPCobj)
sys = ss(MPCobj,signals)
sys = ss(MPCobj,signals,ref_preview,md_preview)
[sys,ut]
= ss(MPCobj)
ss
команда возвращает линейный контроллер в форме пространства состояний. Контроллер эквивалентен традиционному (неявному) контроллеру MPC MPCobj
когда никакие ограничения не активны. Можно затем использовать программное обеспечение Control System Toolbox™ для анализа чувствительности и других диагностических вычислений.
возвращает линейное дискретное время динамический контроллер sys
= ss(MPCobj
)sys
.
x (k + 1) = A x (k) + B ym (k)
u (k) = C x (k) + D ym (k)
где ym является вектором из измеренных выходных параметров объекта, и u является вектором из переменных, которыми управляют. Время выборки контроллера sys
MPCobj.Ts
.
Примечание
Векторный x включает состояния наблюдателя (объект + воздействие + шумовые состояния модели) и предыдущая переменная u, которой управляют (k-1).
возвращает линеаризовавший контроллер MPC в его полной форме и позволяет вам задавать сигналы, что вы хотите включать как входные параметры для sys
= ss(MPCobj
,signals
)sys
.
Полная форма контроллера 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
Здесь:
r является вектором из заданных значений и для измеренного и для неизмеренного объекта выходные параметры
v является вектором из измеренных воздействий.
utarget является вектором из предпочтительных значений для переменных, которыми управляют.
Задайте signals
как вектор символов или строка с любой комбинацией, которая содержит один или несколько следующих символов:
'r'
— Выведите ссылки
'v'
— Измеренные воздействия
'o'
— Возместите условия
't'
— Введите цели
Например, чтобы получить контроллер, который сопоставляет [ym; r; v] к u, используйте:
sys = ss(MPCobj,'rv');
В общем случае ненулевых смещений 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 прочь нуль.
Только следующие поля MPCobj
используются при вычислении модели в пространстве состояний: Model
, PredictionHorizon
, ControlHorizon
, Ts
, Weights
.
задает, есть ли у контроллера MPC действия предварительного просмотра со ссылкой и измеренными сигналами воздействия. Если флаг sys
= ss(MPCobj
,signals
,ref_preview
,md_preview
)ref_preview = '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)] +...
Так же, если флаг md_preview='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)] +...
[
также возвращает входные целевые значения для полной формы контроллера. sys
,ut
]
= ss(MPCobj
)
ut
возвращен, когда вектор из удваивается, [utarget(k); utarget(k+1); ... utarget(k+h)]
.
Здесь:
h Максимальная длина предварительно просмотренных входных параметров; то есть, h = max(length(MPCobj.ManipulatedVariables(:).Target))
utarget
— Различие между входной целью и соответствующими входными смещениями; то есть, MPCobj.ManipulatedVariables(:).Targets - MPCobj.Model.Nominal.U