Разрешите подходящие различия в значении между образцовой идентификацией и командой compare

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

Когда вы идентифицируете модель, образцовый идентификационный алгоритм возвращает значение для подходящего процента к данным об измерении, которые вы использовали. Если вы затем используете compare, чтобы построить результаты симуляции модели против результатов измерений, результаты подгонки не всегда идентичны. Это различие то, потому что:

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

  • Алгоритм образцовой идентификации использует значение по умолчанию особого внимания prediction с одним шагом, но compare использует значение по умолчанию Inf — эквивалентный особому вниманию simulation. Смотрите Моделируют и Предсказывают Идентифицированный Образцовый Вывод.

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

Загрузите данные и оцените модель в пространстве состояний с тремя состояниями.

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

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

Позвольте ssest использовать свою установку 'Focus' по умолчанию 'prediction' и свою установку оценки 'InitialState' по умолчанию 'auto'. Установка 'auto' заставляет ssest выбирать:

  • 'zero', если начальная ошибка прогноза не значительно выше, чем основанная на оценке ошибка, или если система является FRD

  • 'estimate' для большинства наборов данных одно эксперимента, если 'zero' не приемлем

  • 'backcast' для наборов данных мультиэксперимента, if 'zero' не приемлем

Для получения дополнительной информации смотрите ssestOptions.

Можно получить автоматически выбранную опцию начального состояния, вектор начального состояния и процент подгонки NRMSE от отчета оценки для sys.

sys_is = sys.Report.InitialState
sys_is = 
'zero'
sys_x0 = sys.Report.Parameters.X0
sys_x0 = 3×1

     0
     0
     0

sys_fit = sys.Report.Fit.FitPercent
sys_fit = 76.4001

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

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

figure
compare(z1,sys)

Процент подгонки NRMSE, вычисленный compare, ниже, чем подгонка, которую вычислил ssest. Это нижнее значение, в основном, из-за несоответствия между горизонтами прогноза для ssest (значение по умолчанию 1), и сравните (значение по умолчанию Inf).

Повторно выполните compare с помощью аргумента 1 для горизонта прогноза.

figure
compare(z1,sys,1)

Изменение в горизонте прогноза разрешило большую часть несоответствия между подходящими значениями. Теперь подгонка compare превышает подгонку ssest. Это более высокое значение - то, потому что ssest установил начальные состояния на 0, в то время как compare оценил начальные состояния. Можно заняться расследованиями, как далеко независимо векторы начального состояния путем повторного выполнения compare с выходными аргументами.

[y1,fit1,x0c] = compare(z1,sys,1);
x0c
x0c = 3×1

   -0.0063
   -0.0012
    0.0180

x0c является маленьким, но не нуль как sys_x0. Чтобы воспроизвести начальные условия ssest в compare, непосредственно установите опцию 'InitialCondition' на sys_x0. Затем запустите compare с помощью обновленного набора опции.

compareOpt = compareOptions('InitialCondition',sys_x0);
figure
compare(z1,sys,1,compareOpt)

Результат подгонки теперь совпадает с результатом подгонки от исходной оценки.

Этот метод подтверждает, что алгоритм ssest и алгоритм compare приводят к тем же результатам с тем же начальным условием и настройками горизонта прогноза.

Этот пример имеет дело только с репродуцированием результатов когда это необходимо, чтобы подтвердить соглашение между алгоритмом оценки и сравнить алгоритмом значения подгонки NRMSE, когда они относятся к исходным данным об оценке. Однако, когда вы используете compare, чтобы подтвердить вашу модель против данных о валидации или сравнить совершенство нескольких моделей кандидата, используйте значения по умолчанию compare для 'InitialCondition' и горизонта прогноза как правило.

Смотрите также

Похожие темы