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' и горизонт предсказания как общее правило.