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.1665    0.1527
    0.0278    0.1110
   -0.1110   -0.1388
    0.0139         0
   -0.0763   -0.0278
    0.0139   -0.1110

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

свернуть все

Контроллер 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 th интервал управления, состояние контроллера оценивается со следующими шагами:

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

    • xc (k |k–1) — Контроллер утверждает оценку от предыдущего интервала управления, k –1

    • uact (k –1) — Переменная Manipulated (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