sigmoidnet

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

Описание

sigmoidnet возразите реализует сигмоидальную сетевую функцию и нелинейная функция отображения для оценки нелинейного ARX и Нелинейных моделей Хаммерстайна-Вайнера. Функция отображения, которая также упоминается как nonlinearity, использует комбинацию линейных весов, смещения и нелинейной функции, чтобы вычислить ее выход. Нелинейная функция содержит сигмоидальные модульные функции, которые работают с гребенчатой комбинацией (взвесил линейную сумму) входных параметров.

Математически, сеть sigmoidnet является функцией, которая сопоставляет входные параметры m X (t) = [x (t 1), x 2 (t), …, xm (t)] T к скалярному выходу y (t) с помощью следующего отношения:

y(t)=y0+(Χ(t)X¯)TPL+S(Χ(t))

Здесь:

  • X (t) является m-by-1 вектор из входных параметров или regressors, со средним значением Χ¯.

  • y0 является выходным смещением, скаляром.

  • P является m-by-p матрица проекции, где m является количеством регрессоров и является p, количество линейных весов. m должен быть больше или быть равен p.

  • L является p-by-1 вектор из весов.

  • S (X) является суммой расширенных и перевел сигмоидальные функции. Общее количество сигмоидальных функций упоминается как n number of units сети.

Для определения сигмоидального функционального термина S (X) смотрите Больше О.

Используйте sigmoidnet как значение OutputFcn свойство idnlarx модель или InputNonlinearity и OutputLinearity свойства idnlhw объект. Например, задайте sigmoidnet когда вы оцениваете idnlarx модель со следующей командой.

sys = nlarx(data,regressors,sigmoidnet)
Когда nlarx оценивает модель, она по существу оценивает параметры sigmoidnet функция.

Можно сконфигурировать sigmoidnet функция, чтобы отключить компоненты и зафиксировать параметры. Не использовать линейный набор компонента LinearFcn.Use к false. Чтобы не использовать смещение, установите Offset.Use к false. Чтобы задать известные значения для линейной функции и смещения, установите их Value атрибуты непосредственно и набор соответствующий Free атрибуты к FalseИспользование evaluate вычислить выход функции для данного вектора из входных параметров.

Создание

Описание

пример

S = sigmoidnet создает sigmoidnet объекты это использует 10 модулей. Количество входных параметров определяется во время оценки модели, и количество выходных параметров равняется 1.

пример

S = sigmoidnet(numUnits) задает количество сигмоидальных функций numUnits.

пример

S = sigmoidnet(numUnits,UseLinearFcn) задает, использует ли функция линейную функцию в качестве субкомпонента.

пример

S = sigmoidnet(numUnits,UseLinearFcn,UseOffset) задает, использует ли функция термин смещения параметр y0.

Входные параметры

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

Количество модулей в виде положительного целого числа. numUnits определяет количество сигмоидальных функций.

Этот аргумент устанавливает S.NonlinearFcn.NumberOfUnits свойство.

Опция, чтобы использовать субкомпонент линейной функции в виде true или false. Этот аргумент устанавливает значение S.LinearFcn.Use свойство.

Опция, чтобы использовать термин смещения в виде true или false. Этот аргумент устанавливает значение S.Offset.Use свойство.

Свойства

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

Информация о входном сигнале для сигналов использовала для оценки в виде векторов из m специфичные для свойства значения, где m является количеством входных сигналов. Input свойства для каждого входного сигнала следующие:

  • Name — Имена входных сигналов в виде 1 строкой m или символьным массивом, где m является количеством входных параметров

  • Mean — Среднее значение входных сигналов в виде числового скаляра

  • Range — Области значений входных сигналов в виде 2 m числовым массивом, который содержит минимальные и максимальные значения

Информация о выходном сигнале в виде специфичных для свойства значений. Output свойства следующие:

  • Name — Имя выходного сигнала в виде строки или символьного массива

  • Mean — Среднее значение выходного сигнала в виде числового скаляра

  • Range — Область значений выходного сигнала в виде 2 1 числового массива, который содержит минимальные и максимальные значения

Параметры линейной функции в виде следуют:

  • Use — Опция, чтобы использовать линейную функцию в сигмоидальной сети в виде логического скаляра. Значением по умолчанию является true.

  • Value — Линейные веса, которые составляют L' в виде 1 p вектором.

  • InputProjection — Введите матрицу проекции P в виде m-by-p матрица, которая преобразовывает детрендированный входной вектор длины m в вектор из длины p. Поскольку Хаммерстайн-Винер моделирует, InputProjection равно 1.

  • Free — Опция, чтобы обновить записи Value во время оценки в виде 1 p логическим вектором. Программное обеспечение соблюдает Free спецификация, только если начальное значение Value isfinite. Значением по умолчанию является true.

  • Minimum — Минимум привязал ValueВ виде 1 p вектором. Если Minimum задан с конечным значением и начальным значением Value конечно, затем программное обеспечение осуществляет тот минимум, связанный во время оценки модели.

  • Maximum — Максимум привязал ValueВ виде 1 p вектором. Если Maximum задан с конечным значением и начальным значением Value конечно, затем программное обеспечение осуществляет тот максимум, связанный во время оценки модели.

  • SelectedInputIndex — Индексы sigmoidnet входные параметры (см. Input.Name) это используется в качестве входных параметров к линейной функции в виде 1 nr целочисленным вектором, где nr является количеством входных параметров. Для нелинейных моделей ARX, RegressorUsage свойство определяет эти индексы. Поскольку Хаммерстайн-Винер моделирует, SelectedInputIndex всегда 1.

