Качество подгонки между тестовыми и справочными данными для анализа и валидацией идентифицированных моделей
goodnessOfFit возвращает подходящие значения, которые представляют ошибочную норму между наборами тестовых и справочных данных. Если вы хотите сравнить и визуализировать симулированный выход модели с данными об измерении, см. также compare.
возвращает качество подгонки между тестовыми данными fit = goodnessOfFit(x,xref,cost_func)x и справочные данные xref использование функции стоимости cost_func. fit количественное представление близости x к xref. Чтобы выполнить несколько сравнений подгонки теста к ссылке, можно задать x и xref как массивы ячеек равного размера, которые содержат несколько наборов тестовых и справочных данных. С входными параметрами массива ячеек, fit возвращает массив подходящих значений.
Найдите качество подгонки между измеренными выходными данными и симулированным выходом предполагаемой модели.
Получите измеренный выход.
load iddata1 z1 yref = z1.y;
z1 iddata объект, содержащий измеренные данные ввода - вывода. z1.y измеренный выход.
Оцените модель передаточной функции второго порядка и симулируйте выход y_est модели.
sys = tfest(z1,2); y_est = sim(sys,z1(:,[],:));
Вычислите качество подгонки или ошибочную норму, между измеренными и предполагаемыми выходными параметрами. Задайте нормированную среднеквадратическую ошибку (NRMSE) как функцию стоимости.
cost_func = 'NRMSE';
y = y_est.y;
fit = goodnessOfFit(y,yref,cost_func) fit = 0.2943
В качестве альтернативы можно использовать compare вычислить подгонку. compare использует функцию стоимости NRMSE и выражает подходящий процент с помощью поразрядного дополнения до единицы ошибочной нормы. Подходящее отношение между compare и goodnessOfFit поэтому . compare результат 100% эквивалентен goodnessOfFit результат 0.
Задайте начальное условие нуля совпадать с начальным условием что goodnessOfFit принимает.
opt = compareOptions('InitialCondition','z'); compare(z1,sys,opt);

