exponenta event banner

getreg

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

Синтаксис

Rs = getreg(model)
Rm = getreg(model,data)
Rm = getreg(model,data,init)
Rm = getreg(___,'Type',regressorType)

Описание

Rs = getreg(model) возвращает выражения для вычисления регрессоров в нелинейной модели ARX. model является idnlarx объект. Типичное использование регрессионных матриц, построенных getreg используется для генерации входных данных, когда требуется вычислить выходные данные функции отображения, такой как wavenet использование evaluate. Например, следующая пара команд оценивает выходные данные функции отображения model.

Regressor_Value = getreg(model,data,'z')
y = evaluate(model.OutputFcn,RegressorValue)
Эти команды эквивалентны команде:
y = predict(model,data,1,predictOptions('InitialCondition','z'))

Rm = getreg(model,data) возвращает значения регрессора в виде timetable для указанного набора входных/выходных данных data.

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

Rm = getreg(___,'Type',regressorType) возвращает имена регрессоров указанного regressorType. Например, используйте команду Rm = getreg(model,'Type','input') возвращает имена только входных регрессоров.

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

data

iddata объект, содержащий измеренные данные или числовую матрицу, содержащую значения выходных и входных переменных в порядке [model.OutputName model.InputName].

init

Исходные условия данных:

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

  • NaN обозначает неизвестные начальные условия.

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

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

model

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

regressorType

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

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

  • 'input' - Только входные регрессоры

  • 'output' - Только выходные регрессоры

  • 'standard' - Только линейные и полиномиальные регрессоры

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

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

Rm

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

Rs

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

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

Примеры

свернуть все

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

  load twotankdata;
  Ts = 0.2;

Время отбора проб составляет 0,2 с.

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

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

Оценка нелинейности ARX модель.

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

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

  Rs = getreg(model);

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

  Rm = getreg(model,ze);

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

  Y = evaluate(model.OutputFcn,Rm.Variables);

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

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

Вопросы совместимости

развернуть все

В R2021a изменилось поведение

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