Разрешите подходящие различия в значении между идентификацией модели и 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)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent z1 (y1), sys: 70.56%.

NRMSE соответствуют проценту, вычисленному compare ниже, чем подгонка что ssest вычисленный. Это нижнее значение, в основном, из-за несоответствия между горизонтами предсказания для ssest (значение по умолчанию 1) и сравните (значение по умолчанию Inf).

Повторно выполните compare использование аргумента 1 для горизонта предсказания.

figure
compare(z1,sys,1)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent z1 (y1), sys: 76.44%.

Изменение в горизонте предсказания разрешило большую часть несоответствия между подходящими значениями. Теперь 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)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent z1 (y1), sys: 76.4%.

Результат подгонки теперь совпадает с результатом подгонки от исходной оценки.

Этот метод подтверждает что ssest алгоритм и compare алгоритм приводит к тем же результатам с тем же начальным условием и настройками горизонта предсказания.

Этот пример имеет дело только с репродуцированием результатов, когда это необходимо, чтобы подтвердить соглашение между алгоритмом оценки и сравнить алгоритмом значения подгонки NRMSE, когда они относятся к исходным данным об оценке. Однако, когда вы используете compare чтобы подтвердить вашу модель против данных о валидации или сравнить совершенство нескольких моделей кандидата, используют compare значения по умолчанию для 'InitialCondition' и горизонт предсказания как правило.

Смотрите также

Похожие темы