exponenta event banner

полиоценка

Оценка полиномиальной модели с использованием данных временной или частотной области

Синтаксис

sys = polyest(data,[na nb nc nd nf nk])
sys = polyest(data,[na nb nc nd nf nk],Name,Value)
sys = polyest(data,init_sys)
sys = polyest(___, opt)
[sys,ic] = polyest(___)

Описание

sys = polyest(data,[na nb nc nd nf nk]) оценивает полиномиальную модель, sys, используя данные временной или частотной области, data.

sys имеет вид

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

A (q), B (q), F (q), C (q) и D (q) являются полиномиальными матрицами. u (t) является входом, иnk - входная задержка. y (t) - выходной сигнал, а e (t) - сигнал возмущения.na ,nb, nc, nd и nf являются порядками многочленов A (q), B (q), C (q), D (q) и F (q) соответственно.

sys = polyest(data,[na nb nc nd nf nk],Name,Value) оценивает полиномиальную модель с дополнительными атрибутами оценочной структуры модели, заданными одним или несколькими Name,Value аргументы пары.

sys = polyest(data,init_sys) оценивает полиномиальную модель с использованием линейной системы init_sys для конфигурирования начальной параметризации.

sys = polyest(___, opt) оценивает полиномиальную модель с использованием набора опций, opt, чтобы задать поведение оценки.

[sys,ic] = polyest(___) возвращает оцененные начальные условия в виде initialCondition объект. Используйте этот синтаксис, если планируется смоделировать или спрогнозировать отклик модели с использованием тех же входных данных оценки, а затем сравнить отклик с теми же выходными данными оценки. Включение начальных условий дает лучшее совпадение во время первой части моделирования.

Входные аргументы

data

Оценочные данные.

Для оценки во временной области data является iddata объект, содержащий значения входного и выходного сигналов.

С помощью данных временной области можно оценивать только дискретные модели времени. Для оценки моделей непрерывного времени с использованием данных временной области см. раздел tfest.

Для оценки частотной области data может быть одним из следующих:

  • Записанные данные частотной характеристики (frd(Панель инструментов системы управления) или idfrd)

  • iddata объект со следующими свойствами:

    • InputData - преобразование Фурье входного сигнала

    • OutputData - преобразование Фурье выходного сигнала

    • Domain - «Частота»

    Это может быть удобнее в использовании oe или tfest для оценки модели для данных частотной области.

na

Порядок многочлена A (q).

na - матрица Ny-by-Ny неотрицательных целых чисел. Ny - количество выходов, а Nu - количество входов.

na должен быть равен нулю, если модель оценивается с использованием данных частотной области.

nb

Порядок многочлена B (q) + 1.

nb - матрица Ny-by-Nu неотрицательных целых чисел. Ny - количество выходов, а Nu - количество входов.

nc

Порядок многочлена C (q).

nc - столбчатый вектор неотрицательных целых чисел длины Ny. Ny - количество выходов.

nc должен быть равен нулю, если модель оценивается с использованием данных частотной области.

nd

Порядок многочлена D (q).

nd - столбчатый вектор неотрицательных целых чисел длины Ny. Ny - количество выходов.

nd должен быть равен нулю, если модель оценивается с использованием данных частотной области.

nf

Порядок многочлена F (q).

nf - матрица Ny-by-Nu неотрицательных целых чисел. Ny - количество выходов, а Nu - количество входов.

nk

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

nk - матрица Ny-by-Nu неотрицательных целых чисел.

nk должен быть равен нулю при оценке модели непрерывного времени.

opt

Варианты оценки.

opt - набор опций, созданный с помощью polyestOptions, которая определяет варианты оценки, включая:

  • Цель оценки

  • Обработка исходных условий

  • Метод численного поиска, используемый при оценке

init_sys

Линейная система, настраивающая начальную параметризацию sys.

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

Если init_sys является idpoly модель, polyest использует параметры и ограничения, определенные в init_sys в качестве начального предположения для оценки sys.

