Программа параметрической оптимизации 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. Спецификация целевых функций и ограничений |
По команде 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 ... |
Вывод номера версии программы и ее регистрационного номера |
||||
