addreg

Добавьте пользовательские регрессоры в нелинейную модель ARX

Синтаксис

m = addreg(model,regressors)
m = addreg(model,regressors,output)

Описание

m = addreg(model,regressors) добавляют пользовательские регрессоры к нелинейной модели ARX путем добавления CustomRegressors model свойство. model и m idnalrx объекты. Для моделей одно выхода, regressors объектный массив регрессоров, вы создаете использование customreg или polyreg, или массив ячеек из символьных векторов. Для нескольких - выходные модели, regressors 1 ny массив ячеек customreg объекты или 1 ny массив ячеек массивов ячеек из символьных векторов. addreg добавляет каждый элемент ny ячейки к соответствующему model выведите канал. Если regressors один регрессор, addreg добавляет этот регрессор ко всем выходным каналам.

m = addreg(model,regressors,output) добавляют регрессоры regressors к определенному выходу образовывает канал output из нескольких - выходная модель. output скалярное целое число или вектор целых чисел, где каждое целое число является индексом выходного канала модели. Задайте несколько пар regressors и output значения, чтобы добавить различные переменные регрессора в соответствующие выходные каналы.

Примеры

свернуть все

Создайте нелинейную модель ARX со стандартными регрессорами.

  m1 = idnlarx([4 2 1],'wavenet','nlr',[1:3]);

Создайте модель с дополнительными пользовательскими регрессорами, заданными как массив ячеек из символьных векторов.

  m2 = addreg(m1,{'y1(t-2)^2';'u1(t)*y1(t-7)'});

Перечислите все стандартные и пользовательские регрессоры m2.

  getreg(m2)
Regressors:
    y1(t-1)
    y1(t-2)
    y1(t-3)
    y1(t-4)
    u1(t-1)
    u1(t-2)
    y1(t-2)^2
    u1(t)*y1(t-7)

Создайте нелинейную модель ARX со стандартными регрессорами.

m1 = idnlarx([4 2 1],'wavenet','nlr',[1:3]);

Создайте customreg объекты.

r1 = customreg(@(x)x^2,{'y1'},2)
Custom Regressor:
Expression: y1(t-2)^2
        Function: @(x)x^2
       Arguments: {'y1'}
          Delays: 2
      Vectorized: 0
    TimeVariable: 't'
r2 = customreg(@(x,y)x*y,{'u1','y1'},[0 7])
Custom Regressor:
Expression: u1(t)*y1(t-7)
        Function: @(x,y)x*y
       Arguments: {'u1'  'y1'}
          Delays: [0 7]
      Vectorized: 0
    TimeVariable: 't'

Создайте основанное на модели на m1 с пользовательскими регрессорами.

m2 = addreg(m1,[r1 r2]);

Перечислите все стандартные и пользовательские регрессоры m2.

getreg(m2)
Regressors:
    y1(t-1)
    y1(t-2)
    y1(t-3)
    y1(t-4)
    u1(t-1)
    u1(t-2)
    y1(t-2)^2
    u1(t)*y1(t-7)

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