step

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

Описание

пример

[EstimatedParameters,EstimatedOutput] = step(obj,y,InputData) параметры обновлений и выход модели, заданной в Системе object™, obj, с помощью измеренного выхода, y, и входные данные.

step помещает объект в заблокированное состояние. В заблокированном состоянии вы не можете изменить ненастраиваемые свойства объекта, такие как порядок модели, тип данных или алгоритм оценки.

EstimatedParameters и InputData зависьте от онлайнового Системного объекта оценки:

  • recursiveARstep возвращает предполагаемый полиномиальный A (q) коэффициенты одной модели выхода AR использование выходных данных timeseries.
    [A,EstimatedOutput] = step(obj,y)

  • recursiveARMAstep возвращает предполагаемый полиномиальный A (q) и C (q) коэффициенты одной модели выхода ARMA использование выходных данных timeseries, y.
    [A,C,EstimatedOutput] = step(obj,y)

  • recursiveARXstep возвращает предполагаемый полиномиальный A (q) и B (q) коэффициенты модели SISO или MISO ARX с помощью измеренных входных и выходных данных, u и y, соответственно.
    [A,B,EstimatedOutput] = step(obj,y,u).

  • recursiveARMAXstep возвращает предполагаемый полиномиальный A (q), B (q) и C (q) коэффициенты модели SISO ARMAX с помощью измеренных входных и выходных данных, u и y, соответственно.
    [A,B,C,EstimatedOutput] = step(obj,y,u).

  • recursiveOEstep возвращает предполагаемый полиномиальный B (q) и F (q) коэффициенты полиномиальной модели Output-Error SISO с помощью измеренных входных и выходных данных, u и y, соответственно.
    [B,F,EstimatedOutput] = step(obj,y,u).

  • recursiveBJstep возвращает предполагаемый полиномиальный B (q), C (q), D (q) и F (q) коэффициенты полиномиальной модели Бокса-Дженкинса SISO с помощью измеренных входных и выходных данных, u и y, соответственно.
    [B,C,D,F,EstimatedOutput] = step(obj,y,u).

  • recursiveLSstep возвращает предполагаемые системные параметры, θ, одной выходной системы, которая линейна в предполагаемых параметрах, с помощью регрессоров H и выходные данные y.
    [theta,EstimatedOutput] = step(obj,y,H).

Примеры

свернуть все

Создайте Системный объект для онлайновой оценки параметра модели ARMAX.

obj = recursiveARMAX;

Модель ARMAX имеет структуру по умолчанию полиномами порядка 1 и начальных полиномиальных содействующих значений, eps.

Загрузите данные об оценке. В этом примере используйте статический набор данных для рисунка.

load iddata1 z1;
output = z1.y;
input = z1.u;

Оцените параметры модели ARMAX онлайн с помощью step.

for i = 1:numel(input)
[A,B,C,EstimatedOutput] = step(obj,output(i),input(i));
end

Просмотрите текущие ориентировочные стоимости полиномиального A коэффициенты.

obj.A
ans = 1×2

    1.0000   -0.8298

Просмотрите текущую оценку ковариации параметров.

obj.ParameterCovariance
ans = 3×3

    0.0001    0.0001    0.0001
    0.0001    0.0032    0.0000
    0.0001    0.0000    0.0001

Просмотрите текущий предполагаемый вывод.

EstimatedOutput
EstimatedOutput = -4.5595

Создайте Системный объект для онлайновой оценки параметра модели ARMAX.

obj = recursiveARMAX;

Модель ARMAX имеет структуру по умолчанию полиномами порядка 1 и начальных полиномиальных содействующих значений, eps.

Загрузите данные об оценке. В этом примере используйте статический набор данных для рисунка.

load iddata1 z1;
output = z1.y;
input = z1.u;
dataSize = numel(input);

Оцените параметры модели ARMAX онлайн с помощью рекурсивного алгоритма оценки по умолчанию, Упущение Фактора. Измените ForgettingFactor свойство во время онлайновой оценки параметра.

for i = 1:dataSize
    if i == dataSize/2
        obj.ForgettingFactor = 0.98;
    end
[A,B,C,EstimatedOutput] = step(obj,output(i),input(i));
end

