пропояс

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

Синтаксис

sys = procest(data,type)
sys = procest(data,type,'InputDelay',InputDelay)
sys = procest(data,init_sys)
sys = procest(___,opt)
[sys,offset] = procest(___)

Описание

пример

sys = procest(data,type) оценивает модель процесса, sys, с помощью времени или данных частотного диапазона, data. type задает структуру 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-by-Nu массив ячеек из символьных векторов или массив строк с одной записью для каждой пары ввода - вывода. Здесь Ny является количеством входных параметров, и Nu является количеством выходных параметров.

Для получения информации относительно того, как type влияет на структуру модели процесса, смотрите idproc.

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

Для системы с входными параметрами Nu, набор InputDelay к Nu-by-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) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент.

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

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

Для методов оценки, которые не требуют числовой оптимизации поиска, не использовано поле 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