compare

Сравните идентифицированный выход модели и измеренный выход

Описание

Графическое изображение результатов

пример

compare(data,sys) моделирует ответ динамической модели системы и накладывает этот ответ на построенные данные измерений. График также отображает нормированную среднеквадратическую меру (NRMSE) качества соответствия между симулированным откликом и данными измерений. Используйте эту функцию, когда вы хотите вычислить набор моделей-кандидатов, идентифицированных из тех же данных измерений, или когда вы хотите подтвердить выбранную модель. Вы можете использовать compare с моделями временной области или частотного диапазона и данными.

пример

compare(data,sys,kstep) также предсказывает ответ sys, с использованием горизонта предсказания, заданного kstep. Предсказание использует выходные измерения, а также входные измерения, чтобы проецировать будущий ответ. kstep представляет количество временных выборок между временной точкой каждого выходного измерения и временной точкой полученного предсказанного отклика. Для получения дополнительной информации о прогнозировании смотрите Моделирование и Предсказание Идентифицированного Выхода Модели.

compare(data,sys,LineSpec,kstep) также задает тип линии, символ маркера и цвет для отклика модели.

пример

compare(data,sys1,...,sysN,kstep) сравнивает отклики нескольких динамических систем на одних и тех же осях. compare автоматически выбирает спецификации линии.

пример

compare(data,sys1,LineSpec1,...,sysN,LineSpecN,kstep) также сравнивает отклики нескольких систем на тех же осях, используя тип линии, символ маркера и цвет, заданный для каждой системы.

пример

compare(___,opt) конфигурирует сравнение с помощью набора опций. Опции включают обработку начальных условий, смещения данных и выбор данных. Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

Возврат результатов

пример

[y,fit,ic] = compare(___) возвращает ответ модели y, качество подгонки значения fitи начальные условия ic. Этот синтаксис не генерирует график, поэтому любые спецификации линии игнорируются.

Примеры

свернуть все

Идентифицируйте линейную модель и визуализируйте моделируемый ответ модели с данными, из которых он был сгенерирован.

Загрузка входных/выходных измерений z1, и идентифицировать модель пространства состояний третьего порядка sys.

load iddata1 z1;
sys = ssest(z1,3);

sys - идентифицированное в непрерывном времени пространство состояний (idss) модель.

Использование compare для симуляции sys отклик и постройте график рядом с данными z1.

figure
compare(z1,sys)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys: 70.56%.

График иллюстрирует различия между откликом модели и исходными данными. Процент, показанный в легенде, является значением соответствия NRMSE. Это представляет, как близко к данным выход предсказанной модели.

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

  • Чтобы построить график ошибки между предсказанным выходом и измеренным выходом, выберите Error Plot.

  • Чтобы просмотреть доверительную область для моделируемого отклика, выберите Характеристики - > Доверительная область .

  • Чтобы задать количество стандартных отклонений для построения графика, дважды щелкните график и откройте диалоговое окно «Property Editor». На вкладке Опции (Options) задайте количество стандартных отклонений в доверительной области для идентифицированных моделей. Значение по умолчанию 1 стандартное отклонение.

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

Идентифицируйте модель пространства состояний третьего порядка, используя входные/выходные измерения в z1.

load iddata1 z1;
sys = ssest(z1,3);

sys - идентифицированное в непрерывном времени пространство состояний (idss) модель.

Теперь используйте compare для построения графика предсказанной характеристики. Предсказание отличается от симуляции тем, что использует как измеренный вход, так и измеренный выход при вычислении отклика системы. Горизонт предсказания определяет, как далеко в будущем предсказать, относительно вашей текущей измеренной выходной точки. В данном примере задайте горизонт предсказания kstep до 10 шагов и использование compare для построения графика предсказанной характеристики относительно исходных данных измерений.

kstep = 10;
compare(z1,sys,kstep)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys: 70.53%.

На этом графике каждый sys точка данных представляет предсказанный выход, сопоставленный с выходными данными измерения, который был сделан, по меньшей мере, на 10 шагов раньше. Для образца точка t = 15s основана на измерениях выхода выполненных в или до t = 5с. Вычисление этого t = 15s sys точка данных также использует входные измерения до t = 15s, так же как и симуляция.

График иллюстрирует различия между откликом модели и исходными данными. Процент, показанный в легенде, является значением соответствия NRMSE. Он представляет, насколько близок выход предсказанной модели к данным.

