Во время валидации модели могут демонстрировать нежелательные характеристики или плохую подгонку к данным валидации.
Используйте советы в этих разделах, чтобы помочь улучшить производительность модели. Некоторые функции, такие как низкое отношение сигнал/шум, меняющиеся свойства системы или нестационарные нарушения порядка, могут привести к данным, для которых хорошая подгонка модели не возможна.
Плохая подгонка на графике выхода модели может быть результатом неправильного порядка модели. Система идентификации является в значительной степени процессом проб и ошибок при выборе структуры модели и порядка модели. В идеале вам нужна модель самого низкого порядка, которая адекватно захватывает динамику системы. Модели высокого порядка дороже в вычислении и приводят к большей неопределенности параметра.
Начните с оценки порядка модели, как описано в Предварительном шаге - Оценка порядков модели и входных задержек. Используйте предлагаемый порядок в качестве начальной точки для оценки максимально низкого порядка с различными структурами модели. После каждой оценки следите за выходами модели и остаточного анализа, а затем корректируйте настройки для следующей оценки.
Когда модель низкого порядка плохо подходит к данным валидации, оцените модель более высокого порядка, чтобы увидеть, улучшается ли подгонка. Для примера, если график Выхода модели показывает, что модель четвертого порядка дает плохие результаты, оцените модель восьмого порядка. Когда модель более высокого порядка улучшает подгонку, можно сделать вывод, что линейных моделей более высокого порядка потенциально достаточно для вашего приложения.
Используйте независимый набор данных для проверки моделей. Если вы используете один и тот же набор данных для оценки и валидации, подгонка всегда улучшается, когда вы увеличиваете порядок модели и рискуете подгонкой. Однако, если вы используете независимый набор данных для проверки модели, подгонка в конечном счете ухудшается, если порядки модели слишком высоки.
Существенный шум в вашей системе может привести к плохой подгонке модели. Наличие такого шума указывается при:
Модель пространства состояний производит лучшую подгонку, чем модель ARX. В то время как структура пространства состояний имеет достаточную гибкость для модели шума, структура ARX не может независимо моделировать шум и динамику системы. Следующее уравнение модели ARX показывает, что A связывает динамику и условия шума, появляясь в знаменателе обоих:
Остаточный график для анализа показывает значительную автокорреляцию невязок при ненулевых лагах. Для получения дополнительной информации об остаточном анализе см. разделы на странице Остаточный анализ.
Чтобы более тщательно моделировать шум, используйте или ARMAX, или структуру модели Box-Jenkins, обе из которых моделируют шум и динамические условия, используя различные полиномы.
Можно проверить, является ли линейная модель нестабильной, путем изучения диаграммы нулей и полюсов модели, которая описана на графиках полюса и нуля. Порог устойчивости для значений полюса отличается для моделей в дискретном времени и в непрерывном времени следующим образом:
Для стабильных моделей в непрерывном времени действительная часть шеста меньше 0.
Для стабильных моделей в дискретном времени величина полюса меньше 1.
Примечание
Линейные тренды в данных оценки могут привести к нестабильности идентифицированных линейных моделей. Однако удаление тренда модели не гарантирует стабильности.
Если ваша модель нестабильна, но вы верите, что ваша система стабильна, вы можете.
Стабильность силы во время оценки - Установите Focus
опция оценки значения, которое гарантирует стабильную модель. Эта настройка может привести к снижению качества модели.
Допустим некоторую нестабильность - Установите порог устойчивости опции расширенной оценки, чтобы допустить запас ошибки:
Для моделей в непрерывном времени задайте значение Advanced.StabilityThreshold.s
. Модель считается стабильной, если полюс в крайнем правом направлении находится слева от s.
Для моделей в дискретном времени задайте значение Advanced.StabilityThreshold.z
. Модель считается стабильной, если все полюсы находятся внутри окружности с радиусом z, который центрирован в источник.
Для получения дополнительной информации о Focus
и Advanced.StabilityThreshold
, см. Различные команды для создания наборов опций оценки, таких как tfestOptions
, ssestOptions
, иprocestOptions
.
Чтобы проверить, является ли нелинейная модель нестабильной, постройте график выхода моделируемой модели поверх данных валидации. Если моделируемый выход отличается от измеренного выхода, модель нестабильна. Однако согласие между выходом модели и измеренным выходом не гарантирует стабильности.
В некоторых случаях по-прежнему полезна нестабильная модель. Для примера, если ваша система нестабильна без контроллера, можно использовать модель для проектирования управления. В этом случае можно импортировать нестабильную модель в Simulink® или продукты Control System Toolbox™.
Если моделирование шума и попытка различных структур модели и порядков все еще приводят к плохой подгонке, попробуйте добавить больше входы, которые могут повлиять на выход. Входы не должны быть управляющими сигналами. Любой измеряемый сигнал может быть рассмотрен как вход, включая измеряемые нарушения порядка.
Включите дополнительные измеренные сигналы в ваши входные данные и снова оцените модель.
Если линейная модель показывает плохую подгонку к данным валидации, рассмотрите, присутствуют ли нелинейные эффекты в системе.
Можно смоделировать нелинейности, выполнив простое преобразование входных сигналов, чтобы сделать задачу линейной в новых переменных. Для примера в процессе нагревания с электрическими степенями в качестве ведущего стимула можно умножить напряжения и измерения тока, чтобы создать степень входной сигнал.
Если ваша задача достаточно сложна, и у вас нет физического представления о системе, попробуйте подгонить нелинейные модели черного ящика к своим данным, см. О идентифицированных нелинейных моделях.
Для нелинейных моделей ARX и Гаммерштейна-Винера график Выход не показывает хорошую подгонку, когда оценка нелинейности имеет неправильную сложность.
Задайте сложность кусочно-линейных, вейвлет, сигмоидных и пользовательских сетей, используя NumberOfUnits
нелинейное свойство оценщика. Большее количество модулей указывает на более комплексную оценку нелинейности. При использовании нейронных сетей задайте сложность, используя параметры сетевого объекта. Для получения дополнительной информации см. документацию по Deep Learning Toolbox™.
Чтобы выбрать соответствующую сложность оценки нелинейности, сначала проверьте выход модели с низкой сложностью. Затем увеличьте сложность модели и снова проверьте выход. Модель подгонки ухудшается, когда оценка нелинейности становится слишком сложной. Это ухудшение эффективности видим, только если вы используете независимые наборы данных оценки и валидации