шаг

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

Синтаксис

[EstimatedParameters,EstimatedOutput] = step(obj,y,InputData)

Описание

пример

[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) коэффициенты модели полинома Ошибки на выходе SISO с помощью измеренных входных и выходных данных, u и y, соответственно.
    [B,F,EstimatedOutput] = step(obj,y,u).

  • recursiveBJstep возвращает предполагаемый полиномиальный B (q), C (q), D (q) и F (q) коэффициенты модели полинома Поля-Jenkins 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');

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

plot(numSample,theta_est(:,1),numSample,theta_est(:,2))
title('Parameter Estimates for Recursive Least Squares Estimation')
legend("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