Пример 11. Глобальный → локальный: шесть конкурирующих целей
- Файл:
11_GlobalLocal_Pipeline.gma(Каталог:Sources/Files/Examples/Optimization/) - Модель: G6
- Переменных: 4
- Бюджет: 300
Связанные страницы:
Ниже показана геометрия модели:
Задача
Квадратурный ответвитель branch-line 3 дБ / 90° на 2 ГГц. Кольцо из четырёх отрезков в четверть длины волны: горизонтальные плечи 35,36 Ом, вертикальные 50 Ом. Порты по углам: P1 (вход) и P4 (изолированный) слева, P2 (выход −90°) и P3 (выход −180°) справа.
При возбуждении порта P1 идеальный ответвитель даёт S21 = −j/√2, S31 = −1/√2 и S41 = 0. Изолированный порт находится на той же стороне, что и вход, и соединён с ним вертикальным плечом Z₀.
Lser и Lsh - межосевые расстояния соседних плеч, а не длины полосок.
Развёртка 1,6–2,4 ГГц, быстрый метод, шаг 0,001 ГГц; в узкую полосу цели попадает 101 выборка, в широкую - 401.
Переменные
| Обозначение | Параметр | Тип | Старт | Диапазон | Найдено | Из синтеза |
|---|---|---|---|---|---|---|
Lser | межосевое по горизонтали, мм | непрерывная | 26,0 | 16,5–28,5 | 20,40 | λg/4 при 35,36 Ом даёт 20,07 |
Lsh | межосевое по вертикали, мм | непрерывная | 14,0 | 12,0–24,0 | 23,86 | λg/4 при 50 Ом даёт 20,53 |
Wser | ширина горизонтальных плеч, мм | непрерывная | 7,2 | 4,1–8,0 | 5,618 | Z = 35,36 Ом даёт 5,25 |
Wsh | ширина вертикальных плеч, мм | непрерывная | 1,5 | 1,0–4,0 | 3,499 | Z = 50 Ом даёт 3,08 |
Подписи узлов: Lser [16.5..28.5] мм, Lsh [12..24] мм, Wser [4.1..8] мм,
Wsh [1..4] мм.
Расхождение по Lsh составляет 16 %, и это не ошибка синтеза: у branch-line при
ширине плеча, сравнимой с длиной, T-сочленения удлиняют плечо электрически.
Цели
| № | Величина | Условие | Значение | Допуск | Единицы | Полоса | Вес | Что задаёт |
|---|---|---|---|---|---|---|---|---|
| 1 | |S21| | Равно | −3,6 | 0,0075 | дБ | 1,95–2,05 ГГц | 2 | деление и баланс плеч |
| 2 | |S31| | Равно | −3,6 | 0,0075 | дБ | 1,95–2,05 ГГц | 2 | деление и баланс плеч |
| 3 | |S41| | Минимизировать | - | - | Без единиц | 1,95–2,05 ГГц | 1 | изоляция: её максимизируют |
| 4 | КСВН, порт 1 | Меньше | 1,22 | - | Без единиц | 1,95–2,05 ГГц | 1 | согласование входа |
| 5 | |S21| | Больше | −4,5 | - | дБ | 1,80–2,20 ГГц | 1 | полоса рабочих частот |
| 6 | |S31| | Больше | −4,5 | - | дБ | 1,80–2,20 ГГц | 1 | полоса рабочих частот |
Агрегация по полосе - Худшая точка, свёртка целей - Минимакс.
Уровни −3,6 и −4,5 дБ взяты по измеренному балансу мощностей, а не по формуле
идеального ответвителя: FR-4 с tanδ = 0,02 рассеивает около 12 %, и равное деление
глубже −3,58 дБ на этой подложке недостижимо. Уровень деления, вносимого затухания
и КПД задавайте по измеренному балансу мощностей, а не по формуле идеального
устройства - здесь разница составляет 0,6 дБ и целиком съедала бы коридор ±0,3 дБ.
Допуск задаётся в единицах величины, а не в единицах ввода цели, и на этом легко обжечься. Значение цели приводится к линейному виду комбо единиц: «−3,6 дБ» хранится как 0,66069. Допуск не приводится ни к чему - он берётся как есть, в линейных единицах величины. Поэтому «0,3» рядом с целью в децибелах означает не ±0,3 дБ, а коридор от 0,36 до 0,96 линейных, то есть требование равного деления при таком допуске не действует вовсе. Правильное значение для коридора ±0,3 дБ - около 0,025.
Допуск целей 1 и 2 несёт требование баланса плеч, а не «примерно −3,6 дБ».
Требования «|S21| = |S31|» одной целью движок не выражает: цели ставятся на
величины, а не на их разности. Но если оба плеча загнаны в один коридор шириной
±d, их разность ограничена автоматически:
При t = 0,66069 и d = 0,0075 коридор составляет 0,65319…0,66819, то есть от
−3,70 до −3,50 дБ, и разбаланс не может превысить 0,197 дБ.
| Допуск, линейных | Коридор, дБ | Гарантированный разбаланс |
|---|---|---|
| 0,025 | −3,94…−3,28 | 0,658 дБ |
| 0,010 | −3,73…−3,47 | 0,263 дБ |
| 0,0075 | −3,70…−3,50 | 0,197 дБ |
| 0,005 | −3,67…−3,53 | 0,131 дБ |
Цель 6 симметрична цели 5 намеренно. Пока широкополосное требование стояло только на |S21|, второе плечо вне узкой полосы не было ограничено ничем - а несимметричный набор при экстремальной цели есть приглашение потратить именно эту свободу.
Изоляция сделана экстремальной целью намеренно. Из шести требований пять пороговые: деление, согласование, полоса. Изоляцию же не «выполняют», её получают столько, сколько позволит геометрия. Кроме физического смысла у этого есть следствие для прогона: при экстремальной цели в наборе допуск достижения цели не действует, останова по выполнению целей не происходит, и связка успевает пройти оба этапа. Пороговый набор без неё заканчивался бы в первом же этапе, и демонстрация связки не состоялась бы.
Агрегация «Худшая точка» выбрана из-за изоляции. Сглаженный максимум при p = 8
позволяет краям полосы отставать от центра, потому что глубокий центральный ноль
тянет агрегат вниз. Точный максимум измеряет ровно наихудшую выборку. Плата -
негладкая функция: пресет «Авто» ставит вторым этапом Симплекс вместо Доверительной
области, а Симплексу на ту же точность нужно в полтора-три раза больше расчётов.
Отсюда бюджет 300.
Минимакс берёт наибольший из взвешенных вкладов и нормирует его средним весом
набора. При весах 2, 2, 1, 1, 1, 1 средний вес равен 1,333, и F совпадает с этой
формулой до последнего знака. Отсюда практическое следствие: вес меняет не только
приоритет цели, но и масштаб F, поэтому значения целевой функции сравнимы только
внутри одного набора целей.
Настройки метода
| Поле | Значение |
|---|---|
| Метод | Глобальный → локальный |
| Пресет | Авто |
| Бюджет расчётов | 300 |
| Доля глобального этапа | 0,60 (по умолчанию) - 180 расчётов разведки, 120 дожима |
| Радиус локального этапа | 0,150 (по умолчанию) |
| Мин. расстояние рестартов | 0,100 (по умолчанию) |
| Рестарты | вкл (по умолчанию) |
| Свёртка целей | Минимакс |
| Агрегация по полосе | Худшая точка |
Какие этапы поставит «Авто». Жёстких ограничений в наборе нет, переменных четыре, агрегация - «Худшая точка». По лестнице пресета это даёт:
| Этап | Метод | Почему |
|---|---|---|
| 1, разведка | Систематический глобальный (DIRECT-L) | n = 4 ≤ 8 |
| 2, дожим | Симплекс (SBPLX) | агрегация - «худшая точка» |
Какая пара действительно взята, видно в журнале решателя: блок старта печатает её строками «Глобальный этап» и «Локальный этап». Поля Global stage и Local stage при пресете «Авто» показывают не тот выбор, который будет сделан: они остаются на паре, сохранённой в проекте, и только гаснут.
Настройки этапов задаёт связка, а не страницы методов. От связки этап получает свою долю бюджета и допуск цели; всё остальное - встроенные умолчания его собственного метода. Соответственно менять «Равномерное покрытие» на странице Систематического глобального бессмысленно: этап 1 его не возьмёт. Этапу DIRECT-L связка вдобавок выставляет точность по параметрам в 0, потому что своей сходимости по параметрам у метода нет, и назначает порог стагнации в четверть доли этапа, чтобы разведка не топталась.
Рестарты включены - после сходимости дожима остаток бюджета уходит на спуски от следующих кандидатов разведки, а кандидаты ближе 0,100 к уже дожатым считаются тем же бассейном и пропускаются. От этого зависит статус завершения: «сошёлся» ставится только когда каждый выполненный спуск завершился по своей точности.
Поля зерна ГСЧ у связки нет, и поле Seed страницы одиночного метода на её этапы не влияет: этап работает с зерном по умолчанию, поэтому воспроизводимость полная независимо от выбора этапов.
Пояснения
Это единственный пример, где одновременно естественны условие «Равно» с допуском, вес, отличный от единицы, свёртка Минимакс и оба режима единиц для S-параметра. Плюс единственная четырёхпортовая модель: задействованы S21, S31 и S41.
Задача нетривиальна, хотя формула синтеза известна: при ширине плеча 5,25 мм и длине 20 мм ширина сравнима с длиной, и разрывы T-сочленений сдвигают истинный оптимум на несколько процентов.
Куда ушёл бюджет, видно на графике сходимости: этапы разделены нейтральными полосами (разведка, затем дожим и каждый рестарт - своей полосой), а каждый рестарт вдобавок отмечен вертикальной линией с подписью «рестарт N». Рестартами считаются дожимы со следующих кандидатов: разведка и первый, плановый дожим рестартами не считаются, поэтому первая линия стоит перед третьим этапом. Число рестартов печатается в итогах прогона строкой «Рестартов поиска: N».
Что должно получиться
| Показатель | Значение |
|---|---|
| Расчётов | 301 из 300 |
| Статус | бюджет исчерпан |
| Рестартов поиска | 1 |
| Лучший шаг | 267, F = 0,174619 |
| Отказов | 0 |
| Результат | Lser = 20,400 · Lsh = 23,861 · Wser = 5,618 · Wsh = 3,499 мм |
Связка отработала полностью, все три части видны в журнале:
| Расчёты | Этап | Что делает |
|---|---|---|
| 1–182 | глобальный | разведка, 0,60 бюджета |
| 183–275 | локальный | дожим лучшего кандидата |
| 276–301 | локальный, рестарт 1 | дожим следующего кандидата разведки |
Локальный этап улучшил результат глобального - то, ради чего связку и берут.
Разведка закончилась на F = 0,208, дожим довёл до 0,175. Рестарт один, а не два:
спуски Симплекса длиннее, чем у Доверительной области, и в остаток бюджета уместился
только один; он рекорда не улучшил. Это нормальный исход: рестарты страхуют от того,
что лучший по разведке кандидат окажется не лучшим после дожима.
По целям в лучшей точке:
| Цель | Состояние | A_g | M_g | Частота | Значение |
|---|---|---|---|---|---|
| |S21| = −3,6 дБ ± 0,0075 | выполнена | 0 | 0 φ | 1,95 ГГц | −3,66 дБ |
| |S31| = −3,6 дБ ± 0,0075 | выполнена | 0 | 0 φ | 1,95 ГГц | −3,53 дБ |
| |S41| минимизировать | экстремум | 0,232826 | 0,232826 φ | 2,05 ГГц | −26,94 дБ |
| КСВН ≤ 1,22 | выполнена | 0 | 0 φ | 1,95 ГГц | 1,164 |
| |S21| ≥ −4,5 дБ в 1,8–2,2 | выполнена | 0 | 0 φ | 1,80 ГГц | −4,42 дБ |
| |S31| ≥ −4,5 дБ в 1,8–2,2 | выполнена | 0 | 0 φ | 1,80 ГГц | −3,43 дБ |
Целевая функция целиком определяется единственным ненулевым вкладом: Минимакс берёт
максимум взвешенных вкладов, а у пяти пороговых целей они нулевые. Отсюда
F = 0,232826 / 1,333 = 0,174619.
Прибор в найденной точке:
| Показатель в полосе 1,95–2,05 | Измерено | Требовалось |
|---|---|---|
| |S21| | −3,66…−3,57 дБ | коридор −3,70…−3,50 |
| |S31| | −3,64…−3,53 дБ | коридор −3,70…−3,50 |
| Разбаланс плеч | не хуже 0,129 дБ | ≤ 0,197 по построению коридора |
| Квадратура | 89,84…89,87° | целью не задана |
| Изоляция | не хуже 26,9 дБ, в центре 62,9 | максимизировалась |
| КСВН | не выше 1,164 | ≤ 1,22 |
| Потери | 11,8…12,1 % | - |
Это настоящий квадратурный мост: деление равное с точностью 0,13 дБ, квадратура выдержана с точностью 0,16°, изоляция 27 дБ, согласование 1,16. Из 3,6 дБ вносимого затухания 0,53 дБ - рассеяние FR-4, и оптимизатору оно недоступно.
Полосы по уровням: изоляция ≥ 20 дБ на 11,3 %, разбаланс ≤ 0,2 дБ на 13,5 %, |S11| ≤ −20 дБ на 8,3 %.
Квадратуры нет ни в одной цели набора, и держит её топология, а не постановка. Отклонение от 90° по всей полосе цели не превышает 0,2°, потому что так устроено кольцо branch-line. Полагаться на это можно ровно до тех пор, пока топология не меняется: как только в модели появятся неравные плечи или дополнительные элементы, фазу придётся вносить в цели явно - оптимизатор соблюдает то, что записано, и ничего сверх этого.
Пороги сработали как разрешения. |S21| на 1,800 ГГц вышел на −4,42 дБ при пороге −4,5; КСВН - на 1,164 при пороге 1,22. Прогон садится на границу того, что ему позволено. Это общее свойство пороговых целей, и оно же объясняет, почему пороги надо ставить на границе достижимого, а не с запасом в разы.
Худшая точка изоляцию не выровняла, и это тоже результат. Ожидалось, что точный максимум поднимет края полосы за счёт центра. Измерено: 27,1 дБ на 1,95 · 62,9 дБ в центре · 26,9 дБ на 2,05 - провал в центре никуда не делся. Изоляция branch-line имеет структурный ноль в центре, а на краях её держит полоса топологии, а не выбор агрегации. Целевая функция считалась ровно по наихудшей выборке - то есть по краям, - и оптимум всё равно такой. Агрегация решает, что измеряется; чего топология не даёт, она не создаст.
Чего этот набор не ограничивает. Вне узкой полосы цели баланс не задан ничем, кроме уровней: на 1,8–2,2 ГГц разбаланс доходит до 0,99 дБ. Если он важен во всей рабочей полосе, коридор равного деления надо задавать и там - с большим допуском, потому что одиночное кольцо шире не умеет.
Когда этот метод - правильный выбор
- Заранее неизвестно, глобальная задача или локальная. Метод не требует это решать: он сам разведывает пространство, затем дожимает.
- Нужны и охват, и точность. Чисто глобальные методы плохо добивают последние проценты, локальные плохо ищут.
- Есть жёсткие ограничения и нужен глобальный поиск. Пресет «Авто» ставит локальным этапом COBYLA, и ограничения соблюдаются штатно.
- Много конкурирующих целей: сначала найти область компромисса, затем уточнить.
- Есть дискретные оси: связка входит в тройку методов, хорошо работающих с ними, за счёт глобального этапа.
Когда его брать не стоит
- Точно известно, что задача локальная, и есть хорошее начальное приближение. Глобальный этап потратит больше половины бюджета впустую.
- Нужен только охват - например, вы строите набор решений. Берите DIRECT-L или MLSL.
- Малый бюджет. Бюджет делится на два этапа; при 80 расчётах каждый получит по 40, и ни один не сработает как надо.
- Набор состоит из одних пороговых целей и они достижимы легко. Прогон закончится в первом же этапе по достижению цели, и связка выродится в свой глобальный этап. Признак в сводке однозначен: статус достижения цели, номер шага заметно меньше бюджета и большой неизрасходованный остаток.
- Локальный этап выбран вручную и это не COBYLA, а в наборе есть жёсткие ограничения. Тогда ограничение свернётся в штраф, о чём предупредит журнал. То же и для глобального этапа: ограничения из методов этапа 1 поддерживает только ISRES, остальные ведут разведку, не видя их.
Чем заменить
| Ситуация | Замена |
|---|---|
| задача локальная, начальное приближение хорошее | Доверительная область или Симплекс |
| нужен набор решений | Мультистарт, пример 10 |
| нужна только разведка, дожим потом вручную | Систематический глобальный, Управляемый случайный поиск или Адаптивная эволюция |
| бюджет мал | Адаптивный глобальный, пример 8 |
Что попробовать дополнительно
Сумма против Минимакса. Переключите свёртку на Сумму и сравните итог. При Сумме оптимизатор доводит деление почти до идеала, но изоляция просядет: взвешенное среднее это позволяет, потому что выигрыш по двум целям с весом 2 перекрывает проигрыш по одной с весом 1. При Минимаксе оптимизатор обязан подтягивать наихудшую цель, и решение получается сбалансированным. Для наборов с конкурирующими целями выбор свёртки важнее выбора метода.
Слишком широкий допуск. Поставьте целям 1 и 2 допуск 0,3 - то самое значение, которое получается, если принять поле за децибелы. Прогон закончится на первых же десятках расчётов со статусом достижения цели и с ответвителем, делящим мощность примерно 63 / 25 вместо 50 / 50, а связка не дойдёт до второго этапа. Полезно проделать один раз: это самый дешёвый способ запомнить, что допуск живёт в единицах величины, а не в единицах ввода.
Обнулить допуск. Уберите допуск у целей 1 и 2. Коридор исчезнет, любое отклонение от −3,6 дБ начнёт штрафоваться, задача станет заметно жёстче, а изоляция просядет.
Пороговый набор целиком. Замените цель 3 на пороговую «|S41| < 0,100» и запустите. Все шесть целей станут пороговыми, прогон закончится по достижению цели в глобальном этапе, и вы получите прибор хуже нынешнего при выполненных целях: изоляция выйдет чуть выше 20 дБ, разбаланс - втрое хуже. Причина в том, что пороговый набор останавливает прогон в тот момент, когда последнее требование выполнено впервые, а не тогда, когда оно выполнено с запасом. Оптимизации «сверх порога» не бывает по определению.
Ручной выбор этапов. Поставьте пресет «Разведка → Дожим» и локальным этапом Доверительную область. Агрегация здесь «Худшая точка», то есть функция негладкая, и дожим сработает хуже. Сравните итог с автоматической парой - это и есть цена правильного выбора локального этапа.