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 с любым из предыдущих синтаксисов.

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

свернуть все

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

  • Записанные данные о частотной характеристике (frd или 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) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент fit = 100 (1-NRMSE).

LossFcn

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

MSE

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

FPE

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

AIC

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

AICc

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

nAIC

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

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

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

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

Type

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

Length

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

Ts

'SampleTime' . Это эквивалентно 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 матрица, где каждый столбец соответствует эксперименту.

Примеры

свернуть все

Получите измеренные данные ввода - вывода.

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 iddata1
[sys,offset] = procest(z1,'P1DI');
offset
offset = 0.0412

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

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