exponenta event banner

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-by-ny массив ячеек customreg объекты или 1-by-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)
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],'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)
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