customnet

Пользовательское средство оценки нелинейности для нелинейного ARX и моделей Хаммерстайна-Винера

Синтаксис

C=customnet(H)
C=customnet(H,PropertyName,PropertyValue)

Описание

customnet объект, который хранит пользовательское нелинейное средство оценки пользовательской модульной функцией. Эта пользовательская модульная функция использует взвешенную сумму входных параметров, чтобы вычислить скалярный выход.

Конструкция

C=customnet(H) создает объект средства оценки нелинейности с пользовательской модульной функцией использование указателя на функцию HH должен указать на функцию формы [f,g,a] = function_name(x), где f значение функции, g = df/dx, и a указывает на модульную функцию активная область значений. g является значительно ненулевым в интервале [-a a]. Модели Хаммерстайна-Винера требуют, чтобы ваша пользовательская нелинейность имела только один вход и один выход.

C=customnet(H,PropertyName,PropertyValue) создает средство оценки нелинейности с помощью пар значения свойства, заданных в customnet Свойствах.

Свойства customnet

Можно включать пары значения свойства в конструктора, чтобы задать объект.

После создания объекта можно использовать get или запись через точку, чтобы получить доступ к значениям свойства объекта. Например:

% List all property values
get(C)
% Get value of NumberOfUnits property
C.NumberOfUnits

Можно также использовать set функционируйте, чтобы установить значение конкретных свойств. Например:

set(C, 'LinearTerm', 'on')
Первый аргумент к set должно быть имя переменной MATLAB®.

PropertyName Описание
NumberOfUnits

Целое число задает количество модулей нелинейности в расширении.
Default=10.

Например:

customnet(H,'NumberOfUnits',5)
LinearTerm

Может иметь следующие значения:

  • 'on'— Оценивает вектор L в расширении.

  • 'off'— Фиксирует вектор L, чтобы обнулить.

Например:

customnet(H,'LinearTerm','on')
Parameters

Структура, содержащая параметры в нелинейном расширении, можно следующим образом:

  • RegressorMean: 1 m вектор, содержащий средние значения x в данных об оценке, r.

  • NonLinearSubspaceM- q матрица, содержащая Q.

  • LinearSubspaceM- p матрица, содержащая P.

  • LinearCoefP- 1 вектор L.

  • DilationQ- 1 матрица, содержащая значения миллиард.

  • Translation: 1 n вектор, содержащий значения cn.

  • OutputCoefN- 1 вектор, содержащий значения.

  • OutputOffset: скалярный d.

Как правило, значения этой структуры установлены путем оценки модели с customnet нелинейность.

UnitFcnХранит указатель на функцию, который указывает на модульную функцию.

Примеры

Задайте пользовательский модуль, функционируют и сохраняют его в gaussunit.m:

function [f, g, a] = GAUSSUNIT(x)
% x: unit function variable
% f: unit function value
% g: df/dx
% a: unit active range (g(x) is significantly
% nonzero in the interval [-a a])

% The unit function must be "vectorized": for 
% a vector or matrix x, the output arguments f and g 
% must have the same size as x,
% computed element-by-element.

% GAUSSUNIT customnet unit function example
[f, g, a] = gaussunit(x)
f =  exp(-x.*x);
if nargout>1
  g = - 2*x.*f;
  a = 0.2;
end

Используйте пользовательские сети в nlarx и nlhw команды оценки модели:

% Define handle to example unit function.
H = @gaussunit;
% Estimate nonlinear ARX model using
% Gauss unit function with 5 units.
m = nlarx(Data,Orders,customnet(H,'NumberOfUnits',5));

Советы

Используйте customnet задавать нелинейную функцию y=F(x), где y является скаляром, и x является m- размерный вектор-строка. Модульная функция основана на следующем функциональном расширении с возможным линейным членом L:

F(x)=(xr)PL+a1f((xr)Qb1+c1)+                          +anf((xr)Qbn+cn)+d

где f является модульной функцией, что вы задаете использование указателя на функцию H.

P и Q является m- p и m- q матрицы проекции, соответственно. Матрицы проекции P и Q определяются анализом главных компонентов данных об оценке. Обычно, p=m. Если компоненты x в данных об оценке линейно зависимы, то p<m. Количество столбцов Q, q, соответствует количеству компонентов x используемый в модульной функции.

Когда используется оценить нелинейные модели ARX, q равно размеру NonlinearRegressors свойство idnlarx объект. Когда используется оценить модели Хаммерстайна-Винера, m=q=1 и Q является скаляром.

r является 1 m вектор и представляет среднее значение вектора регрессора, вычисленного из данных об оценке.

d, a, и c являются скалярами.

L является p- 1 вектор.

b представляет q- 1 вектор.

Указатель на функцию модульной функции пользовательской сети должен иметь форму [f,g,a] = function_name(x). Эта функция должна быть векторизована, что означает это для векторного или матричного x, выходные аргументы f и g должен иметь тот же размер как x и будьте вычислены поэлементно.

Алгоритмы

customnet использует итеративный поисковый метод в оценке параметров.

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