Идентификация нелинейных моделей ARX

Нелинейные модели ARX расширяют линейную модель ARX к нелинейному случаю. Для получения информации о структуре нелинейных моделей ARX смотрите то, Что Нелинейные Модели ARX?

Можно оценить нелинейные модели ARX в приложении System Identification или в командной строке с помощью nlarx команда. Чтобы оценить нелинейную модель ARX, вы сначала готовите данные об оценке. Вы затем конфигурируете структуру модели и алгоритм оценки, и затем выполняете оценку. После оценки можно подтвердить предполагаемую модель как описано в, Подтверждают Нелинейные Модели ARX.

Подготовка данных для идентификации

Можно использовать однородно произведенные данные ввода - вывода временного интервала или данные timeseries (никакие входные параметры) для оценки нелинейных моделей ARX. Ваши данные могут иметь нуль или более входные каналы и один или несколько выходных каналов. Вы не можете использовать данные частотной области для оценки.

Чтобы подготовить данные к оценке модели, импортируйте свои данные в MATLAB® рабочая область, и выполняет одно из следующих действий:

  • В приложении System Identification — Импортируют данные в приложение, как описано в Представляют Данные.

  • В командной строке — Представляют ваши данные как iddata объект.

После импортирования данных можно анализировать качество данных и предварительно обработать данные путем интерполяции отсутствующих значений, фильтрации, чтобы подчеркнуть определенный частотный диапазон или передискретизации использования различного шага расчета. Для получения дополнительной информации смотрите Способы Подготовка данных для System Identification. Для большинства приложений вы не должны удалять смещения и линейные тренды из данных перед нелинейным моделированием. Однако удаление тренда данных может быть полезным в некоторых случаях, такой как прежде, чем смоделировать отношение между изменением во вводе и выводе о рабочей точке.

После подготовки ваших данных об оценке можно сконфигурировать структуру модели, функцию потерь и алгоритм оценки, и затем оценить модель с помощью данных об оценке.

Сконфигурируйте нелинейную структуру модели ARX

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

Сконфигурировать структуру нелинейной модели ARX:

  1. Сконфигурируйте регрессоры модели.

    Выберите линейное, полиномиальное, и потребительские регрессоры на основе вашего знания физической системы, которую вы пытаетесь смоделировать.

    1. Задайте linear regressors одним из следующих способов:

      • Задайте порядки модели и задержку, чтобы создать набор линейных регрессоров. Для получения дополнительной информации смотрите Нелинейные Порядки Модели ARX и Задержку.

      • Непосредственно задайте линейные регрессоры путем построения и использования linearRegressor объекты.

      • Инициализируйте модель с помощью линейной модели ARX. Можно выполнить эту операцию в командной строке только. Инициализация конфигурирует нелинейную модель ARX, чтобы использовать линейные регрессоры линейной модели. Для получения дополнительной информации смотрите, Инициализируют Нелинейную Оценку ARX Используя Линейную Модель.

    2. Задайте polynomial regressors и custom regressors. Полиномиальные регрессоры являются полиномами, которые состоят из задержанных переменных ввода и вывода. Пользовательские регрессоры являются произвольными функциями прошлых вводов и выводов, такими как продукты, степени и другие выражения MATLAB переменных ввода и вывода. Задайте полиномиальные и пользовательские регрессоры в дополнение к, или вместо, линейные регрессоры для большей гибкости в моделировании ваших данных. Для получения дополнительной информации смотрите polynomialRegressor и customRegressor.

    3. Присвойте регрессоры как входные параметры к линейным и нелинейным компонентам блока выходной функции. Любой регрессор может быть присвоен или или оба из этих компонентов. Ограничение количества регрессоров, которые вводятся к нелинейному компоненту, может помочь уменьшать сложность модели и сохранить оценку хорошо подготовленной.

      Выбор регрессоров использовать для каждого компонента может потребовать нескольких испытаний. Можно исследовать нелинейный график ARX помочь вам получить сведения, какие регрессоры оказывают самое сильное влияние на выход модели. Понимание относительной важности регрессоров на выходе может затем помочь вам решить, как присвоить регрессоры.

  2. Сконфигурируйте блок выходной функции.

    Задайте и сконфигурируйте выходную функцию F (x).

    F(x)=LT(xr)+g(Q(xr))+d

    Здесь, x является вектором из регрессоров, и r является средним значением регрессоров x. F(x)=LT(xr)+y0 выход блока линейной функции. g(Q(xr))+y0 представляет выход нелинейного функционального блока. Q является матрицей проекции, которая делает вычисления хорошо подготовленными. d является скалярным смещением, которое добавляется к объединенным выходным параметрам линейных и нелинейных блоков. Точная форма F (x) зависит от вашего выбора выходной функции. Можно выбрать из доступных средств оценки нелинейности, таких как сети древовидного раздела, сети вейвлета и многоуровневые нейронные сети. Можно также исключить или линейное или нелинейный функциональный блок от выходной функции.

    Можно также выполнить одну из следующих задач:

    1. Исключите нелинейную функцию из выходной функции, таким образом что F (x) = F(x)=LT(xr)+y0.

    2. Исключите линейную функцию от выходной функции, таким образом что F (x) = g(Q(xr))+y0.

      Примечание

      Вы не можете исключить линейную функцию от древовидных разделов и нейронных сетей.