Результаты подгонки эквивалентны.
Найдите качество подгонки между измеренными и предполагаемыми выходными параметрами для двух моделей.
Получите измерения ввода - вывода z2 от iddata2. Скопируйте измеренный выход в ссылочный выход yref.
load iddata2 z2 yref = z2.y;
Оцените второго порядка и модели передаточной функции четвертого порядка с помощью z2.
sys2 = tfest(z2,2); sys4 = tfest(z2,4);
Симулируйте обе системы, чтобы получить оцененные выходные параметры.
y_sim2 = sim(sys2,z2(:,[],:)); y2 = y_sim2.y; y_sim4 = sim(sys4,z2(:,[],:)); y4 = y_sim4.y;
Создайте массивы ячеек из ссылки, и оценил выходные параметры. Набор справочных данных является тем же самым для обоих сравнений модели, поэтому создайте идентичные ссылочные ячейки.
yrefc = {yref yref};
yc = {y2 y4};Вычислите fit значения для этих трех функций стоимости.
fit_nrmse = goodnessOfFit(yc,yrefc,'NRMSE')fit_nrmse = 1×2
0.1429 0.1439
fit_nmse = goodnessOfFit(yc,yrefc,'NMSE')fit_nmse = 1×2
0.0204 0.0207
fit_mse = goodnessOfFit(yc,yrefc,'MSE')fit_mse = 1×2
1.0811 1.0967
Подходящее значение 0 указывает на совершенную подгонку между ссылкой и оценило выходные параметры. Подходящие повышения значения как подходящее совершенство уменьшаются. Для всех трех функций стоимости модель четвертого порядка производит лучшую подгонку, чем модель второго порядка.
x — Данные, чтобы протестироватьДанные, чтобы протестировать в виде матричного или массива ячеек.
Для одного набора тестовых данных задайте Ns-by-N матрица, где Ns является количеством выборок, и N является количеством каналов. Необходимо задать cost_fun как 'NRMSE' или 'NMSE' использовать данные нескольких-каналов.
Для нескольких наборов тестовых данных задайте массив ячеек длины Nd, где Nd является количеством пар теста к ссылке, и каждая ячейка содержит одну матрицу данных.
x не должен содержать NaN или Inf значения.
xref — Справочные данныеСправочные данные, с которыми можно сравнить xВ виде матричного или массива ячеек.
Для одного набора справочных данных задайте Ns-by-N матрица, где Ns является количеством выборок, и N является количеством каналов. xref должен быть одного размера с x. Необходимо задать cost_fun как 'NRMSE' или 'NMSE' использовать данные нескольких-каналов.
Для нескольких наборов справочных данных задайте массив ячеек длины Nd, где Nd является количеством пар теста к ссылке, и каждая ячейка содержит одну матрицу справочных данных. Как с отдельными матрицами данных, размерами массива ячеек для x и xref должен соответствовать. Каждый i th элемент fit соответствует парам i th ячейки x и xref.
xref не должен содержать NaN или Inf значения.
cost_func — Функция стоимости'MSE' | 'NRMSE' | 'NMSE'Функция стоимости, чтобы определить качество подгонки в виде одного из следующих значений. В уравнениях значение fit применяется к одному соединению наборов тестовых и справочных данных.
| Значение | Описание | Уравнение | Примечания |
|---|---|---|---|
'MSE' | Среднеквадратическая ошибка |
где Ns является количеством выборок, и ‖ указывает на 2-норму вектора. | fit является скаляром. |
'NRMSE' | Нормированная среднеквадратическая ошибка |
где ‖ указывает на 2-норму вектора. | fit является вектором-строкой. |
'NMSE' | Нормированная среднеквадратическая ошибка |
| fit является вектором-строкой. |
fit — Качество подгонки Качество подгонки между парами тестовых и справочных данных, возвращенными как скаляр, вектор-строка или массив ячеек.
Для одной пары набора тестовых и справочных данных, fit возвращен как скалярный или вектор-строка.
Если cost_fun 'MSE', затем fit скаляр.
Если cost_fun 'NRMSE' или 'NMSE', затем fit вектор-столбец длины N, где N является количеством каналов.
Для нескольких набор тестов и набор данных и ссылочные пары, где x и xref массивы ячеек длины ND, fit возвращен как вектор или матрица.
Если cost_fun 'MSE', затем fit вектор-строка из длины ND.
Если cost_fun 'NRMSE' или 'NMSE', затем fit матрица размера N Nd, где N является количеством каналов (столбцы данных), и Nd представляет количество тестовых пар. Каждый элемент fit содержит значения качества подгонки для соответствующих тестовых данных и ссылочной пары.
Каждый элемент fit содержит значения качества подгонки для соответствующих тестовых данных и ссылочной пары.
Возможные значения для отдельных подходящих элементов зависят от выбора cost_func.
Если cost_func 'MSE', каждый fit значение является положительной скалярной величиной, которая растет с ошибкой между тестовыми и справочными данными. fit значение 0 указывает на идеальную пару между тестовыми и справочными данными.
Если cost_func 'NRMSE' или 'NMSE', fit значения варьируются между-Inf и 1.
0 — Совершенная подгонка к справочным данным (обнуляют ошибку),
Inf — Плохая подгонка
1 X не лучше, чем прямая линия при соответствии с xref
goodnessOfFit: Результат подгонки представляет ошибочную норму для всех трех функций стоимости со значением нуля, указывающего на совершенную подгонкуПоведение изменяется в R2020a
goodnessOfFit теперь возвращает ошибочную норму E как подходящее значение для всех трех функций стоимости (MSE, NRMSE и NMSE). Ранее goodnessOfFit возвращенный поразрядное дополнение до единицы ошибочной нормы, 1-E, для подходящих значений, которые использовали NRMSE или функции стоимости NMSE. Это изменение позволяет сопоставимую интерпретацию подходящего значения через эти три функции стоимости с идеальным подходящим значением нуля, представляющего совершенную подгонку.
Ранее вычисленный NRMSE и значения подгонки NMSE являются поразрядными дополнениями до единицы подходящих значений, вычисленных с текущим программным обеспечением. Точно так же значение подгонки NRMSE является теперь поразрядным дополнением до единицы подгонки, используемой в значении процента что compare вычисляет. Например, если предыдущий goodnessOfFit подходящее значение было 0.8, текущее подходящее значение 0.2. goodnessOfFit подходящее значение 0,2 эквивалентно compare подходящий процент 80%.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.