Инженерная графика в системе OrCAD

получить кредит под залог квартиры в банке


 

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

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

 

Назад Начало