Иллюстрированный самоучитель по OrCAD


Программа параметрической оптимизации PSpice Optimizer


В пакете OrCAD параметрическая оптимизация выполняется методом наискорейшего спуска путем взаимодействия модуля PSpice Optimizer с графическим редактором схем (PSpice Schematics или OrCAD Capture), программой моделирования PSpice и постпроцессором Probe. Критерий оптимизации — обеспечение заданного значения целевой функции при выполнении ряда линейных и нелинейных ограничений.

1.

Если схема оптимизируемого устройства создается в PSpice Schematics, на нее наносится символ OPTPARAM из библиотеки Special.sib для определения списка оптимизируемых параметров. Щелчком по заголовку этого символа открывается панель спецификации параметров и задаются следующие величины:

Name — имя параметра;

Initial Value — начальное значение;

Current Value — текущее значение (вводится либо начальное значение, либо текущее, либо оба);

Lower Limit — нижняя граница изменения параметра;

Upper Limit — верхняя граница изменения параметра;

Tolerance — допуск стандартизованного ряда значений параметров, испрльзуемый при округлении значений параметров, в процентах.

Нажатие кнопки



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. Они задаются следующим образом:

целевые функции Goal Function программы Probe, записанные в файл с расширением имени *.PRB;

выражения, заданные в программе PSpice Optimizer.

Целевые функции программы 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,

б.

Это же окно открывается щелчком по имени функции из списка. В окне спецификации вводятся следующие данные:

Name

— имя функции;

Enabled

— включение режима расчета функций на следующей итерации;

Reference

— выбор между внутренней спецификацией

(Internal),

задаваемой в диалоговом окне, и внешней

(External),

адресуемой к имени файла данных;

Weight

— весовой коэффициент целевой функции (с их помощью устанавливается важность каждой целевой функции и учитываются различия их абсолютных значений).



Внутренняя спецификация задается параметрами:

Target —

желаемое значение функции;

Range

— ширина допустимого диапазона значений функции;

Constraint

— включение/выключение режима учета ограничений. Если режим

Constraint

включен, задаваемая в этом окне функция является

ограничением,

в противоположном случае —

целевой функцией;

Туре

— тип-ограничения: =target — равно, >=target — больше или равно, <=target — меньше или равно заданному значению функции.





а)



б)

Рис. 5.11. Спецификация целевых функций и ограничений (а) и окно их редактирования (б)

Внешняя спецификация задается параметрами:

File

— имя файла данных, содержащего значения функции;

X Column Name

— заголовок столбца данных, содержащего значения отсчетов переменной

х;

Y Column Name

— заголовок столбца данных, содержащего значения отсчетов переменной

у;

Tolerance

— класс допуска при округлении результатов вычислений до стандартных значений.

Остальные параметры имеют следующий смысл:

Analysis

— выбор вида анализа (AC, DC или Transient);

Circuit File

— имя файла схемы, к которому обращаются при моделировании (если оно не указано, то математические выражения вычисляются непосредственно);

Probe File Containing Goal Functions

— имя файла целевых функций для программы Probe (расширение имени по умолчанию *.PRB);

Evaluate

— спецификация математического выражения для функции. В нее могут входить имена переменных, имена Goal Function и имена любых параметров.



Замечание.



Обратим внимание, что для разных целевых функций можно задавать разные вида анализа и даже разные имена схем. Например, при оптимизации фильтра можно в режиме АС контролировать его резонансную частоту, а в режиме Transient — величину выброса в переходном процессе.



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. Другой способ — проводят несколько циклов оптимизации, интуитивно выбирая разные начальные значения параметров.

Перечень команд программы 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











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 указывают два числа, разделенных косой чертой «/» — отношение количество аргументов таблицы, для которых достигнуты заданные значения целевых функций (с допустимой ошибкой), к общему числу строк таблицы.

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


Содержание раздела