Перейти к основному содержимому

Пример 3. Поиск с ограничениями (COBYLA)

  • Файл: 03_ConstrainedSearch_COBYLA.gma
    (Каталог: Sources/Files/Examples/Optimization/)
  • Модель: G1
  • Переменных: 3
  • Бюджет: автоматический (60)

Связанные страницы:

Ниже показана геометрия модели: Геометрия модели

Задача

Максимизировать КПД излучения патча при обязательном условии КСВН ≤ 2 в полосе 2,42–2,46 ГГц. По сравнению с примерами 1 и 2 добавлена третья переменная - глубина врезки.

Развёртка 2,0–3,0 ГГц, быстрый метод, шаг 0,001 ГГц; в полосу цели попадает 41 выборка.

Переменные

ОбозначениеПараметрТипСтартДиапазонОптимум≈
Lдлина патча, ммнепрерывная27,026,0–30,028,49
Wширина патча, ммнепрерывная35,033,0–39,038,98 - у верхней границы
dглубина врезки, ммнепрерывная6,04,0–11,07,08

Геометрия требует d < L/2: при нарушении прорезь врезки доходит до середины патча, входное сопротивление обращается в нуль и сетка вырождается. Диапазоны выбраны так, что нарушить условие нельзя.

Ширина выходит почти на верхнюю границу диапазона, и это не дефект постановки, а свойство критерия. КПД излучения монотонно растёт с шириной патча: широкий патч излучает лучше, его добротность излучения ниже, доля потерь в подложке меньше. Внутри диапазона 33–39 мм внутреннего максимума поэтому не существует, и любой корректный метод придёт к границе. Физический предел по ширине лежит гораздо выше - примерно на 87 мм, где включаются высшие моды, - но такая ширина уже не микрополосковый патч в исходном смысле.

Читать это надо так: пример демонстрирует работу ограничения, а не поиск внутренней точки. Длина и глубина врезки при этом определены изнутри диапазонов.

Если нужен именно поиск внутренней точки, критерий надо менять - например, максимизировать не КПД, а полосу согласования, т.к. с ростом ширины растёт не монотонно.

Цели

ВеличинаУсловиеЗначениеЕдиницыПолосаВесЖёсткое ограничение
1КПДМаксимизировать--2,42–2,46 ГГц1недоступно
2КСВН, порт 1Меньше2Без единиц2,42–2,46 ГГц1да, допуск 0,05

Подписи целей: max Efficiency [1] Сосредоточенный порт(1) [2.42; 2.46] ГГц и VSWR [1] Сосредоточенный порт(1) [2.42; 2.46] ГГц < 2. Экстремальная цель помечена в панели «Цели» нейтральным ромбом, цель-ограничение - замком, цвет которого и есть вердикт: зелёный - соблюдено, жёлтый - нарушено.

КПД излучения этой структуры ограничен потерями подложки: при tanδ = 0,02 добротность по диэлектрику равна 50, что и задаёт предел около 42 %. Поэтому «Максимизировать» здесь означает подойти к этому пределу, а не к сколь угодно высокому значению.

Настройки метода

ПолеЗначение
МетодПоиск с ограничениями (COBYLA)
Бюджет расчётов0 (авто, 60)
Начальный шаг0,150 (по умолчанию)
Точность по параметрам0,0020 (по умолчанию)

Поля «Останов без улучшения» у COBYLA нет, и в журнале печатается Останов без улучшения: выкл. Прогон от этого бюджет полностью не выбирает: у метода есть собственный критерий сходимости - точность по параметрам, - и завершает прогон именно он.

Пояснения

Экстремальная цель. У КПД нет порога: «хорошо» - это столько, сколько удастся получить. У такой цели нет ни поля значения, ни единиц; задаются только величина, полоса и вес. Останов по достижению цели в наборе с экстремальной целью не работает вовсе, поэтому прогон ограничивают бюджет и собственная сходимость метода.

Ограничение. КСВН ≤ 2 - не пожелание, а условие допустимости. Метод ищет максимум КПД внутри допустимой области, а не компромисс между КПД и КСВН. Без флажка ограничения оптимизатор охотно отдал бы согласование за пару процентов КПД.

Допуск ограничения задаёт допустимую величину нарушения: нарушение в его пределах допустимость не отменяет. Без допуска на границе допустимой области возникает численный дребезг - метод то входит в область, то выходит из неё на уровне погрешности расчёта.

Допуск вводится в единицах величины цели - здесь 0,05 по КСВН. Внутри движка он приводится к единицам штрафа φ, поэтому сводка печатает его в двойной записи, и обе записи видны рядом:

hard constraint: tol = 0.5 phi (0.05 КСВН), violation = 0 phi (0 КСВН), satisfied

Вердикт выносится по M_g, а не по A_g. Соблюдено ограничение или нет, решает точная наихудшая выборка полосы: нарушение = M_g − допуск. Агрегат A_g

  • это ландшафт, по которому идёт поиск; метод ведёт его по сглаженному агрегату, чтобы линейная модель ограничения оставалась пригодной, а сводка выносит вердикт по точному максимуму. Расхождение между ними одностороннее: метод может счесть точку допустимой там, где сводка её допустимой не считает, но не наоборот. Авторитетна сводка.

