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

Пример 6. Адаптивная эволюция (ISRES): ограничения и три типа переменных

  • Файл: 06_AdaptiveEvolution_ISRES.gma
    (Каталог: Sources/Files/Examples/Optimization/)
  • Модель: G4
  • Переменных: 4
  • Бюджет: 400

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

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

Задача

Трёхзвенный микрополосковый полосовой фильтр на связанных линиях: центр 1,0 ГГц, относительная полоса 10 %.

Топология требует двух отдельных описаний - продольного и поперечного, и оба обязательны, иначе модель собирается неверно.

Продольно. Пять полосок: крайние - подводящие линии с портами, внутренние три - резонаторы длиной 2ℓ. Каждая пара соседних полосок перекрывается ровно на ℓ - это и есть связанная секция, их четыре. Запитки симметричны, по 10 мм с обеих сторон, порты - на торцах платы. Отсюда длина платы 2 · 10 + 4·ℓ - зависимое выражение, а не число: 212 мм при ℓ = 48, от 164 до 228 по диапазону. Так оба порта стоят на кромках при любом ℓ, и модель остаётся симметричной.

Поперечно. Ширина полосок одна на все четыре секции - ступенчатых полосок в этой модели нет. Положения кромок - зависимые выражения, считаются от верхней вниз:

кромка 1 = o кромка 4 = o + 3W + s1 + 2·s2
кромка 2 = o + W + s1 кромка 5 = o + 4W + 2·s1 + 2·s2
кромка 3 = o + 2W + s1 + s2

Величина o равна отступу структуры до кромки платы - 8 мм, то есть 5·h. Ширина платы тоже подбирается автоматически выражением 5·W + 2·s1 + 2·s2 + 2·8 + 2·max(0; 3,05 − W); последнее слагаемое нужно только когда запитка 50 Ом шире полоски.

Почему ширина одна. Разные ширины в секциях требуют ступенчатых резонаторов, а ступенька упирается в соседнюю полоску на части диапазона - причём при любом способе её выравнивания. С одной шириной таких условий не возникает вовсе: зазоры между несоседними полосками равны W + s1 + s2 и W + 2·s2, то есть положительны при любых значениях. Уровень импеданса задаётся единственной шириной, а разная связь в секциях - зазорами s1 и s2.

Развёртка 0,5–1,5 ГГц, быстрый метод, шаг 0,001 ГГц; в полосу пропускания попадает 101 выборка, в каждое заграждение - 351.

Переменные

ОбозначениеПараметрТипСтартДиапазон или списокНайдено
lдлина связанной секции, ммнепрерывная4836–5240,11
Wlширина полосок, одна на все секции, ммнепрерывная3,61,7–3,71,922
s1зазор связи вход/выход, ммсписок1,300,20 · 0,25 · 0,30 · 0,35 · 0,45 · 0,60 · 0,80 · 1,00 · 1,30 · 1,700,30
s2внутренний зазор связи, ммс шагом0,750,50 → 3,50, шаг 0,25 (13 значений)2,00

Единственная модель набора с тремя типами переменных одновременно. Зазор s1 задан списком технологически освоенных значений, зазор s2 - сеткой раскладки там, где допуск не критичен.

Подписи узлов: s1 {0.2; 0.25; 0.3; 0.35; 0.45; 0.6; 0.8; 1; 1.3; 1.7} мм и s2 [0.5..3.5, step 0.25] мм, остальные две - непрерывные, вида l [36..52] мм. Первая строка подвала совместимости в диалоге должна читаться Переменные: 4 (дискретных: 2), Цели: 4 (ограничений: 3) - по ней сразу видно, что открыт нужный проект.

Расчётная геометрия получена из прототипа Чебышёва с пульсациями 0,5 дБ, N = 3 (g = 1,5963 / 1,0967 / 1,5963) при относительной полосе 0,10:

СекцияJ/Y₀Z0e, ОмZ0o, ОмКоэффициент связи√(Z0e·Z0o), Ом
1 и 40,313770,639,20,28652,6
2 и 30,118756,644,80,11750,4

Требуемые √(Z0e·Z0o) в двух секциях различаются на 4 %, поэтому единственная ширина

  • приемлемый компромисс, а разную связь (0,286 против 0,117) обеспечивают зазоры. Ширины и зазоры пересчитаны из этих сопротивлений квазистатически, точность около ±10 %.

Колонка «Найдено» - это допустимая точка, найденная прогоном, а не оптимум: постановка останавливается на первой точке, удовлетворяющей всем требованиям.

Цели

ВеличинаУсловиеЗначениеЕдиницыПолосаВесЖёсткое ограничение
1|S21|Больше−6дБ0,95–1,05 ГГц1-
2КСВН, порт 1Меньше2,5Без единиц0,95–1,05 ГГц1да, допуск 0,05
3|S21|Меньше−20дБ0,50–0,85 ГГц1да, допуск 0,002
4|S21|Меньше−20дБ1,15–1,50 ГГц1да, допуск 0,002

