addreg

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

addreg не рекомендуется. Добавьте линейные, полиномиальные, и пользовательские регрессоры непосредственно в idnlarx Regressors свойство вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Синтаксис

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],'idWaveletNetwork','nlr',[1:3]);

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

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

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

  getreg(m2)
ans = 8x1 cell
    {'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],'idWaveletNetwork','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)
ans = 8x1 cell
    {'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)'}

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

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

Не рекомендуемый запуск в R2021a

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