idWaveletNetwork

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

Описание

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

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

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

Здесь:

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

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

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

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

  • W (X) и S (X) вместе составляет нелинейную функцию сети вейвлета. W (X) является суммой расширенных и переведенных вейвлетов, в то время как S (X) является суммой расширенных и переведенных масштабирующихся функций (также известный как scalelets). Общее количество вейвлета dw и масштабирующиеся функции ds упоминается как number of units сети.

Поскольку определения функции вейвлета называют W (X) и масштабирующийся функциональный термин S (X), смотрите Больше О.

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

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

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

Создание

Описание

пример

W = idWaveletNetwork создает idWaveletNetwork объект W, для которого функция вычисляет количество модулей автоматически во время оценки модели.

пример

W = idWaveletNetwork(numUnits) задает количество модулей numUnits. Этот синтаксис включает опцию, которая позволяет вам в интерактивном режиме оценивать отношение между количеством модулей и необъясненным отклонением.

пример

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

пример

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

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

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

Количество модулей в виде строки или вектора символов, который представляет 'auto' или 'interactive', или как положительное целое число. numUnits определяет количество вейвлетов или масштабирующихся функций, или, если оба элемента присутствуют, объединенное количество вейвлетов и масштабирующихся функций. Как правило, сеть вейвлета содержит или вейвлеты или масштабирующиеся функции, но не обоих. Задайте numUnits как одно из следующих значений:

  • 'auto' — Программное обеспечение определяет количество модулей автоматически во время оценки модели.

  • 'interactive' — Во время оценки модели программное обеспечение отображает интерактивную столбиковую диаграмму, которая связывает необъясненное отклонение с количеством модулей. Нажмите на панель, чтобы просмотреть достижимую подгонку к данным об оценке для выбранного количества модулей. Синяя панель указывает на оптимальный выбор, на основе критерия обобщенной перекрестной проверки (GCV). Общее правило для выбора количества модулей состоит в том, чтобы использовать самое маленькое количество модулей, которые получают большую часть отклонения.

  • Положительное целое число — программное обеспечение использует заданное значение непосредственно.

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

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