Чтобы изменить опции отображения и симуляции на графике, щелкните правой кнопкой мыши график, чтобы получить доступ к контекстному меню. Для примера, чтобы построить график ошибки между предсказанным выходом и измеренным выходом, выберите Error Plot в контекстном меню. Чтобы изменить значение горизонта предсказания или переключаться между симуляцией и предсказанием, выберите Prediction Horizon в контекстном меню.

Идентифицируйте несколько типов модели для одних и тех же данных и сравните результаты, чтобы увидеть, что лучше всего подходит для данных.

Загрузите данные, которые содержат iddata z1 объекта с одним входом и выходом.

load iddata1;

Из z1, идентифицируйте модель для каждой из следующих линейных форм:

  • ARMAX (idpoly) порядки 2 , 3, и 1, с потерей времени 0

  • Пространство состояний (idss) с тремя состояниями

  • Передаточная функция (idtf) с тремя полюсами

sys_armax = armax(z1,[2 3 1 0]);
sys_ss = ssest(z1,3);
sys_tf = tfest(z1,3);

Использование compare, постройте график симулированных откликов для трех моделей с помощью z1.

compare(z1,sys_armax,sys_ss,sys_tf)

Figure contains an axes. The axes contains 4 objects of type line. These objects represent z1 (y1), sys\_armax: 70.27%, sys\_ss: 70.56%, sys\_tf: 70.96%.

Для этого набора данных, наряду с настройками по умолчанию для всех моделей, форма transfer-function имеет лучшую подгонку NRMSE. Однако подгонки для всех моделей находятся в пределах примерно 1% друг от друга.

Можно интерактивно управлять, какие отклики модели отображаются на графике, щелкнув правой кнопкой мыши на графике и зависая над Системами.

Сравните выходы нескольких предполагаемых моделей различных типов с измеренными данными частотного диапазона.

В этом примере оцените модель процесса и полином выходной ошибки из данных частотной характеристики.

load demofr  % frequency response data
zfr = AMP.*exp(1i*PHA*pi/180);  
Ts = 0.1;
data = idfrd(zfr,W,Ts);  
sys1 = procest(data,'P2UDZ'); 
sys2 = oe(data,[2 2 1]);

sys1, an idproc модель, является непрерывной моделью процесса. sys2, an idpoly модель, является моделью вывода-ошибки в дискретном времени.

Сравните частотную характеристику оцененных моделей с данными.

compare(data,sys1,'g',sys2,'r');

Figure contains 2 axes. Axes 1 with title From: u1 contains 3 objects of type line. These objects represent Data, sys1: 88.03%, sys2: 88.04%. Axes 2 contains 3 objects of type line. These objects represent Data, sys1: 88.03%, sys2: 88.04%.

Две модели имеют значения подгонки NRMSE, которые почти равны относительно данных, из которых они были вычислены.

Измените поведение по умолчанию при сравнении предполагаемой модели с измеренными данными.

Оцените передаточную функцию для измеренных данных.

load iddata1 z1;
sys = tfest(z1,3);

sys является идентифицированной передаточной функцией в непрерывном времени (idtf) модель.

Предположим, что вы хотите, чтобы ваши начальные условия были нулевыми. Значение по умолчанию для compare - оценить начальные условия из данных.

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

opt = compareOptions('InitialCondition','z');

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

compare(z1,sys,opt)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys: 70.66%.

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

load iddata2 z2

Разделите данные на наборы оценок и валидации.

z2e = z2(1:200);
z2v = z2(201:400);
plot(z2e,z2v)

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent z2e, z2v. Axes 2 with title u1 contains 2 objects of type line. These objects represent z2e, z2v.

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

sys_ss = ssest(z2e,2);
sys_tf = tfest(z2e,2,1);

Использование compare для получения начальных условий для sys_ss.

[y_ss,fit_ss,ic_ss] = compare(z2e,sys_ss);
ic_ss
ic_ss = 2×1

   -0.0018
    0.0016

ic_ss является числовым вектором начальных состояний.

[y_tf,fit_tf,ic_tf] = compare(z2e,sys_tf);
ic_tf
ic_tf = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [-1.6093 5.1442]
    Ts: 0

