getreg

Выражения регрессора и численные значения в нелинейной модели ARX

Синтаксис

Rs = getreg(model)
Rs = getreg(model,subset)
Rm = getreg(model,subset,data)
Rm = getreg(model,subset,data,init)

Описание

Rs = getreg(model) возвращает выражения для вычислительных регрессоров в нелинейной модели ARX. model idnlarx объект.

Rs = getreg(model,subset) возвращает выражения регрессора для заданного подмножества регрессоров.

Rm = getreg(model,subset,data) возвращает значения регрессора как матрицу для заданного подмножества регрессоров.

Rm = getreg(model,subset,data,init) возвращает значения регрессора как матрицы для заданного подмножества регрессоров. Первый N строки каждой матрицы регрессора зависят от начальных состояний init, где N максимальная задержка регрессоров (см. getDelayInfo). Для нескольких - выходные модели, Rm массив ячеек массивов ячеек.

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

data

iddata объект, содержащий результаты измерений.

init

Начальные условия ваших данных:

  • 'z' (значение по умолчанию) задает нулевое начальное состояние.

  • Действительный вектор-столбец, содержащий значения начального состояния. значения входных и выходных данных в момент времени перед первой выборкой в data. Чтобы создать вектор начального состояния из данных ввода - вывода, используйте data2state команда. Для данных нескольких-экспериментов это - матрица, где каждый столбец задает начальное состояние модели, соответствующей тому эксперименту.

  • iddata объект, содержащий выборки ввода и вывода в моменты времени прежде к первой выборке в data. Когда iddata объект содержит больше выборок, чем максимальная задержка модели, только новые выборки используются. Минимальное количество требуемых выборок равно max(getDelayInfo(model)).

model

iddata объект, представляющий нелинейную модель ARX.

subset

Подмножество всех регрессоров в виде одного из следующих значений:

  • 'all' (По умолчанию) — Все регрессоры.

  • 'custom'— Только пользовательские регрессоры.

  • 'input'— Только стандартные регрессоры вычисляются из входных данных.

  • 'linear'— Только регрессоры, не используемые в нелинейном блоке.

  • 'nonlinear'— Только регрессоры используются в нелинейном блоке.

    Примечание

    Можно использовать 'nl' как сокращение 'nonlinear'.

  • 'output'— Только регрессоры вычисляются из выходных данных.

  • 'standard'— Только стандартные регрессоры (исключая любые пользовательские регрессоры).

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

Rm

Матрица значений регрессора для всех или заданного подмножества регрессоров. Каждая матрица в Rm содержит столько же строк, сколько существуют выборки данных. Для модели с ny выходные параметры, Rm ny- 1 массив ячеек матриц. Когда data содержит несколько экспериментов, Rm массив ячеек, где каждый элемент соответствует матрице значений регрессора для эксперимента.

Rs

Выражения регрессора, представленные как массив ячеек из символьных векторов. Для модели с ny выходные параметры, Rs ny- 1 массив ячеек массива ячеек из символьных векторов. Например, выражение 'u1(t-2)' вычисляет регрессор путем задержки входного сигнала u1 к двум разам выборки. Точно так же выражение 'y2(t-1)' вычисляет регрессор путем задержки выходного сигнала y2 одной выборкой времени.

Порядок регрессоров в Rs соответствует индексам регрессора в idnlarx свойство объекта model.NonlinearRegressors.

Примеры

свернуть все

Загрузите выборочные данные u и y.

  load twotankdata;
  Ts = 0.2;

Шаг расчета составляет 0,2 min

Создайте объект данных и используйте сначала 1 000 выборок в оценке.

  z = iddata(y,u,Ts);
  ze = z(1:1000);

Оцените нелинейный ARX модель.

  model = nlarx(ze,[3 2 1]);

Получите выражения регрессора.

  Rs = getreg(model);

Получите значения регрессора.

  Rm = getreg(model,'all',ze);

Оцените выход модели для одного предсказания шага.

  Y = evaluate(model.Nonlinearity,Rm);

Предыдущий результат эквивалентен.

  Y_p = predict(model,ze,1,'z');

Представленный в R2007a