setEstimator

Измените средство оценки прогнозирующего диспетчера модели состояния

Описание

пример

setEstimator(MPCobj,L,M) устанавливает матрицы усиления, используемые для оценки состояний контроллера MPC. Для получения дополнительной информации смотрите уравнения Средства оценки состояния.

setEstimator(MPCobj,'default') восстанавливает матрицы усиления L и M к их значениям по умолчанию. Значениями по умолчанию является вычисленное использование оптимальных статических усилений kalmd для объекта воздействие и модели шума измерения заданы в MPCobj.

setEstimator(MPCobj,'custom') указывает, что оценка состояния контроллера будет выполняться предоставленной пользователями процедурой. Эта опция подавляет вычисление L и M. Когда контроллер действует таким образом, процедура должна предоставить оценку состояния x[n|n] контроллеру в начале каждого контрольного интервала.

Примеры

свернуть все

Спроектируйте средство оценки с помощью размещения полюса, приняв линейную систему AM=L разрешимо.

Создайте модель объекта управления.

G = tf({1,1,1},{[1 .5 1],[1 1],[.7 .5 1]});

Чтобы улучшить ясность этого примера, вызовите mpcverbosity подавить сообщения, связанные с работой с контроллером MPC.

old_status = mpcverbosity('off');

Создайте прогнозирующий контроллер модели для объекта. Задайте шаг расчета контроллера как 0,2 секунды.

MPCobj = mpc(G, 0.2);

Получите усиление средства оценки состояния по умолчанию.

[~,M,A1,Cm1] = getEstimator(MPCobj);

Вычислите полюса наблюдателя по умолчанию.

e = eig(A1-A1*M*Cm1);
abs(e)
ans = 6×1

    0.9402
    0.9402
    0.8816
    0.8816
    0.7430
    0.9020

Задайте более быстрые полюса наблюдателя.

new_poles = [.8 .75 .7 .85 .6 .81];

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

L = place(A1',Cm1',new_poles)';

place возвращает матрицу усиления контроллера, тогда как вы хотите вычислить матрицу усиления наблюдателя. Используя принцип двойственности, который связывает управляемость с наблюдаемостью, вы задаете транспонирование A1 и Cm1 как входные параметры к place. Этот вызов функции уступает, усиление наблюдателя транспонируют.

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

M = A1\L;

Задайте M как средство оценки для MPCobj.

setEstimator(MPCobj,L,M)

Пара, (A1,Cm1), описание полной реализации пространства состояний комбинации объекта и возмущений должно быть заметным для проекта оценки состояния, чтобы успешно выполниться. Наблюдаемость проверяется в программном обеспечении Model Predictive Control Toolbox на двух уровнях: (1) наблюдаемость модели объекта управления проверяется при конструкции объекта MPC, при условии, что модель объекта дана в форме пространства состояний; (2) наблюдаемость полной расширенной модели проверяется при инициализации объекта MPC, после того, как все модели были преобразованы в дискретное время, форму пространства состояний без задержек и объединены вместе.

Восстановите mpcverbosity.

mpcverbosity(old_status);

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

свернуть все

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

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

Если L пусто, это принимает значение по умолчанию к L = A*M, где A матрица Грина.

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

Если M не использован или пуст, это принимает значение по умолчанию к нулевой матрице, и средство оценки состояния становится наблюдателем Luenberger.

Алгоритмы

свернуть все

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

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

В начале 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