Найти тему
Разумный мир

Моделируем реальность схемы. Или симуляция дисперсии

Оглавление

Давайте еще немного внимания уделим моделированию электронных схем в программах-симуляторах и соответствию результатов суровой реальности. Да, на канале этим вопросам уже посвящено несколько статей, не всегда в явном виде. Например

О математическом моделировании электронных схем и немного о макетировании
Разумный мир29 февраля 2020
Измеряя мы изменяем. О влиянии измерительных приборов на объект измерения
Разумный мир25 декабря 2021
Сложно о простом. Что может быть проще обычной лампы накаливания
Разумный мир4 февраля 2022

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

Может ли программа-симулятор электронной схемы помочь нам увидеть влияние, хотя бы, разброса параметров элементов схемы, без необходимости вручную задавать множество значений? Да, может. Вот об этом сегодня и поговорим. Сразу хочу предупредить, что нам придется залезть несколько глубже, чем в предыдущей статье

Симуляторы и фильтр
Разумный мир19 мая 2023

Сегодня не будут рассматриваться вопросы схемотехники. Просто будем считать, что в схемах нет явных грубых ошибок. Так же, сегодня будем считать, что в и моделях схем нет грубых ошибок.

Чувствительность

Параметры реальных компонентов, не только электронных, имеют естественный разброс. Причем этот разброс носит случайный характер. Таким образом, указание параметров любого реального элемента в виде набора конкретных чисел является неверным. Причем это касается даже совершенно конкретных компонентов использованных в совершенно конкретном устройстве, существующем в единственном экземпляре. Любое изменение условий, например, изменение температуры, приведет к отклонению значений параметров от измеренных в других условиях.

Мы можем указать для какого-либо параметра диапазон значений, в котором он находится. Этот способ часто используется в документации. Например, для транзистора BC847A коэффициент передачи тока базы h21э лежит в диапазоне от 110 до 220. Но указание границ диапазона несет недостаточно информации. Поэтому в документации часто указывается и "типовое" значение. Для BC847A это 180. Мы можем считать "типовое" значение соответствующим математическому ожиданию случайной величины. А границы диапазона значений доверительным интервалом. Это довольно условно, во всяком случае, для транзисторов. Ведь мы не знаем характера распределения. Да и применимо это только к обобщенным параметрам, ведь даже в отдельно взятой крупной партии реальное математическое ожидание может оказаться "смещенным" от справочного.

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

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

X ± Δx

здесь X является тем самым "типовым" значением или математическим ожиданием. А Δx определяет границы, в которых лежит реальное значение параметра. Характер распределения нам сегодня будет не важен.

При расчете и анализе электрических и электронных схем используется именно математическое ожидание, типовое значение X. Если не требуется использовать измеренное значение для конкретного элемента. Отклонение Δx, границы отклонения, может задаваться как в абсолютном виде, так и в относительном. Например, для BC847A

h21э = 180 ± 40 (границы отклонения абсолютные)

Для резистора, например, 10 кОм

R = 10 кОм ± 5% (границы отклонения относительные)

Это не меняет сути.

Мы можем ввести понятие "чувствительность" как реакцию устройства на изменение параметров его компонентов. Коэффициент чувствительности (или просто чувствительность) S является количественной оценкой изменения параметра устройства при изменении параметра компонента

Si = Δyi / Δxi

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

Более того, мы должны стремиться к уменьшению влияния параметров компонентов на работу устройства в целом. Это возможно не всегда, но схемотехнические решения часто найти можно. Так многозвенный LC фильтр без активных компонентов с большой вероятностью потребует настройки, но влияние h21э биполярного транзистора на работу усилительного каскада можно довольно заметно снизить схемотехнически. Но о схемотехнике сегодня разговора не будет.

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

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

Старая схема миниатюрного приемника с помеченными звездочкой компонентами, которые подбираются при настройке после сборки. Я дополнительно выделил эти элементы
Старая схема миниатюрного приемника с помеченными звездочкой компонентами, которые подбираются при настройке после сборки. Я дополнительно выделил эти элементы

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

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

Нас интересует возможность оценки чувствительности схемы с помощью математического моделирования. А моделирование мы выполняем с помощью программ-симуляторов.

Монте-Карло это не только казино

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

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

И в этом нам вполне может помочь программа-симулятор электронных схем. Но, в отличии от предыдущей статьи, уже далеко не каждая программа. Да и сам анализ далеко не всегда будет тривиальным.

Сегодня я будут использовать программу MPLAB Mindi, причем в режиме SIMetrix, которая позволяет выполнить необходимое моделирование. Никакие другие программы рассматриваться не будут

Программа MPLAB Mindi может выполнять моделирование с использованием метода Монте-Карло
Программа MPLAB Mindi может выполнять моделирование с использованием метода Монте-Карло

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

Задание дополнительных параметров для моделирования с использованием метода Монте-Карло
Задание дополнительных параметров для моделирования с использованием метода Монте-Карло

