Динамические модели в программном обеспечении System Identification Toolbox™ являются математическими отношениями между входами u (t) и выходами y (t) системы. Модель является динамической, потому что выходное значение в текущем времени зависит от входно-выходных значений в предыдущие моменты времени. Поэтому динамические модели имеют память о прошлом. Можно использовать отношения вход-выход, чтобы вычислить текущий выход из предыдущих входов и выходов. Динамические модели имеют состояния, где вектор состояний содержит информацию прошлого.
Общая форма модели в дискретном времени:
y (<reservedrangesplaceholder9>) = 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
ссылается на порядки модели и задержки для определения строения регрессора. Также можно явным образом задать линейные, полиномиальные и пользовательские регрессоры.
Для моделей Гаммерштейна-Винера, orders
относится к порядку модели и задержкам передаточной функции линейной подсистемы.
При работе в приложении Системы идентификации вы задаете порядки или регрессоры в соответствующих полях редактирования соответствующих диалоговых окон оценки модели.
Можно уточнить параметры ранее оцененной нелинейной модели с помощью следующей команды:
sys = estimator(data,sys0)
Эта команда обновляет параметры существующей модели sys0
для подгонки данных и возвратов результатов в выходной модели sys
. Для нелинейных систем, оценщик может быть nlarx
, nlhw
, или nlgreyest
.
Нелинейный ARX (idnlarx
) и Хаммерштейн-Винер (idnlhw
) модели содержат линейный компонент в своей структуре. Если у вас есть знания о линейной динамике, такие как через идентификацию линейной модели с помощью данных с низкой амплитудой, можно включить его во время оценки нелинейных моделей. В частности, можно заменить orders
входной параметр с ранее оцененной линейной моделью с помощью следующей команды:
sys = estimator(data,LinModel)
Эта команда использует линейную модель LinModel
для определения порядка нелинейной модели sys
а также инициализировать коэффициенты его линейного компонента.
Существует много опций, связанных с алгоритмом оценки, который конфигурирует целевую функцию оценки, начальные условия и алгоритм численного поиска, среди прочего, модели. Для каждой команды оценки estimator
, существует соответствующая команда опции с именем estimator
Options
. Для примера используйте 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
. Для получения дополнительной информации см. Отчет по оценке.