Появляется правая ось. У прогона с активными жёсткими ограничениями на графике сходимости две величины и две оси. Слева - целевая функция F. Справа, логарифмической осью и пунктиром, - наименьшее нарушение к текущему шагу; эта линия появляется только пока есть хотя бы одно ненулевое нарушение и монотонно падает.

Разделение не косметическое. Пока допустимых точек нет, лучшая точка выбирается по наименьшему нарушению, а не по F, поэтому линия «лучшее к текущему шагу» начинается только с первой допустимой точки. Отложи ту же последовательность на оси F - кривая пошла бы вверх, хотя прогон сходится. Смотреть на такие шаги надо по колонке «Нарушение» в таблице шагов - она для этого и существует.

Пробы с нарушением - штатное поведение, а не сбой. Из 44 расчётов допустимыми оказались 34. Статус «недопустимо» старше статусов «лучший» и «улучшение», поэтому проба с хорошим F и ненулевым нарушением лучшей точкой не станет. Проверять надо не «КСВН нигде не вышел за 2», а две вещи: нулевое нарушение у лучшего шага и итоговую строку журнала. Если бы допустимых точек не нашлось вовсе, прогон завершился бы статусом «Допустимая область не найдена», а в модель записался бы набор с наименьшим нарушением.

Что должно получиться

ПоказательЗначение
Расчётов44 из 60
Статусдостигнута точность по параметрам; 16 расчётов не израсходованы
Лучший шаг43, F = −1,22785
Допустимых расчётов34 из 44
Отказов0
РезультатL = 28,4897 мм · W = 38,9755 мм · d = 7,08323 мм

По целям в лучшей точке:

ЦельСостояниеA_gM_gЧастотаЗначение
КПД, максимизироватьэкстремум−1,22785−1,22354 φ2,46 ГГц42,07 %
КСВН ≤ 2, ограничениесоблюдено00 φ2,42 ГГц1,905

Целевая функция отрицательна, и это норма. Вклад экстремальной цели знаковый, поэтому левая ось графика сходимости - линейная, а не логарифмическая. Линии допуска достижения цели на графике нет: у набора с экстремальной целью порога не существует.

F читается прямо. Масштаб нормировки считается тем же режимом, что и агрегат, поэтому на стартовой геометрии вклад экстремальной цели равен ровно −1, а итог −1,22785 означает, что агрегат по КПД улучшился на 22,8 % относительно стартового. Это не «средний по полосе КПД»: агрегат экстремальной цели - мягкая наихудшая выборка знакового вклада, взятая тем же режимом, что и у пороговых целей. Абсолютное значение КПД снимайте с графика отклика или из строки сводки - здесь 0,420683.

Полученные 42,07 % - это и есть предел, заданный потерями подложки: выше на этой модели не получить.

Достигнутая точность по параметрам - не оптимум. Прогон остановился не потому, что нашёл максимум, а потому что шаг поиска стал меньше допуска. Признак того, что это произошло на шумовой полке, простой: улучшение рекорда на последних расчётах меньше разброса значений F на том же участке. Если так - либо принимайте результат, либо поднимайте допуск по параметрам выше измеренного δF, чтобы прогон останавливался раньше и не тратил расчёты впустую.

Когда этот метод - правильный выбор

  • Есть ограничения и есть начальное приближение. Это главный сценарий применения COBYLA.
  • Задача формулируется как «оптимизировать одно при обязательном выполнении другого» - типовая постановка в СВЧ-проектировании.
  • Функция кусочно-гладкая: линейная модель к изломам терпима.

Когда его брать не стоит

  • Жёстких ограничений нет. Тогда линейная модель COBYLA просто хуже квадратичной модели Доверительной области: сходимость медленнее при том же результате. Это частая ошибка - метод берут «на всякий случай», потому что он умеет ограничения.
  • Дискретные оси, отсутствие начального приближения, возможные несколько решений.
  • Нужен останов без улучшения. Такого поля у метода нет.

Чем заменить

СитуацияЗамена
ограничения есть, начального приближения нетАдаптивная эволюция (ISRES), пример 6
ограничения есть, нужны и поиск, и дожимГлобальный → локальный, пресет «Авто»
ограничений нетДоверительная область или Симплекс
ограничения есть, оси дискретныеАдаптивная эволюция (ISRES)

Что попробовать дополнительно

Что делает ограничение. Снимите флажок, оставив КСВН обычной целью с весом 1, и запустите заново. КПД окажется чуть выше, а КСВН - около 2,5–3. Это наглядно показывает разницу между ограничением и слагаемым целевой функции.

Статус «Допустимая область не найдена». Ужесточите ограничение до КСВН ≤ 1,05 и запустите. Ни одна точка требования не выполнит, прогон завершится этим статусом, а в переменные модели запишется набор параметров с наименьшим нарушением. Полезно проделать один раз, чтобы увидеть, как выглядит правая ось графика, когда линии «лучшее к текущему шагу» нет вовсе.

Отказы расчёта. Расширьте диапазон d до 4–15 и запустите. На пробах, где d подходит к L/2, геометрия вырождается: пробе назначается большой штраф, отказ помечается в журнале, прогон продолжается, а десять отказов подряд останавливают оптимизацию с ошибкой. Лечится это сужением диапазонов, а не увеличением бюджета.