exponenta event banner

getEstimator

Получение прибылей и моделей Калмана для проектирования оценщика

Описание

пример

[L,M] = getEstimator(MPCobj) извлекает выигрыши Калмана, используемые оценщиком состояния в модельном прогнозирующем контроллере. Модуль оценки обновляет состояния моделей внутренних установок, возмущений и шума в начале каждого интервала контроллера.

пример

[L,M,A,Cm,Bu,Bv,Dvm] = getEstimator(MPCobj) также возвращает системные матрицы, используемые для вычисления коэффициентов усиления оценщика.

[L,M,model,index] = getEstimator(MPCobj,'sys') возвращает представление состояния-пространства LTI системы, используемое для проектирования устройства оценки состояния, и структуру, суммирующую типы сигналов ввода-вывода системы.

Примеры

свернуть все

Установка представляет собой стабильную дискретную модель состояния-пространства LTI с четырьмя состояниями, тремя входами и тремя выходами. Управляемыми переменными являются входы 1 и 2. Вход 3 представляет собой неизмеренное возмущение. Измеряются выходы 1 и 3. Выход 2 не измеряется.

Создайте модель завода и укажите сигналы для MPC.

rng(1253)              % For repeatable results
Plant = drss(4,3,3);    
Plant.Ts = 0.25;
Plant = setmpcsignals(Plant,'MV',[1,2],'UD',3,'MO',[1 3],'UO', 2);
Plant.d(:,[1,2]) = 0;

Последняя команда заставляет установку удовлетворять допущению отсутствия прямого прохода.

Рассчитайте прогнозирующий контроллер модели по умолчанию для этого завода.

MPCobj = mpc(Plant);
-->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.
   for output(s) y1 y3 and zero weight for output(s) y2 

Получение параметров, используемых при оценке состояния.

[L,M,A,Cm,Bu,Bv,Dvm] = getEstimator(MPCobj);
-->The "Model.Disturbance" property of "mpc" object is empty:
   Assuming unmeasured input disturbance #3 is integrated white noise.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
   Assuming no disturbance added to measured output channel #3.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

Основываясь на уравнении состояния оценщика, полюса оценщика задаются собственными значениями A - L*Cm. Вычислите и отобразите полюса.

Poles = eig(A - L*Cm)
Poles = 6×1

   -0.7467
   -0.5019
    0.0769
    0.4850
    0.8825
    0.8291

Убедитесь, что оценщик по умолчанию является асимптотически стабильным.

max(abs(Poles))
ans = 0.8825

Это значение меньше 1, поэтому оценщик является асимптотически стабильным.

Убедитесь, что в этом случае L = A*M.

L - A*M
ans = 6×2
10-15 ×

    0.3608    0.1665
    0.1527   -0.0555
   -0.1388   -0.0139
   -0.1110   -0.0486
   -0.2151         0
   -0.0971   -0.0555

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

свернуть все

Контроллер MPC, указанный как объект контроллера MPC. Используйте mpc для создания контроллера MPC.

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

свернуть все

Матрица усиления Калмана для обновления времени, возвращенная как матрица. Размеры L nx-by-nym, где nx - общее число состояний контроллера, а nym - количество измеренных выходов.

Матрица усиления Калмана для обновления измерения, возвращенная как матрица. Размеры L nx-by-nym, где nx - общее число состояний контроллера, а nym - количество измеренных выходов.

Системные матрицы, используемые для вычисления коэффициентов усиления оценщика, возвращаемые как матрицы различных измерений. Определения этих системных матриц см. в разделе Уравнения оценщика состояния.

Система, используемая для проектирования state-estimator, возвращаемая как state-space (ss) модель. Вход в model - векторный сигнал, содержащий следующие компоненты, конкатенированные в следующем порядке:

  • Управляемые переменные

  • Измеренные переменные возмущений

  • 1

  • Входы шума в модели возмущений

  • Входы шума в измерительную модель шума

Количество входов шума зависит от моделей помехи и шума измерения в пределах MPCobj. Для категорий входов шума в модели возмущения входы входной модели возмущения (если таковые имеются) предшествуют входам выходной модели возмущения (если таковые имеются). Константный ввод, 1, учитывает неравновесные номинальные значения (см. Моделирование MPC).

Для расчета прибыли L и M предполагается, что вводы аддитивного белого шума влияют на манипулируемые переменные и измеряемые возмущения (см. Оценка состояния контроллера). Эти входные сигналы белого шума не включены в model.

Расположение переменных во входах и выходах model. Структура суммирует эти местоположения со следующими полями и значениями.

Имя поляСтоимость
ManipulatedVariablesИндексы манипулируемых переменных во входном векторе model.
MeasuredDisturbancesИндексы измеренных входных возмущений во входном векторе model.
OffsetИндекс постоянного ввода 1 во входном векторе model.
WhiteNoiseИндексы неизмеренных входов возмущений во входном векторе model.
MeasuredOutputsИндексы измеряемых выходов в пределах выходного вектора model.
UmeasuredOutputsИндексы неизмеренных выходов в пределах выходного вектора model.

Алгоритмы

свернуть все

Уравнения оценщика состояния

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

В начале k-го интервала управления состояние контроллера оценивается следующими шагами:

  1. Получите следующие данные:

    • xc (k 'k-1) - оценка состояния контроллера по предыдущему интервалу управления, k-1

    • uact (k-1) - Управляемая переменная (MV), фактически используемая в установке от k-1 до k (предполагаемая константа)

    • uopt (k-1) - оптимальный СН, рекомендованный ПДК и предполагаемый для использования на установке от k-1 до k

    • v (k) - Измеренные по току возмущения

    • ym (k) - Текущие измеренные выходы установки

    • Bu, Bv - столбцы параметра наблюдателя B, соответствующие входам u (k) и v (k)

    • См - Ряды параметра наблюдателя С, соответствующие измеренным выходам установки

    • Dmv - Строки и столбцы параметра наблюдателя D, соответствующие измеренным выходам установки и входам измеренных возмущений

    • L, M - матрицы усиления константы Калмана

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

  2. Пересмотрите xc (k 'k-1), когда uact (k-1) и uopt (k-1) различны.

    xcrev (k | k 1) = xc (k | k 1) + Bu [uact (k − 1) − uopt (k − 1)]

  3. Вычислите инновации.

    e (k) = ym (k) [Cmxcrev (k | k 1) + Dmvv (k)]

  4. Обновление оценки состояния контроллера для учета последних измерений.

    xc (k | k) = xcrev (k | k 1) + Me (k)

    Затем программное обеспечение использует текущую оценку состояния xc (k 'k) для решения квадратичной программы на интервале k. Решением является uopt (k), рекомендуемое MPC значение манипулируемой переменной для использования между контрольными интервалами k и k + 1.

    Наконец, программное обеспечение готовится к следующему интервалу управления, предполагая, что неизвестные входы, wid (k), wod (k) и wn (k) принимают свое среднее значение (ноль) между временами k и k + 1. Программное обеспечение предсказывает влияние известных входных данных и инноваций следующим образом:

    xc (k + 1 | k) = Axcrev (k 'k 1) + Buuopt (k) + Bvv (k) + Le (k)

Представлен в R2014b