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 - количество измеренных выходов.

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

Система, используемая для проекта оценщика состояния, возвращенная как пространство состояний (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) - Оптимальное СН, рекомендованное MPC и принятое к использованию на объекте от k -1 до k

    • v (k) - Токовые измеренные нарушения порядка

    • ym (k) - Токовые выходы измеряемого объекта

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

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

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

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

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

  2. Пересмотрите xc (k | k -1), когда uact(k -1) и uopt(k -1) отличаются.

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

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

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

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

    xc(k|k)=xcrev(k|k1)+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|k1)+Buuopt(k)+Bvv(k)+Le(k)

Введенный в R2014b