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