Как минимум, надо включить "Monte Carlo and multi-step analysis". По умолчанию выполняется 10 шагов (симуляций на случайных наборах данных). Я обычно использую большее количество шагов. Более подробно все можно найти в документации на программу, ну а мы просто перейдем к делу.

Усилительный каскад и его чувствительность на постоянном токе к изменению параметров компонентов

Давайте возьмем для примера очень простой и всем известный усилительный каскад на биполярном транзисторе. Вот его модель для анализа на постоянном токе

Модель анализируемого усилительного каскада. Иллюстрация моя
Модель анализируемого усилительного каскада. Иллюстрация моя

Если мы сейчас просто запустим моделирование, то результат будет вполне ожидаем и скучен

Результат моделирования на постоянном токе. Иллюстрация моя
Результат моделирования на постоянном токе. Иллюстрация моя

Как и ожидалось, напряжение на коллекторе транзистора (Vout) является неизменным во времени. В нашем случае оно равно 2.51 В. А теперь немного "поколдуем". Начнем с самого простого - зададим точность резисторов, сразу всех, равную 5%. Для этого воспользуемся разделом меню "Monte Carlo", который можно увидеть на одной из иллюстраций выше. И снова запустим моделирование. Результат будет совсем другим.

Результат моделирования при для резисторов с точностью 5%. Иллюстрация моя
Результат моделирования при для резисторов с точностью 5%. Иллюстрация моя

Мы получили не одну прямую, а 100 (я выбрал 100 шагов симуляции). Каждая прямая определяется собственной комбинацией сопротивлений всех резисторов. Просто немного пощелкав мышкой мы смогли получить результат, который потребовал бы много времени на ручные расчеты!

Давайте рассмотрим этот результат внимательнее. Во первых, важно отметить, что он является вероятностным! Если еще раз запустить симуляцию мы увидим другой результат. Границы от 2.26 до 2.70 В, между которыми лежать все прямые, нельзя считать четкими границами. Это границы доверительного интервала, и не более того.

Во вторых, можно заметить, что плотность расположения прямых тем выше, чем ближе мы к 2.51 В. И это естественно, так как это напряжение рассчитано для математических ожиданий сопротивлений резисторов, для идеальных резисторов. А реальные сопротивления являются случайными величинами, причем с нормальным распределением. Плотность вероятности максимально в окрестностях математического ожидания значения случайной величины.

В третьих, можно заметить, что большинство линий располагаются между 2.32 и 2.70 В. А 2.26 В можно считать некоторым артефактом. Его вероятность не нулевая, но довольная малая. Можно задать большее количество шагов и получить более достоверный результат. Если конечно это требуется.

Мы учли разброс параметров резисторов, но проигнорировали разброс параметров транзистора. Давайте пока вернем идеальные резисторы и сделаем реальным транзистор. И вот тут нам потребуется гораздо больше усилий! Я покажу все очень упрощенно, так как собственно работа симулятора и построение моделей темой статьи не является.

Прежде всего, нам не удастся найти в меню какого либо способа задать разброс параметров транзистора. Что бы сделать это нужно залезть в модель. И делается это не столь очевидно

Приступаем к редактированию модели транзистора. Иллюстрация моя
Приступаем к редактированию модели транзистора. Иллюстрация моя

Но это далеко не самое сложное. Модель транзистора выглядит вот так

Модель транзистора, которую мы будем редактировать. Иллюстрация моя
Модель транзистора, которую мы будем редактировать. Иллюстрация моя

Глобальная модель для редактирования недоступна, поэтому редактируем локальную модель и переключаемся на ее использование. Нам нужно найти подстроку

BF=400

И заменить ее на подстроку

BF={400*unif(0.5)}

На иллюстрации показана уже отредактированная подстрока. BF это прямой коэффициент передачи тока базы, что примерно соответствует h21э. Как видно, по умолчанию этот параметр равен 400. Мы же указали, что данный параметр имеет случайный разброс (unif - это функция равномерного распределения, 50% разброс, в данном случае).

Другие параметры транзистора нас сейчас не интересуют и я не буду их описывать. Не буду описывать и другие способы задания разброса параметров. Это темы отдельного большого разговора. Давайте просто запустим моделирование. Результат у меня получился таким

Результат моделирования влияния разброса параметра h21э транзистора. Иллюстрация моя
Результат моделирования влияния разброса параметра h21э транзистора. Иллюстрация моя

Можно заметить, что в данном случае плотность расположения прямых выше не в середине диапазона возможных значений, а в его нижней части. Влияние h21э нелинейно. Дело в том, что мы задаем в схеме не ток базы, а напряжение на базе. А входная характеристика транзистора не линейна.

Минимальное напряжение на коллекторе 2.28 В, максимальное 2.98 В. Но большинство линий лежат ниже 2.92 В. Эти границы, как и при моделировании разброса сопротивлений резисторов, не абсолютные, а вероятностные! Это очень важно.

А теперь объединим все вместе, и резисторы реальные, и транзистор. Результат получается такой

