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. 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

Оцените нерегулизованную модель OE порядка 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)=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 должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке 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.

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

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

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

Method

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

InitialCondition

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

  • 'zero' - Начальные условия были обнулены.

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

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

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

Fit

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

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

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

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера качества модели 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 представляет в форме пространства состояний свободный ответ модели передаточной функции (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