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

Пример 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,016,5–28,520,40λg/4 при 35,36 Ом даёт 20,07
Lshмежосевое по вертикали, ммнепрерывная14,012,0–24,023,86λg/4 при 50 Ом даёт 20,53
Wserширина горизонтальных плеч, ммнепрерывная7,24,1–8,05,618Z = 35,36 Ом даёт 5,25
Wshширина вертикальных плеч, ммнепрерывная1,51,0–4,03,499Z = 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,60,0075дБ1,95–2,05 ГГц2деление и баланс плеч
2|S31|Равно−3,60,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, их разность ограничена автоматически:

Δmax=20lgt+dtd\Delta_{\max} = 20\lg\frac{t+d}{t-d}

При t = 0,66069 и d = 0,0075 коридор составляет 0,65319…0,66819, то есть от −3,70 до −3,50 дБ, и разбаланс не может превысить 0,197 дБ.

Допуск, линейныхКоридор, дБГарантированный разбаланс
0,025−3,94…−3,280,658 дБ
0,010−3,73…−3,470,263 дБ
0,0075−3,70…−3,500,197 дБ
0,005−3,67…−3,530,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_gM_gЧастотаЗначение
|S21| = −3,6 дБ ± 0,0075выполнена00 φ1,95 ГГц−3,66 дБ
|S31| = −3,6 дБ ± 0,0075выполнена00 φ1,95 ГГц−3,53 дБ
|S41| минимизироватьэкстремум0,2328260,232826 φ2,05 ГГц−26,94 дБ
КСВН ≤ 1,22выполнена00 φ1,95 ГГц1,164
|S21| ≥ −4,5 дБ в 1,8–2,2выполнена00 φ1,80 ГГц−4,42 дБ
|S31| ≥ −4,5 дБ в 1,8–2,2выполнена00 φ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 дБ, разбаланс - втрое хуже. Причина в том, что пороговый набор останавливает прогон в тот момент, когда последнее требование выполнено впервые, а не тогда, когда оно выполнено с запасом. Оптимизации «сверх порога» не бывает по определению.

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