Функции итерационного параметрического оценивания 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции итерационного параметрического оценивания



В данную группу входят следующие 7 функций, позволяющие про­водить оценивание коэффициентов моделей итерационными (рекур­рентными) методами, при которых на каждой k-й итерации учи­тываются экспериментальные данные, соответствующие моменту времени k.

Функция rarmax

Функция rarmax реализует процедуру рекуррентного оценивания ко­эффициентов ARMAX-модели:

thm = rarmax(z,nn,adm,adg)

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

Здесь:

• z — матрица данных;

• nn — аргумент, задающий параметры ARMAX-модели, nn = [na nb nc nk];

• adm и adg — аргументы, задающие вид процедуры оценивания, на­пример, значения adm ='ff' и adg = lam задают рекуррентный ме­тод наименьших квадратов, adm = 'ug' и adg = gam — градиентный метод оценивания и т. п. (дополнительную информацию можно
получить, используя команду help rarmax);

• th0 — вектор-строка, содержащий начальные значения оценивае­мых параметров, по умолчанию — нулевой вектор;

• Р0 — начальная матрица ковариаций оцениваемых коэффициен­тов, по умолчанию равна единичной матрице, умноженной на 104;

• phi0 и psi0 — соответственно, начальные значения вектора данных и вектора-градиента (по умолчанию — нулевые). Их размеры дос­таточно сложным образом зависят от параметров модели.

Возвращаемые величины:

• thm — матрица оценок коэффициентов модели; k-я строка матрицы содержит оценки, соответствующие моменту времени k в сле­дующем порядке:

thm(k,:) = [al,a2,...ana,bl,...,bnb];

• yhat — вектор прогнозируемых значений выхода (соответствующий вектору z(k,l));

• Р, phi, psi — конечные значения матрицы ковариаций оценок коэффициентов, вектора данных и вектора-градиента.

Функция гагх

Функция гагх реализует процедуру рекуррентного оценивания коэф­фициентов AR и ARX-моделей:

thm = rarx(z,nn,adm,adg)

[thm,yhat,P,phi] = rarx(z,nn,adm,adg,h0,P0,phi0)

Аргументы и возвращаемые величины аналогичны рассмотренным для предыдущей функции.

Функция rbj

Функция rbj — то же, что предыдущая функция, но для модели Бокса-Дженкинса:

thm = rbj(z,nn,adm,adg)

[thm,yhat,P,phi,psi] =...

rbj(z,nn,adm,adg,th0,P0,phi0,psi0)

Аргументы и возвращаемые величины — как у функции гагтах, с уче­том того, что оценивается модель Бокса—Дженкинса.

Функция rое

Функций rое — то же, что предыдущая функция, но для ОЕ-модели:

thm = roe(z,nn,adm,adg)

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

Аргументы и возвращаемые величины те же, что у функции rаrmах.


Функция rреm

Функция rреm реализует рекуррентную процедуру оценивания пара­метров обобщенной линейной модели с несколькими входами, но с одним выходом:

thm = rpem(z,nn,ddm,adg)

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

Аргументы и возвращаемые величины те же, что у функции rarmax.

Функция rplr

Функция rplr имеет то же назначение, что и предыдущая функция. Отличие состоит в алгоритме оценивания. Функция записывается в виде:

thm = rplr(z,nn,adm,adg)

[thm,yhat,P.phi] = rplr(z,nn,adm,adg,th0,P0,phi0)

Функция segment

Функция segment осуществляет разбиение (сегментацию) данных и оценивание коэффициентов моделей для каждого сегмента в пред­положении, что в пределах каждого сегмента коэффициенты модели являются постоянными, но могут изменяться (скачкообразно) при переходе от сегмента к сегменту. Оцениваемые модели — AR, ARX, ARMAX. Функция записывается в виде:

segm = segment(z,nn)

[segm,V,thm,R2e] = segment(z,nn,R2,q,Rl,M,th0,P0,ll,mu)

Здесь:

• z — матрица данных;

• аргумент пп определяет порядок модели:
o для ARMAX-модели nn = [nа nb nc nk];
o для ARX-модели nn = [nа nb nк];

o для AR-модели nn = nа;

• R2 — оценка дисперсии шума наблюдений;

• q — вероятность скачкообразного изменения модели в момент вре­мени ky по умолчанию 0.01;

• R1 — предполагаемая матрица ковариаций оценок коэффициентов при их возможном скачкообразном изменении, по умолчанию —единичная матрица;

• М — число параллельных моделей, используемых в алгоритме, по умолчанию 5;


• th0 и Р0 — смысл данных аргументов рассмотрен выше, при описа­нии функции rаrmах (здесь начальное значение Р0 — единичная мат­рица, умноженная на 10);

• l l — аргумент, определяющий существование параллельных моделей (каждая модель не исключается, по крайней мере, в течение 11 итераций), по умолчанию l l = 1;

• mu — параметр алгоритма оценивания матрицы R2, но умолчанию 0.97.
Возвращаемые величины:

• segm — матрица, k-я строка которой содержит оценки коэффици­ентов, соответствующие моменту времени k (как возвращаемая матрица в функциях rаrх и rаrmах);

• thm — матрица, содержащая оценки коэффициентов, соответствую­щие моменту времени k без учета сегментации данных;

• V — сумма квадратов ошибок сегментированной модели;

• R2e — полученная оценка матрицы R2 для момента времени k.

Пример. Иллюстрируем возможности функции на примере аппрок­симации синусоидального сигнала кусочно-постоянным, при этом на каждом сегменте принятая модель имеет вид

y(t) = b1* 1

Соответствующая программа приведена ниже, результаты можно увидеть на рисунке.

