Оцените полиномиальнуюмодель ошибки на выходе с помощью данных в частотной или временной области
Модели ошибки на выходе (OE) являются специальной настройкой полиномиальных моделей, имея только два активных полинома — B и F. Модели OE представляют обычные передаточные функции, которые связывают измеренные входные параметры с выходными параметрами в то время как также включая белый шум как аддитивное выходное воздействие. Можно оценить модели OE с помощью временного и частотного диапазона. tfest
команда предлагает ту же функциональность как oe
для tfest
, вы задаете порядки модели с помощью количества полюсов и нулей, а не полиномиальных степеней. Для оценки непрерывного времени, tfest
обеспечивает более быстрые и более точные результаты и рекомендуется.
оценивает модель OE sys
= oe(data
,[nb
nf nk]
)sys
, представленный
y (t) является выход, u (t) является входом, и e (t) является ошибкой.
oe
оценки sys
использование измеренных данных ввода - вывода data
, который может быть во время или частотный диапазон. Порядки [nb nf nk]
задайте количество параметров в каждом компоненте предполагаемого полинома.
задает атрибуты структуры модели с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение".sys
= oe(data
,[nb
nf nk]
,Name,Value
)
[
возвращает предполагаемые начальные условия как 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)
График показывает, что подходящий процент между симулированной моделью и данными об оценке больше 70%.
Вместо того, чтобы использовать nk
, можно также использовать аргумент пары "имя-значение" 'InputDelay'
задавать задержку с одной выборкой.
nk = 0;
sys1 = oe(z1,[nb nf nk],'InputDelay',1);
figure
compare(z1,sys1)
Результаты идентичны.
Можно просмотреть больше информации об оценке путем исследования 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
содержит частотную характеристику непрерывного времени для следующей модели:
Оцените модель.
nb = 2; nf = 3; sys = oe(data,[nb nf]);
Оцените качество подгонки.
compare(data,sys);
Оцените старшую модель 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);
Упорядоченная модель m2
производит лучшую подгонку, чем неупорядоченная модель m1
.
Сравните отклонение в ответах модели.
h = bodeplot(m1,m2); opt = getoptions(h); opt.PhaseMatching = 'on'; opt.ConfidenceRegionNumberSD = 3; opt.PhaseMatching = 'on'; setoptions(h,opt); showConfidence(h);
Упорядоченная модель m2
имеет уменьшаемое отклонение по сравнению с неупорядоченной моделью m1
.
Загрузите данные об оценке data
и шаг расчета Ts
.
load oe_data2.mat data Ts
iddata
объект data
содержит частотную характеристику дискретного времени для следующей модели:
Просмотрите шаг расчета оценки 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
выходной сигнал.
data
— Данные об оценкеiddata
возразите | frd
возразите | idfrd
объектДанные об оценке в виде iddata
объект, frd
объект или idfrd
объект.
Для оценки временного интервала, data
должен быть iddata
объект, содержащий значения сигналов ввода и вывода.
Для оценки частотного диапазона, data
может быть одно из следующего:
Данные об оценке временного интервала должны быть однородно произведены. По умолчанию программное обеспечение устанавливает шаг расчета модели к шагу расчета данных об оценке.
Для данных о мультиэксперименте должны соответствовать шаги расчета и междемонстрационное поведение всех экспериментов.
Можно вычислить модели дискретного времени из данных временного интервала или данных частотной области дискретного времени. Использование tfest
вычислить модели непрерывного времени.
[nb nf nk]
— Порядки модели OEМодель OE заказывает в виде 1 3 вектор или вектор из целочисленных матриц.
Для системы, представленной
где 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 Используя Частотную характеристику.
init_sys
— Линейная система idpoly
модель | линейная модель | структураЛинейная система, которая конфигурирует начальную параметризацию 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
.
opt
— Опции оценкиoeOptions
опция установленаОпции оценки в виде oeOptions
опция установлена. Опции заданы opt
включение:
Цель оценки
Обработка начальных условий
Числовой метод поиска и связанные опции
Для примеров определения опций оценки смотрите Оценку Непрерывная Модель Используя Ограниченные Полосой Данные частотной области Дискретного времени.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'InputDelay',1
InputDelay
— Введите задержкиВведите задержки каждого входного канала в виде разделенной запятой пары, состоящей из 'InputDelay'
и числовой вектор.
Для моделей непрерывного времени задайте 'InputDelay'
в единицах измерения времени, сохраненных в TimeUnit
свойство.
Для моделей дискретного времени задайте 'InputDelay'
в целочисленных множителях шага расчета Ts
. Например, установка 'InputDelay'
к 3
задает задержку трех периодов выборки.
Для системы с входными параметрами Nu, набор InputDelay
к Nu-by-1 вектор. Каждая запись этого вектора является численным значением, которое представляет входную задержку соответствующего входного канала.
Чтобы применить ту же задержку со всеми каналами, задайте 'InputDelay'
как скаляр.
Для примера смотрите Оценку Полиномиальная модель OE.
IODelay
— Транспортные задержкиТранспортные задержки каждой пары ввода - вывода в виде разделенной запятой пары, состоящей из 'IODelay'
и числовой массив.
Для моделей непрерывного времени задайте 'IODelay'
в единицах измерения времени, сохраненных в TimeUnit
свойство.
Для моделей дискретного времени задайте 'IODelay'
в целочисленных множителях шага расчета Ts
. Например, установка 'IODelay'
к 4
задает транспортную задержку четырех периодов выборки.
Для системы с входными параметрами Nu и Ny выходные параметры, набор 'IODelay'
к Ny-by-Nu матрица. Каждая запись является целочисленным значением, представляющим транспортную задержку соответствующей пары ввода - вывода.
Чтобы применить ту же задержку со всеми каналами, задайте 'IODelay'
как скаляр.
Можно задать 'IODelay'
как альтернатива nk
значение. Выполнение так упрощает структуру модели путем сокращения количества начальных нулей в полиноме B. В частности, можно представлять max(nk-1,0)
начальные нули как задержки ввода - вывода с помощью 'IODelay'
вместо этого.
sys
— Полиномиальная модель OEidpoly
объектПолиномиальная модель OE, которая соответствует данным об оценке, возвратилась как idpoly
объект модели. Эта модель создается с помощью заданных порядков модели, задержек и опций оценки. Шаг расчета sys
совпадает с шагом расчета данных об оценке. Поэтому sys
всегда модель дискретного времени, когда оценено из данных временного интервала. Для идентификации модели непрерывного времени с помощью данных временного интервала использовать tfest
.
Report
свойство модели хранит информацию о результатах оценки и используемых опциях. Report
имеет следующие поля.
Сообщите о поле | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводные данные состояния модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Команда оценки используется. | ||||||||||||||||||
InitialCondition | Обработка начальных условий во время оценки модели, возвращенной как одно из следующих значений:
Это поле особенно полезно, чтобы просмотреть, как начальные условия были обработаны когда | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенной как структура. Смотрите Функцию потерь и Метрики качества Модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Ориентировочные стоимости параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опции используется для оценки. Если никакие пользовательские опции не были сконфигурированы, это - набор опций по умолчанию. Смотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. | ||||||||||||||||||
DataUsed | Атрибуты данных используются для оценки, возвращенной как структура со следующими полями.
| ||||||||||||||||||
Termination | Условия завершения для итеративного поиска, используемого для ошибочной минимизации предсказания, возвращенной как структура со следующими полями:
Для методов оценки, которые не требуют числовой оптимизации поиска, |
Для получения дополнительной информации об использовании Report
, см. Отчет Оценки.
ic
— Начальные условияinitialCondition
возразите | объектный массив initialCondition
значенияПредполагаемые начальные условия, возвращенные как 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
. Для примера использования этого аргумента смотрите, Получают Начальные условия.
Общая структура модели ошибки на выходе:
Порядки модели ошибки на выходе:
Если data
данные частотной области непрерывного времени, oe
оценивает модель непрерывного времени со следующей передаточной функцией:
Порядками числителя и знаменателя является nb
и nf
, похожий на случай дискретного времени. Однако демонстрационная задержка nk
не существует в непрерывном случае, и вы не должны задавать nk
когда вы управляете оценкой. Вместо этого опишите любую системную задержку с помощью аргумента пары "имя-значение" 'IODelay'
наряду с системной задержкой единиц измерения времени, которые хранятся в свойстве TimeUnit
. Например, предположите, что ваша непрерывная система имеет задержку iod
секунды. Используйте model = oe(data,[nb nf],'IODelay',iod)
.
Поддержка параллельных вычислений доступна для оценки с помощью lsqnonlin
метод поиска (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, использовать oeOptions
, установите SearchMethod
к 'lsqnonlin'
, и набор SearchOptions.Advanced.UseParallel
к true
.
Например:
opt = oeOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
oeOptions
| tfest
| arx
| armax
| iv4
| n4sid
| bj
| polyest
| idpoly
| iddata
| idfrd
| sim
| compare
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.