Модели Хаммерштейна-Винера описывают динамические системы, использующие один или два статических нелинейных блока последовательно с линейным блоком. Линейный блок является дискретной передаточной функцией и представляет динамический компонент модели. Дополнительные сведения о структуре этих моделей см. в разделе Что такое модели Хаммерштейна-Винера?
Вы можете оценить модели Hammerstein-Wiener в приложении 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, она называется моделью Хаммерштейна. Аналогично, когда модель содержит только выходную нелинейность h, она называется моделью Винера.
Сведения о настройке структуры модели в командной строке и в приложении см. в разделах Оценка моделей Хаммерштейна-Винера в командной строке и Оценка моделей Хаммерштейна-Винера в приложении.
Чтобы настроить оценку модели, укажите минимизируемую функцию потерь и выберите алгоритм оценки и другие опции оценки для выполнения минимизации.
Функция потерь или функция затрат является функцией ошибки между выходом модели и измеренным выходом. Дополнительные сведения о функциях потерь см. в разделах Функция потерь и Показатели качества модели.
В командной строке используйте команду nlhw набор опций, nlhwOptions для конфигурирования функции потери. Можно задать следующие параметры:
OutputWeight - укажите взвешивание ошибки в оценках с несколькими выходами.
Regularization - Измените функцию потерь, чтобы добавить штраф за отклонение оцененных параметров. Дополнительные сведения см. в разделе Регуляризованные оценки параметров модели.
Дополнительные сведения о том, как указать эти параметры в приложении, см. в разделе Оценка моделей Хаммерстайна-Винера в приложении.
Для оценки модели Хаммерштейна-Винера программное обеспечение использует итеративные алгоритмы поиска для минимизации функции потерь. В командной строке используйте nlhwOptions для задания алгоритма поиска и других параметров оценки. Можно указать следующие параметры:
SearchMethod - Метод поиска для минимизации ошибок прогнозирования или моделирования, таких как поиск линий Гаусса-Ньютона и Левенберга-Марквардта, и подход Ньютона, отражающий область доверия.
SearchOptions - Набор опций для алгоритма поиска с полями, зависящими от значения SearchMethod, например:
MaxIterations - максимальное число выполняемых итераций.
Tolerance - условие для завершения итеративного поиска, когда ожидаемое улучшение значений параметра меньше указанного значения.
InitialCondition - По умолчанию программа рассматривает начальные состояния модели как ноль и не оценивает состояния. Можно выбрать оценку начальных состояний, что иногда может улучшить оценки параметров.
Полный список доступных опций оценки см. в разделе nlhwOptions. Дополнительные сведения о том, как указать эти параметры оценки в приложении, см. в разделе Оценка моделей Хаммерстайна-Винера в приложении.
После предварительной обработки данных оценки и настройки структуры модели, функции потерь и опций оценки можно оценить модель в приложении System Identification или с помощью nlhw. Результирующей моделью является idnlhw объект, в котором хранятся все данные модели, включая параметры модели и оценщик нелинейности. Дополнительные сведения об этих объектах модели см. в разделе Нелинейные структуры модели. Можно проверить расчетную модель, как описано в разделе Проверка моделей Хаммерштейна-Винера.
В командной строке можно использовать одну из следующих линейных моделей для инициализации линейного блока модели Хаммерштейна-Винера:
Полиномиальная модель структуры ошибки вывода (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.