Мой онлайн-симулятор FoxySim
предназначен для моделирования линейных электрических цепей постоянного и синусоидального тока (однофазных и трехфазных) - расчета значений токов, напряжений, мощностей и определения показаний измерительных приборов.
При разработке симулятора я ставил цель создать симулятор, пригодный для использования студентами при изучении таких курсов:
«Теоретические основы электротехники» (ТОЭ);
«Основы теории цепей» (ОТЦ);
«Основы теории электрических цепей» (ОТЭЦ);
«Теория электрических цепей» (ТЭЦ);
«Теория электрорадиотехнических цепей» (ТЭРЦ);
«Теория линейных электрических цепей» (ТЛЭЦ);
«Электротехника».
Ввод информации о схеме моделируемой цепи производится в текстовом виде, а вся обработка выполняется на сервере, что позволяет использовать симулятор FoxySim на любом устройстве, имеющем доступ в Интернет и оснащенном браузером.
Скриншот работающего симулятора на смартфоне под управление ОС Android:

А вот как работает симулятор в текстовом браузере Lynx:
ввод списка соединений

получение результатов

Главное достоинство моего симулятора - удобство использования (ввода информации о схеме и получения результатов) при моделировании линейных электрических цепей постоянного и синусоидального тока. В существующих SPICE-симуляторах режим "AC Small-Signal Analysis" предназначен для определения передаточной функции и очень неудобен при использовании для расчета цепей синусоидального тока в рамках теоретической электротехники.
Исходный код симулятора написан мной на языке программирования Go (Golang):

Алгоритм расчета основан на использовании модифицированного метода узловых потенциалов (англ. MNA - modified nodal analysis). В этом методе при решении системы узловых уравнений определяются не только узловые потенциалы, но и токи некоторых ветвей.

Симулятор электрических цепей FoxySim доступен по адресу: http://sim.foxylab.com

Код проекта доступен на GitHub: https://github.com/Dreamy16101976/FoxySim

Видеопример моделирования линейной электрической цепи синусоидального тока доступен на моем YouTube-канале:
https://youtu.be/2CamX-YVuQ8
Для переключения языка интерфейса (русский/английский) следует нажать кнопку с соответствующим флажком
.
Схема рассчитываемой цепи описывается списком соединений (англ. netlist), состоящим из директив, описаний компонентов и комментариев:

Формат входных данных (списка соединений):
► пустые строки игнорируются
► комментарии:
*комментарий
► директивы:
регистр символов в названии директивы не важен
.DC - расчет цепи постоянного тока
.AC частота - расчет цепи синусоидального тока:
лин. частота в Гц - по умолчанию или символ f в конце значения;
круг. частота в рад/с - символ w в конце значения;
частоту можно не указывать, если в цепи отсутствуют катушки индуктивности и конденсаторы
.PARAM имя значение - задание значения значение параметра с именем имя
(регистр символов в имени параметра не важен)
.DEG - вывод фаз в градусах (по умолчанию):

.RAD - вывод фаз в радианах:

.FIX число_дес._знаков - вывод значений с фиксированной точкой (по умолчанию):
три дес. знака:
;
если число знаков не указано, то выводится шесть десятичных знаков: 
.SCI число_знач._цифр - вывод значений с плавающей точкой (в научном формате):
три цифры после точки: 
если число значащих цифр не указано, то выводится четыре цифры после точки: 
.END - конец списка соединений
описания компонентов:
в именах компонентов регистр символов не важен
имена компонентов не могут дублироваться
N1, N2, N3, N4 - номера узлов, узлы нумеруются целыми числами, начиная от 0 - базисного узла
АКТИВНЫЕ ЭЛЕМЕНТЫ:
независимые источники:
► источник ЭДС:

постоянный ток (DC) - Vимя N1 N2 значение
синусоидальный ток (AC) - Vимя N1 N2 действ._значение нач._фаза
значение ЭДС задается в вольтах;
если значение нач. фазы не задано, то оно принимается равным нулю;
нач. фаза в градусах - по умолчанию или символ d в конце значения;
нач. фаза в радианах - символ r в конце значения
► источник тока:

постоянный ток - Iимя N1 N2 значение
синусоидальный ток - Iимя N1 N2 действ._значение нач._фаза
значение тока задается в амперах;
если значение нач. фазы не задано, то оно принимается равным нулю;
нач. фаза в градусах - по умолчанию или символ d в конце значения;
нач. фаза в радианах - символ r в конце значения
зависимые (управляемые) источники:
► источник напряжения, управляемый напряжением (ИНУН):

постоянный ток (DC) - Eимя N1 N2 N3 N4 коэф._передачи
синусоидальный ток (AC) - Eимя N1 N2 N3 N4 модуль_коэф._передачи фаза_коэф._передачи
если значение фазы коэф. передачи не задано, то оно принимается равным нулю;
фаза коэф. передачи в градусах - по умолчанию или символ d в конце значения;
фаза коэф. передачи в радианах - символ r в конце значения
► источник тока, управляемый током (ИТУТ):