Используйте Structure имущество init_sys для конфигурирования исходных предположений и ограничений для A (q), B (q), F (q), C (q) и D (q). Например:

  • Чтобы указать начальное предположение для A (q) члена init_sys, комплект init_sys.Structure.A.Value в качестве первоначального предположения.

  • Определение ограничений для B (q) члена init_sys:

    • Набор init_sys.Structure.B.Minimum до минимальных значений коэффициента B (q).

    • Набор init_sys.Structure.B.Maximum до максимальных значений коэффициента B (q).

    • Набор init_sys.Structure.B.Free чтобы указать, какие B (q) коэффициенты свободны для оценки.

Если init_sys не является idpoly модель, программное обеспечение сначала преобразует init_sys в полиномиальную модель. polyest использует параметры результирующей модели в качестве начального предположения для оценки.

Если opt не указан, и init_sys создается оценкой, затем опции оценки из init_sys.Report.OptionsUsed используются.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

'IODelay'

Задержки в транспортировке. IODelay - числовой массив, задающий отдельную задержку передачи для каждой пары вход/выход.

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

Для системы MIMO с Ny результаты и Nu входы, комплект IODelay в Nyоколо-Nu массив. Каждая запись этого массива является числовым значением, которое представляет задержку передачи для соответствующей пары «вход-выход». Также можно задать IODelay скалярное значение для применения одинаковой задержки ко всем парам ввода/вывода.

По умолчанию: 0 для всех пар вход/выход

'InputDelay'

Входная задержка для каждого входного канала, заданная как скалярное значение или числовой вектор. Для систем непрерывного времени укажите задержки ввода в единице времени, сохраненной в TimeUnit собственность. Для дискретно-временных систем укажите входные задержки в целых кратных времени выборки Ts. Например, InputDelay = 3 означает задержку в три раза.

Для системы с Nu входы, комплект InputDelay в Nuвектор -by-1. Каждая запись этого вектора является числовым значением, которое представляет входную задержку для соответствующего входного канала.

Также можно задать InputDelay к скалярному значению, чтобы применить одинаковую задержку ко всем каналам.

По умолчанию: 0

'IntegrateNoise'

Логический вектор, задающий интеграторы в шумовом канале.

IntegrateNoise - логический вектор длины Ny, где Ny - количество выходов.

Настройка IntegrateNoise кому true для определенных выходных результатов в модели:

A (q) y (t) = B (q) F (q) u (t nk) + C (q) D (q) e (t) 1 − q − 1

Где, 11 q − 1 - интегратор в шумовом канале, e (t).

Использовать IntegrateNoise для создания модели ARIMAX.

Например,

load iddata1 z1;
z1 = iddata(cumsum(z1.y),cumsum(z1.u),z1.Ts,'InterSample','foh');
sys = polyest(z1, [2 2 2 0 0 1],'IntegrateNoise',true);

Выходные аргументы

sys

Полиномиальная модель, возвращенная как idpoly модель. Эта модель создается с использованием указанных заказов модели, задержек и опций оценки.

Если data.Ts равно нулю, sys является моделью непрерывного времени, представляющей:

Y (s) = B (s) F (s) U (s) + E (s)

Y (s), U (s) и E (s) являются преобразованиями Лапласа сигналов временной области y (t), u (t) и e (t) соответственно.

Информация о результатах оценки и используемых опциях хранится в Report свойство модели. Report иметь следующие поля:

Поле отчетаОписание
Status

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

Method

Используется команда оценки.

InitialCondition

Обработка исходных условий при оценке модели, возвращаемых как одно из следующих значений:

  • 'zero' - Исходные условия были установлены на ноль.

  • 'estimate' - Исходные условия рассматривались как независимые оценочные параметры.

  • 'backcast' - Начальные условия оценивались с использованием наилучшего вписывания наименьших квадратов.

Это поле особенно полезно для просмотра того, как обрабатывались начальные условия при InitialCondition опция в наборе опций оценки 'auto'.

Fit

Количественная оценка оценки, возвращенная как структура. Дополнительные сведения об этих показателях качества см. в разделе Метрики качества функции потери и модели. Структура имеет следующие поля:

ОбластьОписание
FitPercent

Нормализованная среднеквадратическая ошибка (NRMSE) измерения того, насколько хорошо отклик модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

Значение функции потерь после завершения оценки.

MSE

Показатель среднеквадратичной ошибки (MSE) того, насколько хорошо отклик модели соответствует данным оценки.

FPE

Ошибка окончательного прогноза для модели.

AIC

