Преобразуйте неограниченный контроллер 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