Оцените полиномиальную модель выходной ошибки, используя данные временной области или частотного диапазона
Модели выходной ошибки (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 путем определения значения Лямбды с помощью проб и ошибок.
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
.
The Report
свойство модели хранит информацию о результатах оценки и используемых опциях. Report
имеет следующие поля.
Поле отчета | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводными данными статуса модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Используется команда estimation. | ||||||||||||||||||
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;
armax
| arx
| bj
| compare
| iddata
| idfrd
| idpoly
| iv4
| n4sid
| oeOptions
| polyest
| sim
| tfest
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.