setEstimator

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

Синтаксис

setEstimator(MPCobj,L,M)
setEstimator(MPCobj,'default')
setEstimator(MPCobj,'custom')

Описание

пример

setEstimator(MPCobj,L,M) устанавливает матрицы усиления, используемые для оценки состояний контроллера MPC. Смотрите уравнения Средства оценки состояния. Если L пуст, он принимает значение по умолчанию к L = A*M, где A является матрицей Грина, заданной в уравнениях Средства оценки состояния. Если M не использован или пуст, он принимает значение по умолчанию к нулевой матрице, и средство оценки состояния становится наблюдателем Luenberger.

setEstimator(MPCobj,'default') восстанавливает матрицы усиления L и M к их значениям по умолчанию. Значения по умолчанию являются оптимальными статическими усилениями, вычисленными функцией Control System Toolbox™ 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.

Больше о

свернуть все

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

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

Выходная оценка: ym [n |n–1] = Cm x [n |n–1] + Dvm v [n].

Обновление измерения: x [n |n] = x [n |n–1] + M (ym [n] –ym [n |n–1]).

Обновление времени: x [n +1|n] = A x [n |n–1] + Bu u [n] + Bv v [n] + L (ym [n] – ym [n |n–1]).

Состояние средства оценки: x [n +1|n] = (AL Cm) x [n |n–1] + Bu u [n] + (BvL Dvm) v [n] + L ym [v]. Состояние средства оценки основано на текущем измерении ym [n] и v [n], а также действие оптимального управления u [n], вычисленный в текущем интервале управления.

Переменные в этих уравнениях получены в итоге в следующей таблице.

СимволОписание
x

Вектор состояния контроллера, длина nx. Это включает (в эту последовательность):

  • Оценки состояния модели объекта управления. Размерность, полученная преобразованием MPCobj.Model.Plant к дискретной форме пространства состояний LTI (при необходимости), сопровождаемая при помощи absorbDelay, чтобы преобразовать любые задержки с дополнительными состояниями.

  • Введите оценки состояния возмущения (если таковые имеются). Используйте команду getindist, чтобы рассмотреть входную структуру возмущения.

  • Выведите оценки состояния возмущения (если таковые имеются). Используйте команду getoutdist, чтобы рассмотреть выходную структуру возмущения.

  • Выведите состояния шума измерения (если таковые имеются), как задано MPCobj.Model.Noise.

Длина nx является суммой количества состояний в вышеупомянутых четырех категориях.

ymВектор измеренных выходных параметров или оценка их истинных значений, длина nym.
uВектор переменных, которыми управляют, длина nu.
vВектор измеренных входных воздействий, длина nv.
[j |k]Обозначает оценку состояния или вывода во время tj на основе доступных данных во время tk.
KОбозначает количество, известное во время tk, т.е. не оценка.
Anx-by-nx матрица Грина.
Bunx-by-nu матрица, сопоставляющая u с x.
Bvnx-by-nx матрица, сопоставляющая v с x.
Cmnym-by-nx матрица, сопоставляющая x с ym.
Dvmnym-by-nv матрица, сопоставляющая v с ym. Обратите внимание на то, что Dum = 0, потому что не может быть никакого прямого сквозного соединения ни между какой переменной, которой управляют, и любым измеренным выводом.
Lnx-by-nym матрица усиления Кальмана для обновления времени. (См. kalmd в документации Control System Toolbox.) Обратите внимание на то, что L = A *M минимизирует ожидаемую ошибку оценки состояния для большинства комбинаций объекта и возмущений, используемых в MPC, но это не верно в целом.
Mnx-by-nym матрица усиления Кальмана для обновления измерения. (См. kalmd в документации Control System Toolbox.)

Смотрите также

| | |

Введенный в R2014b