Оцените общие модели ввода - вывода с помощью рекурсивного метода минимизации ошибки прогноза
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)
Параметры общей линейной образцовой структуры
оцениваются с помощью рекурсивного ошибочного метода прогноза.
Данные ввода - вывода содержатся в 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) реализован. См. также Рекурсивные алгоритмы для Онлайновой Оценки Параметра.
nkshift
| recursiveAR
| recursiveARMA
| recursiveARMAX
| recursiveARX
| recursiveBJ
| recursiveOE
| rplr