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(tnk)+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 object. The axes object 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 object. The axes object 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 objects. Axes object 1 with title From: u1 contains 2 objects of type line. These objects represent Data, sys: 100%. Axes object 2 contains 2 objects of type line. These objects represent Data, sys: 100%.

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

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

load regularizationExampleData.mat m0simdata

Оцените неупорядоченную модель OE порядка 30.

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

Получите упорядоченную модель OE путем определения значения Lambda с помощью метода проб и ошибок.

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 object. The axes object 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 objects. Axes object 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent m1, m2. Axes object 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)=1000s+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, в форме пространства состояний, к вектору начального состояния в X0. Можно включить ic когда вы симулируете sys с z1i входной сигнал и сравнивает ответ с z1i выходной сигнал.

Входные параметры

свернуть все

Данные об оценке в виде iddata объект, frd объект или idfrd объект.

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

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

  • Записанные данные о частотной характеристике (frd (Control System Toolbox) или idfrd)

  • iddata объект со свойствами, заданными можно следующим образом:

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

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

    • Domain'Frequency'

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

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

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

Модель OE заказывает в виде 1 3 вектор или вектор из целочисленных матриц.

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

y(t)=B(q)F(q)u(tnk)+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 матрица. Задержка появляется как начальные нули полинома B.

Для оценки, использующей данные частотной области непрерывного времени, задайте только [nb nf] и не используйте nk. Для примера смотрите Оценочное Непрерывное время Модель OE Используя Частотную характеристику.

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

Если init_sys idpoly модель структуры OE, 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 имя аргумента и 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) того, как хорошо ответ модели соответствует данным об оценке, описанным как процент fitpercent = 100 (1-NRMSE).

LossFcn

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

MSE

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

FPE

Итоговая ошибка предсказания для модели.

AIC

Необработанная мера по Критериям информации о Akaike (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

- норма вектора просмотра градиента, когда алгоритм поиска останавливается.

FcnCount

Число раз целевая функция было названо.

UpdateNorm

Норма вектора просмотра градиента в последней итерации. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

LastImprovement

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

Algorithm

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

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

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

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

  • Для набора данных одно эксперимента, ic представляет, в форме пространства состояний, свободном ответе модели передаточной функции (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(tnk)+e(t)

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

nb:   B(q)=b1+b2q1+...+bnbqnb+1nf:   F(q)=1+f1q-1+...+fnfq-nf

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

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

G(s)=B(s)F(s)=bnbs(nb1)+bnb1s(nb2)+...+b1snf+fnfs(nf1)+...+f1

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

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

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