rpem

Оцените общие модели ввода - вывода с помощью рекурсивного метода минимизации ошибки прогноза

rpem не совместим с MATLAB® Coder™ или MATLAB Compiler™. Для особых случаев ARX, AR, ARMA, ARMAX, Поле-Jenkins и модели Output-Error, используют recursiveARX, recursiveAR, recursiveARMA, recursiveARMAX, recursiveBJ и recursiveOE, соответственно.

Синтаксис

thm = rpem(z,nn,adm,adg)
[thm,yhat,P,phi,psi] = rpem(z,nn,adm,adg,th0,P0,phi0,psi0)

Описание

Параметры общей линейной образцовой структуры

A(q)y(t)=B1(q)F1(q)u1(tnk1)+...+Bnu(q)Fnu(q)unu(tnknu)+C(q)D(q)e(t)

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

Данные ввода - вывода содержатся в z, который является или объектом iddata или матричным z = [y u], где y и u являются вектор-столбцами. (В нескольких - входной случай, u содержит один столбец для каждого входа.) nn дан как

nn = [na nb nc nd nf nk]

где na, nb, nc, nd и nf являются порядками модели, и nk является задержкой. Для нескольких - входные системы, nb, nf и nk являются векторами - строками, дающими распоряжения и задержки каждого входа. Смотрите то, Что Полиномиальные Модели? для точного определения порядков.

Предполагаемые параметры возвращены в матричном thm. k th строка thm содержит параметры, сопоставленные со временем k; то есть, они основаны на данных в строках до и включая строку k в z. Каждая строка thm содержит предполагаемые параметры в следующем порядке.

thm(k,:) = [a1,a2,...,ana,b1,...,bnb,...
  c1,...,cnc,d1,...,dnd,f1,...,fnf]

Для нескольких - входные системы, часть B в вышеупомянутом выражении повторяется для каждого входа, прежде чем часть C начнется, и часть F также повторяется для каждого входа. Это - то же упорядоченное расположение как в m.par.

yhat является ожидаемым значением вывода, согласно текущей модели; то есть, строка k yhat содержит ожидаемое значение y(k) на основе всех прошлых данных.

Фактический алгоритм выбран с этими двумя аргументами adg и adm:

  • adm = 'ff' и adg = lam задают забывающий факторный алгоритм с фактором упущения λ=lam. Этот алгоритм также известен как рекурсивные наименьшие квадраты (RLS). В этом случае матричный P имеет следующую интерпретацию: R2 /2 * P приблизительно равен ковариационной матрице предполагаемых параметров. R2 является отклонением инноваций (истинные ошибки прогноза e (t)).

    adm ='ug' и adg = gam задают ненормированный алгоритм градиента с гаммой усиления = gam. Этот алгоритм также известен как нормированный наименьшее количество средних квадратичных (LMS).

    adm ='ng' и adg = gam задают нормированный градиент или алгоритм нормированного наименьшее количество средних квадратичных (NLMS). В этих случаях P не применим.

    adm ='kf' и adg =R1 задают основанный на фильтре Калмана алгоритм с R2 =1 и R1 = R1. Если отклонение инноваций e (t) не является единицей, но R2; затем R2* P является ковариационной матрицей оценок параметра, в то время как R1 = R1/R2 является ковариационной матрицей изменений параметра.

Входной параметр th0 содержит начальное значение параметров, вектор - строка, сопоставимый со строками thm. Значение по умолчанию th0 является всеми нулями.

Аргументы P0 и P являются начальными и окончательными значениями, соответственно, масштабированной ковариационной матрицы параметров. Значение по умолчанию P0 является 104 раза единичной матрицей. Аргументы phi0, psi0, phi и psi содержат начальные и окончательные значения вектора данных и вектора градиента, соответственно. Размеры их зависят от выбранных порядков модели. Нормальный выбор phi0 и psi0 состоит в том, чтобы использовать выходные параметры от предыдущего вызова до rpem с теми же порядками модели. (Этот вызов мог быть фиктивным вызовом с входными параметрами по умолчанию.) Значения по умолчанию phi0 и psi0 являются всеми нулями.

Обратите внимание на то, что функция требует, чтобы задержка nk была больше, чем 0. Если вы хотите nk = 0, переключаете входную последовательность соответственно и используете nk = 1.

Примеры

Оцените параметры модели Используя рекурсивную минимизацию ошибки прогноза

Задайте порядок и задержки полиномиальной образцовой структуры.

na = 2;
nb = 1;
nc = 1;
nd = 1;
nf = 0;
nk = 1;

Загрузите данные об оценке.

load iddata1 z1

Оцените использование параметров, забыв факторный алгоритм с упущением фактора 0.99.

EstimatedParameters = rpem(z1,[na nb nc nd nf nk],'ff',0.99);

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

p = EstimatedParameters(end,:);

Создайте полиномиальную модель с предполагаемыми параметрами.

sys = idpoly([1 p(1:na)],... % A polynomial
    [zeros(1,nk) p(na+1:na+nb)],... % B polynomial
    [1 p(na+nb+1:na+nb+nc)],... % C polynomial
    [1 p(na+nb+nc+1:na+nb+nc+nd)]); % D polynomial
sys.Ts = z1.Ts;

Сравните предполагаемый вывод с результатами измерений.

compare(z1,sys);

Алгоритмы

Общий рекурсивный ошибочный алгоритм прогноза (11.44) из Ljung (1999) реализован. См. также Рекурсивные алгоритмы для Онлайновой Оценки Параметра.

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте