segment

Сегментируйте данные и оценивайте модели для каждого сегмента

Синтаксис

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(tnk)+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 является матрицей, где kth строка содержит параметры, соответствующие времени 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