Модели Гаммерштейна-Винера описывают динамические системы, использующие один или два статических нелинейных блока последовательно с линейным блоком. Линейный блок является дискретной передаточной функцией и представляет динамический компонент модели. Для получения дополнительной информации о структуре этих моделей смотрите Что такое модели Гаммерштейна-Винера?
Можно оценить модели Гаммерштейна-Винера в приложении System Identification или в командной строке, используя nlhw
команда. Чтобы оценить модель Гаммерштейна-Винера, вы сначала подготовите данные оценки. Затем вы конфигурируете структуру модели и алгоритм оценки, а затем выполняете оценку. После оценки можно подтвердить предполагаемую модель, как описано в Валидации моделей Гаммерштейна-Винера.
Можно использовать только равномерно выбранные входные-выходные данные временной области для оценки моделей Гаммерштейна-Винера. Ваши данные могут иметь один или несколько входных и выходных каналов. Вы не можете использовать данные временных рядов (только вывод) или данные частотному диапазону для оценки. Используйте нелинейные модели ARX или нелинейные серые ящики для данных временных рядов.
Чтобы подготовить данные к оценке модели, импортируйте ваши данные в MATLAB® Рабочая область и выполните одно из следующих действий:
В приложении Системы идентификации - Импортируйте данные в приложение, как описано в Представительных данных.
В командной строке - Представьте свои данные как iddata
объект.
После импорта данных можно проанализировать качество данных и обработать данные путем интерполяции отсутствующих значений, фильтрации для выделения определенной частотной области значений или повторной дискретизации с использованием другого шага расчета. Для получения дополнительной информации см. Способы подготовки данных к системе идентификации. Для большинства приложений вам не нужно удалять смещения и линейные тренды из данных перед нелинейным моделированием. Однако удаление тренда данных может быть полезно в некоторых случаях, таких как перед моделированием зависимости между изменением входного и выходного входов относительно рабочей точки.
После подготовки данных оценки можно сконфигурировать структуру модели, функцию потерь и алгоритм оценки, а затем оценить модель с помощью данных оценки.
Структура модели Гаммерштейна-Винера состоит из входа и выходных нелинейных блоков последовательно с линейным блоком. Линейный блок является дискретной передаточной функцией и представляет динамический компонент модели.
Чтобы сконфигурировать структуру модели Гаммерштейна-Винера:
Сконфигурируйте блок линейной передаточной функции.
Выполните одно из следующих действий:
Задайте порядок модели и входную задержку для линейной передаточной функции как:
nb - Количество нулей плюс один. nb - длина полинома числителя (B).
nf - Количество полюсов. nf - порядок передаточной функции знаменателя (полином F).
nk - Задержка от входа до выхода по количеству выборок.
Для систем MIMO с выходами Ny и входами Nu, nb, nf и nk являются Ny -by - Nu матрицами.
Инициализируйте линейный блок с помощью линейной модели дискретного времени - Можно инициализировать с помощью линейных моделей только в командной строке. Инициализация устанавливает передаточную функцию линейного блока на передаточную функцию указанной линейной модели. Для получения дополнительной информации см. «Инициализация оценки Гаммерштейна-Винера с использованием линейной модели».
Сконфигурируйте входную и выходную нелинейности, f и h соответственно.
По умолчанию входы и выход оценки нелинейности являются кусочно-линейными функциями. См. pwlinear
Страница с описанием для получения дополнительной информации. Чтобы сконфигурировать входные и выходные оценки нелинейности:
Выберите тип входа и выведите оценки нелинейности и сконфигурируйте их свойства.
Для списка доступных оценок нелинейности смотрите Доступные оценки нелинейности для моделей Гаммерштейна-Винера.
Исключить вход или выходной нелинейный блок.
Вы не должны включать как вход, так и выход нелинейность в структуру модели. Когда модель содержит только входные f нелинейности, она называется Hammerstein моделью. Точно так же, когда модель содержит только выходные h нелинейности, она называется моделью Винера.
Для получения информации о том, как сконфигурировать структуру модели в командной строке и в приложении, смотрите Оценку моделей Гаммерштейна-Винера в командной строке и Оценку моделей Гаммерштейна-Винера в Приложении.
Чтобы сконфигурировать оценку модели, задайте функцию потерь, которая будет минимизирована, и выберите алгоритм оценки и другие опции оценки, чтобы выполнить минимизацию.
Функция потерь или функция затрат является функцией ошибки между выходом модели и измеренным выходом. Для получения дополнительной информации о функциях потерь смотрите Loss Function и Model Quality Metrics.
В командной строке используйте nlhw
набор опций, nlhwOptions
чтобы сконфигурировать функцию потерь. Можно задать следующие опции:
OutputWeight
- Задайте взвешивание ошибки в многозначных оценках.
Regularization
- Измените функцию потерь, чтобы добавить штраф от отклонения предполагаемых параметров. Для получения дополнительной информации см. «Регуляризованные оценки параметров модели».
Для получения дополнительной информации о том, как задать эти опции в приложении, смотрите Оценку моделей Гаммерштейна-Винера в Приложении.
Чтобы оценить модель Гаммерштейна-Винера, программное обеспечение использует итерационные алгоритмы поиска, чтобы минимизировать функцию потерь. В командной строке используйте nlhwOptions
для определения алгоритма поиска и других опций оценки. Можно задать следующие опции:
SearchMethod
- Метод поиска для минимизации ошибок предсказания или симуляции, таких как поиск линий Гаусса-Ньютона и Левенберга-Марквардта и отражающий подход Ньютона доверительной области.
SearchOptions
- Набор опций для алгоритма поиска с полями, которые зависят от значения SearchMethod
, таких как:
MaxIterations
- Максимальное количество итераций для выполнения.
Tolerance
- Условие завершения итерационного поиска, когда ожидаемое улучшение значений параметров меньше заданного значения.
InitialCondition
- По умолчанию программа обрабатывает начальные состояния модели как нули и не оценивает состояния. Можно принять решение оценить начальные состояния, которые иногда могут улучшить оценки параметров.
Чтобы увидеть полный список доступных опций оценки, см. nlhwOptions
. Для получения дополнительной информации о том, как задать эти опции оценки в приложении, смотрите Оценку моделей Гаммерштейна-Винера в Приложении.
После предварительной обработки данных оценки и конфигурирования структуры модели, функции потерь и опций оценки, можно оценить модель в приложении System Identification или используя nlhw
. Получившаяся модель является idnlhw
объект, который хранит все данные модели, включая параметры модели и оценку нелинейности. Для получения дополнительной информации об этих объектах модели см. «Нелинейные структуры модели». Можно подтвердить предполагаемую модель, как описано в Проверке моделей Гаммерштейна-Винера.
В командной строке можно использовать одну из следующих линейных моделей, чтобы инициализировать линейный блок модели Гаммерштейна-Винера:
Полиномиальная модель структуры Output-Error (OE) (idpoly
)
Модель пространства состояний без компонента нарушения порядка (idss
модель с K = 0)
Передаточная функция (idtf
модель)
Как правило, вы используете oe
, n4sid
, или tfest
команды для получения линейной модели. Можно предоставить линейную модель при построении или оценке модели Гаммерштейна-Винера. Для примера используйте следующий синтаксис, чтобы оценить модель Гаммерштейна-Винера с помощью данных оценки и линейной модели LinModel
.
m = nlhw(data,LinModel)
Вот m
является idnlhw
объект, и data
является временной областью iddata
объект. Программа использует линейную модель для инициализации оценки Гаммерштейна-Винера по:
Присвоение порядков линейной модели в качестве начальных значений порядков нелинейной модели (nb
и nf
свойства Гаммерштейна-Винера (idnlhw
) и задержки (nk
свойство).
Установка полиномов B и F линейной передаточной функции в структуре модели Гаммерштейна-Винера.
Во время оценки алгоритм оценки использует эти значения, чтобы настроить нелинейную модель к данным. По умолчанию и входная, и выходная оценки нелинейности являются кусочно-линейными функциями (см. pwlinear
).
Можно также задать различные входные и выходные оценки нелинейности. Для примера сигмоидная сеть входа устройством оценки нелинейности и устройством оценки нелинейности выхода мертвой зоны.
m = nlhw(data,LinModel,'sigmoidnet','deadzone')
Для получения примера смотрите Оценку моделей Гаммерштейна-Винера, инициализированных с использованием линейных моделей OE.