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'
и горизонта прогноза как правило.