Свёртка целей - Сумма. Агрегация по полосе - Сглаженный максимум. Все веса единичные.

Почему порог −6 дБ. Вносимые потери в центре полосы равны 4,343·Σgᵢ/(Δ·Qu). При Σgᵢ = 4,289, Δ = 0,10 и собственной добротности резонатора Qu ≈ 43 это 4,35 дБ, и меньше при этой подложке быть не может. Оценка Qu складывается из диэлектрических и проводниковых потерь: 1/Qu = tanδ + 1/Q_пров ≈ 1/50 + 1/300. Порог −6 дБ даёт около 1,6 дБ запаса; на краях полосы потери выше центральных, поэтому запас нужен. Порог вида «не хуже −1 дБ» недостижим ни при каких размерах.

Почему порог КСВН равен 2,5, а не 2. Теоретический предел для выбранного прототипа фильтра равен 1,984 - при цели 2 запас составлял бы 0,016.

Почему все цели пороговые, без «Максимизировать». Экстремальный критерий на |S21| в полосе пропускания активно противоречит заградительной маске. Расширение полосы снижает нагруженную добротность крайних резонаторов, а с ней и потери, - значит максимизация |S21| выгодна при широкой полосе. Оптимизатор укорачивает секции, усиливает связь на входе и выходе, центр уезжает вверх, склон становится пологим, и верхнее заграждение оказывается внутри полосы пропускания. Ограничения такому критерию не противовес: он тянет в одну сторону непрерывно, а ограничения лишь отсекают, и поиск застревает в недопустимой области. Порог вместо экстремума снимает конфликт: как только потери в полосе укладываются в −6 дБ, расширяться становится незачем.

Идеальный прототип даёт запас над −20 дБ: 53 дБ на 0,50 ГГц, 13 дБ на 0,85, 8,9 дБ на 1,15 и 38 дБ на 1,50. Наименьший запас - на нижнем крае верхнего заграждения, там маска и будет активной. Если прогон её не возьмёт, ослабляйте по порядку: сначала сдвиньте край с 1,15 на 1,20 (запас вырастет до 16,3 дБ), затем уровень с −20 на −15.

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

ПолеЗначение
МетодАдаптивная эволюция (ISRES)
Бюджет расчётов400 (авто-значение 80 недостаточно)
Размер популяции0 (авто, 20·(n+1) = 100)
Зерно ГСЧ1
Точность по параметрам0,0010 (по умолчанию)

Бюджет должен покрывать хотя бы одну-две популяции; при популяции 100 бюджет 400 даёт четыре поколения. Поля «Останов без улучшения» у ISRES нет, но есть собственный критерий сходимости - точность по параметрам.

Пояснения

Три ограничения из четырёх целей меняют устройство прогона

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

Практических следствий два, и оба видны в мониторе:

  • F обращается в нуль на недопустимых точках. Достаточно выполнить требование по полосе пропускания, а заграждения и КСВН при этом могут быть нарушены. Это не сбой, а прямое следствие того, что ограничения из F исключены.
  • Судить о продвижении надо по нарушению, а не по F. Линия нарушения на правой оси графика убывает монотонно, F не убывает вовсе.

Отсюда общее правило, которое стоит помнить при любой постановке с ограничениями: в целевую функцию должно входить то, что трудно; ограничением делают то, что выполнимо, но нарушать нельзя. Если вынести в ограничения все трудные требования, а критерием оставить лёгкое, оптимизировать окажется нечего: критерий выполнится на первых расчётах, F обратится в ноль и перестанет различать точки.

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

Стартовый рапорт выдаст два примечания, и оба ожидаемы

Это единственный пример набора, где рапорт печатает замечание о размерности, - стоит посмотреть на него хотя бы раз.

Примечание: Этот метод плохо работает с дискретными переменными; сходимость по дискретным осям может быть медленной.
Примечание: В задаче меньше переменных, чем рекомендованный диапазон для этого метода.

Первое - про s1 (список) и s2 (с шагом): к группе «хорошо работающих с дискретными осями» продукт относит только DIRECT-L, CRS2 и связку. Второе - про размерность: у ISRES рекомендованный минимум пять переменных, здесь их четыре.

Оба примечания рекомендательные, прогон они не останавливают, и оба здесь неизбежны: ISRES выбран не за пригодность к дискретным осям и не за размерность, а за единственное свойство, которого нет ни у одного другого глобального метода реестра, - умение соблюдать жёсткие ограничения. Это и есть смысл примечаний: они говорят, чем вы платите за нужное свойство, а не что постановка неверна.

Замечания о несоблюдении ограничения при этом НЕ будет: ограничения передаются движку отдельно от целевой функции и не сворачиваются в штраф.

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

ПоказательЗначение
Расчётов79 из 400; 321 не израсходован
Статусдостигнута цель
Лучший шаг79, F = 0, нарушение 0
Допустимых расчётов1 из 79
Отказов0
Результатl = 40,11 · Wl = 1,922 · s1 = 0,30 · s2 = 2,00 мм

