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