exponenta event banner

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) проверяют наблюдаемость модели установки при построении объекта ПДК при условии, что модель установки приведена в форме state-space; (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 опущен или пуст, по умолчанию используется нулевая матрица, и оценщик состояния становится наблюдателем Люенбергера.

Алгоритмы

свернуть все

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

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

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