Показатель качества модели Raw Akaike Information Criteria (AIC).

AICc

Небольшой размер выборки, скорректированный AIC.

nAIC

Нормализованная AIC.

BIC

Байесовские информационные критерии (BIC).

Parameters

Оценочные значения параметров модели.

OptionsUsed

Набор опций, используемый для оценки. Если пользовательские параметры не были настроены, это набор параметров по умолчанию. Посмотрите polyestOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустое, [], если рандомизация не использовалась во время оценки. Дополнительные сведения см. в разделе rng.

DataUsed

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

ОбластьОписание
Name

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

Время выборки.

InterSample

Поведение ввода между образцами, возвращаемое как одно из следующих значений:

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Поведение с ограниченной полосой указывает, что входной сигнал непрерывного времени имеет нулевую мощность выше частоты Найквиста.

InputOffset

Смещение удалено из входных данных временной области во время оценки. Для нелинейных моделей это [].

OutputOffset

Смещение удалено из выходных данных временной области во время оценки. Для нелинейных моделей это [].

Termination

Условия завершения итеративного поиска, используемые для минимизации ошибок прогнозирования, возвращены в виде структуры со следующими полями:

ОбластьОписание
WhyStop

Причина прекращения числового поиска.

Iterations

Количество итераций поиска, выполненных алгоритмом оценки.

FirstOrderOptimality

∞-norm вектора поиска градиента при завершении алгоритма поиска.

FcnCount

Число вызовов целевой функции.

UpdateNorm

Норма вектора поиска градиента в последней итерации. Опущено, когда метод поиска 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия в последней итерации, выраженное в процентах. Опущено, когда метод поиска 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм, используемый 'lsqnonlin' или 'fmincon' способ поиска. Опускается при использовании других методов поиска.

Для методов оценки, которые не требуют оптимизации числового поиска, Termination поле опущено.

Дополнительные сведения об использовании Report, см. Отчет по оценке.

ic

Предполагаемые начальные условия, возвращенные в виде initialCondition объект или массив объектов initialCondition значения.

  • Для набора данных одного эксперимента: ic представляет в форме state-space свободный отклик модели передаточной функции (матрицы A и C) на оцененные начальные состояния (x0).

  • Для набора данных нескольких экспериментов с экспериментами Ne, ic - массив объектов длиной Ne, содержащий один набор initialCondition значения для каждого эксперимента.

Если polyest прибыль ic значения 0 и вы знаете, что у вас есть ненулевые начальные условия, установите 'InitialCondition' опция в polyestOptions кому 'estimate' и передать обновленный набор опций в polyest. Например:

