9.5. Вероятностный анализ методом Монте-Карло

9.5. Вероятностный анализ методом Монте-Карло

До сих пор вы исходили из того, что компоненты проектируемых схем действительно имеют свои номинальные значения, что, к примеру, резистор, рядом с которым установлен индикатор значения 1 Ом, на самом деле имеет значение 1 Ом. Однако это предположение далеко от реальности, так как все компоненты, устанавливаемые в электронных схемах, естественно, имеют допуски. Зачастую искусство проектирования как раз и заключается в умении так составить схему, чтобы она функционировала не только в лаборатории со специально, вручную подобранными компонентами, но и в условиях массового производства. Сейчас при изготовлении электронных схем компоненты размещаются на печатных платах с помощью установок автоматического монтажа. К тому же разрабатываемые схемы должны позволять как можно большие допуски, чтобы сократить расходы на их производство. Учитывая все это, спроектировать схему, отвечающую требованию «бездефектного производства», без предварительного моделирования практически невозможно.

Программа PSPICE позволяет приписывать допуски параметрам компонентов. И тогда в ходе одного анализа Монте-Карло одна и та же схема может моделироваться («прогоняться») до двадцати тысяч раз: каждый раз с новым набором параметров, заданным по принципу случайной выборки. Затем отдельные результаты оцениваются программой PSPICE по тем критериям, которые вы заранее оговариваете во время предварительной установки анализа. Например, определяется максимальное отклонение напряжения от его номинального значения, то есть от того значения, какое имело бы это напряжение, если бы все компоненты точно соответствовали своим номинальным параметрам.

Диаграммы, создаваемые на основе результатов анализа Монте-Карло, особенно наглядны, когда, к примеру, на одной общей диаграмме изображаются результаты всех прогонов, совершенных при моделировании схемы, то одного взгляда бывает достаточно, чтобы определить чувствительность схемы к допускам компонентов. На одну диаграмму PROBE могут быть одновременно выведены данные о 399 прогонах анализа Монте-Карло.

Программа PSPICE позволяет проводить анализ Монте-Карло в сочетании с анализом DC Sweep, AC Sweep и с анализом переходных процессов. В ходе моделирования первый прогон анализа Монте-Карло всегда является «номинальным», то есть при нем все компоненты имеют свои номинальные значения.

PSPICE предоставляет в ваше распоряжение все необходимые инструменты для установки разброса значений. Так, например, вы можете выбрать функцию распределения. По умолчанию программа PSPICE предлагает равномерное распределение (опция Uniform) в рамках заданного диапазона допуска. Также возможно Гауссово распределение (опция Gaussian) или любое другое, определяемое пользователем (опция User Defined). Это открывает фантастические возможности перед профессиональными разработчиками, занимающимися проектированием схем для массового производства. Однако в учебном курсе достаточно будет рассмотреть только равномерное распределение параметров разброса, уже установленное в PSPICE по умолчанию.

Еще одна хитрость этого анализа состоит в том, что вы можете выбирать, следует ли в процессе моделирования варьировать каждый параметр, которому присвоено значение разброса, независимо от других или нужно изменять вместе группу параметров, например группу резисторов сопротивлениями 1 Ом. Такая возможность очень важна при моделировании интегральных схем. В этом случае характеристике допуска присваивается кодовое обозначение LOT, например LOT=5%. В нашем учебном курсе мы не будем пользоваться кодовым обозначением LOT. В приводимых примерах все параметры определяются независимо друг от друга, что является разумным при использовании отдельных (дискретных) компонентов. В этом случае допуск получает кодовое обозначение TOL, например TOL=5%.

В качестве примера исследуем с помощью вероятностного анализа Монте-Карло схему активного фильтра с высокой крутизной фронта. Такие схемы чрезвычайно чувствительны к разбросам параметров компонентов.

Шаг 18 Начертите схему активного полосового фильтра, изображенную на рис. 9.32, и сохраните свой чертеж в папке Projects под именем BP_AKT.sch. Обратите внимание на то, какой «трюк» был использован при ее проектировании, чтобы не слишком загромождать чертеж шинами питания. Зажимные компоненты, которые здесь применены, называются Bubble и находятся в библиотеке PORT.slb. Если дважды щелкнуть мышью по одному их таких компонентов, откроется окно, где вы можете дать компоненту имя (здесь: V+ и V-). Компоненты Bubble с одинаковыми именами считаются электрически связанными друг с другом.

Рис. 9.32. Схема активного полосового фильтра с двумя операционными усилителями uA741

Шаг 19 Создайте на экране PROBE диаграмму частотной характеристики, изображенную на рис. 9.33, с помощью обычного анализа AC Sweep.