Характеристика в найденной точке:

ТребованиеПорогM_gНаихудшая частотаПолученоЗапас
|S21| в полосе 0,95–1,05> −6 дБ00,95 ГГц−4,51 дБ1,5 дБ
КСВН, порт 1, ограничение≤ 2,500,95 ГГц1,4501,05
|S21| в 0,50–0,85, ограничение< −20 дБ00,50 ГГц−51,1 дБ31 дБ
|S21| в 1,15–1,50, ограничение< −20 дБ01,15 ГГц−22,6 дБ2,6 дБ

Связывающее требование - верхнее заграждение. У нижнего запас 31 дБ, у КСВН двукратный, у полосы пропускания 1,5 дБ, а у верхнего всего 2,6 дБ. Это типично для фильтра на связанных линиях: паразитный отклик полуволновых резонаторов подходит к полосе сверху, и именно он ограничивает конструкцию. Если будете менять постановку - смотрите сначала сюда.

Потери в полосе 4,5 дБ для трёхзвенного фильтра на этой подложке нормальны: собственная добротность резонатора около 43, и расчётные вносимые потери 4,35 дБ.

Прогон остановился на первой же допустимой точке

Допустимых расчётов один из 79 - и это лучший в наборе пример того, как работает отбор лучшей точки при жёстких ограничениях.

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

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

Что смотреть в мониторе

Этот пример показывает три элемента, которых нет больше нигде в наборе.

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

Ряд max M_g - наибольшая из наихудших выборок пороговых целей в лучшей точке. Он уходит под линию допуска достижения цели ровно на том расчёте, где прогон останавливается. Это самый прямой ответ на вопрос «почему прогон закончился именно здесь».

Колонка M_g в панели «Цели». У каждой цели рядом с A_g стоит точная наихудшая выборка и её частота. В найденной точке все четыре M_g равны нулю - требования выполнены во всех точках полос, а не в среднем. Частоты наихудших выборок при этом разные: 0,95 ГГц у полосы пропускания и КСВН, 0,50 и 1,15 ГГц у заграждений, то есть у каждого требования свой критический край.

Признаки, что постановка работает

  • Лучшая точка не помечена «недопустимо». Если пометка есть, а среди шагов есть непомеченные, возьмите один из них и запишите кнопкой «Применить к модели». Если непомеченных нет вовсе, прогон обязан завершиться статусом «Допустимая область не найдена», а не «бюджет исчерпан».
  • Нарушение убывает. Не F - она при активных ограничениях в счёт не идёт. Если нарушение замерло, смотрите в сводке, у какого ограничения оно наибольшее.
  • Ни один параметр не прижат к границе диапазона.

Это самая дорогая проба в наборе: отношение габарита к наименьшему элементу около 1140, развёртка 1001 точка. Оцените стоимость одной пробы на своей машине перед тем, как заказывать бюджет 400.

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

  • Есть жёсткие ограничения и нет начального приближения. Это единственный глобальный метод каталога, соблюдающий ограничения штатно: они передаются движку отдельно от целевой функции, и лучшая точка выбирается среди допустимых.
  • Есть дискретные оси. Метод работает с ними округлением к ближайшему узлу.
  • Смешанные типы переменных.
  • Размерность 5–15.
  • Метод по умолчанию для новых задач - если не уверены, начинайте с него.

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

  • Жёстких ограничений нет и дискретных осей нет. Тогда CRS2 при большой размерности или DIRECT-L при малой дадут результат дешевле: ISRES платит популяцией за универсальность.
  • Малый бюджет. Популяция 20·(n+1) при n = 10 составляет 220 расчётов - это уже одно поколение. При недостаточном бюджете стартовый рапорт выдаёт совет о неэффективности.
  • Нужна точность результата - метод не добивает, дожимайте локально или конвейером.
  • Нужен останов без улучшения - такого поля у ISRES нет.

Чем заменить

СитуацияЗамена
ограничения есть, начальное приближение хорошееПоиск с ограничениями (COBYLA) - дешевле в разы
ограничения есть, нужны и поиск, и дожимГлобальный → локальный, пресет «Авто»
ограничений нет, оси дискретные, n ≤ 8Систематический глобальный, пример 4
ограничений нет, оси непрерывные, n > 8Управляемый случайный поиск или Ковариационная адаптация
нужен останов без улучшения при дискретных осяхЭволюционная стратегия (ESCH), пример 7

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

Что даёт штатная поддержка ограничений. Переключите метод на ESCH, оставив флажки ограничений. Журнал выдаст предупреждение, а стартовый рапорт отметит несовместимость: ESCH ограничения не соблюдает и свернёт их в целевую функцию взвешенными штрафами. Сравните, выходит ли КСВН за 2,5 в ходе прогона.

Ужесточить пороги вместо останова на первой допустимой точке. Поднимите порог верхнего заграждения с −20 до −22 дБ - запас там всего 2,6 дБ. Допустимое множество сузится, и прогон будет вынужден работать внутри него дольше.

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