Параметры срока смещения в виде следуют:

  • Use — Опция, чтобы использовать смещение в сигмоидальной сети в виде логического скаляра. Значением по умолчанию является true.

  • Value — Возместите значение в виде скаляра.

  • Free — Опция, чтобы обновить Value во время оценки в виде логического скаляра. Программное обеспечение соблюдает Free спецификация false только если значение Value isfinite. Значением по умолчанию является true.

  • Minimum — Минимум привязал ValueВ виде числового скаляра или –Inf. Если Minimum задан с конечным значением и значением Value конечно, затем программное обеспечение осуществляет тот минимум, связанный во время оценки модели. Значением по умолчанию является -Inf.

  • Maximum — Максимум привязал ValueВ виде числового скаляра или Inf. Если Maximum задан с конечным значением и начальным значением Value конечно, затем программное обеспечение осуществляет тот максимум, связанный во время оценки модели. Значением по умолчанию является Inf.

Параметры нелинейной функции в виде следуют:

  • NumberOfUnits — Количество модулей в виде положительного целого числа. NumberOfUnits определяет количество сигмоидальных функций.

  • Parameters — Параметры sigmoidnetВ виде в следующей таблице:

    Имя поляОписаниеЗначение по умолчанию
    InputProjection

    Матрица проекции Q в виде m-by-q матрица. Q преобразовывает детрендированный входной вектор (XX¯) из длины m в вектор из длины q. Как правило, Q имеет те же размерности как линейная матрица проекции P. В этом случае q равен p, который является количеством линейных весов.

    Поскольку Хаммерстайн-Винер моделирует, InputProjection равно 1.

    []
    OutputCoefficient

    Сигмоидальные функциональные выходные коэффициенты si в виде n-by-1 вектор.

    []
    Translation

    Матрица перевода в виде n-by-q матрица векторов-строк перевода ci.

    []
    Dilation

    Коэффициенты расширения bi в виде n-by-1 вектор.

    []

  • Free — Опция, чтобы оценить параметры в виде логического скаляра. Если все параметры имеют конечные значения, такой как тогда, когда sigmoidnet объект соответствует ранее предполагаемой модели, затем установка Free к false заставляет параметры нелинейного функционального S (X) оставаться неизменными во время оценки. Значением по умолчанию является true.

  • SelectedInputIndex — Индексы sigmoidnet входные параметры (см. Input.Name) это используется в качестве входных параметров к нелинейной функции в виде 1 nr целочисленным вектором, где nr является количеством входных параметров. Для нелинейных моделей ARX, RegressorUsage свойство определяет эти индексы. Поскольку Хаммерстайн-Винер моделирует, SelectedInputIndex всегда 1.

Примеры

свернуть все

Загрузите данные z7 и создайте подмножество, чтобы использовать в качестве данных об оценке.

load iddata7 z7
ze = z7(1:300);

Создайте и сконфигурируйте sigmoidnet отображение объекта. Зафиксируйте смещение к 0,2 и количество модулей к 15.

S = sigmoidnet;
S.Offset.Value = 0.2;
S.Offset.Free = false;
S.NonlinearFcn.NumberOfUnits = 15;

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

var_names = [z7.OutputName;z7.InputName]
var_names = 3×1 cell
    {'y1'}
    {'u1'}
    {'u2'}

Reg1 = linearRegressor(var_names,{1:4,0:4,1});
Reg2 = polynomialRegressor(var_names,{1:2,0:2,0},2);

Установите опции оценки.

opt = nlarxOptions('SearchMethod','fmincon');
opt.SearchOptions.MaxIterations = 40;

Оцените нелинейную модель ARX.

sys = nlarx(ze,[Reg1;Reg2],S,opt)
sys = 
Nonlinear ARX model with 1 output and 2 inputs
  Inputs: u1, u2
  Outputs: y1

Regressors:
  1. Linear regressors in variables y1, u1, u2
  2. Order 2 regressors in variables y1, u1, u2
  List of all regressors

Output function: Sigmoid Network with 15 units

Sample time: 1 seconds

Status:                                          
Estimated using NLARX on time domain data "ze".  
Fit to estimation data: 72.23% (prediction focus)
FPE: 7.115, MSE: 0.7625

Оцените модель Хаммерстайна-Винера, которая использует sigmoidnet как выходная нелинейность.

Загрузите данные

load throttledata

Создайте sigmoidnet отображение возражает, который имеет 15 модулей, и это не имеет никакой входной нелинейности или смещения.

S = sigmoidnet(15,false,false)
S = 
Sigmoid Network

 Nonlinear Function: Sigmoid network with 15 units.
 Linear Function: not in use
 Output Offset: not in use

           Input: [1×1 idpack.Channel]
          Output: [1×1 idpack.Channel]
       LinearFcn: [1×1 nlident.internal.UseProjectedLinearFcn]
    NonlinearFcn: [1×1 nlident.internal.RidgenetFcn]
          Offset: [1×1 nlident.internal.ChooseableOffset]

Оцените модель Хаммерстайна-Винера.

sys = nlhw(ThrottleData,[4 4 1],[],S)
sys =
Hammerstein-Wiener model with 1 output and 1 input
 Linear transfer function corresponding to the orders nb = 4, nf = 4, nk = 1
 Input nonlinearity: absent
 Output nonlinearity: Sigmoid Network with 15 units
Sample time: 0.01 seconds

Status:                                                 
Estimated using NLHW on time domain data "ThrottleData".
Fit to estimation data: 72.91%                          
FPE: 114.9, MSE: 80.96

Больше о

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

Алгоритмы

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

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

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

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

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