Расскажу о своем поделии, которое я использовал на бывшей работе. Преподавание теоретической электротехники предполагает решение многочисленных задач и выполнение экспериментов в ходе лабораторных работ. Результаты решения задачи или выполнения эксперимента, естественно, желательно проверить — а вдруг ошибка какая вышла?
Я решил сотворить минималистичный симулятор линейных электрических цепей постоянного и синусоидального тока FoxySim с текстовым вводом описания цепи, для использования которого требуется устройство с браузером и возможностью ввода текста + доступ в Интернет.
Браузер может быть любым, даже текстовым — вот, например, симуляция в Lynx:
Схема рассчитываемой цепи описывается списком соединений (netlist), состоящим из директив, описаний компонентов и комментариев:
Формат описания я сделал в духе SPICE с добавлениями, нацеленными именно на использование при преподавании теоретической электротехники (измерительные приборы, комплексные величины etc).
Вводим в текстовое поле список соединений, например, вот такой (большая часть строк имеет довольно простую структуру — для элементов: имя, начальный узел, конечный узел, номинал; для амперметров и вольтметров: имя, узел начала обмотки, узел конца обмотки, с ваттметром малость посложнее — у него обмоток цельных две:-); также можно заметить значение ЭДС, заданное как параметр — чтобы не повторять одно и то же число трижды)
.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
нажимаем кнопку «Пуск!» и получаем результат :-)
Введенное описание схемы сохраняется в cookies, можно переключать язык интерфейса.
Симулятор без лишних затей реализован на Go (я в восторге от этого языка) в виде Web-приложения.
Для моделирования электрических цепей я использовал MNA-метод.
Симулятор доступен по адресу http://foxylab.com:7777
Код проекта выложен на GitHub.
Вот ряд примеров:
моделирование цепи постоянного тока
Схема:
Список соединений:
.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
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
Результат:
Краткое описание формата директив и описаний элементов доступно здесь (кнопка )
Подробное описание симулятора можно посмотреть здесь.
Автор: Alyoshka1976