Рис. 9.33. Частотная характеристика активного полосового фильтра

Эта частотная характеристика имеет такие крутые фронты, что знаток наверняка задастся вопросом, сохранит ли эта схема свои качества даже при небольших разбросах параметров компонентов.

Шаг 20 Задайте всем резисторам 1% допуска. Для этого действуйте следующим образом:

1. Маркируйте все резисторы, поочередно щелкая по ним и удерживая при этом клавишу Shift.

2. Выберите в меню Edit опцию Attributes….

3. В окне, которое затем откроется (рис. 9.34), вы должны подтвердить свое намерение одновременно изменить атрибуты всех маркированных компонентов (глобально).

Рис. 9.34. Окно, где следует подтвердить намерение глобально редактировать атрибуты

4. Откроется окно Global Edit Attributes (рис. 9.35).

Рис. 9.35. Окно Global Edit Attributes для одновременного редактирования нескольких атрибутов

5. Какие атрибуты являются общими для маркированных компонентов (ведь это непременное условие для того, чтобы вы смогли изменить их все вместе), вы узнаете, щелкнув по кнопке Browse… и открыв окно Select Attribute (рис 9.36).

Рис. 9.36. Окно Select Attribute с указанием доступных для одновременного изменения атрибутов

6. Отметьте строку TOLERANCE= (Допуск) и подтвердите свой выбор щелчком по кнопке OK. После этого вновь откроется окно Global Edit Attributes.

7. Введите в поле Value требуемое значение допуска, в данном случае 1% (рис. 9.37), и подтвердите ввод, щелкнув по кнопке OK. Теперь на чертеже появился индикатор только что установленного вами допуска.

Рис. 9.37. Окно Global Edit Attributes с установленными для всех резисторов допусками в размере 1%

Шаг 21 Аналогичным образом задайте для всех конденсаторов допуск 2%.

Шаг 22 Откройте окно Analysis Setup, установите флажок рядом с кнопкой Monte Carlo/Worst Case… (Анализ Монте-Карло/Наихудшего случая) и щелкните по ней. Откроется окно Monte Carlo or Worst Case с установками для проведения анализа Монте-Карло (рис. 9.38).

Рис. 9.38. Окно Monte Carlo or Worst Case

Шаг 23 Проведите в этом окне предварительную установку, как показано на рис. 9.38. В ходе моделирования будет проведено десять прогонов анализа Монте-Карло (опция МС Run) на основе анализа AC Sweep (опция Analysis Туре). Все настройки в разделе Function оставьте без изменения. Они имеют значение только для выходного файла и в данный момент не представляют для вас интереса. В поле Output Var вы должны ввести, какую величину следует понимать как выход. Это также нужно только для выходного файла, тем не менее, если в поле не будет указано никакого значения, PSPICE откажется проводить анализ Монте-Карло. Выберите в списке MC Options (Опции анализа Монте-Карло) опцию All, чтобы вам были предоставлены данные всех десяти прогонов как в PROBE, так и в выходном файле.

По окончании предварительной установки убедитесь, что все сделано так, как нужно, и подтвердите выполненные настройки щелчком по кнопке OK. Проверьте еще раз, активизированы ли в окне Analysis Setup режимы анализов АС Sweep и Монте-Карло, и затем запустите процесс моделирования.

После того как PSPICE завершит вычисления, откроется окно Available Sections, в котором можно выбирать для отображения на экране PROBE результаты интересующих вас прогонов анализа Монте-Карло. В данном случае вам требуются все имеющиеся данные, поэтому просто щелкните по кнопке OK.

Шаг 24 А теперь выведите на экран диаграмму частотной характеристики выходного напряжения полосового фильтра для всех десяти прогонов анализа Монте-Карло (рис. 9.39).

Рис. 9.39. Поведение схемы BP_AKT.sch в ходе анализа Монте-Карло

Результат не то чтобы грандиозный, но, кажется, фильтр все же рабочий. Конечно, 1% и 2% очень низкие для допусков значения, и дальнейшее уменьшение возможно, только если точно подгонять резисторы и «вручную» выбирать конденсаторы.

Наряду с анализом Монте-Карло в программе PROBE можно выполнить стохастический эквивалент анализа производительности: на экране будет показано статистическое распределение величин, которые извлекаются из каждого отдельного прогона анализа Монте-Карло с помощью целевых функций. В качестве примера изобразим в виде гистограммы статистическое распределение ширины полосы на уровне 3-dB десяти полученных выше кривых.

Шаг 25 Чтобы создать гистограмму статистического распределения ширин полос частот на уровне 3-dB, действуйте следующим образом:

1. Удалите с экрана PROBE все диаграммы.

