procest

Оцените модель процесса, использующую данные о частоте или время

Описание

пример

sys = procest(data,type) оценивает модель процесса, sys, с помощью времени или данных частотной области, dataВвод задает структуру sys.

sys = procest(data,type,'InputDelay',InputDelay) указывает, что вход задерживает InputDelay.

пример

sys = procest(data,init_sys) использует модель процесса init_sys сконфигурировать начальную параметризацию.

пример

sys = procest(___,opt) задает дополнительные опции оценки модели. Используйте opt с любым из предыдущих синтаксисов.

пример

[sys,offset] = procest(___) возвращает ориентировочное значение смещения во входном сигнале. Входное смещение автоматически оценивается, когда модель содержит интегратор, или когда вы устанавливаете InputOffset опция оценки к 'estimate' использование procestOptions. Используйте offset с любым из предыдущих синтаксисов.

пример

[sys,offset,ic] = procest(___) возвращает предполагаемые начальные условия как initialCondition объект. Используйте этот синтаксис, если вы планируете симулировать или предсказать ответ модели с помощью тех же входных данных оценки и затем сравнить ответ с теми же выходными данными оценки. Слияние начальных условий дает к лучшему соответствию во время первой части симуляции.

Входные параметры

свернуть все

Данные об оценке в виде iddata объект, содержащий значения сигналов ввода и вывода, для оценки временного интервала. Для оценки частотного диапазона, data может быть одно из следующего:

  • Записанные данные о частотной характеристике (frd (Control System Toolbox) или idfrd)

  • iddata объект с его свойствами, заданными можно следующим образом:

    • InputData — Преобразование Фурье входного сигнала

    • OutputData — Преобразование Фурье выходного сигнала

    • Domain'Frequency'

data должен иметь по крайней мере один вход и один выход.

Модели timeseries, которые являются моделями, которые не содержат измеренных входных параметров, не могут быть оценены с помощью procestИспользование ar, arx, или armax для моделей timeseries вместо этого.

Структура модели процесса, заданная для моделей 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.

Введите задержки в виде числового вектора, задающего задержку каждого входного канала. Задайте входные задержки единицы измерения времени, сохраненной в TimeUnit свойство.

Для системы с Nu входные параметры, набор InputDelay к Nu- 1 вектор. Каждая запись этого вектора является численным значением, которое представляет входную задержку соответствующего входного канала. Можно также установить InputDelay к скалярному значению, чтобы применить ту же задержку со всеми каналами.

Система для конфигурирования начальной параметризации 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 используются.

Опции оценки в виде procestOptions опция установлена. Опции оценки включают:

  • Цель оценки

  • Обработка на начальных условиях и компоненте воздействия

  • Числовой метод поиска, который будет использоваться по оценке

Выходные аргументы

свернуть все

Идентифицированная модель процесса, возвращенная как idproc модель структуры задана type.

Информация о результатах оценки и используемых опциях хранится в Report модели свойство. Report имеет следующие поля:

Сообщите о полеОписание
Status

Сводные данные состояния модели, которое указывает, была ли модель создана конструкцией или получена оценкой.

Method

Команда оценки используется.

InitialCondition

Обработка начальных условий во время оценки модели, возвращенной как одно из следующих значений:

  • 'zero' — Начальные условия были обнулены.

  • 'estimate' — Начальные условия были обработаны как независимые параметры оценки.

  • 'backcast' — Начальные условия были оценены с помощью лучшего метода наименьших квадратов.

Это поле особенно полезно, чтобы просмотреть, как начальные условия были обработаны когда InitialCondition опцией в наборе опции оценки является 'auto'.

Fit

Количественная оценка оценки, возвращенной как структура. Смотрите Функцию потерь и Метрики качества Модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:

Поле Описание
FitPercent

Мера по нормированной среднеквадратической ошибке (NRMSE) того, как хорошо ответ модели соответствует данным об оценке, описанным как процент fitpercent = 100 (1-NRMSE).

LossFcn

Значение функции потерь, когда оценка завершается.

MSE

Мера по среднеквадратической ошибке (MSE) того, как хорошо ответ модели соответствует данным об оценке.

FPE

Итоговая ошибка предсказания для модели.

AIC

Необработанная мера по Критериям информации о Akaike (AIC) качества модели.

AICc

Маленький объем выборки откорректировал AIC.

nAIC

Нормированный AIC.

BIC

Байесовы информационные критерии (BIC).

Parameters

Ориентировочные стоимости параметров модели.

OptionsUsed

Набор опции используется для оценки. Если никакие пользовательские опции не были сконфигурированы, это - набор опций по умолчанию. Смотрите procestOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустой, если рандомизация не использовалась во время оценки. Для получения дополнительной информации смотрите rng.

