exponenta event banner

пропояс

Оценка модели процесса с использованием временных или частотных данных

Описание

пример

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

пример

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

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

свернуть все

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

  • Записанные данные частотной характеристики (frd(Панель инструментов системы управления) или idfrd)

  • iddata объект со следующими свойствами:

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

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

    • Domain'Frequency'

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

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

Структура модели процесса, заданная для моделей SISO как вектор символов или строка, представляющая акроним для структуры модели, например 'P1D' или 'P2DZ'. Аббревиатура состоит из:

  • P - Все 'Type' акронимы начинаются с этой буквы.

  • 0, 1, 2, или 3 - Количество моделируемых временных констант (полюсов). Возможные интеграции (полюса в начале координат) в это число не включаются.

  • I - обеспечивается интеграция (процесс саморегулирования).

  • D - Задержка по времени (мертвое время).

  • Z - Дополнительный числитель, ноль.

  • U - Допускаются недамперированные режимы (сложные полюса). Если U не входит в type, все полюса должны быть настоящими. Число полюсов должно быть равно 2 или 3.

Для моделей MIMO используйте Nyоколо-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) измерения того, насколько хорошо отклик модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

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

MSE

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

FPE

Ошибка окончательного прогноза для модели.

AIC

Показатель качества модели Raw Akaike Information Criteria (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

∞-norm вектора поиска градиента при завершении алгоритма поиска.

FcnCount

Число вызовов целевой функции.

UpdateNorm

Норма вектора поиска градиента в последней итерации. Опущено, когда метод поиска 'lsqnonlin' или 'fmincon'.

LastImprovement

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

Algorithm

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

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

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

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

Предполагаемые начальные условия, возвращенные в виде initialCondition объект или массив объектов initialCondition значения.

  • Для набора данных одного эксперимента: ic представляет в форме state-space свободный отклик модели передаточной функции (матрицы 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. The axes contains 2 objects of type line. These objects represent data (\Delta PTemp), sysP1D: 70.76%.

Постройте график остатков модели.

figure
resid(data,sysP1D);

Figure contains 2 axes. Axes 1 with title AutoCorr contains 2 objects of type line. This object represents sysP1D. Axes 2 with title XCorr (\Delta CTemp) 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. The axes 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. Axes 1 with title AutoCorr contains 2 objects of type line. This object represents sysP1D\_noise. Axes 2 with title XCorr (\Delta CTemp) 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. The axes 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. Axes 1 with title From: u1 contains 3 objects of type line. These objects represent Data, sys: 100%, init\_sys: -7.299%. Axes 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. Axes 1 with title From: u1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys. Axes 3 contains an object of type line. This object represents sys. Axes 4 contains an object of type line. This object represents sys. Axes 5 with title From: u2 contains an object of type line. This object represents sys. Axes 6 contains an object of type line. This object represents sys. Axes 7 contains an object of type line. This object represents sys. Axes 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, в форме state-space, к вектору начального состояния в X0. Вы можете включить ic при моделировании sys с z1i входной сигнал и сравнить отклик с z1i выходной сигнал.

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

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