Программа параметрической оптимизации Optimizer
В Design Center параметрическая оптимизация [1] выполняется методом наискорейшего спуска путем взаимодействия модуля Optimizer с графическим редактором Schematics, программой моделирования PSpice и постпроцессором Probe. Критерий оптимизации – обеспечение заданного значения целевой функции при выполнении ряда линейных и нелинейных ограничений.
1. В Schematics создается схема оптимизируемого устройства, на которой с помощью символов OPTPARAM из библиотеки special.slb определяются оптимизируемые параметры (см. пример на рис. 1.1). Щелчком по заголовку символа открывается панель спецификации оптимизируемых параметров (рис. 7.15) и задаются следующие величины:
Name – имя параметра;
Initial Value – начальное значение;
Current Value – текущее значение (вводится либо начальное значение, либо текущее, либо оба);
Lower Limit – нижняя граница изменения параметра;
Upper Limit – верхняя граница изменения параметра;
Tolerance – допуск стандартизованного ряда значений параметров, используемый при округлении значений параметров, в процентах.
|
Рис. 7.15. Спецификация варьируемых параметров с помощью символа OPTPARAM |
|
Нажатие кнопки Add Param добавляет введенные значения к списку параметров.
Введенные таким образом параметры могут быть использованы при задании параметров компонентов схемы (сопротивлений резисторов и т. п.) и их моделей; они заключаются в фигурные скобки { }.
Далее в меню Analysis по команде Setup задают вид анализа и диапазон изменения текущей переменной (частоты, времени, источника постоянного напряжения или глобального параметра). Например, на рис. 7.16 задано единственное значение постоянного напряжения V1=5v в режиме DC.
|
Рис. 7.16. Расчет режима DC в единственной точке |
|
2. Критерий оптимизации задается непосредственно в программе Optimizer, которая вызывается из меню Tools программы Schematics по команде Run Optimizer. Главное окно программы Optimizer показано на рис. 7.17.
|
Рис. 7.17. Главное окно программы Optimizer |
|
<
В правой верхней части этого окна помещен список значений функций, которые могут быть целевыми функциями или ограничениями (раздел Specifications), в нижней – перечень варьируемых параметров (раздел Parameters). Редактируются они в меню
Edit.
Целевые функции рассчитываются с помощью программы Probe. Они задаются следующим образом:
– расчет значения функции в одной точке (как в примере на рис. 7.16);
– расчет значения целевой функции Goal Function, записанной в файл с расширением имени .prb;
– расчет выражений, заданных в программе Optimizer.
Целевые функции программы Probe позволяют рассчитать минимум или максимум функции, расстояние между выделенными точками и т. п.
По команде
Specifications меню
Edit открывается окно спецификации функций. Нажатием кнопки
Add открывается меню функций программы Optimizer (рис. 7.18). С его помощью вводятся следующие данные:
Name – имя функции;
Enabled – включение режима расчета функций на следующей итерации;
Reference – выбор между внутренней спецификацией (Internal), задаваемой в диалоговом окне, и внешней (External), адресуемой к имени файла данных;
Weight – весовой коэффициент функции.
Внутренняя спецификация задается параметрами:
Target – желаемое значение функции;
Range – ширина допустимого диапазона значений функции;
Constraint – включение/выключение режима учета ограничений. Если режим Constraint включен, задаваемая в этом окне функция является ограничением, в противоположном случае – целевой функцией;
Type – тип ограничения: =target – равно, >=target – больше или равно, <=target – меньше или равно заданному значению функции.
Внешняя спецификация задается параметрами:
File – имя файла данных, содержащего значения функции;
X Column Name – заголовок столбца данных, содержащего значения отсчетов переменной x;
Y Column Name – заголовок столбца данных, содержащего значения отсчетов переменной y;
Tolerance – класс допуска при округлении результатов вычислений до стандартных значений.
Остальные параметры имеют следующий смысл:
Analysis – выбор вида анализа (AC, DC или Tran);
Circuit File – имя файла схемы, к которому обращаются при моделировании (если оно не указано, то математические выражения вычисляются непосредственно);
Probe File Containing Goal Functions (.prb) – имя файла целевых функций для программы Probe (расширение имени по умолчанию .prb);
Evaluate – спецификация математического выражения для функции. В него могут входить имена переменных, Goal Function и любых параметров.
Рис. 7.18. Спецификация целевых функций и ограничений
|
3. Запуск процесса оптимизации выполняется в меню
Tune. По команде
Update Performance рассчитываются характеристики схемы для начальных и текущих значений каждого параметра. Это может использоваться для проверки корректности постановки задачи оптимизации. Значения целевых функций для начальных значений параметров отображаются в главном окне программы, что позволяет оценить близость этих значений к оптимальным.
По команде
Update Derivatives вычисляются чувствительности каждой целевой функции к изменению каждого параметра, равные частным производным. Информация о чувствительностях позволяет выбрать параметры, к изменению которых целевые функции наиболее чувствительны. Матрица чувствительностей отображается на экране по команде
Show Derivatives.
Оптимизация в автоматическом режиме запускается по команде
Auto/Start. Сначала вычисляется матрица чувствительностей и определяется направление изменения параметров. Движение в этом направлении происходит до тех пор, пока не перестанет уменьшаться разность между текущим и требуемым значениями целевой функции. После этого снова вычисляется матрица чувствительностей и новое направление изменения параметров. По достижении оптимума процесс оптимизации завершается или его нужно остановить по команде
Auto/Terminate. Результаты оптимизации отображаются в главном окне программы (рис. 7.17).
Оптимизация в интерактивном режиме начинается с вычисления чувствительностей по команде
Update Derivatives. После этого в основном окне программы изменяются значения параметров и выполняется команда
Update Performance для расчета новых значений целевых функций.
Однако при этом моделирование не производится, а расчет основывается на матрице чувствительностей. Поэтому в таком режиме изменения параметров должны быть небольшими. Далее снова производится расчет матрицы чувствительностей и вносятся новые изменения в значения параметров.
Заметим, что любой параметр или функцию можно исключить из процесса оптимизации, переведя выключатель около имени параметра или функции в главном меню в положение Disable (крестик должен исчезнуть).
После успешного завершения оптимизации найденные значения параметров отображаются в главном меню. В связи с тем что ряд параметров компонентов, например сопротивления резисторов, не могут принимать любые значения, можно выполнить округление их значений до ближайшей стандартной величины по команде
Edit/Round Values. Точность округления определяется параметром Tolerance, который может принимать значения 1, 5 и 10%. Новые значения целевых функций после округления параметров рассчитываются автоматически.
Значения найденных в процессе оптимизации параметров переносятся на схему по команде
Edit/Update Schematic. Новые значения параметров отображаются в атрибутах символов OPTPARAM.
Замечание. В связи с тем что никакой регулярный метод оптимизации не может в общем случае обеспечить нахождение глобального экстремума, рекомендуется выполнять параметрическую оптимизацию в два этапа. Сначала проводят статистические испытания по методу Монте-Карло, варьируя параметры в широких пределах. По результатам этих испытаний определяется несколько локальных экстремумов, в окрестности каждого их которых выполняется оптимизация с помощью программы Optimizer. Другой способ – проводят несколько циклов оптимизации, интуитивно выбирая разные начальные значения параметров.
Перечень команд программы Optimizer приведен в табл. 7.6.
Таблица 7.6
Команда
|
Назначение
|
|
|
Меню File
|
|
|
New
|
Очистка рабочего окна для создания нового файла задания на оптимизацию .opt
|
Open...
|
Открытие (загрузка) существующего файла задания на оптимизацию
|
Save
|
Сохранение внесенных изменений в текущем файле
|
Save As...
|
Сохранение внесенных изменений в новом файле, имя которого указывается по дополнительному запросу
|
Report
|
Создание текстового файла отчета об оптимизации (.oot)
|
Exit ( Alt+F4)
|
Завершение работы
|
Файл 1, ... , Файл 4
|
Список последних четырех загруженных файлов
|
|
|
Меню Edit
|
|
|
Parameters...
|
Редактирование списка оптимизируемых параметров
|
Specifications...
|
Редактирование списка целевых функций
|
Store Values
|
Копирование текущих значений в качестве начальных значений спецификаций и параметров
|
Reset Values
|
Копирование начальных значений в качестве текущих значений
|
Round Values
|
Замена значения каждого параметра ближайшим стандартным значением (погрешность округления задается параметром Tolerance)
|
Update Schematic
|
Перенос на схему оптимальных значений параметров
|
|
|
Меню Tune
|
|
|
Update Performance
|
Расчет характеристик схемы для начальных и текущих значений каждого параметра
|
Update Derivatives
|
Вычисление чувствительности каждой целевой функции к изменению каждого параметра
|
Show Derivatives
|
Отображение матрицы чувствительностей
|
Auto
|
Управление процессом оптимизации в автоматическом режиме:
|
|
Start
|
Начало оптимизации
|
|
Terminate
|
Прекращение оптимизации
|
|
|
Меню Options
|
|
|
Defaults ...
|
Установка параметров оптимизации:
|
|
|
Delta
|
Относительное приращение параметров для расчета производных, в процентах
|
|
|
Max. Iterations
|
Максимальное количество итераций в процессе оптимизации
|
|
|
Display
|
Имя конфигурации дисплея програмы Probe, предварительно сохраненной по команде Tools/Display Configuration
|
|
|
Advanced Options
|
Дополнительные параметры:
|
|
|
|
Cutback
|
Минимальная доля внутреннего шага изменения параметров
|
|
|
|
Threshold
|
Минимальный шаг изменения параметров
|
|
|
|
One Goal
|
Выбор метода минимизации при задании значения функции в одной точке
|
Recalculate ...
|
Режим расчета новых значений параметров и функций:
|
|
|
Auto
|
Автоматическое обновление результатов
|
|
|
Manual
|
Расчет параметров после нажатия кнопки Parameters, целевых функций – кнопки Results
|
|
|
Меню Help
|
|
About ...
|
Вывод номера версии программы и ее регистрационного номера
|
|
|
|
|
|
|
