exponenta event banner

Сведения об идентифицированных нелинейных моделях

Что такое нелинейные модели?

Динамические модели в программном обеспечении Toolbox™ идентификации системы представляют собой математические взаимосвязи между входами u (t) и выходами y (t) системы. Модель является динамической, поскольку выходное значение в текущий момент времени зависит от значений ввода-вывода в предыдущие моменты времени. Поэтому динамические модели имеют память о прошлом. Отношения «вход-выход» можно использовать для вычисления токового выхода из предыдущих входов и выходов. Динамические модели имеют состояния, где вектор состояний содержит информацию о прошлом.

Общая форма модели за дискретное время:

y (t) = f (u (t-1), y (t-1), u (t-2), y (t-2),.)

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

Панель инструментов использует объекты для представления различных линейных и нелинейных структур модели. Объекты нелинейной модели в совокупности называются идентифицированными нелинейными моделями. Эти модели представляют нелинейные системы с коэффициентами, которые идентифицируются с использованием измеренных данных ввода-вывода. Дополнительные сведения см. в разделе Нелинейные структуры модели.

Когда подгонять нелинейные модели

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

Однако для некоторых сценариев может потребоваться дополнительная гибкость нелинейных моделей.

Линейная модель недостаточно хороша

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

Физическая система слабо нелинейна

Из физического понимания или анализа данных можно понять, что система слабо нелинейна. В таких случаях можно оценить линейную модель, а затем использовать эту модель в качестве начальной модели для нелинейной оценки. Нелинейная оценка может улучшить подгонку, используя нелинейные компоненты структуры модели для захвата динамики, не объясненной линейной моделью. Дополнительные сведения см. в разделах Инициализация нелинейной оценки ARX с использованием линейной модели и Инициализация оценки Хаммерштейна-Винера с использованием линейной модели.

Физическая система по своей сути нелинейна

У вас может быть физическое понимание того, что ваша система нелинейна. Некоторые явления по своей природе нелинейны, включая сухое трение в механических системах, насыщение мощности исполнительного механизма и нелинейность датчиков в электромеханических системах. Можно попробовать моделировать такие системы с помощью структуры модели Хаммерштейна-Винера, которая позволяет соединять линейные модели со статическими нелинейностями. Дополнительные сведения см. в разделе Идентификация моделей Хаммерштейна-Винера.

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

Если известны нелинейные уравнения, описывающие систему, можно представить эту систему как нелинейную серую модель и оценить коэффициенты по экспериментальным данным. В этом случае коэффициенты являются параметрами модели. Дополнительные сведения см. в разделе Оценка модели «серый ящик».

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

Линейная и нелинейная динамика фиксируются отдельно

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

Оценка нелинейной модели

Оценка черного ящика

При оценке «черного ящика» или «холодного запуска» необходимо указать только порядок настройки структуры модели.

sys = estimator(data,orders) 

где estimator - имя команды оценки, используемой для требуемого типа модели.

Например, используется nlarx для оценки нелинейных моделей ARX, и nlhw для моделей Хаммерстайн-Винер.

Первый аргумент, data, представляет ли данные временной области в виде iddata объект. Второй аргумент, orders, представляет одно или несколько чисел, определение которых зависит от типа модели.

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

  • Для моделей Hammerstein-Wiener, orders относится к порядку модели и задержкам функции передачи линейной подсистемы.

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

Уточнение существующих моделей

Параметры предварительно оцененной нелинейной модели можно уточнить с помощью следующей команды:

sys = estimator(data,sys0) 

Эта команда обновляет параметры существующей модели sys0 подгонка данных и возврат результатов в выходной модели sys. Для нелинейных систем оценщиком может быть nlarx, nlhw, или nlgreyest.

Инициализация оценок с использованием известной информации о линейном компоненте

Нелинейный ARX (idnlarx) и Хаммерштайн-Винер (idnlhw) модели содержат линейный компонент в своей структуре. Если вы знаете линейную динамику, например, посредством идентификации линейной модели с использованием данных с низкой амплитудой, вы можете включить ее во время оценки нелинейных моделей. В частности, можно заменить orders введите аргумент с предварительно оцененной линейной моделью с помощью следующей команды:

sys = estimator(data,LinModel)

Эта команда использует линейную модель LinModel для определения порядка нелинейной модели sys а также инициализировать коэффициенты его линейной составляющей.

Варианты оценки

Существует много вариантов, связанных с алгоритмом оценки, который конфигурирует целевую функцию оценки, начальные условия и алгоритм численного поиска, среди прочего модели. Для каждой команды оценки, estimator, существует соответствующая команда опций с именем estimatorOptions. Например, использовать nlarxOptions для создания набора опций для nlarx. Команда options возвращает набор опций, который затем передается в качестве входного аргумента соответствующей команде оценки.

Например, для оценки нелинейной модели ARX с помощью simulation в качестве фокуса и lsqnonlin в качестве метода поиска используйте nlarxOptions.

load iddata1 z1
Options = nlarxOptions('Focus','simulation','SearchMethod','lsqnonlin');
sys= nlarx(z1,[2 2 1],Options);

Информация о опциях, используемых для создания расчетной модели, хранится в sys.Report.OptionsUsed. Дополнительные сведения см. в разделе Отчет об оценке.

Связанные примеры

Подробнее