DataUsed

Атрибуты данных используются для оценки. Структура со следующими полями:

Поле Описание
Name

Имя набора данных.

Type

Тип данных. Для idnlarx модели, это установлено в 'Time domain data'.

Length

Количество выборок данных.

Ts

Размер шага. Это эквивалентно Data.Ts.

InterSample

Введите междемонстрационное поведение. Одно из следующих значений:

  • 'zoh' — Нулевой порядок содержит, обеспечивает кусочно-постоянный входной сигнал между выборками.

  • 'foh' — Хранение первого порядка обеспечивает кусочно-линейный входной сигнал между выборками.

  • 'bl' — Ограниченное полосой поведение указывает, что входной сигнал непрерывного времени имеет нулевую силу выше частоты Найквиста.

Значение Intersample не оказывает влияния на результаты оценки для моделей дискретного времени.

InputOffset

Пустой, для нелинейных методов оценки.

OutputOffset

Пустой, для нелинейных методов оценки.

Termination

Условия завершения для итеративного поиска, используемого для ошибочной минимизации предсказания, возвращенной как структура со следующими полями:

Поле Описание
WhyStop

Причина завершения числового поиска.

Iterations

Количество поисковых итераций выполняется алгоритмом оценки.

FirstOrderOptimality

- норма вектора просмотра градиента, когда алгоритм поиска останавливается.

FcnCount

Число раз целевая функция было названо.

UpdateNorm

Норма вектора просмотра градиента в последней итерации. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия последней итерации, описанной как процент. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм используется 'lsqnonlin' или 'fmincon' метод поиска. Не использованный, когда другие методы поиска используются.

Для методов оценки, которые не требуют числовой оптимизации поиска, Termination поле не использовано.

Для получения дополнительной информации об использовании Report, см. Отчет Оценки.

Ориентировочная стоимость входного смещения, возвращенного как вектор. Когда data имеет несколько экспериментов, offset матрица, где каждый столбец соответствует эксперименту.

Предполагаемые начальные условия, возвращенные как 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 contains an axes object. The axes object contains 2 objects of type line. These objects represent data (\Delta PTemp), sysP1D: 70.76%.

Постройте остаточные значения модели.

figure
resid(data,sysP1D);

Figure contains 2 axes objects. Axes object 1 with title AutoCorr contains 2 objects of type line. This object represents sysP1D. Axes object 2 with title X C o r r blank ( Delta blank C T e m p ) contains 2 objects of type line. This object represents sysP1D.

Рисунок показывает, что остаточные значения коррелируются. С учетом этого добавьте первый порядок компонент воздействия ARMA в модель процесса.

opt = procestOptions('DisturbanceModel','ARMA1');
sysP1D_noise = procest(data,'p1d',opt);

Сравните модели.

compare(data,sysP1D,sysP1D_noise)

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent data (\Delta PTemp), sysP1D: 70.76%, sysP1D\_noise: 24.43%.

Постройте остаточные значения модели.

figure
resid(data,sysP1D_noise);

Figure contains 2 axes objects. Axes object 1 with title AutoCorr contains 2 objects of type line. This object represents sysP1D\_noise. Axes object 2 with title X C o r r blank ( Delta blank C T e m p ) contains 2 objects of type line. This object represents 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);

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent z1 (y1), m1: 26.74%, m2: 70.17%.

Регуляризация помогает регулировать процесс оценки к правильным значениям параметров.

Оцените модель процесса после определения исходных предположений для значений параметров и ограничения их.

Получите данные о вводе/выводе.

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);

Figure contains 2 axes objects. Axes object 1 with title From: u1 contains 3 objects of type line. These objects represent Data, sys: 100%, init\_sys: -7.299%. Axes object 2 contains 3 objects of type line. These objects represent Data, sys: 100%, init\_sys: -7.299%.

Получите данные о вводе/выводе.

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);

Figure contains 8 axes objects. Axes object 1 with title From: u1 contains an object of type line. This object represents sys. Axes object 2 contains an object of type line. This object represents sys. Axes object 3 contains an object of type line. This object represents sys. Axes object 4 contains an object of type line. This object represents sys. Axes object 5 with title From: u2 contains an object of type line. This object represents sys. Axes object 6 contains an object of type line. This object represents sys. Axes object 7 contains an object of type line. This object represents sys. Axes object 8 contains an object of type line. This object represents sys.

load iddata1
[sys,offset] = procest(z1,'P1DI');
offset
offset = 0.0412

Загрузите данные.

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 выходной сигнал.

Расширенные возможности

Представленный в R2012a