Система имеет два параметра и представлена как:

y(t)=a1u(t)+a2u(t-1)

Здесь,

  • u и y входные и выходные данные в реальном времени, соответственно.

  • u(t) и u(t-1) регрессоры, H, из системы.

  • a1 и a2 параметры, theta, из системы.

Создайте Системный объект для онлайновой оценки с помощью рекурсивного алгоритма наименьших квадратов.

obj = recursiveLS(2);

Загрузите данные об оценке, которые для этого примера являются статическим набором данных.

load iddata3
input = z3.u;
output = z3.y;

Создайте переменную, чтобы сохранить u(t-1). Эта переменная обновляется на каждом временном шаге.

oldInput = 0;

Оцените параметры и выведите использование step и данные ввода - вывода, обеспечивая текущую пару регрессора в H. Вызовите step функционируйте неявно путем вызова obj системный объект с входными параметрами.

for i = 1:numel(input)
    H = [input(i) oldInput];
    [theta, EstimatedOutput] = obj(output(i),H);
    estimatedOut(i)= EstimatedOutput;
    theta_est(i,:) = theta;
    oldInput = input(i);
end

Постройте измеренные и предполагаемые выходные данные.

numSample = 1:numel(input);
plot(numSample,output,'b',numSample,estimatedOut,'r--');
legend('Measured Output','Estimated Output');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Measured Output, Estimated Output.

Постройте параметры.

plot(numSample,theta_est(:,1),numSample,theta_est(:,2))
title('Parameter Estimates for Recursive Least Squares Estimation')
legend("theta1","theta2")

Figure contains an axes object. The axes object with title Parameter Estimates for Recursive Least Squares Estimation contains 2 objects of type line. These objects represent theta1, theta2.

Просмотрите итоговые оценки.

theta_final = theta
theta_final = 2×1

   -1.5322
   -0.0235

Входные параметры

свернуть все

Системный объект для онлайновой оценки параметра, созданного использования одной из следующих команд:

step команда обновляет параметры модели с помощью рекурсивного алгоритма оценки, заданного в obj и входящие данные ввода - вывода.

Выходные данные, полученные в режиме реального времени в виде действительного скаляра.

Входные данные, полученные в режиме реального времени в виде скаляра или вектора из вещественных значений в зависимости от типа Системного объекта.

Системный объектТип моделиInputData
recursiveARВременные рядыНе применяется
recursiveARMAВременные рядыНе применяется
recursiveARXARX SISOДействительный скаляр
ARX MISO с входными параметрами NВектор-столбец длины N в виде вещественных значений
recursiveARMAXSISOДействительный скаляр
recursiveOESISOДействительный скаляр
recursiveBJSISOДействительный скаляр
recursiveLSОдна выходная система с системными параметрами NpРегрессоры, H в виде вектора из вещественных значений длины Np

Выходные аргументы

свернуть все

Предполагаемые параметры модели, возвращенные как векторы из вещественных значений. Количество предполагаемых параметров, и таким образом, step синтаксис, зависьте от типа Системного объекта:

Онлайновый системный объект оценкиПредполагаемые параметры
recursiveAR

Полиномиальный A (q) коэффициенты

recursiveARMA

Полиномы A (q) и C (q) коэффициенты

recursiveARX

Полиномы A (q) и B (q) коэффициенты

recursiveARMAX

Полиномы A (q), B (q) и C (q) коэффициенты

recursiveOE

Полиномы B (q) и F (q)

recursiveBJ

Полиномы B (q), C (q), D (q) и F (q) коэффициенты

recursiveLS

Системные параметры, θ

Оцененный выходной параметр, возвращенный как действительный скаляр. Выход оценивается с помощью данных об оценке ввода - вывода, текущих значений параметров и рекурсивного алгоритма оценки, заданного в obj.

Советы

  • Запуск в R2016b, вместо того, чтобы использовать step команда, чтобы обновить оценки параметра модели, можно вызвать Системный объект с входными параметрами, как будто это была функция. Например, [A,EstimatedOutput] = step(obj,y) и [A,EstimatedOutput] = obj(y) выполните эквивалентные операции.

Введенный в R2015b