2. Активизируйте опцию Performance Analysis, щелкнув на панели инструментов PROBE по кнопке

.

3. Откройте окно Add Traces, отправьте в строку Trace Expression функцию Bandwith(1, db_level) и в скобках введите Bandwith (V(R7:1.3). Щелкните по кнопке OK, и на вашем экране будет создана гистограмма, структура которой аналогична изображенной на рис. 9.40 (с вашими статистическими данными диаграмма будет выглядеть иначе).

Рис. 9.40. Гистограмма статистического распределения полос частот на уровне 3-dB

Разумеется, нельзя ожидать подробной статистики после всего десяти прогонов анализа Монте-Карло, однако вам не возбраняется увеличить их количество до 399, чтобы создать более совершенную гистограмму. Чем больше прогонов вы потребуете сделать в ходе анализа Монте-Карло, тем тоньше будут столбцы и тем больше их будет отображено. Число столбцов вы можете установить, выбрав в меню PROBE Options строку Number of Histogram Divisions (Количество столбцов гистограммы).

Теперь вкратце рассмотрим опции окна Monte Carlo or Worst Case (см. рис. 9.38), которыми вы еще не пользовались:

• YMAX — определяет максимальную разницу между «номинальным прогоном» и отдельными прогонами (MC Runs). Результаты можно получить только в выходном файле;

• MAX — определяет максимальное значение (относительный максимум) отдельных прогонов MC Runs, а также отклонение отдельных максимальных значений от максимального значения «номинального прогона». Результаты можно получить только в выходном файле;

• MIN — функция, аналогичная опции MIN. Результаты можно получить только в выходном файле;

• RISE — определяет первое превышение границы (при нарастании фронта), заданной в поле ввода Rise/Fall (Нарастание/Спад). Результаты можно получить только в выходном файле;

• FALL — действует аналогично RISE, но только при спаде фронта. Результаты можно получить только в выходном файле;

• LIST — записывает параметры всех прогонов MC Runs в выходной файл;

• SEED — стартовая позиция (начальное число) генератора случайных чисел. 1?SEED?32767. Если вы ничего не вводите в поле SEED (Начальное число), то по умолчанию устанавливается начальное число 1753. Одинаковые значения в этом поле при одинаковых анализах всегда дают одинаковые «случайные» числа. Поэтому, если вы хотите использовать новый набор значений параметров, предварительно измените значение в поле SEED;

• ALL — выявляет все данные;

• FIRST — предоставляет только результаты первых прогонов MC Runs и ровно стольких, сколько вы запросили в поле Value;

• EVERY — предоставляет результаты каждого N-прогона MC Run. При этом N соответствует значению, которое вы ввели в поле Value;

• RUN — предоставляет результаты только указанных в поле Value прогонов анализа Монте-Карло;

• RANGE: (Lo/Hi) — диапазон изменяемой переменной, внутри которого следует осуществлять поиск YMAX, MAX и MIN.

Напоследок приведем небольшой пример того, как можно изменять параметры компонентов, если они не доступны через меню атрибутов (как было показано выше на примере резисторов и конденсаторов).

Исследуем схему с общим эмиттером, изображенную на рис. 9.10, для того случая, когда усиление тока транзистора рассеивается на ±50%.

Сначала надо маркировать транзистор (чтобы он окрасился в красный цвет), затем открыть меню Edit и выбрать в нем строку Model…. Откроется окно Edit Model, где нужно щелкнуть по кнопке Edit Instance Model (Text)… (Редактировать модель образца…). Откроется редактор моделей с параметрами транзистора. Рядом с усилением тока Bf следует в качестве дополнения ввести допуск Dev=50% (рис. 9.41). Программа PSPICE автоматически присваивает этой модели новое имя (BC548B-X). Созданная модель действительна только в данной схеме (то есть локально). Она сохраняется в той же директории, что и чертеж и под тем же именем, но с расширением файла .lib. Новую модель можно присвоить и другим транзисторам той же схемы. Для этого нужно маркировать изменяемый компонент, затем открыть окно Edit Model и щелкнуть в нем по кнопке Change Model Reference… (Изменить ориентировочное название модели…). В открывшемся окне вы можете ввести новое имя модели. Такой способ позволяет, например, присвоить модель BC548B-X транзистору BC548B.

Рис. 9.41. Редактор моделей с моделью BC548B; усиление тока Bf имеет разброс ±50%

Анализ Монте-Карло с измененным транзистором показал удовлетворительные результаты (рис. 9.42). Разброс усиления тока, благодаря сильной отрицательной обратной связи, не оказывает заметного влияния на частотную характеристику схемы.

Рис. 9.42. Выходное напряжение схемы с общим эмиттером после десяти прогонов анализа Монте-Карло