exponenta event banner

сегмент

Данные сегмента и модели оценки для каждого сегмента

Синтаксис

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

Описание

segment строит модели типа AR, ARX или ARMAX/ARMA,

A (q) y (t) = B (q) u (t nk) + C (q) e (t)

предполагая, что параметры модели являются кусочно постоянными во времени. Это приводит к модели, которая разделила запись данных на сегменты, в которых модель остается постоянной. Функция моделирует сигналы и системы, которые могут претерпеть резкие изменения.

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

Аргумент nn определяет порядок модели. Для модели ARMAX

nn = [na nb nc nk];

где na, nb, и nc являются порядками соответствующих многочленов. Смотрите, что такое полиномиальные модели? nk - задержка. Если модель имеет несколько входных данных, nb и nk - векторы строк, задающие порядки и задержки для каждого ввода.

Для модели ARX (nc = 0) введите

nn = [na nb nk];

Для модели ARMA временного ряда

z = y;
nn = [na nc];

и для модели AR

nn = na;

Выходной аргумент segm является матрицей, где kВ-ой строке содержатся параметры, соответствующие времени k. Это аналогично оценкам выпуска, возвращаемым recursiveARX и recursiveARMAX оценщики. Выходной аргумент thm из segment содержит соответствующие параметры модели, которые еще не были сегментированы. Каждая строка thm содержит оценки параметров в соответствующий момент времени. Эти оценки формируются путем взвешивания вместе параметров M (по умолчанию: 5) различные изменяющиеся во времени модели, при этом участвующие модели меняются на каждом временном шаге. Рассмотреть segment в качестве альтернативы интерактивным командам оценки, когда вы не заинтересованы в непрерывном отслеживании изменений параметров одной модели, но должны обнаруживать резкие изменения в динамике системы.

Выходной аргумент V содержит сумму квадратичных ошибок прогнозирования сегментированной модели. Это показатель того, насколько успешной была сегментация.

Входной аргумент R2 - предполагаемая дисперсия нововведений e (t) в модели. Значение по умолчанию R2, R2 = [], это то, что он оценивается. Затем выходной аргумент R2e является вектором, kВ-м элементе содержится оценка R2 в момент времени k.

Аргумент q - вероятность того, что модель проявит резкое изменение в любой данный момент времени. Значение по умолчанию: 0.01.

R1 - предполагаемая ковариационная матрица скачков параметров при их возникновении. Значением по умолчанию является единичная матрица с размером, равным количеству оцененных параметров.

M - количество параллельных моделей, используемых в алгоритме (см. ниже). Значение по умолчанию: 5.

th0 - начальное значение параметров. Его значение по умолчанию равно нулю. P0 - начальная ковариационная матрица параметров. Значение по умолчанию в 10 раз превышает единичную матрицу.

ll - гарантированный срок службы каждой из моделей. То есть любая созданная модель-кандидат не отменяется до по крайней мере ll временные шаги. Значение по умолчанию: ll = 1. Mu - параметр забывания, который используется в схеме, оценивающей R2. Значение по умолчанию: 0.97.

Наиболее важным параметром для выбора является R2. Обычно это более надежно, чтобы иметь разумное предположение о R2 чем оценить его. Как правило, необходимо попробовать различные значения R2 и оценка результатов. (Смотрите пример ниже.) sqrt(R2) соответствует изменению значения y (t), которое является нормальным, не давая никаких признаков того, что система или вход могли измениться.

Примеры

свернуть все

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

y = sin([1:50]/3)';

Укажите входной сигнал, который должен быть постоянным при 1.

u = ones(size(y));

Укажите расчетную дисперсию шума для модели.

R2 = 0.1;

Сегментируйте сигнал и оцените модель ARX для каждого сегмента. Используйте простую модель y (t) = b1u (t-1), где b1 - параметр модели, описывающий кусочно-постоянный уровень расчетного выхода y (t).

segm = segment([y,u],[0 1 1],R2);

Проверьте результат.

plot([segm,y])

Figure contains an axes. The axes contains 2 objects of type line.

Варьировать значение R2 для изменения оцененной дисперсии шума. Уменьшение R2 увеличивает число сегментов, созданных для этой модели.

Загрузите и постройте график оценочных данных.

load iddemo6m.mat z
z = iddata(z(:,1),z(:,2));
plot(z)

Figure contains 2 axes. Axes 1 with title y1 contains an object of type line. This object represents z. Axes 2 with title u1 contains an object of type line. This object represents z.

Эти данные содержат изменение временной задержки от 2 кому 1, что трудно обнаружить путем изучения данных.

Укажите порядки моделей для оценки модели ARX формы:

y (t) + ay (t-1) = b1u (t-1) + b2u (t-2)

nn = [1 2 1];

Сегментируйте данные и оцените модели ARX для каждого сегмента. Укажите предполагаемую дисперсию шума 0.1.

seg = segment(z,nn,0.1);

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

plot(seg)
legend('a','b1','b2');

Figure contains an axes. The axes contains 3 objects of type line. These objects represent a, b1, b2.

Данные были разделены на два сегмента, на что указывает изменение параметров модели вокруг образца 19. Увеличение b1вместе с соответствующим снижением b2, показывает изменение задержки модели.

Ограничения

segment несовместим с MATLAB ® Coder™ или MATLAB Compiler™.

Алгоритмы

Алгоритм основан на M параллельные модели, каждая из которых рекурсивно оценивается алгоритмом типа фильтра Калмана. Каждая модель обновляется независимо, и вычисляется ее задняя вероятность. Изменяющаяся во времени оценка thm формируется путем взвешивания вместе M различные модели с весом, равным их задней вероятности. На каждом временном шаге модель (среди тех, кто жил по крайней мере ll выборки), которая имеет наименьшую заднюю вероятность, отменяется. Запускается новая модель, предполагающая, что параметры системы изменились, с вероятностью q, случайный скачок от наиболее вероятного среди моделей. Для ковариационной матрицы изменения параметра установлено значение R1.

После изучения всех данных отслеживается сохранившаяся модель с самой высокой апостериорной вероятностью и отмечаются моменты времени, когда она прыгала. Это определяет различные сегменты данных. (Если бы в алгоритме не было отменено ни одной модели, это было бы оценкой максимального правдоподобия экземпляров перехода.) Сегментированная модель segm затем формируется путем сглаживания оценки параметра, предполагая, что экземпляры перехода являются правильными. Другими словами, последняя оценка по сегменту выбирается для представления всего сегмента.

См. также

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