12K подписчиков

Симуляторы и фильтр

623 прочитали

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

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

Подобные вопросы вполне закономерны. Очень кратко я рассказывал об этом, применительно к электронике, в статье

О математическом моделировании электронных схем и немного о макетировании
Разумный мир29 февраля 2020

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

  1. Математическая модель, особенно используемая в инженерных расчетах, чаще всего является упрощенной и не учитывает множества факторов. Причем это касается даже самых простых моделей, которые кажутся абсолютно точными. Для примера возьмем всем известный закон Ома I=U/R. Но эта формула не учитывает, например, изменение сопротивления R из-за нагрева при протекании через него тока I. Значит, результат расчета может отличаться реальности.
  2. Математическая модель не учитывает взаимодействия с внешним миром. Например, любой проводник обладает и собственной индуктивностью и распределенной емкостью. Причем это зависит и от формы проводника, и от его расположения относительно других внешних элементов, причем не только элементов схемы. Даже простое поднесение руки может оказывать влияние.

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

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

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

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

Моделируемый полосовой фильтр

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

H-200-01 (A-6300) Фрагмент схемы Microlab H-200
H-200-01 (A-6300) Фрагмент схемы Microlab H-200

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

Тот самый полосовой фильтр в канале сабвуфера, работа которого и будет моделироваться. Фрагмент ранее приведенной схемы
Тот самый полосовой фильтр в канале сабвуфера, работа которого и будет моделироваться. Фрагмент ранее приведенной схемы
Повторю, вопрос выбора схемы схемотехники фильтра, его параметров, в статье не рассматривается. Абсолютно никак не рассматривается! С любой точки зрения!

Нас будет интересовать АЧХ этого фильтра в диапазоне частот от 1 Гц до 20 кГц.

Стоит отметить, что сначала Алексей просил меня промоделировать лишь фрагмент фильтра, ФНЧ. Я использовал MPLAB Mindi, однако, сам он, в программе Multisim, моделировал весь фильтр, целиком. Разумеется, результаты моделирования оказались разными. Поэтому он и задал вопрос "какой же программе верить?". Со схемами мы быстро разобрались, но вот ответ на вопрос "кому же верить?" как раз и будем сегодня рассматривать.

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

В статьях я обычно использую программы Tina-TI и MPLAB Mindi. Эти программы бесплатны и достаточно просты, что бы их могли использовать любители. Увы, Tina-TI теперь доступна для скачивания с официального сайта только через VPN (но о политических аспектах не будем!). MPLAB Mindi, на момент написания статьи, все еще свободно доступен. Тем не менее, я решил сегодня использовать и еще одну программу - Qucs-S. Правда версии 1.0.0, а не 1.0.2.

И начнем мы именно с Qucs-S.

Моделирование фильтра в Qucs-S

Как именно работать в программе мы рассматривать не будем. Мы рассмотрим модель и готовые результаты

Модель фильтра используемая в программе Qucs-S
Модель фильтра используемая в программе Qucs-S

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

Результат моделирования в режиме Ngspice. Метки для трех точек проставил я
Результат моделирования в режиме Ngspice. Метки для трех точек проставил я

Параметры точек могут быть не совсем точными, поскольку они ставились "на глаз". Обе оси, и горизонтальная, и вертикальная, являются логарифмическими.

У нас получились такие результаты:

  • Частота соответствующая максимальному коэффициенту передачи: 77 Гц
  • Максимальный коэффициент передачи: -13 dB
  • Коэффициент передачи на частоте 10 Гц: -40 dB
  • Коэффициент передачи на частоте 1 кГц : - 56 dB

Запомним их и перейдем к следующей программе.

Моделирование фильтра в программе Tina-TI

Схема фильтра, конечно, не изменилась. Да и модель выглядит очень похоже

Модель фильтра используемая в программе Tina-TI
Модель фильтра используемая в программе Tina-TI

Режим моделирования в Tina-TI задается через меню и не отображается в виде графического элемента модели, в отличии от Qucs-S. Но все параметры моделирования точно такие же. Использован "AC Transfer Characteristic". Вот результат

