В этой теме описывается процесс анализа результатов односторонней оптимизации (например, максимизация крутящего момента по сравнению с искрой, ICP, ECP в рабочей точке двигателя, использование fmincon
, ga
и patternsearch
алгоритмы).
Для каждого запуска оптимизации цель состоит в том, чтобы найти оптимальное решение. Представление выхода оптимизации предоставляет графические инструменты, которые помогают вам определить, было ли найдено оптимальное решение для данного запуска. Это представление содержит таблицу со значками, указывающими на состояние каждого запуска оптимизации.
Значки таблицы результатов оптимизации
Значок | Описание |
---|---|
Зеленый квадрат Принять значок | Указывает на успех (выходной флаг алгоритма > 0). |
Оранжевый треугольник Принять значок | Указывает, что оптимизация завершена раньше (выходной флаг = 0). Эта ситуация обычно возникает, когда оптимизатор достиг некоторой формы временных пределов. Примеры этого включают превышение ряда итераций или предела вычисления функции. В таких случаях оптимизация продолжается, но была вынуждена прекратиться, прежде чем будет найдено оптимальное решение. |
Значок «Красный круг» «Принять» | Указывает на отказ (выходной флаг < 0). Обычно это происходит из-за проблемы с ограничениями для этого запуска. |
Процесс анализа результатов оптимизации точек включает в себя следующие задачи:
Перейдите в представление Optimization Output для оптимизации.
Анализ всех запусков с помощью зеленого квадрата значки (). Для каждого запуска:
Просмотр целевых графиков.
Смотрите контурные графики для как можно большего количества пар свободных переменных. Можно сконфигурировать выходное представление оптимизации для отображения нескольких контурных графиков одновременно.
Решение нашло локальный оптимум? Многие алгоритмы оптимизации спроектированы, чтобы найти локальный оптимум (например fmincon
в CAGE). Проверяйте каждый успешный запуск, чтобы убедиться, что оптимизатор нашел лучшее возможное решение. Для получения дополнительной информации и примеров смотрите Обнаружение Локального Оптимума.
Оптимизация, по-видимому, завершилась раньше? В некоторых случаях оптимизация, по-видимому, возвращает субоптимальные результаты, даже если оптимизатор вернул положительный выходной флаг. Расследовать такие случаи. См. Исследование раннего прекращения оптимизации.
Повторите шаги 2a и 2b, чтобы проанализировать все запуски с оранжевым треугольником Accept icons (), которые указывают на раннее прекращение оптимизации. Смотрите Исследование Раннего Прекращения Оптимизации для получения дополнительной информации и примеров.
Повторите шаги 2a и 2b, чтобы проанализировать все запуски с красными значками круга Accept (), которые указывают на отказы. Эти запуски обычно не соответствуют ограничениям. Осмотрите графики и определите, допустимо ли ослабить любое из ограничений.
После того, как вы исследуете свои результаты, чтобы идентифицировать проблемы, используйте эти предложения, чтобы попытаться улучшить результаты оптимизации:
Если вы обнаружили локальный оптимум, попробуйте запустить оптимизацию снова, чтобы найти лучший оптимум.
Отредактируйте начальное условие вручную для этой рабочей точки оптимизации и перезапустите.
Для оптимизации точек, которые используют fmincon
алгоритм, установите Number of start points больше 1 и перезапустите. В этом случае CAGE выполняет оптимизацию более одного раза для каждого запуска. Чтобы сэкономить время, вы, возможно, захотите только повторить обидные запуски таким образом.
Используйте альтернативный алгоритм на запусках, которые нашли локальный оптимум. Например, можно попробовать ga
или patternsearch
алгоритмы в CAGE (если вы попробовали fmincon
алгоритм сначала).
Если оптимизация заканчивается раньше:
В случаях, когда у оптимизатора заканчиваются итерации/вычисления функции/время, и возвращенное решение допустимо, определите, является ли решение приемлемым для вас.
Чтобы принять решение, установите флажок Принять (Accept) в таблице Результаты оптимизации (Optimization Results).
Если вы отвергаете решение, перезапустите оптимизацию с измененными настройками параметра. В этом случае, если fmincon
или patternsearch
используется, желательно запустить оптимизатор из только что найденного решения.
В случаях, когда у оптимизатора заканчиваются итерации/вычисления функции/время, и возвращенное решение недопустимо, можно попробовать повторить оптимизацию из различных начальных условий (для fmincon
или patternsearch
) или другие настройки параметра (все алгоритмы). Если этот подход не решает проблему, определите, было ли нарушено какое-либо ограничение. Исследуйте нарушенные ограничения, чтобы определить, могут ли они быть ослаблены. Если они могут, перезапустите оптимизацию с ослабленными ограничениями; если нет, оставьте флажок не установленным, чтобы указать, что решение недопустимо.
Смотрите также Обработку Flat Optima.
Этот рисунок показывает представления для оптимизации, которая нашла оптимальное решение. Цель состоит в том, чтобы максимизировать крутящий момент (Objective1) от угла искры (S), закрытия вытяжного клапана (ECP) и открытия впускного клапана (ICP).
Когда вы анализируете результаты оптимизации, ищите результаты, которые нашли лучший оптимум против свободных переменных.
В этом случае отдельный участок может только показать, что это высоко вероятно, а не определенно оптимальное значение, потому что существует более двух свободных переменных. Для задач с более чем двумя свободными переменными представления «Объективные графики» и «Контуры» не могут гарантировать, что оптимальное решение было найдено, потому что они обеспечивают проекции модели.
Для получения последующего подтверждения необходимо просмотреть представление «Целевой контур» (Objective Contour) столько пар свободных переменных, сколько у вас есть времени для анализа.
Этот пример показывает, что алгоритм нашел локальный максимум (отмеченный оранжевым крестом). Глобальный максимум для этой оптимизации можно увидеть в правом нижнем углу контурного графика.
Ограничение, такое как ограничение градиента таблицы, может вызвать локальный максимальный результат. Этот результат может быть желательным, однако, потому что для гладкости таблицы может быть предпочтительным найти локальный максимум с небольшими потерями крутящего момента по сравнению с глобальным максимумом (в этом случае около 1,3 НМ крутящего момента (1%), который находится в пределах точности модели).
Чтобы просмотреть контурные графики для многих пар свободных переменных, можно сконфигурировать выход оптимизации, чтобы отобразить несколько контурных графиков одновременно. Одновременное отображение может помочь определить местоположение тех запусков, которые сошлись к локальному оптимуму.
Этот рисунок одновременно показывает контурные графики для всех пар свободных переменных для примера бензина.
Просмотрите графики целей и представления контуров, чтобы проверить оптимизацию, которая была завершена раньше. Раннее завершение обычно происходит с запусками, которые имеют предупреждающий оранжевый треугольник Accept значки, но могут также возникнуть, когда оптимизатор вернул успешный зеленый квадрат Accept значок.
Этот рисунок показывает запуск оптимизации с предупреждающим оранжевым треугольником Accept значка, который был вынужден завершиться, потому что он превысил предел итераций.
В этом случае оптимизатор почти нашел оптимальное решение для этого запуска. Если для запуска этого оптимизатора потребовалось много времени, то поскольку это решение почти оптимально, вероятно, стоит пометить как приемлемое (выберите Accept поле в таблице Результаты оптимизации для этого прогона).
Этот рисунок показывает другой пример, где оптимизация завершилась раньше, потому что она превысила предел итераций.
В этом случае проблема, по-видимому, перегружена, потому что графики полностью затенены желтым цветом. Можно проверить сводную таблицу ограничений или выходную таблицу, чтобы определить, выполняются ли ограничения. Также проверьте сводные данные ограничений и графики ограничений.
Ограничительные графики для этого случая показаны на этом рисунке.
Эти ограничительные представления подтверждают, что Constraint2
нарушается для этого запуска. Поэтому, вероятно, это решение лучше оставить неприемлемым. В подобных случаях, если он еще не отмечен как неприемлемый, снимите флажок Accept в таблице Результаты оптимизации (Optimization Results) для этого запуска.
Этот рисунок показывает оптимизацию, которая, по-видимому, завершилась раньше, несмотря на возвращение положительного выходного флага. Видно, что оптимизатор не расположил максимум. Вы должны расследовать подобные дела.
Существует много причин, по которым оптимизация, по-видимому, прекращается раньше. В этом разделе рассматриваются две общие причины и возможные разрешения.
fmincon
может не вернуть локальный оптимум, если эти значения параметров слишком высоки:
Переменный допуск
Function tolerance
Допуск ограничений
В этом случае попробуйте уменьшить значения этих параметров, чтобы улучшить эффективность. Однако не уменьшайте эти значения параметров слишком низко (менее ~ 10-10), чтобы избежать внутренних проблем с fmincon
. Модели, которые имеют нефизическую нелинейность, также могут вызвать отказ.
Некоторые алгоритмы, основанные на некрадиентах, могут не вернуть оптимальное решение. Примером этого является генетический алгоритм (ga
) оптимизация в CAGE. Плохой выбор параметров для таких алгоритмов может привести к раннему прекращению оптимизации. Для примера установите параметр Crossover Fraction ga
алгоритм к 1 может привести к ситуации, когда алгоритм преждевременно сходится. В этом случае попробуйте повторить оптимизацию при альтернативных настройках параметра. Для наилучших результатов перезапустите алгоритм с дробью кроссовера ниже 1 (значение по умолчанию является 0,8).
Оптимизация может завершиться раньше, потому что модели зашумлены, и вы использовали алгоритм, основанный на градиенте (fmincon
) для решения задачи оптимизации.
Если контурные графики или какие-либо результаты подозрительны, вы всегда должны исследовать тренды модели, чтобы проверить, являются ли они разумными, а не избыточными. Исследуйте модели в Средство Просмотра или в виде поверхности отклика Model Browser. Вам может понадобиться переделать.
Чтобы проверить, является ли ваша модель шумной, увеличьте линейный график модели в средство просмотра CAGE Surface. Далее приведен график Objective1 против x вокруг значения x, возвращенного оптимизатором.
Можно увидеть, что модель является шумной, и оптимизатор (правильно) вернул локальный максимум модели. Однако этот результат является максимумом шумовой составляющей в модели, а не физическим компонентом. Если шум не является поведением физической системы, то следует переделать шумные модели в Model Browser. Инструмент CAGE Import может использоваться, чтобы заменить шумные модели результатами ремоделирования, и можно перезапустить оптимизацию.
Функции, которые являются плоскими вблизи их оптимумов, может быть трудно оптимизировать. Этот рисунок показывает пример такой функции, , и его объемная поверхностная диаграмма.
Эта функция имеет глобальный минимум в (0, 0) и очень плоская в окрестностях оптимального решения.
Использование fmincon
алгоритм в CAGE, чтобы найти минимум этой функции (от начальных условий ) дает результат, показанный на этом рисунке. Оптимизатор находит решение в , что не оптимально. На этих графиках четко видно, что оптимизатор не установил минимум в (0, 0).
Чтобы настроить оптимизатор, чтобы найти минимум, можно взять один из нескольких подходов:
Измените начальные условия.
Для основанного на градиенте алгоритма (fmincon
в CAGE), изменение начальных условий может помочь оптимизатору найти минимум, где целевая функция плоская в непосредственной близости от минимума. В примере, показанном на предыдущем рисунке, изменение начальных условий на (x, y) = (1,1) приводит к fmincon
нахождение минимума в (0, 0).
Переформулируйте целевую функцию.
Переформулируйте целевую функцию с помощью операции, которая не изменяет местоположение каких-либо оптимальных решений, например, попробуйте взять квадратный корень, четвертый корень или журнал или умножить на положительную скалярную величину. Проверяйте, что положение оптимума не изменяется. Когда целевая функция плоская в области оптимума, повторное преобразование целевой функции может помочь основанным на градиенте алгоритмам оптимизации, таким как fmincon
в CAGE. В примере, показанном на предыдущем рисунке, когда fmincon
в CAGE используется для минимизации , расположен минимум в (0, 0).
Используйте алгоритм, не основанный на градиентах.
Попробуйте поиск шаблона или опции генетического алгоритма. Поскольку эти алгоритмы не используют информацию о градиенте, они могут работать лучше, когда используются для задач оптимизации с плоскими минимумами. В примере, показанном на предыдущем рисунке, алгоритм поиска шаблона в CAGE установил минимум с помощью настроек по умолчанию.
Запустите оптимизацию из нескольких начальных значений условий.
Если вы используете fmincon
тогда другое возможное решение состоит в том, чтобы задать параметр Number of Start Points больше 1. Этот параметр запускается fmincon
Конкретное количество раз от различных начальных условий. Используйте эту опцию только для затронутых запусков, поскольку она может занимать много времени.
Изменение допусков.
Для основанного на градиенте алгоритма (fmincon
в CAGE), изменение допусков переменной или функции может помочь оптимизатору найти минимум, где целевая функция плоская в непосредственной близости от минимума. Уменьшение допусков на variable и function может улучшить сходимость до оптимального значения в этом случае.