exponenta event banner

oe

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

Описание

Модели с выходной ошибкой (OE) представляют собой специальную конфигурацию полиномиальных моделей, имеющих только два активных полинома - модели B и F. OE представляют обычные передаточные функции, которые связывают измеренные входы с выходами, а также включают белый шум в качестве аддитивного выходного возмущения. Модели OE можно оценить с помощью данных временной и частотной областей. tfest команда предлагает те же функциональные возможности, что и oe. Для tfestпорядок моделей задается с использованием числа полюсов и нулей, а не многочленов. Для оценки непрерывного времени, tfest обеспечивает более быстрые и точные результаты и рекомендуется.

пример

sys = oe(data,[nb nf nk]) оценивает модель OE sys, представленный

y (t) = B (q) F (q) u (t − nk) + e (t)

y (t) - выходной сигнал, u (t) - входной сигнал, e (t) - ошибка.

oe оценки sys используя измеренные данные ввода-вывода data, которая может находиться во временной или частотной области. Заказы [nb nf nk] определить количество параметров в каждом компоненте расчетного полинома.

пример

sys = oe(data,[nb nf nk],Name,Value) задает атрибуты структуры модели с помощью дополнительных опций, заданных одним или несколькими аргументами пары «имя-значение».

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

пример

sys = oe(data,___,opt) оценивает полиномиальную модель с использованием набора опций opt для задания поведения оценки. Этот синтаксис можно использовать с любой из предыдущих комбинаций входных аргументов.

пример

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

Примеры

свернуть все

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

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

load iddata1 z1

Установка порядка многочленов B и F nb и nf. Установка задержки на входе nk к одному образцу. Вычисление модели sys.

nb = 2;
nf = 2;
nk = 1;
sys = oe(z1,[nb nf nk]);

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

compare(z1,sys)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys: 70.77%.

График показывает, что процент соответствия между моделируемой моделью и оценочными данными превышает 70%.

Вместо использования nk, можно также использовать аргумент пара имя-значение 'InputDelay' для указания задержки с одной выборкой.

nk = 0;
sys1 = oe(z1,[nb nf nk],'InputDelay',1);
figure
compare(z1,sys1)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys1: 70.77%.

Результаты идентичны.

Дополнительную информацию об оценке можно просмотреть, изучив idpoly собственность sys.Report.

sys.Report
ans = 
              Status: 'Estimated using OE'
              Method: 'OE'
    InitialCondition: 'zero'
                 Fit: [1x1 struct]
          Parameters: [1x1 struct]
         OptionsUsed: [1x1 idoptions.polyest]
           RandState: [1x1 struct]
            DataUsed: [1x1 struct]
         Termination: [1x1 struct]

Например, узнайте больше об условиях завершения.

sys.Report.Termination
ans = struct with fields:
                 WhyStop: 'Near (local) minimum, (norm(g) < tol).'
              Iterations: 3
    FirstOrderOptimality: 0.0708
                FcnCount: 7
              UpdateNorm: 1.4809e-05
         LastImprovement: 5.1744e-06

Отчет содержит информацию о количестве итераций и причине прекращения итерации оценки.

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

load oe_data1 data;

The idfrd объект data содержит частотную характеристику непрерывного времени для следующей модели:

G (s) = s + 3s3 + 2s2 + s + 1

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

nb = 2;
nf = 3;
sys = oe(data,[nb nf]);

Оцените благость посадки.

compare(data,sys);

Figure contains 2 axes. Axes 1 with title From: u1 contains 2 objects of type line. These objects represent Data, sys: 100%. Axes 2 contains 2 objects of type line. These objects represent Data, sys: 100%.

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

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

load regularizationExampleData.mat m0simdata

Оценка нерегулируемой модели ОЭ порядка 30.

m1 = oe(m0simdata,[30 30 1]);

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

opt = oeOptions;
opt.Regularization.Lambda = 1;
m2 = oe(m0simdata,[30 30 1],opt);

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

opt = compareOptions('InitialCondition','z');
compare(m0simdata,m1,m2,opt);

Figure contains an axes. The axes contains 3 objects of type line. These objects represent m0simdata (y1), m1: 62.27%, m2: 65.74%.

Регуляризованная модель m2 обеспечивает лучшее вписывание, чем нерегулируемая модель m1.

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

h = bodeplot(m1,m2);
opt = getoptions(h);
opt.PhaseMatching = 'on';
opt.ConfidenceRegionNumberSD = 3;
opt.PhaseMatching = 'on';
setoptions(h,opt);
showConfidence(h);

Figure contains 2 axes. Axes 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent m1, m2. Axes 2 contains 2 objects of type line. These objects represent m1, m2.

Регуляризованная модель m2 имеет уменьшенную дисперсию по сравнению с нерегулируемой моделью m1.

Загрузка оценочных данных data и время выборки Ts.

load oe_data2.mat data Ts

Один iddata объект data содержит дискретно-временную частотную характеристику для следующей модели:

G (s) = 1000 с + 500

Просмотр времени выборки оценки Ts что ты загрузил.

Ts
Ts = 1.0000e-03

Это значение соответствует свойству data.Ts.

data.Ts
ans = 1.0000e-03

Можно оценить непрерывную модель по data ограничением входного и выходного диапазонов частот частотой Найквиста. Для этого укажите опцию предварительного фильтра оценки. 'WeightingFilter'для определения полосы пропускания из 0 кому 0.5*pi/Ts рад/с. Программное обеспечение игнорирует любые значения отклика с частотами, выходящими за пределы этого полосы пропускания.

