Подтвердите онлайновую оценку параметра в командной строке

Эта тема показывает, как подтвердить онлайновую оценку параметра в командной строке. Если валидация указывает на низкое доверие к оценке, то смотрите Поиск и устранение неисправностей Онлайновая Оценка Параметра. После того, как вы подтвердили онлайновые результаты оценки, можно сгенерировать код 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

Можно подтвердить снимок состояния предполагаемой модели с помощью команд валидации для оффлайновой оценки. Эта валидация только получает поведение независимой от времени модели. Для доступных оффлайновых методов валидации в 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).

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

| | | | | |

Похожие темы