Пример 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,0 | 26,0–30,0 | 28,49 |
W | ширина патча, мм | непрерывная | 35,0 | 33,0–39,0 | 38,98 - у верхней границы |
d | глубина врезки, мм | непрерывная | 6,0 | 4,0–11,0 | 7,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_g | M_g | Частота | Значение |
|---|---|---|---|---|---|
| КПД, максимизировать | экстремум | −1,22785 | −1,22354 φ | 2,46 ГГц | 42,07 % |
| КСВН ≤ 2, ограничение | соблюдено | 0 | 0 φ | 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, геометрия вырождается: пробе назначается большой штраф, отказ
помечается в журнале, прогон продолжается, а десять отказов подряд останавливают
оптимизацию с ошибкой. Лечится это сужением диапазонов, а не увеличением бюджета.