opt = oeOptions('WeightingFilter',[0 0.5*pi/Ts]);

Установите Ts свойство для 0 рассматривать data в виде данных непрерывного времени.

data.Ts = 0;

Оцените непрерывную модель.

nb = 1;
nf = 3;
sys = oe(data,[nb nf],opt);

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

load iddata1ic z1i

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

nb = 2;
nf = 2;
nk = 1;
[sys,ic] = oe(z1i,[nb,nf,nk]);
ic
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [0.9428 0.4824]
    Ts: 0.1000

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

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

свернуть все

Оценочные данные, указанные как iddata объект, frd объект или idfrd объект.

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

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

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

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

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

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

    • Domain'Frequency'

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

Для многоэкспериментных данных время выборки и поведение интерсимпульса всех экспериментов должны совпадать.

Модели дискретного времени можно вычислять на основе данных временной области или данных частотной области дискретного времени. Использовать tfest для вычисления моделей непрерывного времени.

Порядки моделей OE, заданные как вектор 1 на 3 или вектор целочисленных матриц.

Для системы, представленной

y (t) = B (q) F (q) u (t − nk) + e (t)

где y (t) - выходной сигнал, u (t) - входной сигнал, и e (t) - ошибка, элементы [nb nf nk] являются следующими:

  • nb - Порядок многочлена B (q) + 1, который эквивалентен длине многочлена B (q).nb - матрица Ny-by-Nu. Ny - количество выходов, а Nu - количество входов.

  • nf - порядок полинома F. nf - матрица Ny-by-Nu.

  • nk - Задержка ввода, выраженная в виде количества выборок. nk - матрица Ny-by-Nu. Задержка отображается как ведущие нули многочлена В.

Для оценки с использованием данных частотной области с непрерывным временем укажите только [nb nf] и опустить nk. Пример см. в разделе Оценка модели OE с непрерывным временем с использованием частотного отклика.

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

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

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

  • Чтобы указать начальное предположение для F (q) члена init_sys, комплект init_sys.Structure.F.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 не является полиномиальной моделью структуры OE, программное обеспечение сначала преобразует init_sys в модель структуры OE. oe использует параметры результирующей модели в качестве начального предположения для оценки sys.

Если не указать opt и init_sys был получен путем оценки, затем программное обеспечение использует варианты оценки из init_sys.Report.OptionsUsed.

Параметры оценки, указанные как oeOptions набор опций. Параметры, указанные opt включают:

  • Цель оценки

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

  • Метод числового поиска и связанные с ним параметры

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

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

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

Пример: 'InputDelay',1

Входные задержки для каждого входного канала, определяемые как разделенная запятыми пара, состоящая из 'InputDelay' и числовой вектор.

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

  • Для дискретно-временных моделей укажите 'InputDelay' в целых кратных времени выборки Ts. Например, настройка 'InputDelay' кому 3 определяет задержку в три периода выборки.

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

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

Пример см. в разделе Оценка полиномиальной модели OE.

Транспортные задержки для каждой пары «вход-выход», указанной как пара, разделенная запятыми, состоящая из 'IODelay' и числовой массив.

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

  • Для дискретно-временных моделей укажите 'IODelay' в целых кратных времени выборки Ts. Например, настройка 'IODelay' кому 4 определяет задержку передачи из четырех периодов выборки.

Для системы с входами Nu и выходами Ny установите 'IODelay' в матрицу Ny-by-Nu. Каждая запись представляет собой целое значение, представляющее задержку передачи для соответствующей пары «вход-выход».

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

Можно указать 'IODelay' в качестве альтернативы nk значение. Это упрощает структуру модели, уменьшая число начальных нулей в многочлене B. В частности, вы можете представлять max(nk-1,0) ведущие нули как задержки ввода-вывода с использованием 'IODelay' вместо этого.

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

свернуть все

Полиномиальная модель OE, которая соответствует данным оценки, возвращается как idpoly объект модели. Эта модель создается с использованием указанных заказов модели, задержек и опций оценки. Время выборки sys соответствует времени выборки данных оценки. Поэтому sys всегда является дискретно-временной моделью при оценке по данным временной области. Для непрерывной идентификации модели с использованием данных временной области используйте tfest.

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

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

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, см. Отчет по оценке.

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

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

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

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

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

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

Подробнее

свернуть все

Модель ошибки вывода (OE)

Общая структура модели выходных ошибок:

y (t) = B (q) F (q) u (t − nk) + e (t)

Порядки модели ошибки вывода:

nb:  B (q) = b1 + b2q 1 +... + bnbq  − nb + 1nf: F (q) = 1 + f1q-1 +... + fnfq-nf

Модель вывода с непрерывным временем - ошибка

Если data - данные частотной области непрерывного времени, oe оценивает модель непрерывного времени со следующей передаточной функцией:

G (s) = B (s) F (s) = bnbs (nb 1) + bnb 1s (nb 2) +... + b1snf + fnfs (nf − 1) +... + f1

Порядки числителя и знаменателя равны nb и nf, аналогично случаю дискретного времени. Однако задержка выборки nk не существует в непрерывном случае, и не следует указывать nk при выполнении команды оценки. Вместо этого выражайте любую системную задержку, используя аргумент пары имя-значение 'IODelay' наряду с системной задержкой в единицах времени, которые хранятся в свойстве TimeUnit. Например, предположим, что непрерывная система имеет задержку iod секунд. Использовать model = oe(data,[nb nf],'IODelay',iod).

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

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