opt = polyestOptions('InitialCondition,'estimate')
[sys,ic] = polyest(data,[nb nc nd nf nk],opt)
Дефолт 'auto' установка 'InitialCondition' использует 'zero' способ, когда исходные условия оказывают незначительное влияние на общий процесс минимизации ошибок оценки. Определение 'estimate' гарантирует, что программное обеспечение оценивает значения для ic.

Дополнительные сведения см. в разделе initialCondition. Пример использования этого аргумента см. в разделе Получение начальных условий.

Примеры

свернуть все

Оценка модели с избыточной параметризацией. То есть модель со всеми полиномами (A, B, C, D и F) активной.

Данные оценки нагрузки.

load iddata2 z2;

Укажите заказы модели и задержки.

na = 2; 
nb = 2; 
nc = 3; 
nd = 3; 
nf = 2; 
nk = 1;

Оцените модель.

sys = polyest(z2,[na nb nc nd nf nk]);

Оценка регуляризованной модели многочлена путем преобразования регуляризованной модели ARX.

Данные оценки нагрузки.

load regularizationExampleData.mat m0simdata;

Оцените нерегулируемую полиномиальную модель порядка 20.

m1 = polyest(m0simdata(1:150),[0 20 20 20 20 1]);

Оцените регуляризованную полиномиальную модель того же порядка. Определите значение лямбды методом проб и ошибок.

opt = polyestOptions;
opt.Regularization.Lambda = 1;
m2 = polyest(m0simdata(1:150),[0 20 20 20 20 1],opt);

Получение полиномиальной модели более низкого порядка путем преобразования регуляризованной модели ARX и уменьшения ее порядка. Использовать arxregul для определения параметров регуляризации.

[L,R] = arxRegul(m0simdata(1:150),[30 30 1]);
opt1 = arxOptions;
opt1.Regularization.Lambda = L;
opt1.Regularization.R = R;
m0 = arx(m0simdata(1:150),[30 30 1],opt1);
mr = idpoly(balred(idss(m0),7));

Сравните выходные данные модели с данными.

opt2 = compareOptions('InitialCondition','z');
compare(m0simdata(150:end),m1,m2,mr,opt2);

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Validation data (y1), m1: 23.82%, m2: 26.09%, mr: 64.91%.

Загрузка входных/выходных данных и создание суммарных входных и выходных сигналов для оценки.

load iddata1 z1
data = iddata(cumsum(z1.y),cumsum(z1.u),z1.Ts,'InterSample','foh');

Укажите порядок многочленов модели. Установите порядки неактивных многочленов D и F в 0.

na = 2; 
nb = 2; 
nc = 2; 
nd = 0; 
nf = 0; 
nk = 1;

Определите модель ARIMAX, установив 'IntegrateNoise' опция для true.

sys = polyest(data,[na nb nc nd nf nk],'IntegrateNoise',true);

Оценка модели ARMAX с множеством выходов для набора данных с множеством входов и множеством выходов.

Данные оценки нагрузки.

load iddata1 z1
load iddata2 z2
data = [z1 z2(1:300)];

data представляет собой набор данных с 2 входами и 2 выходами. Первый вход влияет только на первый выход. Аналогично, второй вход влияет только на второй выход.

Укажите заказы модели и задержки. F и D полиномы неактивны.

na = [2 2; 2 2]; 
nb = [2 2; 3 4]; 
nk = [1 1; 0 0]; 
nc = [2;2]; 
nd = [0;0]; 
nf = [0 0; 0 0];

Оцените модель.

sys = polyest(data,[na nb nc nd nf nk]);

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

Проанализируйте результаты.

h = bodeplot(sys);
showConfidence(h,3)

Figure contains 8 axes. Axes 1 with title From: u1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys. Axes 3 contains an object of type line. This object represents sys. Axes 4 contains an object of type line. This object represents sys. Axes 5 with title From: u2 contains an object of type line. This object represents sys. Axes 6 contains an object of type line. This object represents sys. Axes 7 contains an object of type line. This object represents sys. Axes 8 contains an object of type line. This object represents sys.

Ответы из перекрестных терминов показывают большую неопределенность.

Загрузите данные.

load iddata1ic z1i

Оценка полиномиальной модели sys и вернуть начальные условия в ic.

na = 2;
nb = 2;
nc = 3;
nd = 3;
nf = 2;
nk = 1;
[sys,ic] = polyest(z1i,[na nb nc nd nf nk]);
ic
ic = 
  initialCondition with properties:

     A: [7x7 double]
    X0: [7x1 double]
     C: [0 0 0 0 0 0 1]
    Ts: 0.1000

ic является initialCondition объект, инкапсулирующий свободный ответ sys, в форме state-space, к вектору начального состояния в X0. Вы можете включить ic при моделировании sys с z1i входной сигнал и сравнить отклик с z1i выходной сигнал.

Совет

  • В большинстве ситуаций все многочлены идентифицированной полиномиальной модели не являются одновременно активными. Установка одного или нескольких заказов na, nc, nd и nf до нуля, чтобы упростить структуру модели.

    Например, можно оценить модель ошибки вывода (OE), указав na, nc и nd как ноль.

    Кроме того, можно использовать специальную функцию оценки для упрощенной структуры модели. Функции линейной полиномиальной оценки включают oe, bj, arx и armax.

Альтернативы

  • Чтобы оценить модель полинома с использованием данных временных рядов, используйте ar.

  • Использовать polyest для оценки многочлена произвольной структуры. Если структура оценочной полиномиальной модели известна, то есть вы знаете, какие полиномы будут активными, то используйте соответствующую выделенную оценочную функцию. Например, для модели ARX используйте arx. Другие функции оценки полиномиальной модели включают в себя: oe, armax, и bj.

  • Для оценки функции непрерывного переноса времени используйте tfest. Также можно использовать oe, но только с данными частотной области непрерывного времени.

Расширенные возможности

Представлен в R2012a