Опция, чтобы использовать термин смещения в виде true или false. Этот аргумент устанавливает значение W.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 — Индексы idWaveletNetwork входные параметры (см. 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 — Количество модулей в виде 'auto', 'interactive', или положительное целое число. NumberOfUnits определяет количество вейвлетов или масштабирующихся функций, или, если оба элемента присутствуют, объединенное количество вейвлетов и масштабирующихся функций. Как правило, сеть вейвлета содержит или вейвлеты или масштабирующиеся функции, но не обоих. Опции для NumberOfUnits следующие:

    • 'auto' — Программное обеспечение определяет количество модулей автоматически во время оценки модели.

    • 'interactive' — Во время оценки модели программное обеспечение отображает интерактивную столбиковую диаграмму, которая связывает необъясненное отклонение с количеством модулей. Нажмите на панель, чтобы просмотреть достижимую подгонку к данным об оценке для выбранного количества модулей. Синяя панель указывает на оптимальный выбор, на основе критерия обобщенной перекрестной проверки (GCV). Общее правило для выбора количества модулей состоит в том, чтобы использовать самое маленькое количество модулей, которые получают большую часть отклонения.

    • Положительное целое число — программное обеспечение использует заданное значение непосредственно.

  • Structure — Расширенные настройки, которые управляют структурой вейвлета и масштабирующихся функций в виде в следующей таблице.

    СвойствоОписаниеЗначение по умолчанию
    FinestCellМинимальное количество точек данных в самой маленькой ячейке в виде 'auto' или положительное целое число. Ячейка является областью, покрытой частью вейвлета, который является значительно ненулевым. Настройка по умолчанию 'auto' указывает, что программное обеспечение определяет это значение во время оценки.'auto'
    MinimumCellsМинимальное количество ячеек в разделе в виде положительного целого числа.16
    MaximumCellsМаксимальное количество ячеек в разделе в виде положительного целого числа.16
    MaximumLevelsМаксимальное количество уровней вейвлета в виде положительного целого числа. 10
    DilationStepРазмер шага расширения в виде положительного целого числа.2
    TranslationStepРазмер шага перевода в виде положительного целого числа.1

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

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

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

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

    []
    ScalingCoefficient

    Масштабирование функциональных коэффициентов si в виде ds-by-1 вектор.

    []
    ScalingTranslation

    Масштабирование матрицы перевода в виде ds-by-q матрица масштабирующихся векторов-строк перевода ei.

    []
    ScalingDilation

    Масштабирование функциональных коэффициентов расширения di в виде ds-by-1 вектор.

    []
    WaveletCoefficient

    Коэффициенты функции вейвлета wi в виде dw-by-1 вектор.

    []
    WaveletTranslation

    Матрица перевода вейвлета, ei в виде dw-by-q матрица векторов-строк перевода вейвлета ci.

    []
    WaveletDilation

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

    []

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

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

Примеры

свернуть все

MO = idWaveletNetwork;

Просмотрите idWaveletNetwork объект.

disp(MO)
Wavelet Network

 Nonlinear Function: Wavelet network with number of units chosen automatically
 Linear Function: uninitialized
 Output Offset: uninitialized

                Input: '<Function inputs>'
               Output: '<Function output>'
            LinearFcn: '<Linear function parameters>'
         NonlinearFcn: '<Wavelet and scaling function units and their parameters>'
               Offset: '<Offset parameters>'
    EstimationOptions: '<Estimation options>'

Создайте idWaveletNetwork отображение объекта MO.

MO = idWaveletNetwork;

Исключите линейный член из MO.

MO.LinearFcn.Use = false;

Просмотрите idWaveletNetwork объект.

disp(MO)
Wavelet Network

 Nonlinear Function: Wavelet network with number of units chosen automatically
 Linear Function: not in use
 Output Offset: uninitialized

                Input: '<Function inputs>'
               Output: '<Function output>'
            LinearFcn: '<Linear function parameters>'
         NonlinearFcn: '<Wavelet and scaling function units and their parameters>'
               Offset: '<Offset parameters>'
    EstimationOptions: '<Estimation options>'

Линейная функция не используется.

Загрузите данные об оценке.

load twotankdata y u;

Создайте iddata объект из данных об оценке.

z = iddata(y,u,0.2);

Создайте сеть вейвлета, сопоставляющую объект с пятью модулями.

MO = idWaveletNetwork(5);

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

sys = nlarx(z,[4 4 1],MO)
sys = 
Nonlinear ARX model with 1 output and 1 input
  Inputs: u1
  Outputs: y1

Regressors:
  Linear regressors in variables y1, u1
  List of all regressors

Output function: Wavelet network with 5 units
Sample time: 0.2 seconds

Status:                                         
Estimated using NLARX on time domain data "z".  
Fit to estimation data: 96.8% (prediction focus)
FPE: 3.553e-05, MSE: 3.515e-05

Загрузите данные об оценке.

load motorizedcamera;

Создайте iddata объект.

z = iddata(y,u,0.02,'Name','Motorized Camera','TimeUnit','s');

z iddata объект с шестью входными параметрами и двумя выходными параметрами.

Задайте порядки модели и задержки.

Orders = [ones(2,6),ones(2,6),ones(2,6)];

Задайте то же средство оценки нелинейности для каждого входного канала.

InputNL = idWaveletNetwork;

Задайте различные средства оценки нелинейности для каждого выходного канала.

 OutputNL = [idDeadZone,idWaveletNetwork];

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

sys = nlhw(z,Orders,InputNL,OutputNL);

Чтобы видеть форму предполагаемой нелинейности ввода и вывода, постройте нелинейность.

plot(sys)

Figure Hammerstein-Wiener Model Plot contains 6 axes objects and other objects of type uipanel, uicontrol. Axes object 1 contains an object of type line. This object represents sys:idWaveletNetwork. Axes object 2 contains an object of type line. This object represents sys:idWaveletNetwork. Axes object 3 contains an object of type line. This object represents sys:idWaveletNetwork. Axes object 4 contains an object of type line. This object represents sys:idWaveletNetwork. Axes object 5 contains an object of type line. This object represents sys:idWaveletNetwork. Axes object 6 contains an object of type line. This object represents sys:idWaveletNetwork.

Нажмите на блоки нелинейности ввода и вывода на верхней части графика видеть нелинейность.

Загрузите данные об оценке.

load iddata7 z7;

Задайте idWaveletNetwork для выходной функции модели. Сконфигурируйте idWaveletNetwork объект иметь фиксированное значение смещения 1 и использовать пять модулей в нелинейном компоненте.

w = idWaveletNetwork;
w.Offset.Value = 1;
w.Offset.Free = false;
w.NonlinearFcn.NumberOfUnits = 5;

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

reg = linearRegressor({'y1','u1'},{1:4,0:4});

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

sys = nlarx(z7,reg,w);

Исследуйте свойства постоценки выходной функции.

disp(sys.OutputFcn)
Wavelet Network
Inputs: y1(t-1), y1(t-2), y1(t-3), y1(t-4), u1(t), u1(t-1), u1(t-2), u1(t-3), u1(t-4)
Output: y1

 Nonlinear Function: Wavelet network with 5 units
 Linear Function: initialized to [-1.12 0.469 1.25 0.556 -0.81 -0.261 -0.074 0.711 1.15]
 Output Offset: fixed to 1

                Input: '<Function inputs>'
               Output: '<Function output>'
            LinearFcn: '<Linear function parameters>'
         NonlinearFcn: '<Wavelet and scaling function units and their parameters>'
               Offset: '<Offset parameters>'
    EstimationOptions: '<Estimation options>'
disp(sys.OutputFcn.Input)
Function inputs

     Name: {1x9 cell}
     Mean: [0.0795 0.0848 0.1082 0.1134 0.0253 0.0253 0.0202 0.0202 0.0202]
    Range: [2x9 double]
disp(sys.OutputFcn.NonlinearFcn)
Wavelet and scaling function units and their parameters

         NumberOfUnits: 5
            Parameters: '<Wavelet parameters>'
                  Free: 1
    SelectedInputIndex: [1 2 3 4 5 6 7 8 9]

Загрузите данные об оценке.

load throttledata

Задайте idWaveletNetwork для выходной нелинейности модели и набора аргументы для NumUnits к 5 и UseLinearFcn и UseOffset к false.

w = idWaveletNetwork(5,false,false);

Альтернативный метод для удаления линейной функции и смещения должен использовать запись через точку после создания нелинейности.

w.LinearFcn.Use = false;
w.Offset.Use = false;

Оцените модель, с помощью order спецификация [4 4 1].

sys = nlhw(ThrottleData,[4 4 1],[],w);

Сравните симулированный ответ модели с данными об оценке.

compare(ThrottleData,sys);

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent ThrottleData (Throttle Valve Position), sys: 92.68%.

Больше о

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

Алгоритмы

Можно использовать idWaveletNetwork и в нелинейном ARX и в моделях Хаммерстайна-Винера. Алгоритмы для оценки idWaveletNetwork параметры зависят, на которой модели вы оцениваете.

  • В нелинейной модели ARX, idWaveletNetwork использование или неитеративное или итеративный метод для предсказания параметров, в зависимости от настроек опции в nlarxOptions.

    • Если Focus опция установлена в 'prediction'то idWaveletNetwork использует быстрый неитеративный метод, чтобы оценить параметры [1]. Последовательные улучшения после первого использования оценки итеративный алгоритм.

    • Если Focus опция установлена в 'simulation'то idWaveletNetwork использует итеративный метод, чтобы оценить параметры.

    • Чтобы всегда использовать или итеративное или неитеративный алгоритм, задайте IterativeWavenet свойство nlarxOptions как 'on' или 'off', соответственно.

  • В модели Хаммерстайна-Винера, idWaveletNetwork использует итеративную минимизацию, чтобы определить параметры.

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

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

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

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

Ссылки

[1] Цинхуа Чжан. “Используя Сеть Вейвлета по Непараметрической Оценке”. Транзакции IEEE на Нейронных сетях 8, № 2 (март 1997): 227–36. https://doi.org/10.1109/72.557660.

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