Результат моделирования по постоянному току для реальных резисторов и реального транзистора. Иллюстрация моя
Результат моделирования по постоянному току для реальных резисторов и реального транзистора. Иллюстрация моя

Видно, что все стало еще хуже, чем мы видели для каждого отдельного случая. Минимальное напряжение на коллекторе теперь 2.12 В, максимальное 3.06 В. Однако, большинство значений лежат между 2,20 В и 2.75 В. И это тоже вероятностные границы, а не абсолютные!

Теперь мы можем подвести небольшие (промежуточные!) итоги.

  1. Разброс параметров и резисторов, и транзистора, оказывает заметное влияние на положение рабочей точки транзистора. Причем совокупное влияние больше отдельных влияний. Однако, результат не является алгебраической суммой.
  2. Влияние разброса параметров может быть как линейным, так и не линейным

Какое же значение это имеет на практике? Прежде всего, при напряжении питания усилительного каскада 5 В и напряжении на коллекторе в состоянии покоя 2.5 В мы можем считать, амплитуда выходного напряжения может достигать 2.5 В (разумеется, без учета нелинейности) при отсутствии ограничения. Да, нижняя граница будет упираться в напряжение насыщения КЭ транзистора, но сегодня забудем про это. Для реальных же компонентов мы более ограничены. Положительная полуволна не может иметь амплитуду более 1.94 В, а отрицательная 2.12 В. То есть, амплитуда выходного сигнала не будет превышать 1.94 В, что бы при любом сочетании параметров компонентов усилительного каскада выходной сигнал не имел ограничений. При этом настройка после сборки не потребуется.

Если же мы решим, что небольшая настройка допустима, то можем принять максимальную амплитуду 2.25 В. Но в некоторых случаях может потребоваться подбор, например, сопротивления резистора R1.

В целом же видно, что схема достаточно устойчива с разбросу параметров компонентов. Мы можем использовать другой способ задания рабочей точки транзистора, например, подключив резистор R1 не к положительной шине питания, а к коллектору транзистора и исключив резистор R2. Но такая схема будет менее устойчива. Вы можете промоделировать это самостоятельно.

Устойчивость коэффициента усиления переменного напряжения

Давайте теперь посмотрим, как наш каскад справляется с усилением переменного напряжения (синус). Подадим на вход усилителя сигнал амплитудой 100 мВ и частотой 1 кГц. Развязку обеспечим с помощью конденсаторов. Модель будет такой

Модель усилительного каскада с реальным транзистором и реальными резисторами при усилении переменного напряжения. Иллюстрация моя
Модель усилительного каскада с реальным транзистором и реальными резисторами при усилении переменного напряжения. Иллюстрация моя

Не обращайте внимания на R6. Это чудачества MPLAB Mindi, которая выдает ошибку ERC при отсутствии пути тока через конденсатор. Результат моделирования такой

Результат моделирования усилительного каскада с реальными компонентами. Иллюстрация моя
Результат моделирования усилительного каскада с реальными компонентами. Иллюстрация моя

Мы получили не одну кривую, а 100 кривых (выбрано 100 шагов моделирования). Коэффициент усиления оказался меньше теоретических 10 (R3/R4), что объясняется влиянием входного сопротивления транзистора, базового делителя напряжения, выходного сопротивления источника сигнала (R5). Максимальный коэффициент усиления 8.58, минимальный 7.49. Это результат совокупного влияние параметров резисторов и параметров транзистора. Давайте выделим влияние только транзистора. Вернем идеальность резисторам и повторим моделирование.

Я не буду приводить иллюстрацию, она зрительно почти не отличается. Минимальный коэффициент усиления 7.66, максимальный 8.22. Еще раз отмечу, что это вероятностные границы, а не абсолютные. Диапазон для коэффициента усиления стал уже, но не значительно. Таким образом, можно сделать еще одни промежуточные выводы:

  1. Разброс параметров резисторов больше влияет на положение рабочей точки транзистора по постоянному току, чем на коэффициент усиления.
  2. Усилительный каскад имеет заметную чувствительность по постоянному току к параметрам резисторов, хоть и далеко не самую высокую.
  3. Усилительный каскад более чувствителен по постоянному току к разбросу параметров транзистора, хотя это частично компенсируется схемотехнически.
  4. Усилительный каскад мало чувствителен по переменному току к разбросу параметров резисторов.

Заключение

Сегодня мы рассмотрели важные вопросы разработки электронных устройств, которым обязательно нужно уделять внимание. К сожалению, в любительской практике очень редко анализируют устойчивость к разбросу параметров используемых компонентов. Пока устройство существует в единственном экземпляре, это не имеет большого значения. Ведь автор, которые его для себя собирал, ориентировался на конкретные, имеющиеся у него в наличии, компоненты. Но если схему будут повторять другие, например, она публикуется в интернете, то игнорировать влияние разброса параметров уже нельзя. Иначе даже настройка не всегда поможет, если сочетание параметров компонентов оказалось неудачным.

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

До новых встреч!