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