recursiveLS

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

Синтаксис

obj = recursiveLS
obj = recursiveLS(Np)
obj = recursiveLS(Np,theta0)
obj = recursiveLS(___,Name,Value)

Описание

Используйте recursiveLS команда для оценки параметра с данными в реальном времени. Если все данные, необходимые для оценки, доступны сразу, и вы оцениваете инвариантную по времени модель, используйте mldivide, \.

obj = recursiveLS создает Системный object™ для онлайн-оценки параметров одной выходной системы по умолчанию, которая линейна в оценочных параметрах. Такая система может быть представлена как:

y (<reservedrangesplaceholder6>) = <reservedrangesplaceholder5>(<reservedrangesplaceholder4>)<reservedrangesplaceholder3>(<reservedrangesplaceholder2>)+<reservedrangesplaceholder1>(<reservedrangesplaceholder0>).

Здесь y выход, θ параметры, H регрессоры, и e является нарушение порядка белого шума. Система по умолчанию имеет один параметр с начальным значением параметров 1.

После создания объекта используйте step команда для обновления оценок параметров модели с помощью рекурсивных алгоритмов наименьших квадратов и данных в реальном времени. Также можно вызвать объект непосредственно. Для получения дополнительной информации см. советы».

obj = recursiveLS(Np) также задает количество параметров, которые будут оценены.

obj = recursiveLS(Np,theta0) также задает количество параметров и начальные значения параметров.

obj = recursiveLS(___,Name,Value) задает дополнительные атрибуты системы и алгоритм рекурсивной оценки с помощью одного или нескольких Name,Value аргументы в виде пар.

Описание объекта

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

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

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

Можно использовать следующие команды с онлайновыми Системными объектами оценки в System Identification Toolbox™:

КомандаОписание
step

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

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

release

Разблокируйте Системный объект. Используйте эту команду, чтобы включить настройку нетронутых параметров.

reset

Обнулите внутренние состояния заблокированного системного объекта до начальных значений и оставьте объект заблокированным.

clone

Создайте другой Системный объект с теми же значениями свойств объекта.

Не создавать дополнительные объекты с помощью синтаксиса obj2 = obj. Любые изменения, внесенные в свойства нового объекта, созданные таким образом (obj2) также измените свойства исходного объекта (obj).

isLocked

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

Используйте recursiveLS команда для создания оперативного системного объекта оценки. Затем оцените системные параметры (theta) и выход с помощью step команда с регрессорами и входящими выходными данными, H и y.

[theta,EstimatedOutput] = step(obj,y,H)

Для recursiveLS свойства объекта, см. Свойства.

Примеры

свернуть все

obj = recursiveLS
obj = 
  recursiveLS with properties:

            NumberOfParameters: 1
                    Parameters: []
             InitialParameters: 1
           ParameterCovariance: []
    InitialParameterCovariance: 10000
              EstimationMethod: 'ForgettingFactor'
              ForgettingFactor: 1
              EnableAdaptation: true
                       History: 'Infinite'
               InputProcessing: 'Sample-based'
                      DataType: 'double'

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

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

Используйте основанные на кадрах сигналы с recursiveLS команда. Интерфейсы машины часто обеспечивают данные датчика в системах координат, содержащих несколько выборок, а не в отдельных выбороках. The recursiveLS объект принимает эти системы координат непосредственно при установке InputProcessing на Frame-based.

Объект использует те же алгоритмы оценки для обработки входных данных на основе сэмплирования и на основе фрейма. Результаты оценки идентичны. Однако существуют некоторые особые факторы для работы с основанными на кадрах входами.

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

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

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

Вот,

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

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

  • a1 и a2 являются параметрами,θ, системы.

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

obj_f = recursiveLS(2,'InputProcessing','Frame-Based');

Загрузите данные, которые содержат входные и выходные сигналы временных рядов. Каждый сигнал состоит из 30 систем координат и каждая система координат содержит десять отдельных временных выборок.

load iddata3_frames input_sig_frame output_sig_frame
input = input_sig_frame.data;
output = output_sig_frame.data;
numframes = size(input,3)
numframes = 30
mframe = size(input,1)
mframe = 10

Инициализируйте систему координат регрессора, который для данной системы координат имеет вид

Hf=[u1u0u2u1u10u9],

