Оцените модель процесса, использующую данные о частоте или время
[
возвращает ориентировочное значение смещения во входном сигнале. Входное смещение автоматически оценивается, когда модель содержит интегратор, или когда вы устанавливаете 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
— Режимы Underdamped (полюса с комплексным знаком) разрешенный. Если U
не включен в type
, все полюса должны быть действительными. Количество полюсов должно быть 2 или 3.
Для моделей MIMO используйте Ny
- Nu
массив ячеек из символьных векторов или массив строк, с одной записью для каждой пары ввода - вывода. Здесь Ny
количество входных параметров и Nu
количество выходных параметров.
Для получения информации, относительно как type
влияет на структуру модели процесса, смотрите idproc
.
InputDelay
— Введите задержки
для всех входных каналов (значение по умолчанию) | числовой векторВведите задержки в виде числового вектора, задающего задержку каждого входного канала. Задайте входные задержки единицы измерения времени, сохраненной в TimeUnit
свойство.
Для системы с Nu
входные параметры, набор InputDelay
к Nu
- 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 init_sys
, установите init_sys.Structure.Tp1.Value
как исходное предположение.
Задавать ограничения для параметра Tp2 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 | Команда оценки используется. | ||||||||||||||||||
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'
, прогресс оценки отображен в отдельном окне Plant Identification Progress.
Сравните данные с предполагаемой моделью.
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);
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
'установка использования '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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.