compare
КомандаВ этом примере показано, как NRMSE подгоняет значения, вычисленные функциями идентификации модели и compare
функция может отличаться из-за различий в начальных условиях и настройках горизонта предсказания.
Когда вы идентифицируете модель, алгоритм идентификации модели возвращает значение для процента подгонки к данным измерений, которые вы использовали. Если вы тогда используете compare
чтобы построить график результатов симуляции модели относительно измеренных данных, результаты подгонки не всегда идентичны. Это различие обусловлено:
Алгоритм идентификации модели и compare
алгоритм использует различные методы для оценки начальных условий.
Алгоритм идентификации модели использует по умолчанию одношаговый prediction
особое внимание, но compare
использует значение по умолчанию Inf
- эквивалентно simulation
особое внимание. См. Моделирование и предсказание идентифицированных выходов модели.
Эти различия, как правило, являются smalI, и они не должны влиять на рабочий процесс выбора и валидации вашей модели. Если вы хотите точно воспроизвести результаты оценки подгонки, необходимо согласовать горизонт предсказания и начальные настройки условий, используемые в compare
со значениями, используемыми во время оценки модели.
Загрузите данные и оцените модель пространства состояний трех состояний.
load iddata1 z1; sys = ssest(z1,3);
Оцените модель пространства состояний из измеренных данных.
Разрешить ssest
использовать его 'Focus' по умолчанию
установка 'prediction
', и его значения по умолчанию 'InitialState'
установка оценки ' auto '. The 'auto'
установка причины ssest
чтобы выбрать:
'zero'
если начальная ошибка предсказания не значительно выше, чем основанная на оценке ошибка, или если система FRD
'estimate'
для большинства наборов данных с одним экспериментом, если 'zero'
не является приемлемым
'backcast'
для мультиэкспериментальных наборов данных, если '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'
и горизонт предсказания как общее правило.