где самая последняя точка в системе координат является u10.

Hframe = zeros(10,2);

В этом примере первого порядка система координат регрессора включает в себя одну точку от предыдущей системы координат. Инициализируйте эту точку.

oldInput = 0;

Оцените параметры и вывод с помощью step и входно-выходные данные, поддержание системы координат регрессора тока в Hframe.

  • Входные и выходные массивы имеют три размерности. Третья размерность является индексом системы координат, и первые две размерности представляют содержимое отдельных систем координат.

  • Используйте circshift функция для заполнения второго столбца Hframe с прошлым input значение для каждой пары регрессоров путем сдвига вектора входа на одно положение.

  • Заполните Hframe элемент, содержащий самое старое значение, Hframe(1,2), со значением регрессора, сохраненным из предыдущей системы координат.

  • Активируйте step функция неявно путем вызова obj системный объект с входными параметрами. The step функция совместима с системами координат, поэтому никакая функция цикла в системе координат не требуется.

  • Сохраните самое последнее входное значение для вычисления следующей системы координат.

EstimatedOutput = zeros(10,1,30);
theta = zeros(2,30);
for i = 1:numframes
    Hframe = [input(:,:,i) circshift(input(:,:,i),1)];
    Hframe(1,2) = oldInput;
    [theta(:,i), EstimatedOutput(:,:,i)] = obj_f(output(:,:,i),Hframe);
    oldInput = input(10,:,i);
end

Постройте график параметров.

theta1 = theta(1,:);
theta2 = theta(2,:);
iframe = 1:numframes;
plot(iframe,theta1,iframe,theta2)
title('Frame-Based Recursive Least Squares Estimation')
legend('theta1','theta2','location','best')

Figure contains an axes. The axes with title Frame-Based Recursive Least Squares Estimation contains 2 objects of type line. These objects represent theta1, theta2.

Просмотр окончательных оценок.

theta_final = theta(:,numframes)
theta_final = 2×1

   -1.5322
   -0.0235

Окончательные оценки идентичны выборочной оценке.

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

obj = recursiveLS(2,[0.8 1],'InitialParameterCovariance',0.1);

InitialParameterCovariance представляет неопределенность в вашем предположении для начальных параметров. Как правило, значение по умолчанию InitialParameterCovariance (10000) слишком велик относительно значений параметров. Это приводит к тому, что начальные предположения придаются меньшее значение во время оценки. Если у вас есть доверие в начальных предположениях параметра, задайте меньшую ковариацию начального параметра.

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

свернуть все

Количество параметров в системе, заданное как положительное целое число.

Начальное значение параметров, заданное как одно из следующего:

  • Скаляр - Все параметры имеют одно и то же начальное значение.

  • Вектор действительных значений длины Np- i-й параметр имеет начальное значение theta0(i).

Начальное значение по умолчанию для всех параметров 1.

Примечание

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Использование Name,Value аргументы для задания свойств, доступных для записи recursiveLS Системный объект во время создания объекта. Для примера, obj = recursiveLS(2,'EstimationMethod','Gradient') создает Системный объект для оценки системных параметров с помощью 'Gradient' рекурсивный алгоритм оценки.

Свойства

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

Использование Name,Value аргументы для задания свойств, доступных для записи recursiveLS объекты во время создания объекта. После создания объекта используйте запись через точку для изменения настраиваемых свойств.

obj = recursiveLS;
obj.ForgettingFactor = 0.99;

NumberOfParameters

Количество параметров, которые будут оценены, возвращено как положительное целое число.

NumberOfParameters является свойством только для чтения. Если Np задается во время конструкции объекта, NumberOfParameters принимает значение, присвоенное Np.

По умолчанию: 1

Parameters

Оценочные параметры, возвращенные как вектор-столбец вещественных значений.

Parameters является свойством только для чтения и первоначально пуст после создания объекта. Он заполняется после того, как вы используете step команда для оценки оперативного параметра.

InitialParameters

Начальные значения параметров, заданные как одно из следующего:

  • Скаляр - Все параметры имеют одно и то же начальное значение.

  • Вектор действительных значений длины Np- i-й параметр имеет начальное значение InitialParameters(i).

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

InitialParameters является настраиваемым свойством. Можно изменить InitialParameters когда объект находится в заблокированном состоянии.

По умолчанию: 1

