mpcstate

Состояние контроллера MPC

Описание

mpcstate объект представляет состояние неявного или явного контроллера MPC. Используйте mpcstate объект, чтобы инициализировать объект контроллера перед симуляцией.

Состояние контроллера включает в себя:

  • Состояния объекта, нарушения порядка и шума контроллера.

  • Манипулированные переменные, используемые в предыдущем контрольном интервале.

  • Ковариационная матрица состояния для контроллера.

mpcstate объекты обновляются во время симуляции с использованием внутреннего наблюдателя состояния на основе расширенной модели предсказания. Полное состояние обновляется из измеренного выхода ym (k) линейным наблюдателем состояния. Для получения информации о режиме смотрите Оценка состояния контроллера.

Создание

Описание

пример

x = mpcstate(mpcobj) создает объект состояния контроллера для неявного или явного контроллера MPC mpcobj, установка для свойств объекта состояния их значений по умолчанию.

x = mpcstate(mpcobj,plant,disturbance,noise,lastMove,covariance) устанавливает свойства объекта состояния на заданные значения без параметров. Чтобы использовать значения по умолчанию для заданного свойства, установите соответствующий входной параметр равным [].

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

расширить все

Объект контроллера MPC, заданный как mpc или explicitMPC объект.

Свойства

расширить все

Оценки состояния модели объекта управления, заданные как вектор. Оценочные значения состояния объекта указаны в технических модулях и являются абсолютными; то есть они включают смещения состояний. По умолчанию в Plant свойство равно Model.Nominal.X свойство контроллера, используемого для создания mpcstate объект.

Если модель объекта контроллера включает задержки, Plant свойство включает состояния, которые моделируют задержки. Поэтому количество элементов в Plant больше, чем порядок модели объекта контроллера без проводов.

Оценки состояния модели возмущения, заданные как вектор. Оценки нарушения порядка состояния включают состояния модели входа возмущения, за которой следуют состояния модели выхода возмущения. По умолчанию в Disturbance свойство является нулевым вектором, если контроллер имеет состояния модели возмущения и пуст в противном случае.

Чтобы просмотреть вход и выходные модели возмущения вашего контроллера, используйте getindist и getoutdist функций, соответственно.

Выходы состояния модели шума выходного измерения, заданные как вектор. По умолчанию в Noise свойство является нулевым вектором, если контроллер имеет состояния шумовой модели и в противном случае пуст.

Оптимальный управляемый переменный шаг управления от предыдущего контрольного интервала, заданный как вектор с длиной, равной количеству манипулируемых переменных. По умолчанию в LastMove свойство равно номинальным значениям управляемых переменных.

Во время симуляции, mpcmove функция автоматически устанавливает значение LastMove.

Когда фактические сигналы управления, отправленные на объект в предыдущем контрольном интервале, не совпадают с вычисленным оптимальным значением, не используйте LastMove для определения фактических управляющих сигналов. Вместо этого сделайте это, используя mpcmoveopt.

Ковариационная матрица для оценок состояния контроллера, заданная в виде Ns -by Ns симметричной матрицы, где Ns - сумма числовых состояний, содержащихся в Plant, Disturbance, и Noise поля. T

Если контроллер использует оценку состояния по умолчанию, ковариационная матрица по умолчанию является установившейся ковариацией, вычисленной согласно допущениям в оценке состояния контроллера. Для получения дополнительной информации смотрите описание P выходной аргумент kalmd функция.

Если контроллер использует пользовательскую оценку состояния, Covariance свойство пусто и не используется.

Во время симуляции не изменяйте Covariance. mpcmove функция автоматически устанавливает значение Covariance на каждом контрольном интервале.

Функции объекта

mpcmoveВычислите оптимальное действие управления и состояния контроллера обновления
mpcmoveAdaptiveВычислите оптимальное управление с обновлением модели предсказания
mpcmoveMultipleВычислите действие MPC управления табличным управлением в один момент времени
mpcmoveExplicitВычислите оптимальное управление с помощью явного MPC

Примеры

свернуть все

Создайте прогнозирующий контроллер модели для объекта с одним входом и одним выходом (SISO). В этом примере объект включает задержку на входе 0,4 временных модулей и контрольный интервал 0,2 временных модулей.

H = tf(1,[10 1],'InputDelay',0.4);
MPCobj = mpc(H,0.2);
-->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.

Создайте соответствующий объект состояния контроллера, в котором все состояния находятся в своих значениях по умолчанию.

xMPC = mpcstate(MPCobj)
-->Converting the "Model.Plant" property of "mpc" object to state-space.
-->Converting model to discrete time.
-->Converting delays to states.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
MPCSTATE object with fields
          Plant: [0 0 0]
    Disturbance: 0
          Noise: [1x0 double]
       LastMove: 0
     Covariance: [4x4 double]

Модель объекта управления, H, является передаточной функцией первого порядка в непрерывном времени. The Plant свойство mpcstate объект содержит два дополнительных состояния, чтобы смоделировать два интервала задержки. По умолчанию контроллер содержит выходную модель возмущения первого порядка (Disturbance свойство является скаляром) и статической моделью шума усиления (Noise свойство пустое).

Вы можете получить доступ к свойствам объекта состояния контроллера с помощью записи через точку. Для примера просмотрите матрицу ковариации по умолчанию.

xMPC.Covariance
ans = 4×4

    0.0624    0.0000    0.0000   -0.0224
    0.0000    1.0000    0.0000    0.0000
    0.0000    0.0000    1.0000   -0.0000
   -0.0224    0.0000   -0.0000    0.2301

Представлено до R2006a