Оцените модель процесса с помощью временных или частотных данных
[ возвращает оценочное значение смещения в входном сигнале. Входное смещение автоматически оценивается, когда модель содержит интегратора, или когда вы устанавливаете 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.