» у = sin([l:50]/3)'; %Задание гармонического сигнала

» thm = segment([y,ones(size(y))],[0 1 1],0,1); %Сегментация данных

» plot ([thm,у]) %Вывод результатов

Функции задания структуры модели

 

В эту группу входят следующие 6 функций.

Функция arx2th

Функция arx2th конструирует матрицу модели так называемого тета-формата по полиномам ARX-модели многомерного объекта:

th = arx2th(A,B,ny,nu)

th = arx2th(A,B,ny,nu,lam,T)

Исходная ARX-модель многомерного объекта имеет вид:

y(t) + A1y(t-1) + A2y(t-2) +... +Anay(t-na) = В0 и(t) + B1 u(t -1) +...+ Bnb u(t - nb) + e(t),

где y(t) — вектор-столбец с nу элементами, u(t) — вектор-столбец с nu элементами (то есть объект имеет nu входов и nу выходов), Ак и Вк — матрицы размеров nyxny и nuxnu соответственно, e(t) — вектор шума.

Аргументы функции следующие:

• А = [I А1 А2... Аna], где I — единичная матрица;

• В = [Во В1... ВnЬ];

• ny и nu — количество выходов и входов модели (объекта);

• lam — матрица ковариаций шума e(t), no умолчанию — единичная матрица;

• Т — интервал дискретизации.

Функция canform

Функция canform конструирует каноническую форму модели для пе­ременных состояния многомерного объекта:

ms = canform(orders,nu)

ms = canform(orders,nu,dkx)

Используется совместно с функцией mf2th (см. ниже). Аргументы ана­логичны аргументам описанной выше функции canstart. Возвращае­мая величина ms — матрица, отражающая информацию о структуре модели.

Функция mf2th

Функция mf2th преобразует структуру модели для переменных состояния в модель тета-формата:

th = mf2th(model,cd,parval)

th = mf2th(model,cd,parval,aux,lambda,T)

где:

• model — имя m-файла, содержащего информацию о том, как матрицы модели зависят от свободных (оцениваемых) параметров;

• cd — строковая переменная, задающая тип модели:
o cd='c' — модель для непрерывного времени,

o cd='d' — модель для дискретного времени;

• parval — вектор-строка, содержащий номинальные значения пара­метров;

• Т — интервал дискретизации;

• aux — матрица вспомогательных переменных, используемых для различных целей и задаваемых в файле model;

• lambda — интенсивность шума.
Возвращаемая величина th — модель в тета-формате.

 

Функция modstruc

Функция modstruc определяет структуру модели для переменных со­стояния с частично незаданными коэффициентами матриц модели:

ms = modstruc(A,B,C,D,K)

ms = modstruc(A,B,C,D,K,x0)

Аргументы А, В, С, D, К, х0 — соответственно матрицы модели и вектор начальных условий (по умолчанию — нулевой). Известные коэффи­циенты матриц задаются числами, неизвестные (свободные), подле­жащие оцениванию, — как NaN. Возвращаемая матрица ms содержит информацию о структуре модели для дальнейшего использования с помощью функции ms2th.

В следующем примере системы 2-го порядка неизвестные элементы содержатся в матрицах А и В:

» A = [NaN,0;0,NaN]; % Задание матрицы А

» B = [NaN;NaN]; % Задание матрицы В

» О = [1,1]: % Задание матрицы С

» D = 0; % Задание матрицы D

» К = [0;0]; % Задание матрицы К

» ms = modstruc(A,B,C,D,K) % Формирование матрицы структуры модели

 

ms =

NaN 0 NaN 1 0 0 0 1

0 NaN NaN 1 0 0 0 2


Функция ms2th

Функция ms2th преобразует матрицу структуры в модель тета-фор-мата:

th = ms2th(ms)

th = ms2th(ms,cd,parval,lambda,T)

Аргументы и возвращаемая величина соответствуют описанным для предыдущих функций данной группы. Для примера определим сле­дующую структуру модели (для непрерывного времени):

. Г0» °1 Гез1 ej [e4j

у =[1 \]х + е

с начальными значениями коэффициентов θ = [-0.2 -0.3 2 4] и оце­ним соответствующие свободные параметры:

» load dryer2 %Загрузка данных

» z = [у2 и2];

» %Задание структур матриц модели

» A = [NaN,0;0,NaN];

» B = [NaN;NaN];

» С = [1,1];

» ms=modstruc(A,B,C,0,[0;0]);

» th=ms2th(ms,'c',[-0.2,-0.3,2,4]);

» th=pem(z,th):

» present(th) %Отображение информации о модели

This matrix was created by the command РЕМ on 1/20 2001 at 12:22

Loss fen: 0.17279 Akaike's FPE: 0.17418 Continuous time model estimated using

sampling interval 1

The state-space matrices with standard deviations given as imaginary parts are

a =

-0.2585 + 0.2844i 0

0 - 0.2816 + 0.33231 i

 

b =

3.5019 + 93.6630i

-3.5374 + 93.6538i

 

 

c = 1 1

d =

k =

 

x0 =

lambda =

0.1728


Функция poly2th

Функция poly2thконструирует модель тета-формата из исходной мо­дели «вход-выход»:

th = poly2th(A,B)

th = poly2th(A,B,C,D,F,lam,T)

Исходная модель такая же, как и для рассмотренной функции реm (см. выше). Аргументы функции следующие:

• А, В, С, D, F — векторы-строки, содержащие коэффициенты соответ­ствующих полиномов;

• Т — интервал дискретизации;

• 1am — дисперсия шума модели.

Возвращаемая величина th — модель в тета-формате.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 79; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.149.32 (0.026 с.)