Программа параметрической оптимизации PSpice Optimizer
В ряде задач используется возможность задавать желаемый вид характеристики в табличном виде. Для этих целей служит внешняя спецификация 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
*
Применение: YatX(
<имя_переменнои>
,
<значение_X>
)
{
1| search forward Xvalue (X_value)!1;
}
Функция YatX(V(Out),!) для каждого значения аргумента X – частоты в режиме АС – определяет значение напряжения на выходе фильтра V(Out), которое при единичной амплитуде входного сигнала численно совпадает со значением коэффициента передачи фильтра. Обратим внимание, что задание табличной зависимости фактически означает, что введено большое количество частных целевых функций, количество которых равно числу строк в этой таблице – на каждой частоте выходное напряжение должно быть равно заданному значению. Вот поэтому на строке Evaluate нельзя просто написать V(Out), вместо этого должна быть записана целевая функция YatX(V(Out),!).
В режиме External изменяется содержание окон Specifications в главном меню. Если в режиме Internal в нем указываются достигнутые в процессе оптимизации значения целевых функций, то в режиме External указывают два числа, разделенных косой чертой "/" – отношение количество аргументов таблицы, для которых достигнуты заданные значения целевых функций (с допустимой ошибкой), к общему числу строк таблицы.
Отметим в заключение, что табличное задание целевых функций требует достаточно большого количества оптимизируемых параметров. Кроме того, следует учитывать, что отклонения значений целевых функций от заданных значений суммируются в квадратуре с одинаковым весом. Это означает, что все отклонения равноправны как для больших, так и для малых значений целевых функций. Поэтому табличный способ задания целевых функций удобен, например, для идентификации параметров математических моделей транзисторов по экспериментальным данным и мало пригоден для оптимизации характеристик высокоизбирательных широкополосных фильтров.