ic_tf является initialCondition объект, который содержит в форме пространства состояний модель свободного отклика sys_tf к начальным условиям. A и C содержат информацию о свободном отклике и X0 содержит начальные состояния.

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

[y_sstf,fit_sstf,ic_sstf] = compare(z2v,sys_ss,sys_tf);
ic_sstf
ic_sstf=2×1 cell array
    {2x1 double          }
    {1x1 initialCondition}

ic_sstf - массив ячеек, который содержит вектор начального состояния для sys_ss и initialCondition объект для sys_tf.

compare может обеспечить начальные условия для существующей модели с любым набором данных измерения.

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

свернуть все

Данные валидации, заданные как iddata, idfrd, или frd (Control System Toolbox) объект.

Если sys является:

  • Один iddata объект, затем data должен быть iddata объект с совпадающей областью, количеством экспериментов и векторами времени или частоты

  • Модель данных частотной характеристики (FRD) (определяется как idfrd или frd), затем data также должен быть FRD

  • Параметрическая модель (такая как idss), затем data может быть iddata или FRD

data может представлять данные как во временной, так и в частотной областях при сравнении с линейными моделями. data должны быть данными во временной области при сравнении с нелинейной моделью.

Для примеров смотрите:

.

Идентифицированная модель, заданная как динамическая система модель, iddata объект или массив моделей.

Когда время или частотные модули data не совпадают с модулями измерения sys, compare пересчитывает sys для соответствия модулям измерения data.

Горизонт предсказания, заданный как один из следующих:

  • Inf - Сравнение симулированного отклика sys на data.

  • Положительное конечное целое число - Сравнение предсказанной характеристики sys на data, где каждая предсказанная точка отклика основана не только на измеренных входных данных до этой временной точки, но и на измеренных выходных данных до kstep timepoints более ранние.

compare игнорирует kstep когда sys является iddata объект, модель FRD или динамическая система без шумового компонента. compare также игнорирует kstep при использовании данных валидации частотной характеристики.

Если вы задаете kstep это больше, чем количество выборок данных, compare устанавливает kstep на Inf и предоставляет предупреждающее сообщение.

Для получения дополнительной информации о симуляции и предсказании смотрите Моделирование и Предсказание Идентифицированного Выхода Модели.

Для получения примера смотрите Сравнение Предсказанной Реакции Идентифицированной Модели Временной Области с Измеренными Данными.

Стиль линии, цвет и линии, и маркер, заданный как вектор символов, например 'b' или 'b+:'.

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

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

Доступные опции включают:

  • Обработка начальных условий

  • Пример области значений для вычисления чисел подгонки

  • Смещения данных

  • Выходное взвешивание

Для примеров смотрите:

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

свернуть все

Моделируйте ответ, возвращаемый как iddata объект, idfrd объект, массив ячеек или массив. Выход зависит от моделей и данных, которые вы предоставляете, следующим образом:

  • Для одной модели и одного набора данных эксперимента, y является iddata объект или idfrd объект

  • Для сравнения мультимоделей, y - массив ячеек с одним массивом iddata или idfrd ввод объекта для каждой входной модели

  • Для мультиэксперенциальных данных, y - массив ячеек с одной записью для каждого эксперимента

  • Для мультимодельных сравнений, использующих мультиэксперментные данные, y является Nsys -by - Nexp массивом ячеек, где Nsys - количество моделей, а Nexp - количество экспериментов

  • Если sys является массивом моделей, y является массивом с элементом, соответствующим каждой модели в sys и экспериментируйте в data. Для получения дополнительной информации об массивах моделей см. stack

Если kstep не задан или Inf, затем compare возвращает симулированный отклик в y.

В противном случае, compare возвращает предсказанный ответ. Измеренные выходные значения в data до времени t n - kstep используются для предсказания выхода sys во время tn. Для получения дополнительной информации о симуляции и предсказании смотрите Моделирование и Предсказание Идентифицированного Выхода Модели.