InitialOutputs

Начальные значения буфера выходов в конечной исторической оценке, заданные как 0 или как вектор W -by-1, где W - длина окна.

The InitialOutputs свойство предоставляет средство управления начальным поведением алгоритма.

Когда InitialOutputs установлено в 0объект заполняет буфер нулями.

Если начальный буфер установлен в 0 или не содержит достаточной информации, вы видите предупреждающее сообщение на начальной фазе вашей оценки. Предупреждение должно проясниться через несколько циклов. Количество циклов, которое требуется для буферизации достаточной информации, зависит от порядка ваших полиномов и ваших входных задержек. Если предупреждение сохраняется, необходимо оценить содержимое сигналов.

Задайте InitialOutputs только когда History является Finite.

InitialOutputs является настраиваемым свойством. Можно изменить InitialOutputs когда объект находится в заблокированном состоянии.

По умолчанию: 0

InitialRegressors

Начальные значения буфера регрессоров в конечной исторической оценке, заданные как 0 или как W -by- Np матрица, где W - длина окна и Np количество параметров.

The InitialRegressors свойство предоставляет средство управления начальным поведением алгоритма.

Когда InitialRegressors установлено в 0объект заполняет буфер нулями.

Если начальный буфер установлен в 0 или не содержит достаточной информации, вы видите предупреждающее сообщение на начальной фазе вашей оценки. Предупреждение должно проясниться через несколько циклов. Количество циклов, которое требуется для буферизации достаточной информации, зависит от порядка ваших полиномов и ваших входных задержек. Если предупреждение сохраняется, необходимо оценить содержимое сигналов.

Задайте InitialRegressors только когда History является Finite.

InitialRegressors является настраиваемым свойством. Можно изменить InitialRegressors когда объект находится в заблокированном состоянии.

По умолчанию: 0

ParameterCovariance

Предполагаемая ковариационная P из параметров, возвращенных как N -by N симметричная положительно-определенная матрица. N - количество параметров, которые будут оценены. Программное обеспечение вычисляет P принимая, что невязки (различие между оцененными и измеренными выходами) являются белым шумом, и отклонение этих невязок равно 1.

ParameterCovariance применяется только тогда, когда EstimationMethod является 'ForgettingFactor' или 'KalmanFilter' или когда History является Finite.

Толкование P зависит от ваших настроек для History и EstimationMethod свойства.

  • Если History является Infinite, затем ваш EstimationMethod результаты выбора одного из следующих:

    • 'ForgettingFactor' — (R2 /2) P приблизительно равен ковариационной матрице оцененных параметров, где R2 является истинным отклонением невязок.

    • 'KalmanFilter'<reservedrangesplaceholder1> <reservedrangesplaceholder0> - ковариационная матрица предполагаемых параметров, а R1/ R2 - ковариационная матрица изменений параметров. Здесь R1 является матрицей ковариации, в которой вы задаете ProcessNoiseCovariance.

  • Если History является Finite (оценка скользящего окна) - R2 P - ковариация предполагаемых параметров. Алгоритм скользящего окна не использует эту ковариацию в процессе оценки параметра. Однако алгоритм вычисляет ковариацию для выхода, так что вы можете использовать его для статистической оценки.

ParameterCovariance является свойством только для чтения и первоначально пуст после создания объекта. Он заполняется после того, как вы используете step команда для оценки оперативного параметра.

InitialParameterCovariance

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

  • Действительная положительная скалярная величина, α - Ковариационная матрица - N -by N диагональная матрица с α в качестве диагональных элементов. N - количество параметров, которые будут оценены.

  • Вектор действительных положительных скаляров, [α 1,..., α N] - ковариационная матрица является N -by N диагональной матрицей с 1,..., α N] в качестве диагональных элементов.

  • N -by N симметричная положительно-определенная матрица.

InitialParameterCovariance представляет неопределенность в начальных оценках параметров. Для больших значений InitialParameterCovariance, меньшее значение придается начальным значениям параметров и больше - измеренным данным во время начала оценки с помощью step.

Используйте только тогда, когда EstimationMethod является 'ForgettingFactor' или 'KalmanFilter'.

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

По умолчанию: 10000

EstimationMethod

