Программы симуляции и моделирования, которые сегодня широко используются в самых разных прикладных областях, существенно облегчили жизнь инженерам и разработчиками самых различных устройств и систем. Далеко не только электронных. И во многих статьях канала тоже используются результаты моделирования. Но насколько мы можем доверять результатам? И могут ли разные программы давать разные результаты при моделировании одного и того же устройства или процесса?
Статья является сугубо практической, хотя совсем без теории обойтись все равно не получится.
Подобные вопросы вполне закономерны. Очень кратко я рассказывал об этом, применительно к электронике, в статье
Вполне естественно, что реальный мир заметно отличается от мира описываемого в математической модели. А программы моделирования используют именно математические модели. Можно выделить две основные проблемы, которые оказывают влияние на точность именно математического моделирования (и расчетов):
- Математическая модель, особенно используемая в инженерных расчетах, чаще всего является упрощенной и не учитывает множества факторов. Причем это касается даже самых простых моделей, которые кажутся абсолютно точными. Для примера возьмем всем известный закон Ома I=U/R. Но эта формула не учитывает, например, изменение сопротивления R из-за нагрева при протекании через него тока I. Значит, результат расчета может отличаться реальности.
- Математическая модель не учитывает взаимодействия с внешним миром. Например, любой проводник обладает и собственной индуктивностью и распределенной емкостью. Причем это зависит и от формы проводника, и от его расположения относительно других внешних элементов, причем не только элементов схемы. Даже простое поднесение руки может оказывать влияние.
Не говоря уже о том, что объекты реального мира идеальными не являются и их параметры имеют разброс, иногда значительный. Достаточно посмотреть, например, на параметры любых транзисторов в любом справочнике, что бы убедиться в этом.
Поэтому и результаты расчетов по формулам, и результаты моделирования, нельзя считать абсолютно точными. Нельзя требовать из 100% совпадения с результатами моделирования "в железе". Но это совершенно не делает математические расчеты бесполезными! Просто нужно понимать и принимать неизбежную ограниченность чисто математических расчетов и моделей. И результаты расчетом и моделирования нередко приходится уточнять на практике, при изготовлении и настройке конкретного устройства. Но статья, собственно говоря, не об этом...
Давайте на практике попробуем посмотреть, могут ли различные программы моделирования и симуляции давать различные результаты для одной и той же схемы? Поводом для статьи стала небольшая дискуссия с Алексеем (читатель, с которым мы общаемся и вне рамок Дзен) касающаяся активного полосового фильтра.
Сразу хочу предупредить, что статья не является ни рассказом о моделировании активных фильтров с помощью различных программ, ни описанием возможностей программ-симуляторов электронных схем, ни обсуждением схемотехники фильтров, ни обсуждением тонкостей звукоусилительных трактов с точки зрения аудиофилов. В статье рассматривается один-единственный практический вопрос "могут ли разные программы давать разные результаты?".
Моделируемый полосовой фильтр
Алексей увлекается вопросами звуковоспроизведения, но я не знаю, насколько правомерным будет назвать его аудиофилом. Его вопрос касался вот этой схемы
Точнее, не всей схемы, а полосового фильтра, который используется в канале сабвуфера. Вот нужный нам фрагмент более крупно
Повторю, вопрос выбора схемы схемотехники фильтра, его параметров, в статье не рассматривается. Абсолютно никак не рассматривается! С любой точки зрения!
Нас будет интересовать АЧХ этого фильтра в диапазоне частот от 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
Как именно работать в программе мы рассматривать не будем. Мы рассмотрим модель и готовые результаты
Это в точности тот самый фильтр, схема которого приводилась выше. Просто я показал, как модель схемы выглядит в программе. Как видно, здесь нет ничего сложного. Использованы модели идеальных ОУ. Видно и выбранный режим моделирования с некоторыми параметрами. Результат моделирования выглядит так
Параметры точек могут быть не совсем точными, поскольку они ставились "на глаз". Обе оси, и горизонтальная, и вертикальная, являются логарифмическими.
У нас получились такие результаты:
- Частота соответствующая максимальному коэффициенту передачи: 77 Гц
- Максимальный коэффициент передачи: -13 dB
- Коэффициент передачи на частоте 10 Гц: -40 dB
- Коэффициент передачи на частоте 1 кГц : - 56 dB
Запомним их и перейдем к следующей программе.
Моделирование фильтра в программе 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
Схема остается неизменной, но внешний вид модели немного другой
В этой программе нет идеального ОУ, поэтому выбран реальный TL072. Впрочем, на результаты расчета это оказывает весьма незначительное влияние. Можно выбрать и другой ОУ, например, MCP601. Разница видна лишь в третьей цифре после запятой. Графический результат моделирования выглядит так
Хорошо видно, что вид АЧХ идентичен двух предыдущим результатам. Более того, параметры наших трех точек Весьма близки к результатам для программы Tina-TI, хоть незначительная разница и есть.
Что же из всего этого следует?
Прежде всего, неверно считать программы моделирования абсолютно точными и требовать от них безусловного совпадения результатов с реальным макетом или собранным на плате устройством.
Универсальные программы моделирования не учитывают специфику схемы, модель которой обрабатывают. В нашем случае, программа не моделировала фильтр, с ее точки зрения. Она анализировала электрическую цепь переменного тока в зависимости от частоты. Важно это понимать.
Рассматривайте работу с универсальным симулятором лишь как работу с макетом, только математическим. И учитывайте, что параметры компонентов в готовом устройстве могут заметно отличаться от использованных в макете. Вне зависимости от того, реальный это макет, или математический. Более того, параметры компонентов в разных экземплярах готового устройства могут заметно различаться.
Программы моделирования, симуляторы, используются для инженерного анализа поведения, работы, схемы. Они не заменяют расчетов, учитывающих специфику схемы. Мы могли бы взять, например, книгу
- Г. Мориц, П. Хорн, "Проектирование активных фильтров", перевод, издательство "Мир", 1984 год (оригинальное издание 1981 года).
И воспользоваться изложенными там методами и формулами именно для анализа работы фильтра, а не просто электронной схемы. Но это было бы куда сложнее и гораздо менее наглядно. Программа просто немного облегчила нам жизнь
Не смотря на существенное различие в трех использованных нами сегодня программах, результаты моделирования оказались очень близки. Причем в двух программах даже чрезвычайно близки, почти тождественны. Немного выбилась из красивой картинки лишь Qucs-S, но и тут разница не превышает 8%, что весьма не плохо для инженерного применения. И это совершенно естественно! Было бы очень странно, если бы результаты расчета в разных программах существенно различались для одной и той же схемы.
Почему у нас было незначительным (очень незначительным) влияние выбранного ОУ? Дело в том, что коэффициент усиления с разорванной петлей обратной связи у выбранных ОУ весьма большой. Что позволяет считать из весьма близкими к идеальным для синусоидального сигнала, частота которого далека от частоты единичного усиления. Но важно понимать, что это касается нашего моделирования, а не является общим моментом. Если промоделировать, например, реакцию схемы на единичный скачок входного напряжения, то разница в переходном процессе станет заметна.
Заключение
Можно пользоваться любой программой моделирования, которая вам больше нравится. При условии, что вы понимаете как она работает и какие имеет ограничения. И учитываете, что результат моделирования нельзя считать в точности соответствующим реальному устройству. Результаты моделирования, при грамотном использования программ-симуляторов, будут не идентичными, но весьма близкими.
Если результаты разительно отличаются, значит вы допустили какую-то ошибку или вышли за границы применимости программы (даже если об этом не догадываетесь).
Я не случайно использую MPLAB Mindi в различных режимах моделирования (SIMPLIS или SIMETRIX). Это можно увидеть в статьях. Например, в статье
использован именно режим SIMPLIS, а в данной статье режим SIMETRIX. Эти режимы ориентированы на разный анализ, разных типов схем. И это бывает очень важным. Это относится именно к пониманию работы симулятора и границах его применимости.
Но в большинстве случаев, для непрофессионального использования, подойдет практически любая программа. Однако, применение собственной головы в любом случае является необходимым. Правда не всегда достаточным...