постоянный ток (DC) - Fимя N1 N2 N3 N4 коэф._передачи
синусоидальный ток (AC) - Fимя N1 N2 N3 N4 модуль_коэф._передачи фаза_коэф._передачи
если значение фазы коэф. передачи не задано, то оно принимается равным нулю;
фаза коэф. передачи в градусах - по умолчанию или символ d в конце значения;
фаза коэф. передачи в радианах - символ r в конце значения
► источник тока, управляемый напряжением (ИТУН):

постоянный ток (DC) - Gимя N1 N2 N3 N4 коэф._передачи
синусоидальный ток (AC) - Gимя N1 N2 N3 N4 модуль_коэф._передачи фаза_коэф._передачи
если значение фазы коэф. передачи не задано, то оно принимается равным нулю;
фаза коэф. передачи в градусах - по умолчанию или символ d в конце значения;
фаза коэф. передачи в радианах - символ r в конце значения
► источник напряжения, управляемый током (ИНУТ):

постоянный ток (DC) - Hимя N1 N2 N3 N4 коэф._передачи
синусоидальный ток (AC) - Hимя N1 N2 N3 N4 модуль_коэф._передачи фаза_коэф._передачи
если значение фазы коэф. передачи не задано, то оно принимается равным нулю;
фаза коэф. передачи в градусах - по умолчанию или символ d в конце значения;
фаза коэф. передачи в радианах - символ r в конце значения
ПАССИВНЫЕ ЭЛЕМЕНТЫ
► резистор: Rимя N1 N2 значение

значение сопротивления задается в омах
► катушка индуктивности: Lимя N1 N2 значение

значение индуктивности задается в генри
► индуктивная связь: Kимя Lимя Lимя коэф._связи

указываются имена двух индуктивно связанных катушек
► конденсатор: Cимя N1 N2 значение

значение емкости задается в фарадах
► комплексное сопротивление:

в экспоненциальной форме:
Zимя N1 N2 модуль фаза
если значение фазы не задано, то оно принимается равным нулю;
фаза в градусах - по умолчанию или символ d в конце значения;
фаза в радианах - символ r в конце значения
в алгебраической форме:
Zимя N1 N2 актив._сопр. реактив._сопр.i
► длинная линия:

Для представления длинной линии используется точная эквивалентная модель линии в виде П-образной схемы замещения.
Сопротивление продольной ветви определяется выражением $Z_1 = Z_0 sinh (\gamma L)$ , а поперечной - выражением $Z_2 = Z_3 = {{Z_0 sinh(\gamma L)} \over {cosh(\gamma L) - 1}}$, где $Z_0$ - характеристическое (волновое) сопротивление линии, Ом, $\gamma$ - постоянная передачи, км-1 или м-1, $L$ - длина линии, км или м.
резистивная:

TRимя N1 N2 N3 характер._сопр. пост._передачи длина
RLC:

TZимя N1 N2 N3 характер._сопр. пост._передачи длина
Характеристическое сопротивление и постоянная передачи должны указываться в комплексной (алгебраической или экспоненциальной) форме.
В значениях можно использовать приставки (важен регистр символов):
приставка |
обозначение |
множитель |
тера |
T |
1012 |
гига |
G |
109 |
мега |
M |
106 |
кило |
K |
103 |
милли |
m |
10-3 |
микро |
u |
10-6 |
нано |
n |
10-9 |
пико |
p |
10-12 |
В качестве значений в списке соединений можно подставлять имена параметров в фигурных скобках: {имя}
ИЗМЕРИТЕЛЬНЫЕ ПРИБОРЫ
► амперметр: PAимя N1 N2

► вольтметр: PVимя N1 N2

► ваттметр: PWимя N1 N2 N3 N4

► варметр: PQимя N1 N2 N3 N4

► фазометр: PFимя N1 N2 N3 N4

Для очистки списка соединений следует нажать кнопку 
Для получения краткой справки следует нажать кнопку 
Симуляция
Для запуска моделирования следует нажать кнопку 
Список соединений сохраняется в cookies браузера и восстанавливается при следующем входе.
Результаты расчета
После окончания симуляции в браузере открывается окно с результатами расчета.
расчет цепи постоянного тока:
- для резистора - ток, падение напряжения, потребляемая мощность

- для независимого источника ЭДС - ток, вырабатываемая мощность

- для независимого источника тока - напряжение, вырабатываемая мощность

- для зависимых источников - ток, ЭДС или напряжение, вырабатываемая мощность
расчет цепи синусоидального тока:
- комплексные значения приводятся в экспоненциальной (показательной) форме
- для резистора - ток, падение напряжения, потребляемая активная мощность

- для катушки индуктивности и конденсатора - ток, падение напряжения, потребляемая реактивная мощность

- для независимого источника ЭДС - ток, вырабатываемая комплексная мощность