Рекурсивный алгоритм оценки методом наименьших квадратов, используемый для онлайн-оценки параметров модели, задается как одно из следующих значений:

  • 'ForgettingFactor' - Алгоритм, используемый для оценки параметра

  • 'KalmanFilter' - Алгоритм, используемый для оценки параметра

  • 'NormalizedGradient' - Алгоритм, используемый для оценки параметра

  • 'Gradient' - Ненормализованный алгоритм градиента, используемый для оценки параметра

Алгоритмы забывающего фактора и фильтра Калмана более интенсивны в вычислительном отношении, чем градиентные и ненормализованные градиентные методы. Однако они имеют лучшие свойства сходимости. Для получения информации об этих алгоритмах см. «Рекурсивные алгоритмы для оценки Параметра в режиме онлайн».

Все эти методы используют бесконечную историю данных и доступны только при History является 'Infinite'.

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

По умолчанию: Forgetting Factor

ForgettingFactor

Коэффициент забывания, λ, релевантный для оценки параметра, заданный как скаляр в области значений (0,1].

Предположим, что система остается приблизительно постоянной на T0 выборках. Можно выбрать λ такие, что:

T0=11λ

  • Установка λ = 1 соответствует «no formetting» и оценке постоянных коэффициентов.

  • Установка λ < 1 подразумевает, что прошлые измерения менее значимы для оценки параметра и могут быть «забыты». Установите λ < 1, чтобы оценить изменяющиеся во времени коэффициенты.

Типичные варианты λ находятся в области значений [0.98 0.995].

Используйте только тогда, когда EstimationMethod является 'ForgettingFactor'.

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

По умолчанию: 1

EnableAdapation

Включите или отключите оценку параметра, заданную как одно из следующего:

  • true или 1- The step команда оценивает значения параметров для того временного шага и обновляет значения параметров.

  • false или 0 - The step команда не обновляет параметры для этого временного шага и вместо этого выводит последнее оцененное значение. Можно использовать эту опцию, когда система входит в режим, где значения параметров не изменяются со временем.

    Примечание

    Если вы задаете EnableAdapation на false, вы все еще должны выполнить step команда. Не пропускать step сохранить значения параметров постоянными, потому что оценка параметров зависит от тока и прошлых измерений ввода-вывода. step обеспечивает сохранение прошедших вводов-выводов данных, даже если они не обновляют параметры.

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

По умолчанию: true

DataType

Точность параметров с плавающей точкой, заданная как одно из следующих значений:

  • 'double' - Плавающая точка двойной точности

  • 'single' - Одинарная точность с плавающей точкой

Настройка DataType на 'single' сохраняет память, но приводит к потере точности. Задайте DataType исходя из точности, требуемой целевым процессором, на котором будет развернут сгенерированный код.

DataType является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 'double'

ProcessNoiseCovariance

Ковариационная матрица изменений параметров, заданная как одно из следующего:

  • Действительный неотрицательный скаляр, α - Ковариационная матрица - N -by N диагональная матрица с α в качестве диагональных элементов.

  • Вектор реальных неотрицательных скаляров, [<reservedrangesplaceholder7> 1..., <reservedrangesplaceholder6> <reservedrangesplaceholder5>] - Ковариационная матрица N N диагональной матрицей, с [<reservedrangesplaceholder2> 1..., <reservedrangesplaceholder1> <reservedrangesplaceholder0>] как диагональные элементы.

  • N -by N симметричная положительная полуопределенная матрица.

N - количество параметров, которые будут оценены.

ProcessNoiseCovariance применяется, когда EstimationMethod является 'KalmanFilter'.

Алгоритм фильтра Калмана обрабатывает параметры как состояния динамической системы и оценивает эти параметры с помощью фильтра Калмана. ProcessNoiseCovariance - ковариация шума процесса, действующая на эти параметры. Нулевые значения в шумовой ковариационной матрице соответствуют оценке постоянных коэффициентов. Значения, большие 0, соответствуют изменяющимся во времени параметрам. Используйте большие значения для быстрого изменения параметров. Однако большие значения приводят к более шумным оценкам параметра.

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

По умолчанию: 0.1

AdaptationGain

Коэффициент усиления адаптации, γ, используемый в алгоритмах рекурсивной оценки градиента, задается как положительная скалярная величина.

AdaptationGain применяется, когда EstimationMethod является 'Gradient' или 'NormalizedGradient'.

