Эта тема показывает, как подтвердить онлайновую оценку параметра в командной строке. Если валидация указывает на низкую уверенность в оценке, то смотрите Поиск и устранение неисправностей Онлайновая Оценка Параметра. После того, как вы подтвердили онлайновые результаты оценки, можно сгенерировать код C/C++ или автономное приложение с помощью MATLAB® Coder™ или MATLAB Compiler™.
Ошибка оценки является различием между измеренным выводом, y
, и предполагаемым выводом, EstimatedOutput
на каждом временном шаге.
obj = recursiveARX; [A,B,EstimatedOutput] = step(obj,y,u); estimationError = y-EstimatedOutput;
Здесь, u
является входными данными, в то время продвигаются.
Ошибки оценки (невязки) могут быть большими в начале оценки или когда существуют большие изменения параметра. Ошибка должна стать меньшей, когда оценки параметра сходятся. Небольшие ошибки относительно размера выходных параметров увеличивают уверенность в ориентировочных стоимостях.
Моделируйте предполагаемую модель и сравните моделируемые и измеренные выходные параметры. Для этого подайте измеренный вход в модель, которая использует предполагаемые изменяющиеся во времени значения параметров. Затем сравните образцовый вывод с измеренным выводом. Близкое соответствие между моделируемым выводом и измеренным выводом вселяет веру в ориентировочных стоимостях.
Ковариация параметра является мерой оцененной неопределенности в параметрах. Ковариация вычисляется, когда фактор упущения или алгоритмы оценки Фильтра Калмана используются.
Ковариация параметра вычисляется, принимая, что невязки являются белым шумом, и отклонение этих невязок равняется 1. Вы просматриваете ковариационную матрицу параметра с помощью свойства ParameterCovariance
Системы object™.
P = obj.ParameterCovariance;
Предполагаемые параметры могут быть рассмотрены как случайные переменные с отклонением, равным соответствующей диагонали ковариационной матрицы параметра, масштабируемой отклонением невязок (residualVariance
) на каждом временном шаге. Вы используете предварительные знания или вычисляете residualVariance
от невязок, e
. Где, e
является вектором ошибок оценки, estimationError
.
residualVariance = var(e);
Масштабируйте ковариацию параметра, чтобы вычислить отклонение предполагаемых параметров.
paramVariance = diag(P)*residualVariance;
Меньшее значение отклонения вселяет веру в ориентировочных стоимостях.
Можно подтвердить снимок состояния предполагаемой модели с помощью команд валидации для оффлайновой оценки. Эта валидация только получает поведение независимой от времени модели. Для доступных оффлайновых методов валидации в System Identification Toolbox™ смотрите Проверку допустимости модели.
Чтобы использовать оффлайновые команды, преобразуйте свой онлайновый Системный объект оценки, obj
, в объект модели idpoly
. Также преобразуйте свой поток данных о валидации ввода - вывода, Output(t) и Input(t), в объект iddata
.
sys = idpoly(obj); sys.Ts = Ts; z = iddata(Output,Input,Ts)
Здесь, Ts
является шагом расчета.
Это преобразование и любой последующий анализ не поддержаны MATLAB Coder.
Методы валидации включают:
Анализ невязок с помощью методов, таких как тест белизны и тест независимости с помощью оффлайновых команд, таких как resid
. Например, используйте resid(z,sys)
. Для получения информации об этих тестах смотрите то, Что Остаточный Анализ?.
Сравнение образцового вывода и измеренного вывода. Например, используйте compare(z,sys)
.
Сравнение различных онлайновых Системных объектов оценки.
Можно создать несколько версий Системного объекта с различными свойствами объектов, преобразовать каждого из них к объектам модели idpoly
и использовать compare
, чтобы выбрать лучший.
Если вы хотите скопировать существующий Системный объект и затем изменить свойства скопированного объекта, используйте команду clone
. Не создавайте дополнительные объекты с помощью синтаксиса obj2 = obj
. Любые изменения, внесенные в свойства нового Системного объекта, создали этот путь (obj2
), также изменяют свойства исходного Системного объекта (obj
).
recursiveAR
| recursiveARMA
| recursiveARMAX
| recursiveARX
| recursiveBJ
| recursiveLS
| recursiveOE