5.4. Программа параметрической оптимизации PSpice Optimizer
В пакете OrCAD параметрическая оптимизация выполняется методом наискорейшего спуска путем взаимодействия модуля PSpice Optimizer с графическим редактором схем (PSpice Schematics или OrCAD Capture), программой моделирования PSpice и постпроцессором Probe. Критерий оптимизации — обеспечение заданного значения целевой функции при выполнении ряда линейных и нелинейных ограничений.
1. Если схема оптимизируемого устройства создается в PSpice Schematics, на нее наносится символ OPTPARAM из библиотеки Special.sib для определения списка оптимизируемых параметров. Щелчком по заголовку этого символа открывается панель спецификации параметров и задаются следующие величины:
Нажатие кнопки Add Param добавляет введенные значения к списку параметров. После ввода последнего параметра нажимается кнопка Save Param для их сохранения.
Определенные таким образом параметры должны быть использованы для обозначения параметров компонентов схемы и их моделей (сопротивлений резисторов, параметров транзисторов и т.п.).
Далее в меню Analysis по команде Setup открывают диалоговое окна для задания вида анализа и диапазона изменения текущей переменной (частоты, времени, источника постоянного напряжения или глобального параметра).
При создании схемы с помощью OrCAD Capture список оптимизируемых параметров задается по команде PSpice>Place Optimizer Parameters (см. разд. 2.7).
2. Критерий оптимизации задается непосредственно в программе PSpice Optimizer, которая вызывается из меню Tools программ PSpice Schematics и OrCAD Capture по команде Run Optimizer для создания или редактирования файла задания на оптимизацию *.ОРТ.
Рис. 5.10. Главное окно программы PSpice Optimizer
В правой верхней части этого окна помещен список значений функций, которые могут быть целевыми функциями или ограничениями (раздел Specifications), в нижней — перечень варьируемых параметров (раздел Parameters).
Значения целевых функций рассчитываются с помощью программы Probe. Они задаются следующим образом:
Целевые функции программы Probe позволяют рассчитать минимум или максимум функции, расстояние между выделенными точками, центральную частоту, полосу пропускания и т.п. (стандартные целевые функции размещены в файле pspice.prb).
В выражениях программы PSpice Optimizer разрешается использовать следующие математические операции и функции:
+, -, *, / — арифметические операции;
** — возведение в степень;
ЕХР(x) — ехр(х), экспонента числа х;
LOG(x) — ln(x) , натуральный логарифм х;
LOG10(x) — l og(x), десятичный логарифм х;
SIN(x) — sin(x), синус х (х в радианах);
COS(x) — cos(x), косинус х (х в радианах);
TAN(x) — tg(x), тангенс х (х в радианах);
ATAN(x) — acrtg(x), арктангенс х (х в радианах).
По команде Parameters меню Edit открывается окно co списком спецификации функций (рис. 5.11, а). Нажатием кнопки Add открывается меню спецификации новой функций, показанное на рис. 5.11, б. Это же окно открывается щелчком по имени функции из списка. В окне спецификации вводятся следующие данные:
Внутренняя спецификация задается параметрами:
а)
б)
Рис. 5.11. Спецификация целевых функций и ограничений (а) и окно их редактирования (б)
Внешняя спецификация задается параметрами:
Замечание.
3. Запуск процесса оптимизации выполняется в меню Tune. По команде Update Performance рассчитываются характеристики схемы для начальных и текущих значений каждого параметра. Это может использоваться для проверки корректности постановки задачи оптимизации. Значения целевых функций для начальных значений параметров отображаются в главном окне программы, что позволяет оценить близость этих значений к оптимальным.
По команде Update Derivatives вычисляются чувствительности каждой целевой функции к изменению каждого параметра, равные частным производным. Информация о чувствительностях позволяет выбрать параметры, к изменению которых целевые функции наиболее чувствительны. Матрица чувствительностей отображается на экране по команде Show Derivatives.
Оптимизация в автоматическом режиме запускается по команде Autostart. Сначала вычисляется матрица чувствительностей и определяется направление изменения параметров. Движение в этом направлении происходит до тех пор, пока не перестанет уменьшаться разность между текущим и требуемым значениями целевой функции. После этого снова вычисляется матрица чувствительностей и новое направление изменения параметров. По достижении оптимума процесс оптимизации завершается или его нужно остановить по команде Auto>Terminate. Результаты оптимизации отображаются в главном окне программы.
Оптимизация в интерактивном режиме начинается с вычисления чувствительностей по команде Update Derivatives. После этого в основном окне программы изменяются значения параметров и выполняется команда Update Performance для расчета новых значений целевых функций. Однако при этом моделирование не производится, а расчет основывается на матрице чувствитель-ностей. Поэтому в таком режиме изменения параметров должны быть небольшими. Далее снова производится расчет матрицы чувствительностей и вносятся новые изменения в значения параметров.
Заметим, что любой параметр или функцию можно исключить из процесса оптимизации, переведя выключатель около имени параметра или функции в главном меню в положение Disable (галочка должна исчезнуть).
После успешного завершения оптимизации найденные значения параметров отображаются в главном меню. В связи с тем что ряд параметров компонентов, например сопротивления резисторов, не могут принимать любые значения, можно выполнить округление их значений до ближайшей стандартной величины по команде Edit>Round Nearest Edit>Round Calculated. Точность округления определяется параметром Tolerance, который может принимать значения 1, 5 и 10%. Новые значения целевых функций после округления параметров рассчитываются автоматически.
Значения найденных в процессе оптимизации параметров переносятся на схему по команде Edit>Update Schematic. Новые значения параметров отображаются в атрибутах символов OPTPARAM.
Замечание.
Перечень команд программы PSpice Optimizer дан в табл.5.15.
Таблица 5.15. Команды программы PSpice Optimizer
Команда |
Назначение | ||
Меню File (Файл) |
|||
New |
Очистка рабочего окна для создания нового файла задания на оптимизацию(*. ОРТ) |
||
Open... |
Открытие (загрузка) существующего файла задания на оптимизацию |
||
Save |
Сохранение внесенных изменений в текущем файле |
||
Save As... |
Сохранение внесенных изменений в новом файле, имя которого указывается по дополнительному запросу |
||
Report |
Создание текстового файла отчета об оптимизации (*.ООТ) |
||
Exit (Alt+F4) |
Завершение работы |
||
1, 2, ... |
Список последних четырех загруженных файлов |
||
Команда |
Назначение |
|||
Меню Edit (Редактирование) |
||||
Parameters... |
Редактирование списка целевых функций и ограничений |
|||
Specifications... |
Редактирование спецификаций целевых функций и ограничений |
|||
Store Values |
Копирование текущих значений в качестве начальных значений спецификаций и параметров |
|||
Reset Values |
Копирование начальных значений в качестве текущих значений |
|||
Round Nearest |
Замена значения каждого параметра, соответствующего номиналу компонента, ближайшим стандартным значением (погрешность округления задается параметром Tolerance) |
|||
Round Calculated |
Замена значения каждого параметра ближайшим стандартным значением, если новые значения целевых функций находятся в заданных пределах (расчет проводится на основе производных без повторения моделирования) |
|||
Update Schematic |
Перенос на схему оптимальных значений параметров |
|||
Меню Типе (Настройка) |
||||
Update Performance |
Расчет характеристик схемы для начальных и текущих значений каждого параметра |
|||
Update Derivatives |
Вычисление чувствительности каждой целевой функции к изменению каждого параметра |
|||
Show Derivatives |
Отображение матрицы чувствительностей |
|||
Auto |
Управление процессом оптимизации в автоматическом режиме: |
|||
Start |
Начало оптимизации |
|||
Terminate |
Прекращение оптимизации |
|||
Меню Options (Параметры) |
||||
Defaults |
Установка параметров оптимизации: |
|||
Delta |
Относительное приращение параметров для расчета производных, в процентах |
|||
Max. Iterations |
Максимальное количество итераций в процессе оптимизации |
|||
Probe File |
Задание имени файла целевых функций .prb для программы Probe |
|||
Display |
Имя конфигурации дисплея программы Probe, предварительно сохраненной по команде Tools>Display Configuration |
|||
Advanced Options |
Дополнительные параметры: Cutback — минимальная доля внутреннего шага изменения параметров; Thres hold — минимальный шаг изменения параметров; One Goal — выбор метода минимизации при задании значения функции в одной точке |
|||
Команда |
Назначение |
|||
Recalculate |
Режим расчета новых значений параметров и функций: |
|||
Auto |
Автоматическое обновление результатов |
|||
Manual |
Расчет параметров после нажатия кнопки Parameters, целевых функций — кнопки Results |
|||
Меню Help (Помощь) |
||||
About Optimizer... |
Вывод номера версии программы и ее регистрационного номера |
|||
Web Resources |
Выход в Интернет: |
|||
PSpice Home Page |
Загрузка сайта www.orcad.com |
|||
Customer Support |
Выход на службу технической поддержки www.orcad.com/technical |
|||
По окончании оптимизации полезно просмотреть текстовые отчеты, составляемые по команде File>Report (расширение имени *.ООТ), и составляемые автоматически протоколы оптимизации (расширение имени *.OLG).
Пример. Рассмотрим применение программы PSpice Optimizer для настройки полосового фильтра на операционном усилителе.
С помощью трех потенциометров R2, R4, R5 настроим фильтр на частоту Fc = 10 Гц и обеспечим полосу пропускания BW = 1 Гц и резонансный коэффициент передачи Gain =10. Варьируемые параметры — сопротивления потенциометров aFc, aGain, aBW — и их начальные значения определены на схеме с помощью атрибутов символа OPTPARAM. В качестве цели оптимизации потребуем равенства трех характеристик фильтра заданным значениям с некоторым допуском, введя их значения по команде Edit>Specification . В табл. 5.16 приведены все данные, которые должны быть введены в диалоговых окнах этой команды. Вид анализа — расчет частотных характеристик АС, спецификация внутренняя (Internal). Используемые здесь целевые функции, указанные в графах Evaluate, записаны в файле pspice.prb.
Таблица 5.16. Задание целевых функций
Name |
Fc |
Range |
0.1 |
||
Reference |
Internal |
Analysis |
AC |
||
Weight |
1 |
Circuit File |
Filter |
||
Target |
10 |
Evaluate |
BandWidth(Vdb(Out),3) |
||
Range |
0.1 |
Name |
Gain |
||
Analysis |
AC |
Reference |
Internal |
||
Circuit File |
Filter |
Weight |
1 |
||
Evaluate |
CenterFreq(Vdb(Out),l) |
Target |
10 |
||
Name |
BW |
Range |
0.1 |
||
Reference |
Internal |
Analysis |
A£ |
||
Weight |
1 |
Circuit File |
Filter |
||
Target |
1 |
Evaluate |
max(V(Out)) |
||
На каждой итерации процесса оптимизации в главном окне программы приводятся значения целевых функций, текущих значений-параметров, количество просмотренных вариантов (в графе Simulations) и суммарная ошибка (в графе RMS Error). Чем ближе фактические значения целевых функций к заданным значениям, тем меньше эта ошибка.
Замечание.
Ошибка RMS учитывает только отклонения целевых функций от заданных значений, в нее не входят ошибки соблюдения ограничений.
В ряде задач используется возможность задавать желаемый вид характеристики в табличном виде. Для этих целей служит внешняя спецификация External. Применим ее в рассматриваемом примере для спецификации коэффициента усиления Gain. В табл. 5.17 приведена информация о целевой функции Gain, которую нужно ввести вместо того, что в ней указано.
Таблица 5.17. Целевые функции в режиме External
Name |
Gain |
Y Colum Name |
Gain |
||
Reference |
External |
Tolerance |
5% |
||
Weight |
1 |
Analysis |
AC |
||
File |
Filter. mdp |
Circuit File |
Filter |
||
X Colum Name |
Freq |
Evaluate |
YatX(V(Out),!) |
||
Во-первых, в строке File сделана ссылка на имя файла, в котором приведены отсчеты желаемых значений коэффициента усиления. Этот файл имеет вид:
Freq Gain
1 0.1
50.5
72
83
95
9.58
1010
10.58
11 5
123
132
180.5
200.1
На первой строке указаны имена столбцов данных, такие же как в диалоговом окне Edit>Specification (см. табл. 5.17). Далее приведена таблица отсчетов значений частоты и коэффициента усиления. Между соседними отсчетами выполняется линейная интерполяция. На строке Evaluate диалогового окна приведено выражение для целевой функции YatX(V(Out),!), вычисляющей значения коэффициента усиления по результатам моделирования. Эта целевая функция имеется в стандартном файле pspice.prb, поставляемом вместе с системой, она имеет вид:
YatX(1,X_value)=y1
*#Назначение#* Найти значение переменной Y для заданного значения X.
*#Аргумент1#* Имя переменной Y, значение которой нужно определить
*#Аргумент2#* Значение переменной X
* Применение: YatХ(<имя_переменнои>,<значение_Х>)
{
1| search forward Xvalue (X_value) !1 ;
}
Функция YatX(V(Out),!) для каждого значения аргумента X — частоты в режиме АС — определяет значение напряжения на выходе фильтра V(Out), которое при единичной амплитуде входного сигнала численно совпадает со значением коэффициента передачи фильтра. Обратим внимание, что задание табличной зависимости фактически означает, что введено большое количество частных целевых функций, количество которых равно числу строк в этой таблице — на каждой частоте выходное напряжение должно быть равно заданному значению. Вот поэтому на строке Evaluate нельзя просто написать V(Out), вместо этого должна быть записана целевая функция YatX(V(Out),!).
В режиме External изменяется содержание окон Specifications в главном меню. Если в режиме Internal в нем указываются достигнутые в процессе оптимизации значения целевых функций, то в режиме External указывают два числа, разделенных косой чертой «/» — отношение количество аргументов таблицы, для которых достигнуты заданные значения целевых функций (с допустимой ошибкой), к общему числу строк таблицы.
Отметим в заключение, что табличное задание целевых функций требует достаточно большого количества оптимизируемых параметров. Кроме того, следует учитывать, что отклонения значений целевых функций от заданных значений суммируются в квадратуре с одинаковым весом. Это означает, что все отклонения равноправны как для больших, так и для малых значений целевых функций. Поэтому табличный способ задания целевых функций удобен, например, для идентификации параметров математических моделей транзисторов по экспериментальным данным и мало пригоден для оптимизации характеристик высокоизбирательных широкополосных фильтров.