Пользовательское средство оценки нелинейности для нелинейного ARX и моделей Хаммерстайна-Винера
C=customnet(H)
C=customnet(H,PropertyName
,PropertyValue
)
customnet
является объектом, который хранит пользовательское нелинейное средство оценки пользовательской модульной функцией. Эта пользовательская модульная функция использует взвешенную сумму входных параметров, чтобы вычислить скалярный вывод.
C=customnet(H)
создает объект средства оценки нелинейности с пользовательской модульной функцией использование указателя на функцию H
. H
должен указать на функцию формы [f,g,a] = function_name(x)
, где f
является значением функции, g = df/dx
, и a
указывает на модульную функцию активная область значений. g
является значительно ненулевым в интервале [-a a]
. Модели Хаммерстайна-Винера требуют, чтобы ваша пользовательская нелинейность имела только один вход и один вывод.
C=customnet(H,
создает средство оценки нелинейности с помощью пар значения свойства, заданных в customnet Свойствах.PropertyName
,PropertyValue
)
Можно включать пары значения свойства в конструктора, чтобы задать объект.
После создания объекта можно использовать get
или запись через точку, чтобы получить доступ к значениям свойства объекта. Например:
% List all property values get(C) % Get value of NumberOfUnits property C.NumberOfUnits
Можно также использовать функцию set
, чтобы установить значение конкретных свойств. Например:
set(C, 'LinearTerm', 'on')
set
должен быть именем переменной MATLAB®.PropertyName | Описание |
---|---|
NumberOfUnits | Целое число задает количество модулей нелинейности в расширении. Например: customnet(H,'NumberOfUnits',5) |
LinearTerm | Может иметь следующие значения:
Например: customnet(H,'LinearTerm','on') |
Parameters |
Структура, содержащая параметры в нелинейном расширении, можно следующим образом:
Как правило, значения этой структуры установлены путем оценки модели с нелинейностью |
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 является скаляром, и x является m
- размерный вектор - строка. Модульная функция основана на следующем функциональном расширении с возможным линейным членом L:
где f является модульной функцией, что вы задаете использование указателя на функцию H.
P и Q является m
-by-p
и m
-by-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
-by-1 вектор.
b представляет q
-by-1 векторы.
Указатель на функцию модульной функции пользовательской сети должен иметь форму [f,g,a] = function_name(x)
. Эта функция должна быть векторизована, что означает, что для векторного или матричного x
, выходные аргументы f
и g
должны иметь тот же размер как x
и быть вычислены поэлементно.
customnet
использует итеративный поисковый метод для оценки параметров.