Компоненты и технологии, № 5'2003 Софт
В Монте-Карло с OrCAD 9.2
Данная статья посвящена учету влияния технологических разбросов параметров радиокомпонентов на параметры моделируемого устройства при помощи статистического анализа по методу Монте-Карло (Monte Carlo) и расчету чувствительности и наихудшего случая (sensitivity/worst-case).
Иосиф Златин
При проведении статистических расчетов в OrCAD 9.2 можно выполнить анализ Монте-Карло или расчет чувствительности и наихудшего случая, но вы не сможете выполнить их оба в одно и то же время.
Статистические расчеты можно проводить при одном выбранном режиме моделирования:
• AC Sweep (расчет частотных характеристик);
• DC Sweep (вариация параметров при расчете режима по постоянному току);
• Transient (расчет переходных процессов).
Выбранный режим моделирования будет повторяться в процессе проведения статистических расчетов. Поскольку число расчетов при анализе Монте-Карло или наихудшего случая увеличивается, моделирование занимает более длительный период времени и файл данных становится большим. Большие файлы данных могут долго открываться и долго загружать графические результаты.
При проведении статистических исследований выполняется множество расчетов, в том числе может выполняться и температурный анализ. Однако, поскольку и температура и допуски затрагивают параметры модели радиокомпонентов, разработчики программы OrCAD рекомендуют не применять температурный анализ при использовании анализа Монте-Карло или наихудшего случая.
В OrCAD 9.2 имеется два схемотехнических редактора Capture и Schematics. При написании этой статьи автор использовал схемотехнический редактор Capture.
Анализ Монте-Карло
Анализ Монте-Карло вычисляет реакцию схемы на изменения в величинах параметров моделей радиокомпонентов, случайно изменяя все параметры модели, для которых указан допуск. Это обеспечивает получение статистических данных относительно воздействия на устройство изменений параметров.
При анализе Монте-Карло параметры модели получают допуски, и выполняются многократные статистические расчеты по директивам (.DC, .AC или .Tran) с использованием этих допусков.
Случайное значение параметра х рассчитывается по формуле:
x = Хном(І + ^хД)
где x — номинальное значение параметра; Д — относительный разброс параметра х; Ё, — центрированная случайная величина, принимающая значения на отрезке (-1, +1).
Параметры моделей радиокомпонентов могут иметь допуски DEV или LOT, при этом они получают в первом случае независимые, а во втором случае коррелированные случайные значения, что характерно для разбросов параметров партий изделий.
Для того чтобы в созданном проекте запустить анализ Монте-Карло, выполним следующие операции:
1. В меню Pspice выберем Edit Simulation Profile.
2. В открывшемся диалоговом окне Simulation Settings щелкнем по клавише Analysis.
3. В выпадающем списке Analysis Type выберем тип анализа.
4. В поле Options выберем Monte Carlo/worst-case. При этом диалоговое окно Simulation Settings примет вид (рис. 1). В этом диалоговом окне вы можете выбрать тип статистического анализа Monte Carlo или worst-case/sensitivity.
В поле Output Variable указывается имя выходной переменной, подлежащей статистической обработке. В поле Number of runs задается количество статистических испытаний. В выпадающем меню Use distribution можно выбрать стандартный закон распределения случайных величин:
• Uniform — равновероятное распределение на отрезке (-1, +1);
• Gauss — распределение Гаусса на отрезке (-1, +1) с нулевым средним значением и среднеквадратичным отклонением а = 0,25.
Компоненты и технологии, № 5'2003
Таблица 1. Функции сравнения, используемые в статистических исследованиях
Кроме того, можно задать нестандартный закон распределения случайных величин ^, щелкнув по клавише Distributions, при этом откроется диалоговое окно Distributions (рис. 2).
В поле Distribution name назначают имя закону распределения. В поле Distribution curve values задается закон распределения в табличной форме. Пары чисел задают значения случайной величины Ё, и соответствующую вероятность P. Всего может быть задано до 100 точек. Координаты точек должны указываться в порядке возрастания Ё, (допускается повторять предыдущие значения ^). Между соседними точками осуществляется линейная интерполяция. На рис. 2 задан закон бимодального распределения. После выбора закона распределения необходимо щелкнуть по клавише Save, а затем OK, для того чтобы вернуться в диалоговое окно Simulation Settings.
В поле Random number seed задается начальное значение датчика случайных чисел. Оно может принимать нечетные значения в диапазоне 1-32767. По умолчанию оно устанавливается в 17533.
Для анализа Монте-Карло имеются пять разновидностей выходных данных, которые можно определить в текстовом поле Save data from. Эти данные выводятся на печать или передаются в графический постпроцессор Probe:
• <none> — выходные данные не создаются;
• All — создаются все выходные данные (включая статистические расчеты при номинальных данных параметров радиокомпонентов);
• First* — создаются выходные данные только в течение первых n реализаций;
• Every* — создаются выходные данные для каждой n-й реализации;
• Runs(list)* <n1>, <n2>... — для реализаций с указанными номерами (до 25 значений может быть указано в перечне).
Звездочка * означает, что можно установить число статистических испытаний в текстовом поле run.
Значения для выходных переменных, указанные в выбранном анализе, сохраняются в выходном файле моделирования. Даже при скромном числе статистических испытаний могут создаваться большие выходные файлы. Количество испытаний ограничено 2000 в выходном файле .OUT и 400 при просмотре графических результатов.
Если число статистических расчетов превышает 10, графический постпроцессор Probe покажет скорее диапазон, чем набор индивидуальных графиков. Это может быть полезно для наблюдения диапазона выходной пере-
Функция Описание
YMAX Расчет максимального отклонения текущей реализации от номинальной
MAX Расчет максимального отклонения текущей реализации от максимальной
MIN Расчет минимального значения в каждой реализации
RISE_EDGE Определение момента первого пересечения заданного уровня снизу вверх (значение уровня задается в круглых скобках; в начале расчета значение реализации должно быть меньше этого уровня)
FALL_EDGE Определение момента первого пересечения заданного уровня сверху вниз (значение уровня задается в круглых скобках; в начале расчета значение реализации должно быть больше этого уровня)
менной. При возрастании числа статистических расчетов разбросы характеристик приближаются к наихудшему случаю для схемы.
При статистическом анализе предусматривается разнообразная обработка результатов моделирования, характер которой определяется с помощью функций сравнения, приведенных в таблице 1.
Рис. 3. Диалоговое окно Monte Carlo/worst-case
Output File Options
Чтобы установить дополнительные характеристики статистического анализа, щелкнем по клавише More Settings, при этом откроется диалоговое окно Monte Carlo/worst-case Output (рис. 3). Функция сравнения задается в поле Find.
Если выбрать в этом окне опцию List model parameter values in the output file for each run, в выходной файл будет выводиться список значений всех случайных параметров во всех реализациях.
В поле Evaluate only when the sweep variable is in the range определяется диапазон значений,
в пределах которого статистически обрабатывается выходная переменная. Если вместо минимального или максимального значения этого диапазона указать звездочку *, то граница диапазона примет значение -х или +х.
Пример 1. Используем анализ Монте-Карло для исследования влияния технологических разбросов резисторного моста на характеристики датчика давления (рис. І).
Отметим особенности данной схемы:
• В качестве источников напряжения V! и Meter используется элемент VSRC. При размещении источника для измерений (Meter) измените его название, дважды щелкнув по элементу и напечатав «Meter» в ячейке Reference в редакторе свойств Property Editor.
• В качестве RL R2 и R7 используйте элемент R из библиотеки ANALOG.OLB.
Чтобы исследовать эффекты технологических допусков на поведении этой схемы, нужно установить допуски DEV и LOT для параметров резисторов R3, R4, R5 и R6. Это означает, что необходимо использовать резисторы, которые имеют математическую модель.
Поскольку элемент R из библиотеки ANA-LOG.OLB не имеет математической модели, в качестве резисторов R3, R4, R5 и R6 будем использовать элемент Rbreak из библиотеки BREAKOUT.OLB, который имеет модель.
Определим допуска DEV и LOT для моделей резисторов R3, R4, R5 и R6, используя редактор модели model editor:
1. Выберем R3.
2. В меню Edit выберем PSpice Model.
Рис. 4. Схема датчика давления и результаты моделирования
е
Компоненты и технологии, № 5'2003
Рис. 5. Диалоговое окно редактора модели Pspice Model Editor при определении модели для R3
3. Изменим имя модели Rbreak на Rmonte1 и определим допуска RMonte1, изменив описание модели: RES R=1 RMonte1 DEV=2% LOT=10% (рис. 5).
4. В меню File выберем Save.
По умолчанию схемотехнический редактор Capture сохраняет определение RMonte1 .MODEL в библиотеке design_name.lib. Capture также автоматически конфигурирует библиотеку для местного использования.
Для резисторов R4 и R5 используем те же самые допуски, что и для R3:
1. В схематическом редакторе страницы Capture выберем R4 и R5.
2. В меню Edit выберем Properties.
3. В строках R4 и R5 щелкнем в ячейках под колонкой Implementation (выполнение) и напечатаем RMonte1.
Определим допуск (DEV=5%) для R3:
• выберем R3;
• в меню Edit выберем PSpice Model;
• в окне Model Text изменим описание модели:
.model RTherm RES R =1 DEV =5%
4. В меню File выберем Save.
Номиналы резисторов на схеме датчика давления установим в соответствии с таблицей 2.
Таблица 2. Номиналы резисторов схемы датчика давления
Позиционное обозначение Номинал
R1 25
R2 470
R3 1k
R4 1k
R5 1k
R6 {1k*(1+P*Pcoeff/Pnom)}
R7 2k
значения величины DC и может быть оставлен неизменным.
Обратите внимание, что выражение для R6 = {1k*(1+P*Pcoeff/Pnom)} представляет линейную зависимость сопротивления от давления P.
Чтобы закончить задание технических требований для R6, определим глобальные параметры Pcoeff, P и Pnom.
Определение и установка Pcoeff, P и Pnom:
1. Поместим элемент PARAM из библиотеки SPECIAL.OLB на схематической странице.
2. Дважды щелкнем по элементу PARAM, чтобы отобразить Property Editor.
3. Для каждого параметра создадим новый атрибут, щелкнув New и напечатав его название.
Введем его соответствующую величину, щелкнув в ячейке под новым названием атрибута и напечатав его величину. Определим название параметра и соответствующую величину в соответствии с таблицей 3.
Таблица 3. Атрибуты элемента PARAM
Таблица 4. Параметры моделирования
Установим значение DC для источника V1 и сделаем его видимым:
1. Дважды щелкнем по источнику напряжения V1.
2. В Property Editor щелкнем в ячейке под колонкой DC и напечатаем 1.35.
3. Щелкнем по кнопке Display.
4. В рамке Display Format выберем опцию Value Only, чтобы сделать величину DC (1.35В) видимой на схеме.
5. Щелкнем OK, затем щелкнем Apply, чтобы применить те изменения, которые сделали для элемента.
6. Закроем Property Editor.
Поскольку источник Meter используется для измерения тока, он не имеет никакого
Атрибут Значение
Pcoeff -0.06
P 0
Pnom 1.0
Текстовое поле Величина
Parameter name P
Start value 0
End value 5.0
Increment 0.1
4. Щелкнем Apply, чтобы сохранить изменения, затем закроем Property Editor. Установка режимов моделирования:
1. В меню PSpice выберем New Simulation Profile или Edit Simulation Settings. (Если это новое моделирование, введем название профайла и щелкнем OK.) Появится диалоговое окно Simulation Settings.
2. Выберем DC Sweep в поле Analysis type.
3. В рамке Sweep Variable выберем Global Parameter.
4. Введем следующие величины в соответствии с таблицей 4.
5. Выберем опцию Monte Carlo/worst-case в поле Options.
6. Выберем Monte Carlo.
7. В текстовом поле Number of runs напечатаем 10.
8. В текстовом поле Save data from выберем All.
9. Напечатаем I (Meter) в текстовом поле Output variable.
10. Щелкнем OK, чтобы сохранить профайл моделирования.
11. В меню PSpice Capture укажем на маркеры и выберем Current into Pin.
12. Поместим маркер на левом выводе источника Meter.
13. В меню PSpice выберем Run, чтобы начать моделирование.
Когда моделирование завершится, графический постпроцессор автоматически отобразит выбранный графический результат (рис. 4).
Поскольку PSpice управляет анализом Монте-Карло, он сохраняет множество статистических расчетов. Они перечислены в диалоговом окне Available Sections.
Построение гистограмм по результатам анализа Монте-Карло
Графические результаты анализа Монте-Карло можно отображать в виде гистограмм.
В следующем примере мы промоделируем активный фильтр Чебышева четвертого порядка, выполняя серию 100 исследований в режиме AC Sweep при случайном изменении величин резисторов и емкостей для каждого статистического расчета. Затем, определив целевую функцию, построим гистограмму ширины полосы пропускания.
Пример 2. Фильтр Чебышева (этот пример можно найти в папке Orcad/Pspice/ Capture_Samples/anasim/histo).
Компоненты и технологии, № 5'2003
Фильтр Чебышева должен иметь центральную частоту 10 кГц и ширину полосы пропускания 1,5 кГц. Схема фильтра выполнена в виде иерархического проекта и показана на рис. 6. Технические требования к источникам:
V1: DC = -15 V2: DC = +15 V3: AC = 1
В схеме использованы резисторы с разбросом 1% и конденсаторы с разбросом 5%. Технологические разбросы резисторов и конденсаторов приводят к изменению ширины полосы пропускания и центральной частоты фильтра.
Анализ Монте-Карло может использоваться, чтобы спрогнозировать выход готовой продукции при производстве данной схемы.
При анализе фильтра устанавливается анализ AC Sweep и Монте-Карло. Анализ AC Sweep охватывает 50 точек на декаду от 100 Гц до 1 МГц. Анализ Монте-Карло установлен, чтобы было 100 статистических расчетов. Выходная переменная — V(OUT). В поле Save data from list выберем All.
Поскольку файл данных может стать весьма большим при выполнении анализа Монте-Карло, рассмотрим только выходные данные фильтра, для этого поместим маркер напряжения на выходе фильтра и выполним следующие операции:
1. В меню Pspice выберем New Simulation Profile или Edit Simulation Settings (если это новое моделирование, введем название профайла моделирования и щелкнем OK). Появится диалоговое окно Simulation Settings.
2. В позиции Data Collection выберем опцию At Markers Only для каждого типа маркера (напряжения, тока, мощности, цифрового, шума).
3. Щелкнем OK.
4. В меню PSpice Capture выберем Run, чтобы начать моделирование.
Когда моделирование завершится, PSpice автоматически отобразит выбранные графики.
Поскольку PSpice выполняет анализ Монте-Карло, он сохраняет множество статистических расчетов. Они перечислены в диалоговом окне Available Sections.
Отображение гистограммы для полосы пропускания при неравномерности 1 дБ:
1. В меню Plot PSpice выберем Axis Settings.
2. Выберем позицию X Axis.
3. В рамке Processing Options выберем поле Performance Analysis.
4. Щелкнем OK.
5. В меню Trace выберем Performance Analysis.
6. В открывшемся диалоговом окне щелкнем Select Sections.
7. В окне Available Sections щелкнем All, а затем OK.
8. Щелкнем по клавише Wizard.
9. В окне Performance Analysis Wizard щелкнем по клавише Next.
10. В открывшемся окне выбора целевых функций выберем Bandwidth, а затем щелкнем Next.
11. В открывшемся окне введем V(OUT) в текстовое поле Name of trace to search.
12. Введем «1 db» в текстовое поле level down for bandwidth calc.
t Histo-AC - PSpice A/D - [histo-Histo-AC (active)]
В E'le Edit yiew Simulation Trace £to< TqoIs Window tjelp if1
n samples s 100 n divisions = 10 ■ean = 1433.47
Bandwidth(U(OUT). 1)
sigma = 393.053 «edian = 1494.98
mini mum = 521.103 90th Zile = 1920.48
10th Zile = 822.732 naxinun = 2097.13
1 ;
1 :
Й |
А*
}§\
J X
0UH------------- --------------1---
100Hz 1.0KHz
v A О ♦ X A Y . ... U(0UT)
J ^Program Files\OfcetAPSpic8\Cep*ure_Semples\anesim^istoV4etoHisto-AC del (active)
Рис. 7. Гистограмма для полосы пропускания при неравномерности 1 дБ
10. Щелкнем Next, затем щелкнем в открывшемся окне снова Next, чтобы рассмотреть гистограмму.
Гистограмма для полосы пропускания при неравномерности 1 dB показана на рис. 7.
Количество градаций гистограммы устанавливается в поле Number of Histogram Divisions диалогового окна Probe Options, появляющегося при выборе Options в меню Tools.
По оси Y гистограммы откладывается вероятность в процентах (pct). Ниже гистограммы указывается значение ее среднеквадратичного отклонения (sigma), минимума (minimum), медианы Median) и максимума (maximum).
Если необходимо, можно выключать отображение статистических данных следующим образом:
1. В меню Tools выберем Options.
2. Уберем галочку в поле Display Statistics.
3. Щелкнем Save и затем OK.
Расчет чувствительности и наихудшего случая (sensitivity/worst-case)
Анализ наихудшего случая используется для того, чтобы найти вероятные наихудшие выходные данные схемы, обусловленные разбросом ее элементов. Например, если величины резисторов в схеме могут изменяться на +10%, то анализ наихудшего случая будет пытаться найти комбинацию возможных величин резисторов, при которых обеспечиваются наихудшие выходные данные. Как и в любом другом анализе, имеются три важных элемента: входные данные, порядок осуществления и выходные данные.
В дополнение к описанию схемы вы должны задать:
1. Допуски параметра.
2. Выбрать критерий для определения наихудшей величины.
Вы можете устанавливать допуски на любом числе параметров, которые характеризуют модель элемента.
Критерий для определения наихудших величин для важных параметров модели определяется в директиве .WC как функция любой стандартной выходной переменной в указанном диапазоне вариаций.
Вы можете определять модели почти для всех примитивных элементов аналоговой схемы, таких, как резисторы, конденсаторы, катушки индуктивности и полупроводниковые приборы. PSpice читает стандартный синтаксис допусков параметров модели, указанный в директиве .MODEL.
Для каждого параметра модели PSpice используются номинальные, минимальные и максимальные величины, определяемые допусками LOT и DEV. Законы распределения вероятностей случайной величины UNIFORM (нормальное) или GAUSS (гауссово) игнорируется.
Вы можете также использовать элементы библиотеки ABM.OLB [2], чтобы включить несколько напряжений и токов в одну выходную переменную, к которой можно применить функцию сравнения.
Для установки начального значения функции сравнения анализ наихудшего случая начинается с выполнения статистических расчетов при номинальных значениях параметров модели.
Следующие, повторяющиеся исследования чувствительности определяют индивидуальный эффект каждого параметра модели на функцию сравнения. Они выполняются, изменяя параметры модели, в следующих один за другим расчетах, что позволяет оценить параметрическую чувствительность характеристик. В течение анализа чувствительности каждый параметр умножается на 1+RELTOL, где RELTOL определяется в директиве .OPTIONS, или по умолчанию 0.001. Измененное значение параметров определяется как произведение номинального значения на 1±Д.
е
Компоненты и технологии, № 5'2003
В диалоговом окне Monte Carlo/worst-case Output File Options (рис. 3) в рамке wost-case direction задается направление изменения параметров компонентов HI (положительное приращение) и LOW (отрицательное приращение) относительно номинальных значений при расчете наихудшего случая. Если определяется функция сравнения YMAX или MAX, по умолчанию назначается HI, в противном случае назначается LOW.
Результат анализа чувствительности фиксируется в выходном файле (.OUT). Этот результат показывает процент изменений в функции сравнения, соответствующей минимальному изменению в каждом параметре модели. Если директива .PROBE включена в файл схемы, то результаты статистических расчетов (номинального и наихудшего случая) сохраняются для наблюдения в окне Probe.
В диалоговом окне Simulation Settings (рис. 1) в поле Vary devices to type(s) устанавливается характер случайного разброса параметров.
По умолчанию назначается параметр both DEV and LOT, и случайный разброс задается обоими параметрами DEV и LOT. Если задается параметр only DEV или only LOT, то это означает, что случайный процесс определяется только одним параметром DEV или LOT соответственно.
По результатам анализа наихудшего случая с недостаточными допусками можно определить, как параметры должны быть изменены, чтобы достичь желательного результата. Затем можно вносить изменения в допуски и номинальные значения в файле схемы и выполнять анализ наихудшего случая снова для новых установок.
Пример 3. Рассмотрим расчет наихудшего случая на примере дифференциального усилителя, находящегося в папке Orcad/Pspice/ Capture_Samples/anasim/example.
1. Заменим RC1 и RC2 элементами RBREAK, установив значения величин резисторов (VALUE =10k) и позиционные обозначения, соответствующие предыдущим названиям.
2. Выберем PSpice Model в меню Edit. Создадим модель CRES следующим образом:
Рис. 8. Схема дифференциального усилителя и результаты моделирования наихудшего случая
Таблица S. Параметры моделирования
Текстовое поле Величина
Name V1
Start value .001
End value .2
Increment .001
.MODEL CRES RES( R=1 DEV=5% LOT=5% )
В меню File выберем Save. По умолчанию
Capture сохраняет описание библиотеки
EXAMPLE.LIB и автоматически конфигурирует файл для локального использования с текущей схемой.
3. В меню PSpice выберем New Simulation Profile или Edit Simulation Settings (если это новое моделирование, введем название профайла и щелкнем OK). Появится диалоговое окно Simulation Settings.
4. Выберем DC Sweep в поле Analysis type.
5. В рамке Sweep Variable выберем Voltage Source.
6. Введем следующие величины в соответствии с таблицей 5.
7. Выберем опцию Monte Carlo/worst-case в поле Options.
8. Выберем worst-case/sensitivity.
9. Остальные параметры установим по умолчанию.
10. Щелкнем OK, чтобы сохранить профайл моделирования.
11. В меню PSpice выберем Run, чтобы начать моделирование.
Когда моделирование завершится, графический постпроцессор автоматически отобразит выбранный графический результат (рис. 8).
Расчет наихудшего случая для цифровых и цифро-аналоговых устройств
Расчет и моделирование наихудшего случая для цифровых устройств отличается от аналогового анализа наихудшего случая некоторыми возможностями. Аналоговый анализ наихудшего случая осуществляется как анализ чувствительности для каждого параметра, который имеет допуск и сопровождается моделированием наихудшего случая с каждым параметром, устанавливаемым в его минимальное или максимальное значения. Это не всегда создает верные результаты наихудшего случая, так как алгоритм предполагает, что чувствительность монотонна в диапазоне допусков.
Методы, используемые для расчета наихудшего случая для цифровых устройств, не совместимы с аналоговым анализом наихудшего случая. При моделировании по методу наихудшего случая аналогово-цифровых устройств аналоговая часть моделируется при номинальных значениях параметров. В цифровых компонентах варьируются задержки, имеющие в моделях минимальные (MIN) и максимальные значения (MAX).
При подаче на вход цифрового компонента воздействия выходной узел имеет неопре-
деленное логическое состояние на интервале времени, равном разности между максимальной и минимальной задержкой. После прохождения сигнала через следующий цифровой компонент длительность неопределенного состояния увеличивается.
Для того чтобы в созданном проекте запустить расчет наихудшего случая для цифровых устройств, необходимо выполнить следующие дополнительные операции:
1. В диалоговом окне Simulation Settings щелкнем по позиции Options.
Рис. 9. Диалоговое окно установки характеристик цифровых устройств
2. В поле Category выберем Gate-level Simulation.
3. В открывшемся диалоговом окне (рис. 9) в рамке Timing Mode, выберем worst-case (min/max).
4. Во всплывающем перечне Initialize all flip-flops to выберем X.
5. Установим Default I/O level для интерфейсов A/D — І.
6. Щелкнем OK.
Литература
1. Разевиг В. Д. Система проектирования OrCAD 9.2. М.: Солон-Р. 200І.
2. Златин И. Моделирование на функциональном уровне в OrCAD 9.2 // Компоненты и технологии. 200З. № З.