Задайте большое значение для AdaptationGain когда ваши измерения имеют высокое отношение сигнал/шум.

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

По умолчанию: 1

NormalizationBias

Смещение при масштабировании коэффициента усиления адаптации, используемое в 'NormalizedGradient' метод, заданный как неотрицательный скаляр.

NormalizationBias применяется, когда EstimationMethod является 'NormalizedGradient'.

Нормированный алгоритм градиента делит коэффициент усиления адаптации на каждом шаге на квадрат двух норм вектора градиента. Если градиент близок к нулю, это может вызвать переходы в оценочных параметрах. NormalizationBias - термин, введенный в знаменателе для предотвращения этих переходов. Увеличение NormalizationBias если вы наблюдаете переходы в предполагаемых параметрах.

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

По умолчанию: eps

History

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

  • 'Infinite' - Используйте алгоритм, который направлен на минимизацию ошибки между наблюдаемым и предсказанным выходами для всех временных шагов от начала симуляции.

  • 'Finite' - Используйте алгоритм, который направлен на минимизацию ошибки между наблюдаемым и предсказанным выходами для конечного числа прошлых временных шагов.

Алгоритмы с бесконечной историей стремятся создать оценки параметров, которые объясняют все данные с начала симуляции. Эти алгоритмы все еще используют фиксированный объем памяти, который не растет с течением времени. Объект предоставляет несколько алгоритмов 'Infinite' History тип. Установка этой опции активирует EstimationMethod свойство, с которым вы задаете алгоритм.

Алгоритмы с конечной историей направлены на создание оценок параметров, которые объясняют только конечное число прошлых выборок данных. Этот метод также называется sliding-window оценкой. Объект предоставляет один алгоритм 'Finite' тип. Установка этой опции активирует WindowLength свойство, которое масштабирует окно.

Для получения дополнительной информации о рекурсивных методах оценки см. «Рекурсивные алгоритмы для онлайн-оценки параметра».

History является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 'Infinite'

WindowLength

Размер окна, определяющий количество временных выборок, используемых для метода оценки скользящего окна, заданный как положительное целое число. Задайте WindowLength только когда History является Finite.

Выберите размер окна, которое балансирует эффективность оценки с вычислительной нагрузкой и нагрузкой на память. Размерные коэффициенты включают количество и временное отклонение параметров в вашей модели. Всегда задайте Window Length в выборках, даже если вы используете входную обработку на основе фрейма.

WindowLength должно быть больше или равно количеству предполагаемых параметров.

Подходящая длина окна не зависит от того, используете ли вы обработку входа на основе сэмплирования или фрейма (см InputProcessing). Однако при использовании обработки на основе фрейма длина окна должна быть больше или равной количеству выборок (временных шагов), содержащихся в системе координат.

WindowLength является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 200

InputProcessing

Опция для обработки входа на основе сэмплирования или фрейма, заданная как вектор символов или строка.

  • Sample-based обработка действует на сигналы, передаваемые потоком по одной выборке за раз.

  • Frame-based обработка действует на сигналы, содержащие выборки из нескольких временных шагов. Многие интерфейсы датчиков машины упаковывают несколько выборок и передают эти выборки вместе в системах координат. Frame-based обработка позволяет вводить эти данные непосредственно без необходимости их первой распаковки.

Ваши InputProcessing спецификация влияет на размерности для сигналов входа и выхода при использовании step команда:

[theta,EstimatedOutput] = step(obj,y,H)

  • Sample-based

    • y и EstimatedOutput являются скалярами.

    • H является 1-байт- Np вектор, где Np количество параметров.

    • Frame-based с M выборками на систему координат

      • y и EstimatedOutput M векторы -by-1.

      • H является M -by- Np матрица.

InputProcessing является свойством nontunable. Он может быть установлен только во время конструкции объекта с помощью Name,Value аргументы и не могут быть изменены после.

По умолчанию: 'Sample-based'

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

свернуть все

Системный объект для онлайн-оценки параметра, возвращенный как a recursiveLS Системный объект. Использовать step команда для оценки параметров системы. Затем можно получить доступ к предполагаемым параметрам и ковариации параметра с помощью записи через точку. Для примера введите obj.Parameters для просмотра предполагаемых параметров.

Совет

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

Расширенные возможности

.
Введенный в R2015b