Результат моделирования фильтра. Так же отмечены три точки и их параметры
Результат моделирования фильтра. Так же отмечены три точки и их параметры

Хорошо видно, что характер АЧХ идентичен. Причем даже на концах частотного диапазона. Но параметры наших точек немного отличаются. Результаты такие:

  • Частота соответствующая максимальному коэффициенту передачи: 78 Гц
  • Максимальный коэффициент передачи: -12 dB
  • Коэффициент передачи на частоте 10 Гц: -39 dB
  • Коэффициент передачи на частоте 1 кГц : - 52 dB

При этом различия совсем небольшие. Но почему они вообще появились, если схема идентична?

Во первых, собственно точка указывается вручную, "на глаз". А вот значения параметров для этой точки уже вычисляется и отображается программой. В Tina-TI параметры точки отображаются при перемещении курсора "в режиме реального времени". Поэтому точку можно поставить довольно точно. А вот в Qucs-S параметры маркера при его размещении не отображаются. Их можно увидеть только после того, как он поставлен. При этом положение текстового блока маркера изменить можно, а вот точку его установки на графике нет. Поэтому точность установки маркера не самая высокая.

Во вторых, параметры моделей компонентов могут немного отличаться. Как могут отличаться и особенности расчетных алгоритмов. При этом совпадение результатов моделирования довольно хорошее. Немного портит впечатление коэффициент передачи на частоте 1 кГц (4 dB). Но, если внимательно присмотреться, максимальная относительная разница не превышает 8%, причем это совсем не для коэффициента передачи на 1 кГц, это для максимального коэффициента передачи.

Моделирование в программе MPLAB Mindi

Схема остается неизменной, но внешний вид модели немного другой

Модель фильтра используемая в программе MOLAB Mindi
Модель фильтра используемая в программе MOLAB Mindi

В этой программе нет идеального ОУ, поэтому выбран реальный TL072. Впрочем, на результаты расчета это оказывает весьма незначительное влияние. Можно выбрать и другой ОУ, например, MCP601. Разница видна лишь в третьей цифре после запятой. Графический результат моделирования выглядит так

Результат моделирования фильтра. Так же отмечены три точки и их параметры
Результат моделирования фильтра. Так же отмечены три точки и их параметры

Хорошо видно, что вид АЧХ идентичен двух предыдущим результатам. Более того, параметры наших трех точек Весьма близки к результатам для программы Tina-TI, хоть незначительная разница и есть.

Что же из всего этого следует?

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

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

Рассматривайте работу с универсальным симулятором лишь как работу с макетом, только математическим. И учитывайте, что параметры компонентов в готовом устройстве могут заметно отличаться от использованных в макете. Вне зависимости от того, реальный это макет, или математический. Более того, параметры компонентов в разных экземплярах готового устройства могут заметно различаться.

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

  • Г. Мориц, П. Хорн, "Проектирование активных фильтров", перевод, издательство "Мир", 1984 год (оригинальное издание 1981 года).

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

Не смотря на существенное различие в трех использованных нами сегодня программах, результаты моделирования оказались очень близки. Причем в двух программах даже чрезвычайно близки, почти тождественны. Немного выбилась из красивой картинки лишь Qucs-S, но и тут разница не превышает 8%, что весьма не плохо для инженерного применения. И это совершенно естественно! Было бы очень странно, если бы результаты расчета в разных программах существенно различались для одной и той же схемы.

Почему у нас было незначительным (очень незначительным) влияние выбранного ОУ? Дело в том, что коэффициент усиления с разорванной петлей обратной связи у выбранных ОУ весьма большой. Что позволяет считать из весьма близкими к идеальным для синусоидального сигнала, частота которого далека от частоты единичного усиления. Но важно понимать, что это касается нашего моделирования, а не является общим моментом. Если промоделировать, например, реакцию схемы на единичный скачок входного напряжения, то разница в переходном процессе станет заметна.

Заключение

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

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

Я не случайно использую MPLAB Mindi в различных режимах моделирования (SIMPLIS или SIMETRIX). Это можно увидеть в статьях. Например, в статье

Синхронное выпрямление. Без математики, но с картинками
Разумный мир27 ноября 2020

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

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

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