step

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

Описание

пример

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

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

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

  • recursiveARstep возвращает оцененные полиномиальные A (q) коэффициенты одной выходной AR-модели с помощью выходных данных временных рядов.
    [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 (<reservedrangesplaceholder6>), B (<reservedrangesplaceholder4>), и C (<reservedrangesplaceholder2>) коэффициенты модели SISO ARMAX, используя измеряемые входные и выходные данные, u и y, соответственно.
    [A,B,C,EstimatedOutput] = step(obj,y,u).

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

  • recursiveBJstep возвращает предполагаемый полином B (<reservedrangesplaceholder8>), C (<reservedrangesplaceholder6>), D (<reservedrangesplaceholder4>), и F (<reservedrangesplaceholder2>) коэффициенты модели полинома Коробки-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 в оперативном режиме с помощью алгоритма рекурсивной оценки по умолчанию, Formetting Factor. Измените 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. The axes 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. The axes 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
recursiveARTimeseriesНеприменимо
recursiveARMATimeseriesНеприменимо
recursiveARXSISO ARXДействительный скаляр
MISO ARX с 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