exponenta event banner

rpem

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

Синтаксис

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

Описание

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

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

A (q) y (t) = B1 (q) F1 (q) u1 (t nk1) +... + Bnu (q) Fnu (q) unu (t − nknu) + 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третий ряд 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);

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys: 68.4%.

Алгоритмы

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

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