Пример 5. Управляемый случайный поиск (CRS2) на дискретных осях
- Файл:
05_ControlledRandomSearch_CRS2.gma
(Каталог:Sources/Files/Examples/Optimization/) - Модель: G3
- Переменных: 5
- Бюджет: 400
Связанные страницы:
Ниже показана геометрия модели:
Задача
Пятисекционный четвертьволновый трансформатор 50 → 100 Ом с центром 3 ГГц. Варьируются только ширины пяти секций, все пять осей - в режиме «С шагом» 0,1 мм. Длины зафиксированы на 14,0 мм.
Развёртка 1,0–5,0 ГГц, быстрый метод, шаг 0,001 ГГц; в полосу цели попадает 2401 выборка. Развёртка шире полосы цели: у четвертьволнового трансформатора отражение обращается в нуль на центральной частоте и растёт к краям, и полезно видеть весь этот подъём, а не только его середину.
Переменные
Диапазон единый для всех пяти ширин: 0,25–4,00 мм с шагом 0,1 мм, то есть
38 узлов на ось. Старт: все ширины 1,6 мм. Подпись узла в дереве проекта -
W1 [0.25..4, step 0.1] мм.
| Секция | Волновое сопротивление, Ом | Ширина по синтезу, мм | Ближайший узел сетки, мм |
|---|---|---|---|
| 1 | 51,09 | 2,97 | 2,95 |
| 2 | 56,94 | 2,46 | 2,45 |
| 3 | 70,71 | 1,61 | 1,65 |
| 4 | 87,81 | 0,99 | 0,95 |
| 5 | 97,86 | 0,75 | 0,75 |
Импедансы получены биномиальным синтезом: ln(Z_{n+1}/Z_n) = 2⁻ᴺ·C_n^N·ln R при
R = Z_L/Z₀ = 2 и N = 5. Замыкание на 100,00 Ом сходится точно, а третья секция
равна геометрическому среднему √(50·100) = 70,71 Ом - контрольный признак
корректности синтеза.
Старт с шириной 1,6 мм соответствует однородной линии 70,8 Ом - тому же геометрическому среднему, то есть «наивному» решению в одну секцию: физически осмысленному, но заведомо неоптимальному. Однородная линия между 50 и 100 Ом даёт КСВН 2 на всех частотах, поэтому старт заведомо далёк от цели.
Почему ширины с шагом. Полоска травится по проектной сетке, и задавать её ширину до микрона бессмысленно: 0,1 мм - обычный шаг для такой платы. Дискретная ось здесь не ограничение, а честное описание производства. И метод для неё подходящий: Управляемый случайный поиск входит в тройку методов, хорошо работающих с дискретными осями, поэтому стартовый рапорт замечаний не выдаёт.
Округлить синтез на сетку недостаточно, и это главное в примере. Округление к ближайшему узлу - не то же самое, что оптимум на сетке: сдвиг одной секции на узел приходится компенсировать сдвигом другой, иногда в противоположную сторону. Задачу поэтому решает не калькулятор с округлением, а перебор по узлам.
Цели
| № | Величина | Условие | Значение | Единицы | Полоса | Вес |
|---|---|---|---|---|---|---|
| 1 | КСВН, порт 1 | Минимизировать | - | - | 1,8–4,2 ГГц | 1 |
Подпись цели - min VSWR [1] Сосредоточенный порт(1) [1.8; 4.2] ГГц: у
экстремальной цели ни порога, ни знака условия в подписи нет.
Фиксированные размеры модели: длины всех пяти секций 14,0 мм, подводящая линия 3,05 × 10 мм (50 Ом), launch 0,70 × 5 мм (100 Ом), подложка 85 × 20 мм.
Настройки метода
| Поле | Значение |
|---|---|
| Метод | Управляемый случайный поиск (CRS2) |
| Бюджет расчётов | 400 |
| Размер популяции | 0 (авто, 10·(n+1) = 60) |
| Зерно ГСЧ | 1 |
| Точность по параметрам | 0,0100 |
| Останов без улучшения | 0 - выключен |
| Агрегация по полосе | Сглаженный максимум |
Пояснения
Почему цель экстремальная, а не пороговая
Полоса 1,8–4,2 ГГц - это 80 % от центральной частоты, отношение крайних частот 2,33 : 1. На такой полосе пятисекционный трансформатор осмыслен, а не декоративен - это видно прямым счётом. Ниже наихудший КСВН для биномиальных трансформаторов 50 → 100 Ом с разным числом секций, все отрезки λg/4 на 3 ГГц, микрополосок на той же подложке:
| Секций | Ширины, мм | Наихудший КСВН на 1,8–4,2 ГГц |
|---|---|---|
| 1 | 1,61 | 1,51 |
| 2 | 2,27 · 1,10 | 1,28 |
| 3 | 2,66 · 1,61 · 0,89 | 1,16 |
| 4 | 2,87 · 2,09 · 1,22 · 0,79 | 1,09 |
| 5 | 2,97 · 2,46 · 1,61 · 0,99 · 0,75 | 1,05 |
Порога у цели нет, и это отдельное решение. Пороговая цель останавливает прогон на первой же допустимой точке, а не на лучшей. Пока не измерен достижимый предел, любой порог - угадывание, и обе крайности вредны: слишком мягкий порог останавливает прогон где попало (на КСВН ≤ 1,5 в узкой полосе хватает одной секции из пяти, то есть цель не требует от топологии ничего), слишком жёсткий делает цель недостижимой и выжигает бюджет впустую.
Условие «Минимизировать» снимает вопрос: у него порога нет вовсе, прогон всегда даёт результат - лучшее найденное согласование, - и сам порог становится результатом измерения. Если вам нужна пороговая постановка на этой модели, ставьте порог с запасом над измеренным ниже значением.
Почему настройки именно такие
Популяция 60 означает, что первые 60 расчётов уходят на её заполнение случайными кандидатами, и только потом метод начинает работать своим механизмом. Отсюда два следствия.
Бюджет должен быть кратно больше популяции. При автоматическом значении 100 на работу метода осталось бы 40 расчётов - меньше одной популяции. Поэтому бюджет задан явно: 60 на заполнение и 340 на работу, почти шесть популяций.
Порог стагнации выключен, и это обязательно. Порог меньше заполнения популяции гарантированно срабатывает до того, как метод начнёт работать: у случайной выборки улучшения лучшей точки редеют по мере её роста, счётчик «без улучшения» это считает и переполняется. Останов без порога обеспечивает собственный критерий CRS2 - точность по параметрам.
Точность по параметрам поднята с умолчания 0,0010 до 0,0100 по физическим соображениям. Поле задаёт долю размаха, при схождении популяции до которой прогон останавливается. Умолчание 0,0010 на размахе 3,75 мм - это 3,75 мкм, то есть заведомо меньше того, что можно изготовить: фотолитографическая точность на такой плате порядка десятков микрон. Значение 0,0100 даёт 37,5 мкм - уровень производственного допуска. На дискретных осях у него есть и второй смысл: 37,5 мкм меньше шага сетки 0,1 мм, поэтому критерий срабатывает ровно тогда, когда вся популяция сошлась в один узел по каждой оси.
Агрегация - Сглаженный максимум, и другой здесь быть не может. Требование «КСВН не выше X» должно выполняться в каждой точке полосы. «Среднее» допускает локальные выбросы при хорошем среднем - для такой формулировки это прямая ошибка. «Худшая точка» по смыслу подошла бы, но делает функцию негладкой.
Агрегация решает исход, а не оттенок
Это самый неочевидный урок примера, и он измерен на двух прогонах одной и той же постановки, отличавшихся только агрегацией.
| Агрегация | Ширины, мм | Импедансы, Ом | Лестница |
|---|---|---|---|
| Среднее по полосе | 2,85 · 2,95 · 3,05 · 2,25 · 1,15 | 52 · 51 · 50 · 60 · 83 | немонотонна |
| Сглаженный максимум | 2,75 · 2,35 · 1,75 · 1,05 · 0,65 | 54 · 58 · 68 · 86 · 103 | монотонна |
Первый результат физически бессмыслен: три секции по 50 Ом - это три прозрачных отрезка, и трансформируют только две последние. При пяти секциях.
Почему средний по полосе агрегат этого не различает. Оба набора на своей полосе дают близкое среднее: разница около 3 %. По наихудшей точке они различаются на 20 %. Глобальный оптимум при обеих агрегациях один и тот же, но разницу в 3 % на дискретном пространстве из 38⁵ узлов случайный поиск за 400 расчётов не находит, а разницу в 20 % находит.
Отсюда правило, полезное далеко за пределами этого примера: если требование по смыслу минимаксное - «не хуже X во всей полосе» - агрегация должна быть сглаженным максимумом или худшей точкой. И обратное: если требование действительно про среднее по полосе, сглаженный максимум будет гоняться за одиночным выбросом там, где вам он безразличен.
Что должно получиться
| Показатель | Значение |
|---|---|
| Расчётов | 406 из 400 |
| Статус | бюджет исчерпан |
| Лучший шаг | 298, A_g = 0,663018 |
| Отказов | 0 |
| Ширины | 2,75 · 2,35 · 1,75 · 1,05 · 0,65 мм |
| Наихудшая выборка | M_g = 0,718277 φ на 4,2 ГГц |
| Наихудший КСВН в полосе | 1,171 |
Число расчётов немного превышает бюджет: популяционный метод добирает начатую итерацию целиком.
Ширины складываются в монотонное сужение, а импедансы секций - в лестницу, совпадающую с биномиальным синтезом с точностью до нескольких ом:
| Секция | Синтез, Ом | Найдено, Ом | Расхождение |
|---|---|---|---|
| 1 | 51,1 | 53,5 | +2,4 |
| 2 | 56,9 | 58,4 | +1,5 |
| 3 | 70,7 | 67,9 | −2,8 |
| 4 | 87,8 | 85,7 | −2,1 |
| 5 | 97,9 | 102,9 | +5,0 |
Это и есть проверка результата, которую стоит делать самому: не сверять ширины с расчётной таблицей, а пересчитать их в импедансы и посмотреть на лестницу. Ширина зависит от подложки и от формул микрополосковой линии, а лестница сопротивлений - прямо от синтеза, и отклонение в несколько Ом видно сразу.
Ни одна ширина не прижата к границе диапазона - это главный признак, что прогон дошёл до решения. Прижатая ширина означает одно из двух: либо метод компенсирует ею неверно выбранные остальные и до решения не добрался, либо решение лежит за границей диапазона. Различить помогает вторая проверка: если весь профиль систематически съезжает в одну сторону - дело в диапазоне, а не в методе.
Первые 60 расчётов выглядят как отсутствие сходимости, и это нормально. Столько стоит заполнение популяции, а заполняется она случайными кандидатами. Работать своим механизмом метод начинает с расчёта 61.
Прогон не сошёлся, и это надо знать. Последнее улучшение - расчёт 298, дальше более сотни расчётов без движения, собственная точность по параметрам не сработала. Значит 1,171 - верхняя оценка достижимого, а не предел. Если нужна точность, поднимайте бюджет или дожимайте локальным методом от найденной точки.
Когда этот метод - правильный выбор
- Средняя размерность, начального приближения нет.
- Есть дискретные оси. CRS2 - один из трёх методов, которые продукт относит к хорошо работающим с ними, вместе с Систематическим глобальным и связкой.
- Ландшафт изрезанный, но не требующий тонкой адаптации шага.
- Приемлема стохастичность.
- Нужен простой глобальный метод: у CRS2 нет настроек, кроме бюджета, популяции, зерна и точности.
Когда его брать не стоит
- Малая размерность. При n = 2 популяция 30 при бюджете 50 съедает бюджет, и метод не успевает начать работать. При n = 5, как здесь, метод уже за своим рекомендованным диапазоном (> 8) и выбран ради демонстрации дискретных осей; Систематический глобальный на такой размерности справился бы не хуже и был бы воспроизводим без зерна.
- Нужна точность результата - как и все чисто глобальные методы, CRS2 локализует область, но не добивает.
- Есть жёсткие ограничения.
- Есть хорошее начальное приближение. Метод берёт его первой особью популяции, но остальные особи случайны, и на широких диапазонах выигрыш от хорошего старта здесь заметно меньше, чем у Ковариационной адаптации.
Чем заменить
| Ситуация | Замена |
|---|---|
| нужна тонкая адаптация шага при n ≈ 10 | Ковариационная адаптация, пример 9 |
| нужна полная воспроизводимость без зерна ГСЧ | Систематический глобальный, пример 4 |
| появились жёсткие ограничения | Адаптивная эволюция (ISRES), пример 6 |
| нужны и поиск, и дожим | Глобальный → локальный, пример 11 |
| есть достоверное начальное приближение | Ковариационная адаптация или Адаптивный глобальный |
Что попробовать дополнительно
Среднее вместо сглаженного максимума. Переключите агрегацию и запустите заново. Прогон уйдёт в другое семейство решений: лестница станет немонотонной, три средние секции сойдутся к 50 Ом. Самая наглядная в наборе демонстрация того, что у минимаксного требования агрегация решает исход.
Серия с зерном 0. Поставьте зерно 0 и запустите три-четыре коротких прогона. Разброс результатов покажет мультимодальность задачи; иногда это информативнее одного длинного прогона.
Проверка контроля постановки. Это другой механизм, чем стартовый рапорт: рапорт даёт советы и прогон не останавливает, а перечисленное ниже - ошибки постановки, которые печатаются в журнал как ошибки. Внесите одну из них и запустите:
| Ошибка | Ожидаемое сообщение |
|---|---|
| стартовое значение вне диапазона | старт вне границ, с указанием переменной |
| нижняя граница больше верхней | некорректный диапазон |
| полоса цели вне развёртки | полоса не содержит точек сетки, с именем цели |
| ни одной переменной | нет варьируемых параметров |
| ни одной цели | нет целей |
| у переменной «с шагом» шаг больше диапазона | ось не содержит допустимых значений |