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