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