В общем, представляю на суд уважаемой публики символьный решатель линейных электрических цепей. Находится он по адресу http://lumped.network. Им можно решать самые разные задачки: от простых школьных на законы Кирхгофа до вполне себе инженерных (проверить стабильность услителя, например, или рассчитать передаточную функцию фильтра). Идея проста – на вход подается описание цепи виде текста, на выходе получается решение в виде формул. Если заданы численные значения элементов, то они подставляются в решение и получается численный ответ. Описание цепи составляется в SPICE-подобном формате (можно экспортировать прямо из MicroCAP с небольшими правками).
На оригинальность не претендую, тема весьма старая и таких решателей уже было и есть довольно много. Для порядка приведу известные мне варианты:
- 1. Модуль к Wolfram Mathematica от коллектива авторов из института Фраунгофера под названием Analog Insydes. Безусловно вне конкуренции. Может сокращать малозначимые члены по заданным условиям прямо в ходе решения. Способен справиться с вычислением передаточной функции для целой микросхемы операционного усилителя. Из минусов – цена: вместе с математикой выходит 19 k$.
2. Платная TINA (не путать с урезанной TINA-TI). Вроде бы имеет в своем составе символьный решатель и может считать передаточные функции, но я не пробовал.
3. Скрипт со странным названием SCAM. Сам скрипт бесплатен, но нужен MATLAB с символьным модулем.
4. Сайт CiruitNAV (circuitnav.pythonanywhere.com). Интуитивно непонятный интерфейс. Не поддерживает связанных индуктивностей и подстановку чисел и выражений. Зато бесплатно.
Под катом примеры задач со звездочкой и их решение с помощью решателя.
Спойлер
Задача с шестиугольником из двенадцати одинаковых резисторов. Найти эквивалентное сопротивление схемы.В решебнике написано, что в силу симметрии можно расцепить центральный узел и дальше рассчитать сопротивление получившейся комбинации последовательных и параллельных соединений. Строгого определения этой самой “силы симметрии”, разумеется, нигде не приводится, и допустимость такой модификации схемы совершенно не очевидна.
Проверяем экспериментально: составляем описание цепи и загружаем в решатель. Номера узлов на схеме обведены в кружочки. Потенциал первого узла в описании элемента считается положительным, второго – отрицательным. Ток с положительным знаком течет от первого ко второму узлу.
Код: Выделить всё
R1 6 3 R
R2 6 1 R
R3 2 6 R
R4 3 2 R
R5 1 2 R
R6 4 3 R
R7 5 1 R
R8 2 4 R
R9 5 2 R
R10 0 2 R
R11 0 4 R
R12 5 0 R
V 6 0
Спойлер
В изображенной схеме R1=2 Ом, R2=3 Ом, C1=1 мкФ, C2=2 мкФ, V=10 В. Какой заряд пройдет через ключ, если его замкнуть?Ответ к задачам такого вида находится решателем в один прием. Ключ K заменяем источником Vk с нулевым напряжением. Составляем задание для решателя. Если номиналы элементов в задании не указывать, то получится решение в общем виде.
Код: Выделить всё
C1 2 1 1/1000000
C2 0 2 2/1000000
R1 3 1 2
R2 0 3 3
V 1 0 10
Vk 2 3 0
Задачи, где требуется найти энергию, выделившуюся на каком-нибудь из резисторов, решаются сложнее. Нужно либо делать переход назад от изображений к оригиналам и дальше как обычно брать интеграл от квадрата функции тока или напряжения, либо для цепей первого порядка можно воспользоваться теоремой Парсеваля.
Спойлер
В изображенной на рисунке цепи C1=C2=C. До замыкания ключа напряжение на первом конденсаторе равно U, второй конденсатор не заряжен. Определите максимальное значение силы тока через катушку с индуктивностью L после замыкания ключа. Сопротивлением катушки можно пренебречь.Начальное напряжение на конденсаторе U соответствует заряду Q=C1*U. Этот заряд мы мгновенно впрыснем в конденсатор с помощью параллельно включенного источника тока с функцией I(s)=C1*U*s. По таблице изображений Карсона-Хевисайда убедимся, что домножение на оператор s соответствует дельта-функции Дирака, интеграл которой равен единице. Таким образом, начальное условие задано, и ключ K можно заменить закороткой. Последовательно с катушкой включим источник ЭДС с нулевым напряжением, с помощью которого мы будем измерять ток через L1. Получаем следующую эквивалентную схему.
Составляем описание схемы для решателя.
Код: Выделить всё
I 0 1 C*U*s
C1 1 0 C
C2 1 0 C
V 1 2 0
L 2 0
Вообще говоря, это задача на знание парадокса двух конденсаторов. Если в задании закомментировать строки V и L символом #, то можно получить решение: v1=U/2.
Ещё один “парадокс” притаился в выражении для iV(s). Если взять интеграл от iV(s) путем деления на s, то мы получим выражение для заряда. Подставляем s=0 и видим, что через катушку за бесконечное время прошел весь заряд конденсатора qV(s=0)=C*U. Интересно, что это величина совершенно не зависит от сопротивления между узлами 1 и 0. Хотя, казалось бы, при наличии сопротивления заряд должен был бы через него и утечь. Но, сверившись с численным моделированием в MicroCAP, убеждаемся, что прошедший через резистор заряд действительно равен нулю.
Но это всего лишь следствие того, что в начальный момент времени напряжение на катушке равно U, а ток через нее равен нулю. Тогда получается, что напряжение будет меняться по косинусу, ток – по синусу, а заряд – опять же по косинусу. Но в начальный момент времени прошедший через катушку заряд, очевидно, равен нулю. Тогда единственная возможность для существования косинусоиды, описывающей заряд, это ее смещение относительно нуля на величину C*U.
Спойлер
К одной из четырех обмоток трансформатора подключен источник напряжения V. Найти напряжения на остальных обмотках трансформатора, если они не нагружены. Число витков и коэффициенты связи между обмотками считать произвольными.Составляем задание для решателя.
Код: Выделить всё
V 1 0
L1 1 0
L2 2 0
L3 3 0
L4 4 0
K_12 L1 L2
K_13 L1 L3
K_14 L1 L4
K_23 L2 L3
K_24 L2 L4
K_34 L3 L4
v2=V*K12*sqrt(L2/L1)
v3=V*K13*sqrt(L3/L1)
v4=V*K14*sqrt(L4/L1)
Как известно, корень из отношения индуктивностей равен отношению числа витков в обмотках. Такой вот получился многоканальный вариометр. Вопрос технической реализуемости оного оставим в стороне.


