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' — Только пользовательские регрессоры.

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

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

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

    Примечание

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

  • вывод регрессоры вычисляются из выходных данных.

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

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

Rm

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

Rs

Выражения регрессора, представленные как массив ячеек из символьных векторов. Для модели с ny выходные параметры Rs является ny-by-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