- для независимого источника тока - напряжение, вырабатываемая комплексная мощность
- для зависимых источников - ток, ЭДС или напряжение, вырабатываемая комплексная мощность
Для возврата к редактированию списка соединений следует нажать ссылку 
Некорректные схемы
При создании короткого замыкания для ненулевого источника ЭДС
.DC
V1 1 0 10
V2 0 1 0
.END
при попытке запуска симуляции выдается ошибка " Сингулярная матрица! "
Такая же ошибка возникает при последовательном включении двух источников тока:
.DC
I1 0 1 10
I2 1 0 5
.END
Примеры
В качестве примеров я приведу расчет цепи постоянного тока и расчеты однофазной и трехфазной цепей синусоидального тока, а также цепи с длинной линией:
расчет линейной цепи постоянного тока
Рассчитываемая цепь содержит два источника ЭДС, один источник тока и три резистора:

Список соединений выглядит так:
.DC
V1 1 0 10
R1 1 2 5
R2 2 0 15
R3 2 3 20
V2 3 0 30
I1 2 0 5
.END
Результаты расчета содержат токи, напряжения и мощности:

расчет линейной цепи синусоидального тока
Рассчитываемая цепь содержит источник синусоидального напряжения, резистор, катушку индуктивности, конденсатор, вольтметр, ваттметр, варметр, фазометр и амперметр:

Список соединений выглядит так:
.AC 50
V1 1 0 100 0
PW1 1 2 1 0
PQ1 2 3 2 0
PF1 3 4 3 0
PA1 4 5
PV1 1 0
R1 5 6 50
L1 6 7 100m
C1 7 0 80u
.END
Результаты расчетов содержат показания приборов, а также токи, напряжения и мощности отдельных компонентов:

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

Список соединений выглядит так:
.AC 50
V1 1 0 60 0
PW1 1 2 1 0
PA1 2 3
PV1 1 0
R1 3 4 30
L1 4 0 100m
K1 L1 L2 0.8
L2 5 0 200m
R2 5 6 50
PA2 6 7
R3 7 0 100
PV2 7 0
.END
Результаты расчетов содержат показания приборов, а также токи, напряжения и мощности отдельных компонентов:

расчет несимметричной трехфазной цепи
Рассчитываемая трехфазная цепь содержит три фазных источника ЭДС, соединенных по схеме "звезда", и несимметричную нагрузку из резистора, катушки индуктивности и конденсатора, соединенных по схеме "звезда", причем нейтральный провод отсутствует:

Список соединений выглядит так:
.AC 50
VA 1 0 {E} 0
VB 2 0 {E} -120
VC 3 0 {E} 120
.PARAM E 220
PW1 1 4 1 3
PW2 2 5 2 3
PAA 4 6
PAB 5 7
PAC 3 8
R1 6 9 500
L1 7 9 300m
C1 8 9 50u
PVA 6 9
PVB 7 9
PVC 8 9
PVN 9 0
.END
Модуль действующего значения фазной ЭДС (220 В) задан как значение параметра E. Начальные фазы ЭДС соответствуют прямому чередованию фаз.
Результаты расчета трехфазной цепи содержат показания приборов, а также токи, напряжения в комплексной форме и мощности (активные, реактивные и комплексные):

расчет сложной несимметричной трехфазной цепи с комплексными сопротивлениями
Рассчитываемая трехфазная цепь содержит три фазных источника ЭДС, соединенных по схеме "звезда", и несимметричную нагрузку из шести комплексных сопротивлений:

Список соединений выглядит так:
.AC 50
VA 1 0 {E} 0
VB 2 0 {E} -120
VC 3 0 {E} 120
.PARAM E 220
PW1 1 4 1 3
PW2 2 5 2 3
Z1 4 6 8 30
Z2 5 7 12 -50
Z3 3 8 10 90
Z4 6 7 15 0
Z5 7 8 6 -30
Z6 6 8 18 60
.END
Результаты расчета трехфазной цепи содержат показания приборов, а также токи, напряжения в комплексной форме и комплексные мощности:

расчет цепи с длинной линией
Длинная линия подключена к источнику напряжения Vg = 10 ∠ 0° В с внутренним сопротивлением Zg = 40 Ом. К другому концу линии подключена нагрузка ZL = 20 + j50 Ом. Характеристическое сопротивление линии Z0 = 60 + j40 Ом, постоянная передачи g = 0,921 + j1 м-1, длина линии 2 м.
Список соединений выглядит так:
.AC 1Mw
VG 1 0 10 0
ZG 1 2 40
TZ1 2 3 0 60 40i 0.921 1i 2
ZL 3 0 20 50i
.END
Результаты расчета содержат токи, напряжения в комплексной форме и комплексные мощности:
1 - ток на входе линии
2 - напряжение на входе линии
3 - ток на входе линии
4 - напряжение на входе линии

Моя статья на Хабре о симуляторе - https://habr.com/post/434570/
Продолжение следует