compare расчет отклика требует спецификации обработки начальных условий. По умолчанию, compare оценивает начальные условия, чтобы максимизировать подгонку к данным. Посмотрите compareOptions для получения дополнительной информации о том, как compare определяет начальные условия для использования.

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

  • Если data является iddata объект, fit - вектор длины Ny, где Ny - количество выходов

  • Если data является моделью FRD, fit является Ny -by- Nu матрицей, где Nu - количество входов в data

  • Для одной модели и одного набора данных эксперимента, fit является вектором или матрицей

  • Для сравнения мультимоделей, fit - массив ячеек с одной записью для каждой входной модели

  • Для мультиэксперенциальных данных, fit - массив ячеек с одной записью для каждого эксперимента

  • Для мультимодельных сравнений, использующих мультиэксперментные данные, fit является Nsys -by - Nexp массивом ячеек, где Nsys - количество моделей, а Nexp - количество экспериментов

  • Если sys является массивом моделей, fit является массивом с элементом, соответствующим каждой модели в sys и экспериментируйте в data

compare вычисляет fit (в процентах) использование:

fit=100(1||yy^||||ymean(y)||),

где y - выходные данные валидации и y^ - выход sys.

Для моделей FRD - compare вычисляет fit путем сравнения комплексной частотной характеристики. Подгонки величины и фазы, показанные в compare график не вычисляется compare отдельно.

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

Для одной модели и данных одного эксперимента форма выхода зависит от типа модели.

  • Для моделей пространства состояний, ic является числовым вектором, который содержит начальные состояния.

  • Для передаточной функции и полиномиальных моделей, ic является initialCondition объект. Система координат initialCondition представляет в форме пространства состояний свободный ответ модели (A и C матрицы) на предполагаемые начальные состояния (x0).

  • Когда sys является frd или iddata объект, ic - пустой массив [], поскольку начальные условия не могут использоваться с этими объектами.

Для нескольких моделей и/или экспериментов форма выхода следующая:

  • Для сравнения мультимоделей, ic является камера или объектный массив с одним вектором, матрицей или initialCondition запись для каждой входной модели.

  • Для мультиэксперенциальных данных, ic является камера или объектный массив с одной записью для каждого эксперимента.

  • Для мультимодельных сравнений, использующих мультиэксперментные данные, ic - Nsys -by Nexp камера или объектный массив, где Nsys - количество моделей и Nexp - количество экспериментов.

  • Если sys является массивом моделей, ic является массивом с элементом, соответствующим каждой модели в sys и экспериментируйте в data.

По умолчанию, compare использование findstates для оценки начальных состояний в ic. Чтобы изменить это поведение, установите 'InitialCondition' опция в opt (см. compareOptions). Если у вас есть история ввода/вывода, которая непосредственно предшествует вашей начальной точке, можно задать 'InitialCondition' к этим историческим данным. compare затем использует data2state вычислить конечное состояние исторических данных и, таким образом, начальное состояние для симуляции. Другие варианты включают установку начальных условий на нуль или на определенные значения, которые вы определяете ранее. Для получения дополнительной информации о поиске начальных условий см. «Оценка начальных условий для симуляции идентифицированных моделей».

Если вы используете модель оценки, которая явно не использует состояния, compare сначала преобразует модель в представление пространства состояний, а затем преобразует данные в начальные состояния. compare затем упакует вектор начального состояния и A и C матрицы пространства состояний в initialCondition объект. Для примера использования compare с такой моделью см. «Получение начальных условий».

Совет

  • NRMSE результата подгонки, который вы получаете с compare может точно не совпадать со значением аппроксимации, сообщенным в идентификации модели. Эти различия обычно возникают из-за несоответствий в начальных условиях и в различиях в значениях по умолчанию горизонта предсказания для идентификации и для валидации. Различия, как правило, малы и не должны влиять на рабочий процесс выбора и валидации модели. Для получения дополнительной информации см. «Разрешение различий в значениях подгонки между идентификацией модели» и «Сравнение команды».

  • compare соответствует входным/выходным каналам в data и sys на основе имен каналов. Таким образом, можно оценить модели, которые не используют все входные каналы, которые доступны в data. Эта гибкость позволяет вам сравнить несколько моделей, каждая из которых была идентифицирована независимо от различных наборов входных/выходных каналов.

  • compare график позволяет изменять ключевые параметры. Для примера можно интерактивно управлять:

    • Сгенерируете ли вы моделируемый или предсказанный ответ

    • Значение горизонта предсказания

    • Обработка начальных условий

    • Какие данные эксперимента вы просматриваете

    • Какие системные модели вы просматриваете

    Для доступа к элементам управления щелкните правой кнопкой мыши график, чтобы открыть меню опций.

Введенный в R2006a