Для получения информации о том, как сконфигурировать структуру модели в командной строке и в приложении, смотрите Оценку Нелинейные Модели ARX в Командной строке и Оценке Нелинейные Модели ARX в Приложении.

Задайте опции оценки для нелинейных моделей ARX

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

Сконфигурируйте функцию потерь

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

В командной строке используйте nlarx набор опции, nlarxOptions сконфигурировать вашу функцию потерь. Можно задать следующие опции:

  • Focus — Задает, минимизирована ли ошибка симуляции или предсказания во время оценки параметра. По умолчанию программное обеспечение минимизирует ошибки предсказания с одним шагом, которые соответствуют Focus значение 'prediction'. Если вы хотите модель, которая оптимизирована для репродуцирования поведения симуляции, задайте Focus как 'simulation'. Минимизация ошибки симуляции требует дифференцируемых нелинейных функций и занимает больше времени, чем ошибка предсказания "один шаг вперед" минимизация. Таким образом вы не можете использовать idTreePartition и idFeedforwardNetwork нелинейность при минимизации ошибки симуляции, потому что эти средства оценки нелинейности не дифференцируемы.

  • OutputWeight — Задает взвешивание ошибки по мультивыходным оценкам.

  • Regularization — Изменяет функцию потерь, чтобы добавить штраф на отклонении предполагаемых параметров. Для получения дополнительной информации смотрите Упорядоченные Оценки Параметров модели.

Задайте алгоритм оценки

Чтобы оценить нелинейную модель ARX, программное обеспечение использует итеративные алгоритмы поиска, чтобы минимизировать ошибку между симулированным или предсказало выход модели и измеренный выход. В командной строке использовать nlarxOptions задавать алгоритм поиска и другие опции оценки. Некоторые опции, которые можно задать:

  • SearchMethod — Метод поиска для минимизации предсказания или ошибок симуляции, таких как Ньютон Гаусса и поиск линии Levenberg-Marquardt и подход Траст-Реджион-Рефлектива Ньютона.

  • SearchOptions — Набор опции для алгоритма поиска, с полями, которые зависят от значения SearchMethod, такой как:

    • MaxIterations — Максимальное количество итераций.

    • Tolerance — Условие для завершения итеративного поиска, когда ожидаемое улучшение значений параметров меньше заданного значения.

Чтобы видеть полный список доступных опций оценки, смотрите nlarxOptions. Для получения дополнительной информации о том, как задать эти опции оценки в приложении, смотрите Оценку Нелинейные Модели ARX в Приложении.

После предварительной обработки данных об оценке и конфигурирования структуры модели и опций оценки, можно оценить модель в приложении System Identification или использование nlarx в командной строке. Получившаяся модель idnlarx возразите, что хранит все данные модели, включая регрессоры модели и параметры средства оценки нелинейности. Для получения дополнительной информации об этих объектах модели, смотрите Нелинейные Структуры модели. Можно подтвердить предполагаемую модель как описано в, Подтверждают Нелинейные Модели ARX.

Инициализируйте нелинейную оценку ARX Используя линейную модель

В командной строке можно использовать полиномиальную модель структуры ARX (idpoly только с A и B как активные полиномы) для нелинейной оценки ARX. Чтобы узнать больше, когда использовать линейные модели, смотрите, Когда Подбирать Нелинейные Модели.

Как правило, вы создаете линейную модель ARX с помощью arx команда. Можно предоставить линейную модель при построении или оценке нелинейной модели ARX. Например, используйте следующий синтаксис, чтобы оценить нелинейную модель ARX с помощью данных об оценке и линейной модели ARX LinARXModel.

m = nlarx(data,LinARXModel)

Здесь m idnlarx объект и data временной интервал iddata объект. Программное обеспечение использует линейную модель для инициализации нелинейной оценки ARX:

  • Присвоение линейных порядков модели ARX и задержек как начальные значения нелинейных порядков модели ARX (na и nb свойства idnlarx объект) и задержки (nk свойство. Программное обеспечение использует эти порядки и задержки, чтобы вычислить линейные регрессоры в нелинейной структуре модели ARX.

  • Используя A и полиномы B линейной модели, чтобы вычислить линейную функцию средств оценки нелинейности (LinearCoef параметр объекта средства оценки нелинейности), кроме того, если средство оценки нелинейности является нейронной сетью.

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

Примечание

То, когда вы используете те же данные для оценки, нелинейная модель ARX инициализировала использование линейной модели ARX, производит лучшую подгонку к измеренному выходу, чем сама линейная модель ARX.

По умолчанию средство оценки нелинейности является сетью вейвлета (idWaveletNetwork объект. Можно также задать различные средства оценки нелинейности ввода и вывода. Например, можно задать сигмоидальное сетевое средство оценки нелинейности.

m = nlarx(data,LinARXModel,'idSigmoidNetwork')

Для примера смотрите Оценку Нелинейные Модели ARX, Инициализированные Используя Линейные Модели ARX.

Смотрите также

Функции

Приложения

Похожие темы