Оцените модель процесса с помощью временных или частотных данных
[
возвращает оценочное значение смещения в входном сигнале. Входное смещение автоматически оценивается, когда модель содержит интегратора, или когда вы устанавливаете sys
,offset
] = procest(___)InputOffset
опция оценки для 'estimate'
использование procestOptions
. Использование offset
с любым из предыдущих синтаксисов.
[
возвращает предполагаемые начальные условия как sys
,offset
,ic
] = procest(___)initialCondition
объект. Используйте этот синтаксис, если вы планируете моделировать или предсказать ответ модели с помощью тех же входных данных оценки, а затем сравнить ответ с теми же выходными данными оценки. Включение начальных условий приводит к лучшему соответствию во время первой части симуляции.
data
- Оценка данныхiddata
| idfrd
| frd
Оценочные данные, заданные как iddata
объект, содержащий значения входного и выходного сигналов для оценки во временной области. Для оценки частотного диапазона, data
может быть одним из следующих:
data
должно иметь по крайней мере один вход и один выход.
Модели timeseries, которые являются моделями, которые не содержат измеренных входов, не могут быть оценены с помощью procest
. Использовать ar
, arx
, или armax
вместо этого для моделей timeseries.
type
- Структура модели процессаСтруктура модели процесса, заданная для моделей SISO в виде вектора символов или строки, представляющей сокращение для структуры модели, такое как 'P1D'
или 'P2DZ'
. Аббревиатура состоит из:
P
- Все 'Type'
акронимы начинаются с этой буквы.
0
, 1
, 2
, или 3
- Количество констант времени (полюсов), которые нужно смоделировать. Возможные интегрирования (полюсы в источник) не включены в это число.
I
- обеспечивается интегрирование (процесс саморегулирования).
D
- Задержка (время отключения).
Z
- Лишний член числителя, нуль.
U
- Разрешены заниженные режимы (полюса с комплексным значением). Если U
не входит в type
Все полюса должны быть реальными. Количество полюсов должно быть 2 или 3.
Для моделей MIMO используйте Ny
-by- Nu
массив ячеек из векторов символов или строковых массивов с одной записью для каждой пары вход-выход. Вот Ny
количество входов и Nu
- количество выходов.
Для получения информации о том, как type
влияет на структуру модели процесса, см. idproc
.
InputDelay
- Входные задержки0
для всех входных каналов (по умолчанию) | числовым векторомВходные задержки, заданные как числовой вектор, задающий временную задержку для каждого входного канала. Задайте входные задержки в модуле времени, сохраненной в TimeUnit
свойство.
Для системы с Nu
входы, задайте InputDelay
в Nu
-by-1 вектор. Каждый элемент этого вектора является числовым значением, которое представляет входу задержку для соответствующего канала входа. Можно также задать InputDelay
к скалярному значению, чтобы применить ту же задержку ко всем каналам.
init_sys
- Система конфигурирования начальной параметризацииidproc
объектСистема конфигурирования начальной параметризации sys
, заданный как idproc
объект. Получаете init_sys
путем выполнения оценки с использованием измеренных данных или путем прямой конструкции с использованием idproc
. Программа использует параметры и ограничения, определенные в init_sys
как исходное предположение для оценки sys
.
Используйте Structure
свойство init_sys
настроить начальные предположения и ограничения для Kp, Tp1, Tp2, Tp3, Tw, Zeta, Td, и Tz. Для примера:
Чтобы задать начальное предположение для параметра Tp1 of init_sys
, задать init_sys.Structure.Tp1.Value
как начальное предположение.
Чтобы задать ограничения для параметра Tp2 of init_sys
:
Задайте init_sys.Structure.Tp2.Minimum
к минимальному значению Tp2.
Задайте init_sys.Structure.Tp2.Maximum
на максимальное Tp2 значение.
Задайте init_sys.Structure.Tp2.Free
чтобы указать, является ли Tp2 свободным параметром для оценки.
Если opt
не задан, и init_sys
был получен путем оценки, затем опции оценки из init_sys.Report.OptionsUsed
используются.
opt
- опции оценкиprocestOptions
набор опцийОпции оценки, заданные как procestOptions
набор опций. Оценка опций включать:
Цель оценки
Обращение с начальными условиями и компонентом нарушения порядка
Численный метод поиска, который будет использоваться в оценке
sys
- Идентифицированная модель процессаidproc
модельИдентифицированная модель процесса, возвращенная как idproc
модель структуры, заданная как type
.
Информация о результатах оценки и используемых опциях хранится в Report
модели свойство.
Report
имеет следующие поля:
Поле отчета | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводными данными статуса модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Используется команда estimation. | ||||||||||||||||||
InitialCondition | Обработка начальных условий во время оценки модели, возвращенная как одно из следующих значений:
Это поле особенно полезно для просмотра того, как были обработаны начальные условия при | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенная как структура. Смотрите функции потерь и метрики качества модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Оценочные значения параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опций, используемый для оценки. Если пользовательские опции не были настроены, это набор опций по умолчанию. Посмотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. Пустой, | ||||||||||||||||||
DataUsed | Атрибуты данных, используемых для оценки. Структурируйте следующие поля:
| ||||||||||||||||||
Termination | Условия завершения итерационного поиска, используемого для минимизации ошибки предсказания, возвращаются как структура со следующими полями:
Для методов оценки, которые не требуют численной оптимизации поиска, |
Для получения дополнительной информации об использовании Report
, см. Отчет по оценке.
offset
- Расчетное значение входного смещенияРасчетное значение входа смещения, возвращаемое как вектор. Когда data
имеет несколько экспериментов, offset
является матрицей, где каждый столбец соответствует эксперименту.
ic
- Начальные условияinitialCondition
объект | объектный массив initialCondition
значенияПредполагаемые начальные условия, возвращенные как initialCondition
объект или объектный массив initialCondition
значения.
Для одного набора данных эксперимента, ic
представляет в форме пространства состояний свободный ответ модели передаточной функции (A и C матрицы) на предполагаемые начальные состояния (x0).
Для набора данных нескольких экспериментов с Ne экспериментами, ic
- объектный массив длины Ne, которая содержит один набор initialCondition
значения для каждого эксперимента.
Если procest
возвращает ic
значения 0
и вы знаете, что у вас ненулевые начальные условия, установите 'InitialCondition'
опция в procestOptions
на 'estimate'
и передайте обновленный набор опций в procest
. Для примера:
opt = procestOptions('InitialCondition,'estimate')
[sys,offset,ic] = procest(data,np,nz,opt)
'auto'
установка 'InitialCondition'
использует 'zero'
способ, когда начальные условия оказывают незначительный эффект на процесс минимизации общей ошибки расчета. Определение 'estimate'
гарантирует, что программное обеспечение оценивает значения для ic
.
Для получения дополнительной информации смотрите initialCondition
. Пример использования этого аргумента см. в разделе Получение начальных условий.
Получите измеренные входно-выходные данные.
load iddemo_heatexchanger_data; data = iddata(pt,ct,Ts); data.InputName = '\Delta CTemp'; data.InputUnit = 'C'; data.OutputName = '\Delta PTemp'; data.OutputUnit = 'C'; data.TimeUnit = 'minutes';
Оцените модель процесса первого порядка плюс мертвое время.
type = 'P1D';
sysP1D = procest(data,type);
Сравните модель с данными.
compare(data,sysP1D)
Постройте график невязок модели.
figure resid(data,sysP1D);
Рисунок показывает, что невязки коррелируют. Для этого добавьте компонент нарушения порядка ARMA первого порядка к модели процесса.
opt = procestOptions('DisturbanceModel','ARMA1'); sysP1D_noise = procest(data,'p1d',opt);
Сравните модели.
compare(data,sysP1D,sysP1D_noise)
Постройте график невязок модели.
figure resid(data,sysP1D_noise);
Остатки sysP1D_noise
являются некоррелированными.
Используйте регуляризацию, чтобы оценить параметры сверхпараметрированной модели процесса.
Предположим, что коэффициент усиления известен с более высокой степенью доверия, чем другие параметры модели.
Загрузка данных.
load iddata1 z1;
Оцените нерегулярную модель процесса.
m = idproc('P3UZ','K',7.5,'Tw',0.25,'Zeta',0.3,'Tp3',20,'Tz',0.02); m1 = procest(z1,m);
Оцените регуляризованную модель процесса.
opt = procestOptions;
opt.Regularization.Nominal = 'model';
opt.Regularization.R = [100;1;1;1;1];
opt.Regularization.Lambda = 0.1;
m2 = procest(z1,m,opt);
Сравните выходы модели с данными.
compare(z1,m1,m2);
Регуляризация помогает направить процесс оценки к правильным значениям параметров.
Оцените модель процесса после определения начальных догадок для значений параметров и ограничения их.
Получите входные/выходные данные.
data = idfrd(idtf([10 2],[1 1.3 1.2],'iod',0.45),logspace(-2,2,256));
Задайте параметры модели инициализации оценки.
type = 'P2UZD';
init_sys = idproc(type);
init_sys.Structure.Kp.Value = 1;
init_sys.Structure.Tw.Value = 2;
init_sys.Structure.Zeta.Value = 0.1;
init_sys.Structure.Td.Value = 0;
init_sys.Structure.Tz.Value = 1;
init_sys.Structure.Kp.Minimum = 0.1;
init_sys.Structure.Kp.Maximum = 10;
init_sys.Structure.Td.Maximum = 1;
init_sys.Structure.Tz.Maximum = 10;
Задайте опции оценки.
opt = procestOptions('Display','full','InitialCondition','Zero'); opt.SearchMethod = 'lm'; opt.SearchOptions.MaxIterations = 100;
Оцените модель процесса.
sys = procest(data,init_sys,opt);
Начиная с 'Display'
опция задается как 'full'
прогресс оценки отображается в отдельном окне «Прогресс идентификации объекта».
Сравните данные с оценочной моделью.
compare(data,sys,init_sys);
Получите входные/выходные данные.
load iddata1 z1 load iddata2 z2 data = [z1 z2(1:300)];
data
- набор данных с 2 входами и 2 выходами. Первый вход влияет только на первый выход. Точно так же второй вход влияет только на второй выход.
В оценочной модели процесса перекрестные условия, моделирование эффекта первого входа на втором выходе и наоборот, должны быть незначительными. Если этим динамикам присвоены более высокие порядки, их оценки показывают высокий уровень неопределенности.
Оцените модель процесса.
type = 'P2UZ';
sys = procest(data,type);
The type
переменная обозначает модель с комплексно-сопряженной парой полюсов, нулями и задержкой.
Чтобы оценить неопределенности, постройте график частотной характеристики.
w = linspace(0,20*pi,100); h = bodeplot(sys,w); showConfidence(h);
Загрузите данные.
load iddata1ic z1i
Оцените модель процесса первого порядка и мертвого времени sys
и возвращает начальные условия в ic
. Сначала задайте 'estimate'
для 'InitialCondition'
заставить программное обеспечение оценить ic
. Значение по умолчанию 'auto'
в настройке используется 'estimate' method
только когда влияние начальных условий на общую ошибку модели превышает порог. Когда начальные условия оказывают незначительный эффект на процесс минимизации общей ошибки расчета, 'auto
'setting использует 'zero'
.
opt = procestOptions('InitialCondition','estimate'); [sys,offset,ic] = procest(z1i,'P1D',opt); ic
ic = initialCondition with properties: A: -3.8997 X0: -1.0871 C: 4.5652 Ts: 0
ic
является initialCondition
объект, который инкапсулирует свободный ответ sys
, в форме пространство состояний, в вектор начального состояния в X0
. Можно включать ic
когда вы симулируете sys
с z1i
входной сигнал и сравните ответ с z1i
выходной сигнал.
Поддержка параллельных вычислений доступна для оценки с помощью lsqnonlin
метод поиска (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, используйте procestOptions
, задать SearchMethod
на 'lsqnonlin'
, и задать SearchOptions.Advanced.UseParallel
на true
.
Для примера:
opt = procestOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.