1 (2020-11-28 12:33:55 отредактировано aspirmk)

Тема: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Уважаемые коллеги!
Предлагаю Вашему вниманию разработанный на интерпретируемом языке высокого уровня Python 3 Модуль расчета токов КЗ в сетях любых классов напряжения (МРТКЗ)

МРТКЗ можно скачать по ссылке:
https://github.com/aspirmk/mrtkz

Удобнее всего скачать и использовать Python3 из Anaconda
https://www.anaconda.com/products/individual
64-битная версия для Windows (последняя версия на конец ноября 2020)
https://repo.anaconda.com/archive/Anaco … x86_64.exe

Вводное описание МРТКЗ:
- Реализован на языке высокого уровня Python 3.7 и выше.
- В модуле применяются математические библиотеки numpy и scipy, в том числе используются разреженные матрицы и алгоритмы решения разреженных систем линейных алгебраических уравнений.
- Нахождение электрических параметров токов и напряжений в расчетной схеме модели осуществляется путем решения разреженной системы линейных алгебраических уравнений, которая формируется на основании 1-ого и 2-ого законов Кирхгофа.
- Методы узловых потенциалов, метод контурных токов не применяются.
- Размерность СЛАУ составляет 3*(nq+np+nn), где  nq,np и nn - соответственно количество узлов, ветвей и несимметрий в модели: для каждого узла, ветви записываются по 3 уравнения для прямой, обратной и нулевой последовательности, а для несимметрий записывается по 3 уравнения - граничные условия. C учетом использования алгоритмов решения разреженных СЛАУ большая размерность СЛАУ не приводит к существенному падению производительности и повышенному потреблению оперативной памяти.
- Формирование расчетной модели сети, целесообразно оформлять в виде скриптов python3, например в среде Spyder (The Scientific Python Development Environment).

Основные возможности:
- Расчет электрических величин токов и напряжений при КЗ и обрывах в сетях любых классов напряжения и любой сложности, ограничения по количеству узлов, ветвей отсутствуют.
- Поддержка сложных повреждений, осуществляется путем совокупности нескольких КЗ и обрывов, но в одном узле может быть только одно КЗ, а на ветви только один обрыв.
- Поддержка простых ветвей с возможностью независимого задания Z1,Z2,Z0
- Поддержка ветвей с Э.Д.С. и возможностью независимого задания E1,E2,E0 (помимо Z1,Z2,Z0)
- Поддержка ветвей с поперечной емкостной проводимостью B1,B2,B0 (помимо Z1,Z2,Z0)
- Поддержка трансформаторных ветвей для которых необходимо задать (помимо Z1,Z2,Z0) коэф.трансформации и группу соединения обмоток стороны 2 (от 0 до 11), для стороны 1 предусматривается группа соединения обмоток Y или Yg. При этом правильно считаются токи и напряжения при КЗ за трансформатором Y/D.
- Поддержка взаимоиндукций нулевой последовательности между ветвями с возможностью независимого задания M12,M21
- Поддержка следующих видов КЗ и обрывов:
    'A0','B0','C0' - металлические однофазные КЗ на землю или обрыв соответствующей фазы;
        'A0r','B0r','C0r' - однофазные КЗ на землю через переходное сопротивление;
        'AB','BC','CA' - металлические двухфазные КЗ  или обрыв соответствующих фаз;
        'ABr','BCr','CAr' - двухфазные КЗ через переходное сопротивление;
        'AB0','BC0','CA0' - металлические двухфазные КЗ на землю;
        'ABC' - трехфазное КЗ без земли  или обрыв трех фаз;
        'ABC0' - трехфазное КЗ на землю;
        'N0' - Заземление в узле в схеме нулевой последовательности или обрыв по нулевой последовательности на ветви.
- Псевдотабличный вывод результатов расчетов по узлам, ветвям и несимметриям.
- Возможность получения конкретного параметра напряжения, тока по по узлам, ветвям и несимметриям с целью его дальнейшего использования в расчетах.
- На данный момент отсутствует возможность изменения расчетной схемы модели с помощью команд (Каскады, пром КЗ, отключения с или без заземления необходимо реализовывать корректировкой скрипта модели). Изменение электрических параметров ветвей, взаимоиндукций и несимметрий можно изменять с помощью методов edit, реализованных в соответствующих классах ветвей, взаимоиндукций и несимметрий.

Краткое руководство пользователя
1. Формирование модели.
1.1 Импорт Модуля МРТКЗ для использования реализованных в нем классов, методов и функций
import mrtkz3 as mrtkz
1.2 Создание (инициализация) модели, в которой будут хранится узлы, ветви, взаимоиндукции и несимметрии и взаимосвязь между ними
mdl=mrtkz.Model()
1.3 Создание узлов (не должны создаваться лишние узлы, в этом случае СЛАУ не будет решаться)
q1 = mrtkz.Q(mdl,'Название узла')
q2 = mrtkz.Q(mdl,'Название узла')
q3 = mrtkz.Q(mdl,'Название узла')
1.4 Создание ветвей
- Ветви источников питания (систем, генераторов станций и т.п.)
E1 = mrtkz.P(mdl,'Название ветви',0,q1,(Z1,Z2,Z0),E=(E1,E2,E0))
- Простые ветви
Z1 = mrtkz.P(mdl,'Название ветви',q1,q2,(Z1,Z2,Z0))
- Ветви с поперечной емкостной проводимостью
ZB1 = mrtkz.P(mdl,'Название ветви',q1,q2,(Z1,Z2,Z0),B=(B1,B2,B0))
- Трансформаторные ветви
T1 = mrtkz.P(mdl,'Название ветви',q2,q3,(Z1,Z2,Z0),T=(Ktr,GrT))
1.5 Создание взимоиндукций нулевой последовательности
M12 = mrtkz.M(mdl,'Название взимоиндукции',Z1,ZB1,M12,M21)
1.6 Создание несимметрий
- Заземление нейтрали трансформатора T1 Yg/D (например для пары обмоток 110/10)
NT1 = mrtkz.N(mdl,'Заземление нейтрали',q3,'N0')
- Обрыв трансформаторной ветви по нулевой последовательности (например для пары обмоток 110/35)
NT2 = mrtkz.N(mdl,'Обрыв нейтрали',T1,'N0')
- КЗ в узле
KZ1 = mrtkz.N(mdl,'Название КЗ',q2,'A0')
KZ2 = mrtkz.N(mdl,'Название КЗ',q3,'BCr',r=1.0)
- Обрыв ветви
O1 = mrtkz.N(mdl,'Название Oбрыва',Z1,'BC')
2. Расчет электрических величин токов и напряжений.
mdl.Calc()
3. Получение результатов.
3.1 Псевдотабличный вывод результатов расчета
- для узла
q1.res()
- для ветви со стороны 1-ого узла
ZB1.res1()
- для ветви со стороны 2-ого узла
ZB1.res2()
- для несимметрии
KZ1.res()
3.2 Получение конкретного параметра результата расчета в виде комплексного числа
KZ1.res('IA')
KZ1.res('U1')
KZ1.res('3I0')
3.3 Получение конкретного параметра результата расчета в требуемом виде
(Модуль - 'M', угол - '<f', активная составляющая - 'R', реактивная составляющая - 'X', строки 'R+jX' или 'M<f')
KZ1.res('IA','M')
KZ1.res('U1','M<f')
KZ1.res('ZAB','X')

Вопросы и предложения или описания найденных багов прошу оставлять в данной теме


Пример модели сети для двумя энергосистемами связанными двухцепной линией, в середине которых есть отпаечные ПС.
Предусматривается расчет однофазного переходного КЗ "на землю" А0 на шинах ВН PS1 через переходное сопротивление дуги 2,0 Ом.

#Импортирование модуля расчета ТКЗ (mrtkz3.py),
#который должен находиться в той же папке, где и настоящий файл
import mrtkz3 as mrtkz
#Создание расчетной модели
mdl=mrtkz.Model()

#Создание узлов
q1 = mrtkz.Q(mdl,'Sys1')
q2 = mrtkz.Q(mdl,'Sys2')
q3 = mrtkz.Q(mdl,'PS1')
q4 = mrtkz.Q(mdl,'PS2')

#Создание ветвей энергосистем
Sys1 = mrtkz.P(mdl,'Sys1',0,q1,(2j,2j,3j),E=(65000,0,0))
Sys2 = mrtkz.P(mdl,'Sys1',0,q2,(2j,2j,3j),E=(65000,0,0))

#Создание ветвей Воздушных линий
Line1 = mrtkz.P(mdl,'Sys1-PS1',q1,q3,(10j,10j,30j))
Line2 = mrtkz.P(mdl,'Sys1-PS2',q1,q4,(10j,10j,30j))
Line3 = mrtkz.P(mdl,'Sys2-PS1',q2,q3,(10j,10j,30j))
Line4 = mrtkz.P(mdl,'Sys2-PS2',q2,q4,(10j,10j,30j))
#Создание взаимоиндукций нулевой последовательности между Воздушными линиями
M12 = mrtkz.M(mdl,'L1-L2',Line1,Line2,15j,15j)
M34 = mrtkz.M(mdl,'L3-L4',Line3,Line4,15j,15j)

#Создание ветвей подстанций с трансформаторами с заземленными нейтралями
PS1 = mrtkz.P(mdl,'PS1',0,q3,(500,200j,30j))
PS2 = mrtkz.P(mdl,'PS2',0,q4,(500,200j,30j))

#Создание КЗ
KZ1 = mrtkz.N(mdl,'KZ',q3,'A0r',r=2.0)

#Формирование разряженной СЛАУ и расчет электрических параметров
mdl.Calc()

#Вывод результатов расчета для короткого замыкания
KZ1.res()

В результате расчета по вышеуказанной программе выводятся результаты расчета для точки КЗ, которые содержат симметричные, фазные и междуфазные значжения напряжений и токов в месте КЗ, а также значения токов по ветвям...

runfile('K:/work/mrtkzpy/mrtkz3test.py', wdir='K:/work/mrtkzpy')
Reloaded modules: mrtkz3
КЗ № 1 - KZ - A0r
В Узле № 3 - PS1
U1  =   48486 <   -6.1 | U2  =   16780 < -165.2 | 3U0 =   85549 < -165.2
UA  =   17297 <  -75.2 | UB  =   73284 < -127.2 | UC  =   68318 <  128.8
UAB =   64103 <   40.5 | UBC =  111615 <  -90.7 | UCA =   84412 <  124.1
Суммарный ток КЗ в Узле № 3 - PS1
I1  =    2883 <  -75.2 | I2  =    2883 <  -75.2 | 3I0 =    8648 <  -75.2
IA  =    8648 <  -75.2 | IB  =       0 <  141.3 | IC  =       0 <  150.3
IAB =    8648 <  -75.2 | IBC =       0 <    0.0 | ICA =    8648 <  104.8
Подтекание токов по ветвям
Ветвь № 3 - Sys1-PS1
I1  =    1459 <  -73.4 | I2  =    1399 <  -75.2 | 3I0 =    2898 <  -75.2
IA  =    3825 <  -74.5 | IB  =     430 <  114.7 | IC  =     503 <  101.6
Ветвь № 5 - Sys2-PS1
I1  =    1459 <  -73.4 | I2  =    1399 <  -75.2 | 3I0 =    2898 <  -75.2
IA  =    3825 <  -74.5 | IB  =     430 <  114.7 | IC  =     503 <  101.6
Ветвь № 7 - PS1
I1  =      97 <  173.9 | I2  =      84 <  -75.2 | 3I0 =    2852 <  -75.2
IA  =    1004 <  -80.3 | IB  =     860 <  -65.3 | IC  =    1006 <  -78.4
+ tca

2

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Посмотрел код на гитхабе: весьма лаконично. Но все-таки не хватает docstrings для всех функций и членов классов.
И да, вы пытались верифицировать ваш модуль? В том смысле что сравнивали результаты расчета с тем же АРМ СРЗА (tkz3000), Rustab, Powerfactory, EnergyTKZ?
Не думали прикрутить какой-нибудь интерфейс? Просто заводить схему в терминале так себе удовольствие...

3 (2020-11-12 22:08:37 отредактировано zzz)

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

непосредственно математику сами писали или взяли готовые модули?

4

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Постараюсь ответить на все вопросы:
1. Согласен, надо добавить ко всем классам, их методам и функциям описание по тексту модуля.
2. Провел сравнение результатов расчетов с АРМ СРЗА: по результатам расчета следующих видов КЗ - A0, BC, BC0 и A0 через переходное сопротивление 2,0 Ом получено полное совпадение расчетов - ампер в ампер, вольт в вольт...
3. Разрабатывать графический интерфейс пользователя пока не планирую, в любом случае количество строк кода в этом случае увеличится с настоящих меньше тысячи строк до нескольких десятков тысяч строк кода... Для этого есть коммерческие продукты с огромной стоимостью. Да надо быть очень внимательным при формировании модели и ничего не перепутать или не забыть.
4. Не надо набирать схему модели в командной строке интерпретатора python3, удобно набирать скрипт на языке python3 в текстовом редакторе копированием и вставкой и потом править, чтобы корректировать схему и вид и место КЗ.
5. Идея данного модуля возникла после прочтения 4-ого издания книги Теоретические основы электротехники за авторством К.С. Демирчана, Л.Р. Неймана, Н.В. Коровкина и В.Л. Чечурина. По сути дела для каждой ветви записывается 3-и уравнения по 2-ому закону Кирхгофа, соответственно для прямой, обратной и нулевой последовательностей, аналогично для каждого узла записывается 3-и уравнения по 1-ому закону Кирхгофа, а для несимметрий (КЗ или обрывов) записывается по 3-и уравнения - граничные условия, которые можно найти в любом учебнике по переходным процессам (например для однофазного КЗ А0 записывается 3-и уравнения по которым напряжение  фазы А равно 0 (Ua=0), а также равны нулю токи КЗ по неповрежденным фазам  (Ibk=0 и Iсk=0)).
6. Алгоритм формирования разряженной системы линейных алгебраических уравнений (СЛАУ) - моя разработка.
7. Для решения СЛАУ  используется широко известная и широко используемая и безусловно хорошо отлаженная библиотека python3 для научных расчетов - scipy, для которой не проблема решить разряженную  СЛАУ размерностью в несколько миллионов уравнений...

PS Если кто уже скачал с github модуль mrtkz3.py, скачайте заново, по результатам сравнения с АРМ СРЗА был выявлен и устранен один баг связанный с взаимоиндуктивностью нулевой последовательности

5

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Матрица всё же должна быть разрЕженная..

aspirmk писал(а):
2020-11-13 09:28:55

6. Алгоритм формирования разряженной системы линейных алгебраических уравнений (СЛАУ) - моя разработка

то есть не как в том же учебнике через обращение части матрицы соединений А с выходом на матрицу контуров С?

Присоединяйтесь!!! Мы в социальных сетях и на Ютуб.

6

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

zigzag писал(а):
2020-11-13 09:50:53

Матрица всё же должна быть разрЕженная..

то есть не как в том же учебнике через обращение части матрицы соединений А с выходом на матрицу контуров С?

Нет никаких обращений, только матрица Z сопротивлений прямой, обратной и нулевой последовательностей и взаимоиндуктивностей нулевой последовательностей,  матрицы узловых соединений A и At, матрица B - суммарных емкостных проводимостей линий В/2 в узле, ну и уравнения граничных условий...

7 (2020-11-13 10:25:55 отредактировано n00buK)

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

aspirmk писал(а):
2020-11-13 09:28:55

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

Да не обязательно делать полноценный графический редактор.  Сделать форму с двумя QListWidget да с десятком кнопок на том же Pyqt5 + qtdesigner для ввода узлов\ветвей задача совсем не сложная (учитывая объем уже проведеланной работы). И объем кода для формы будет не больше, чем в том же C# WindowsApplication.
Имхо самому копипастить функции для добавления узлов\ветвей ну так себе задача...
PS. Судя по нику, вы аспирант (или будущий аспирант) СГТУ. По логике, группа специальностей - 05.14.00. Этот модуль как-то связан с вашей темой диссертации?

8

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Протокол сравнения результатов расчетов МРТКЗ и АРМ СРЗА
Данный контент доступен только зарегистрированным пользователям.

Добавлено: 2020-11-13 11:40:25

n00buK писал(а):
2020-11-13 10:22:27

Да не обязательно делать полноценный графический редактор.  Сделать форму с двумя QListWidget да с десятком кнопок на том же Pyqt5 + qtdesigner для ввода узлов\ветвей задача совсем не сложная (учитывая объем уже проведеланной работы). И объем кода для формы будет не больше, чем в том же C# WindowsApplication.
Имхо самому копипастить функции для добавления узлов\ветвей ну так себе задача...
PS. Судя по нику, вы аспирант (или будущий аспирант) СГТУ. По логике, группа специальностей - 05.14.00. Этот модуль как-то связан с вашей темой диссертации?

Создание подобной графической оболочки с четырьмя таблицами конечно возможно, только насколько это будет удобнее, вот вопрос, ведь надо на лету изменять схему сети (место и вид КЗ, реализация каскадов, отключения ветвей, пром КЗ и прочее прочее)...

Я был давно аспирантом СГТУ по специальности 05.09.03, сейчас уже 13 лет работаю в Центральной службе РЗиПА ПАО "Россети Волга"...

9

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

aspirmk писал(а):
2020-11-13 10:02:34

Нет никаких обращений, только матрица Z сопротивлений прямой, обратной и нулевой последовательностей и взаимоиндуктивностей нулевой последовательностей,  матрицы узловых соединений A и At, матрица B - суммарных емкостных проводимостей линий В/2 в узле, ну и уравнения граничных условий...

Как формируются уравнения по 2-у закону (как ищутся независимые контура)?

10 (2020-11-13 12:02:08 отредактировано aspirmk)

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

zigzag писал(а):
2020-11-13 10:48:00

Как формируются уравнения по 2-у закону (как ищутся независимые контура)?

Никаких независимых контуров, исключительно 2-ой закон Кирхгофа:
для каждой ветви p от узла q1 до узла q2 в общем случае записываются уравнения:
Z1*I1p - U1q1 + U1q2 = E1
Z2*I2p - U2q1 + U2q2 = E2
Z0*I0p + S M0_k*I0pk  - U0q1 + U0q2 = E0

Где
Z1, Z2 и Z0 -  соответственно значения сопротивлений ветви прямой, обратной и нулевой последовательностей
I1p, I2p и I0p -  соответственно значения токов ветви прямой, обратной и нулевой последовательностей
S M0_k*I0pk - сумма падений напряжения нулевой последовательности от токов взаимоиндуктивно связанных ветвей
U1q1, U2q1, U0q1,  U1q2, U2q2, U0q2 - напряжения в узлах к которым подключена ветвь прямой, обратной и нулевой последовательностей
Е1, E2 и E0 - соответственно значения э.д.с. в ветви прямой, обратной и нулевой последовательностей

Или в матричной форме без учета КЗ и обрывов:
Z*Ip + At*Uq = E
A*Ip + (B/2)*Uq = 0

В результате для вышеуказанного примера расчета (4 узла, 8 ветвей и 1 КЗ) создается система из 3*(8+4+1) = 39 уравнений

11

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Спасибо. Как я понял за раз находятся сразу все токи и все напряжения узлов (по отношению к базисному). Это раньше пытались сделать матрицу как можно меньше (всякие там МУН, МКТ). А сейчас всё за раз)

12 (2020-11-18 19:36:56 отредактировано aspirmk)

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

zigzag писал(а):
2020-11-13 11:57:40

Спасибо. Как я понял за раз находятся сразу все токи и все напряжения узлов (по отношению к базисному). Это раньше пытались сделать матрицу как можно меньше (всякие там МУН, МКТ). А сейчас всё за раз)

Совершенно верно, но зато при расчете простого однофазного КЗ по данному примеру в разреженной матрице 39*39 оказываются ненулевыми только 124 элемента или чуть больше 8%

Добавлено: 2020-11-18 14:36:48

Выложил новую версию МРТКЗ от 18.11.2020 г. https://github.com/aspirmk/mrtkz

Количество строк возросло с 828 до 1539, более чем на 700 строк

Основные изменения:

1. Добавлены описания к функциям, классам и методам МРТКЗ,
    в том числе дано подробное описание алгоритма метода mdl.Calc()
2. Добавлены специальные несимметрии вида:
    - КЗ по нулевой последовательности для моделирования заземления нейтрали за
      трансформатором Yg/D или за соответствующей парой обмоток тр-ра
    - Обрыв по нулевой последовательности для моделирования сети с изолированной
      нейтралью, устанавливается на ветви разделяющей сеть с глухо или эффективно
      заземленной нейтралью и сетью с изолированной нейтралью
3. Выверено моделирование ветвей с поперечной емкостной проводимостью B,
    для этого если pl62w+ или аналогичное ПО выдает (Например)
    B1 = В2 = 90 мкСм (1/Ом*10^-6), B0 = 60 мкСм (1/Ом*10^-6)
    то при создании ветви надо заполнять параметры емкостной проводимости
    B=(90e-6j,90e-6j,60e-6j)
4. Выверено моделирование трансформаторных ветвей
    T=(Ktrans,GrT) - безразмерные параметры трансформаторной ветви:
    Ktrans - коэффициент трансформации силового трансформатора, например 115/11
    GrT - группа обмоток обмотки подключенной к узлу 2 (от 0 до 11)
    Так например для трансформатора с номинальными напряжениями обмоток 115 и 10,5 кВ
    и схемой соединения обмоток Y/D-11 надо заполнять параметры трансформаторной ветви
    T=(115/10.5,11)
5. Добавлены новые методы класса Model
    - AddNQ для группового добавления узлов (сечения узлов)
    mdl.AddNQ(NQ,Nname)
    где NQ - количество создаваемых узлов
        Nname - общее имя узлов, к уникальному имени узлу будет добавляться
        номер из сечения от 1 до NQ
    - AddNP для группового добавления ветвей (сечения ветвей)
    в том числе с поперечной емкостной проводимостью B и
    взаимоиндукцией нулевой последовательности
    mdl.AddNP(Nname,listq1,listq2,Z12,Z0) - без учета емкостной проводимости
    mdl.AddNP(Nname,listq1,listq2,Z12,Z0,B12,B0) - с учетом емкостной проводимости
    где listq1 и listq2 - сечения (списки) узлов
        Nname - общее имя сечения ветвей, к уникальному имени ветви будет добавляться
        номер из сечения от 1 до N, где N - количество создаваемых ветвей
        Z12 - вектор numpy.ndarray значений сопротивлений ветвей прямой/обратной последовательности
        Z0 - квадратная матрица numpy.ndarray значений сопротивлений ветвей и взаимоиндукций нулевой последовательности
        B12 - вектор numpy.ndarray значений поперечной емкостной проводимости прямой/обратной последовательности
        B0 - квадратная матрица numpy.ndarray значений поперечной емкостной проводимости нулевой последовательности
6. Предыдущая версия МРТКЗ (от 13.11.2020г.) некорректно формировала схему замещения трансформаторных ветвей и
ветвей с поперечной емкостной проводимостью, в связи с чем выдавала для них неверные результаты расчета.
После  устранения выявленных погрешностей формирования СЛАУ сравнение результатов расчетов МРТКЗ с АРМ СРЗА
в расчетных схемах с наличием трансформаторных ветвей и ветвей с поперечной емкостной проводимостью отклонений не выявило.

Добавлено: 2020-11-19 13:15:09

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

Добавлено: 2020-11-28 13:49:55

28.11.2020 г.
Добавил возможность импорта результатов расчета параметров воздушных ВЛ в модель МРТКЗ с помощью метода mdl.ImportFromPVL(PVL_Sech)
   где PVL_Sech - ссылка на сечение (объект класса sech модуля PVL)

Разработал новый пример по совместному использованию МРТКЗ и PVL, в котором:
- определены, рассчитаны и импортированы параметры ВЛ 110 кВ с грозозащитными тросами, заземленными в 2-х и более точках;
- в расчетную модель добавлены трансформаторные ветви, представляющие двухобмоточные трансформаторы Y/D;
- выполнено заземление нейтралей ВН понижающих трансформаторов с помощью несимметрии вида 'N0';
- произведен расчет нескольких видов КЗ в двух разных узлах расчетной модели (на шинах ВН и на шинах НН PS1).

Произведена сверка результатов расчетов с аналогичной моделью, выполненной в АРМ СРЗА, которая показала полное совпадение результатов расчетов (Ампер в Ампер, Вольт в Вольт)

Код скрипта нового примера:

#Импортирование модуля расчета ТКЗ (mrtkz3.py) и
#модуля расчета параметров воздушных линий  PVL,
#которые должны находиться в той же папке, где и настоящий файл
import mrtkz3 as mrtkz
import PVL5 as PVL
#Создание расчетной модели
mdl=mrtkz.Model()

#Создание узлов
q1 = mrtkz.Q(mdl,'Sys1')
q2 = mrtkz.Q(mdl,'Sys2')
q3 = mrtkz.Q(mdl,'PS1 ВН')
q4 = mrtkz.Q(mdl,'PS2 ВН')
q5 = mrtkz.Q(mdl,'PS1 НН')
q6 = mrtkz.Q(mdl,'PS2 НН')

#Создание ветвей энергосистем
Sys1 = mrtkz.P(mdl,'Sys1',0,q1,(2j,2j,3j),E=(65000,0,0))
Sys2 = mrtkz.P(mdl,'Sys2',0,q2,(2j,2j,3j),E=(65000,0,0))

#Справочник проводов, тросов, изоляторов и опор воздушных ЛЭП
AC_150_24 = PVL.provod('AC-150/24', 0.198+0.000j, 17.1, 0.95)
S50=PVL.provod('С-50',3.75,9.1)
PS70D=PVL.izol('ПС-70Д',0.127)
PB110_1 = PVL.opora('ПБ110-1', [-2.0+14.5j, 3.5+14.5j, 2.0+17.5j], [0.0, 0.0, 0.0], 0.0+19.5j, 0.0+0.0j)

#Создание ветвей ВЛ от Sys1 до PS1 и PS2
sk1=PVL.sech('Сечение ВЛ 110 кВ от Sys1 до PS1 и PS2',50.0,0.05,1000.0)
pl1 = PVL.Line(sk1,'Линия Sys1-PS1',0.0,PB110_1.C1,AC_150_24,PS70D(8),RZT=0,fpr=5.5,q=(q1,q3))
t1 = PVL.Line(sk1,'Трос Sys1-PS1',0.0,PB110_1.T1,S50,0.0,RZT=2,fpr=5.5)
pl2 = PVL.Line(sk1,'Линия Sys1-PS2',30.0,PB110_1.C1,AC_150_24,PS70D(8),RZT=0,fpr=5.5,q=(q1,q4))
t2 = PVL.Line(sk1,'Трос Sys1-PS2',30.0,PB110_1.T1,S50,0.0,RZT=2,fpr=5.5)
mdl.ImportFromPVL(sk1)

#Создание ветвей ВЛ от Sys1 до PS1 и PS2
sk2=PVL.sech('Сечение ВЛ 110 кВ от Sys2 до PS1 и PS2',50.0,0.05,1000.0)
pl3 = PVL.Line(sk2,'Линия Sys2-PS1',0.0,PB110_1.C1,AC_150_24,PS70D(8),RZT=0,fpr=5.5,q=(q2,q3))
t3 = PVL.Line(sk2,'Трос Sys2-PS1',0.0,PB110_1.T1,S50,0.0,RZT=2,fpr=5.5)
pl4 = PVL.Line(sk2,'Линия Sys2-PS2',30.0,PB110_1.C1,AC_150_24,PS70D(8),RZT=0,fpr=5.5,q=(q2,q4))
t5 = PVL.Line(sk2,'Трос Sys2-PS2',30.0,PB110_1.T1,S50,0.0,RZT=2,fpr=5.5)
mdl.ImportFromPVL(sk2)

#Создание ветвей подстанций с трансформаторами с заземленными нейтралями
T1_PS1 = mrtkz.P(mdl,'T1 PS1',q3,q5,(52.9j,52.9j,47.61j),T=(115/10.5,11))
T1_PS2 = mrtkz.P(mdl,'T1 PS2',q4,q6,(52.9j,52.9j,47.61j),T=(115/10.5,11))

#Задание заземленного режима заземления нейтрали ВН трансформаторов PS1 и PS2
N1 = mrtkz.N(mdl,'Заземленная нейтраль T1 PS1',q5,'N0')
N2 = mrtkz.N(mdl,'Заземленная нейтраль T1 PS2',q6,'N0')

#Задание сопротивления нагрузки трансформаторов подстанций
Load1 = mrtkz.P(mdl,'Нагрузка T1 PS1',q5,0,(100,50j,50j))
Load2 = mrtkz.P(mdl,'Нагрузка T1 PS2',q6,0,(100,50j,50j))

#Создание однофазного КЗ
KZ1 = mrtkz.N(mdl,'Однофазное КЗ на шинах ВН PS1',q3,'A0')
#Формирование разреженной СЛАУ и расчет электрических параметров
mdl.Calc()
#Вывод результатов расчета для короткого замыкания
KZ1.res()
print()# Пустая строка

#Очистка модели от КЗ и обрывов за исключением типа 'N0'
mdl.ClearN()

# Пакетный расчет  КЗ других видов и в других точках

KZ1 = mrtkz.N(mdl,'Однофазное КЗ на шинах ВН PS1 через Rпер=2 Ом',q3,'A0r',r=2.0)
mdl.Calc()
KZ1.res()
print()# Пустая строка

mdl.ClearN()
KZ1 = mrtkz.N(mdl,'Двухфазное КЗ на шинах ВН PS1',q3,'BC')
mdl.Calc()
KZ1.res()
print()# Пустая строка

mdl.ClearN()
KZ1 = mrtkz.N(mdl,'Двухфазное КЗ на шинах ВН PS1 через Rпер=2 Ом',q3,'BCr',r=2.0)
mdl.Calc()
KZ1.res()
print()# Пустая строка

mdl.ClearN()
KZ1 = mrtkz.N(mdl,'Двухфазное КЗ на землю на шинах ВН PS1',q3,'BC0')
mdl.Calc()
KZ1.res()
print()# Пустая строка

mdl.ClearN()
KZ1 = mrtkz.N(mdl,'Двухфазное КЗ на шинах НН PS1',q5,'BC')
mdl.Calc()
KZ1.res()
print()# Пустая строка
T1_PS1.res1()

Результаты расчетов:

КЗ № 3 - Однофазное КЗ на шинах ВН PS1 - A0
В Узле № 3 - PS1 ВН
U1  =   47295 <    2.5 | U2  =   17954 <  173.2 | 3U0 =   89158 < -171.9
UA  =       0 <    0.0 | UB  =   76661 < -125.2 | UC  =   66712 <  131.3
UAB =   76661 <   54.8 | UBC =  112719 <  -90.1 | UCA =   66712 <  131.3
Суммарный ток КЗ в Узле № 3 - PS1 ВН
I1  =    1497 <  -72.5 | I2  =    1497 <  -72.5 | 3I0 =    4490 <  -72.5
IA  =    4490 <  -72.5 | IB  =       0 <  180.0 | IC  =       0 <   36.0
IAB =    4490 <  -72.5 | IBC =       0 < -153.4 | ICA =    4490 <  107.5
Подтекание токов по ветвям
Ветвь № 3 - Линия Sys1-PS1
I1  =     749 <  -72.3 | I2  =     747 <  -72.4 | 3I0 =    1330 <  -65.8
IA  =    1937 <  -70.9 | IB  =     310 <   98.6 | IC  =     313 <   98.0
Ветвь № 5 - Линия Sys2-PS1
I1  =     749 <  -72.3 | I2  =     747 <  -72.4 | 3I0 =    1330 <  -65.8
IA  =    1937 <  -70.9 | IB  =     310 <   98.6 | IC  =     313 <   98.0
Ветвь № 7 - T1 PS1
I1  =       4 < -177.8 | I2  =       3 <  -96.8 | 3I0 =    1873 <  -81.9
IA  =     627 <  -82.3 | IB  =     620 <  -81.4 | IC  =     626 <  -82.0

КЗ № 3 - Однофазное КЗ на шинах ВН PS1 через Rпер=2 Ом - A0r
В Узле № 3 - PS1 ВН
U1  =   47978 <   -0.2 | U2  =   17098 < -179.6 | 3U0 =   84907 < -164.7
UA  =    8553 <  -65.3 | UB  =   76720 < -123.9 | UC  =   65013 <  131.0
UAB =   72639 <   50.3 | UBC =  112714 <  -90.1 | UCA =   73262 <  129.1
Суммарный ток КЗ в Узле № 3 - PS1 ВН
I1  =    1425 <  -65.3 | I2  =    1425 <  -65.3 | 3I0 =    4276 <  -65.3
IA  =    4276 <  -65.3 | IB  =       0 < -170.1 | IC  =       0 <  170.5
IAB =    4276 <  -65.3 | IBC =       0 <  -82.9 | ICA =    4276 <  114.7
Подтекание токов по ветвям
Ветвь № 3 - Линия Sys1-PS1
I1  =     714 <  -65.1 | I2  =     711 <  -65.2 | 3I0 =    1267 <  -58.6
IA  =    1845 <  -63.7 | IB  =     295 <  105.8 | IC  =     298 <  105.2
Ветвь № 5 - Линия Sys2-PS1
I1  =     714 <  -65.1 | I2  =     711 <  -65.2 | 3I0 =    1267 <  -58.6
IA  =    1845 <  -63.7 | IB  =     295 <  105.8 | IC  =     298 <  105.2
Ветвь № 7 - T1 PS1
I1  =       4 <  179.5 | I2  =       3 <  -89.6 | 3I0 =    1783 <  -74.7
IA  =     596 <  -75.2 | IB  =     591 <  -74.2 | IC  =     596 <  -74.8

КЗ № 3 - Двухфазное КЗ на шинах ВН PS1 - BC
В Узле № 3 - PS1 ВН
U1  =   32527 <   -0.0 | U2  =   32527 <   -0.0 | 3U0 =       0 <    0.0
UA  =   65054 <   -0.0 | UB  =   32527 <  180.0 | UC  =   32527 <  180.0
UAB =   97581 <   -0.0 | UBC =       0 <    0.0 | UCA =   97581 <  180.0
Суммарный ток КЗ в Узле № 3 - PS1 ВН
I1  =    2712 <  -65.7 | I2  =    2712 <  114.3 | 3I0 =       0 <    0.0
IA  =       0 <    0.0 | IB  =    4697 < -155.7 | IC  =    4697 <   24.3
IAB =    4697 <   24.3 | IBC =    9394 < -155.7 | ICA =    4697 <   24.3
Подтекание токов по ветвям
Ветвь № 3 - Линия Sys1-PS1
I1  =    1356 <  -65.6 | I2  =    1353 <  114.4 | 3I0 =       0 < -180.0
IA  =       3 <  -63.3 | IB  =    2347 < -155.7 | IC  =    2347 <   24.4
Ветвь № 5 - Линия Sys2-PS1
I1  =    1356 <  -65.6 | I2  =    1353 <  114.4 | 3I0 =       0 < -180.0
IA  =       3 <  -63.3 | IB  =    2347 < -155.7 | IC  =    2347 <   24.4
Ветвь № 7 - T1 PS1
I1  =       3 <  179.7 | I2  =       5 <   90.0 | 3I0 =       0 < -180.0
IA  =       6 <  116.7 | IB  =       3 < -174.0 | IC  =       8 <  -40.1

КЗ № 3 - Двухфазное КЗ на шинах ВН PS1 через Rпер=2 Ом - BCr
В Узле № 3 - PS1 ВН
U1  =   33854 <   -3.9 | U2  =   31360 <    4.1 | 3U0 =       0 <    0.0
UA  =   65052 <   -0.1 | UB  =   36567 < -176.7 | UC  =   28630 <  175.6
UAB =  101578 <    1.2 | UBC =    9057 < -151.5 | UCA =   93625 <  178.6
Суммарный ток КЗ в Узле № 3 - PS1 ВН
I1  =    2614 <  -61.5 | I2  =    2614 <  118.5 | 3I0 =       0 <    0.0
IA  =       0 <  -90.0 | IB  =    4528 < -151.5 | IC  =    4528 <   28.5
IAB =    4528 <   28.5 | IBC =    9057 < -151.5 | ICA =    4528 <   28.5
Подтекание токов по ветвям
Ветвь № 3 - Линия Sys1-PS1
I1  =    1308 <  -61.4 | I2  =    1305 <  118.6 | 3I0 =       0 < -180.0
IA  =       3 <  -59.3 | IB  =    2263 < -151.5 | IC  =    2263 <   28.6
Ветвь № 5 - Линия Sys2-PS1
I1  =    1308 <  -61.4 | I2  =    1305 <  118.6 | 3I0 =       0 < -180.0
IA  =       3 <  -59.3 | IB  =    2263 < -151.5 | IC  =    2263 <   28.6
Ветвь № 7 - T1 PS1
I1  =       3 <  175.8 | I2  =       5 <   94.1 | 3I0 =       0 < -180.0
IA  =       6 <  120.7 | IB  =       3 < -168.0 | IC  =       8 <  -39.2

КЗ № 3 - Двухфазное КЗ на землю на шинах ВН PS1 - BC0
В Узле № 3 - PS1 ВН
U1  =   25129 <    3.4 | U2  =   25129 <    3.4 | 3U0 =   75388 <    3.4
UA  =   75388 <    3.4 | UB  =       0 <  -90.0 | UC  =       0 <   67.2
UAB =   75388 <    3.4 | UBC =       0 < -108.4 | UCA =   75388 < -176.6
Суммарный ток КЗ в Узле № 3 - PS1 ВН
I1  =    3334 <  -67.8 | I2  =    2095 <  117.8 | 3I0 =    3797 <  102.9
IA  =       0 <  -18.4 | IB  =    4703 < -179.0 | IC  =    5404 <   44.5
IAB =    4703 <    1.0 | IBC =    9393 < -155.7 | ICA =    5404 <   44.5
Подтекание токов по ветвям
Ветвь № 3 - Линия Sys1-PS1
I1  =    1667 <  -67.8 | I2  =    1046 <  117.8 | 3I0 =    1125 <  109.5
IA  =     266 <  -86.4 | IB  =    2354 < -172.6 | IC  =    2536 <   40.0
Ветвь № 5 - Линия Sys2-PS1
I1  =    1667 <  -67.8 | I2  =    1046 <  117.8 | 3I0 =    1125 <  109.5
IA  =     266 <  -86.4 | IB  =    2354 < -172.6 | IC  =    2536 <   40.0
Ветвь № 7 - T1 PS1
I1  =       2 < -176.8 | I2  =       4 <   93.4 | 3I0 =    1583 <   93.4
IA  =     532 <   93.6 | IB  =     528 <   93.7 | IC  =     524 <   92.9

КЗ № 3 - Двухфазное КЗ на шинах НН PS1 - BC
В Узле № 5 - PS1 НН
U1  =    2957 <   29.8 | U2  =    2957 <   29.8 | 3U0 =       0 <  180.0
UA  =    5914 <   29.8 | UB  =    2957 < -150.2 | UC  =    2957 < -150.2
UAB =    8870 <   29.8 | UBC =       0 <    0.0 | UCA =    8870 < -150.2
Суммарный ток КЗ в Узле № 5 - PS1 НН
I1  =    5598 <  -55.8 | I2  =    5598 <  124.2 | 3I0 =       0 <    0.0
IA  =       0 <    0.0 | IB  =    9696 < -145.8 | IC  =    9696 <   34.2
IAB =    9696 <   34.2 | IBC =   19391 < -145.8 | ICA =    9696 <   34.2
Подтекание токов по ветвям
Ветвь № 7 - T1 PS1
I1  =    5600 <  -55.5 | I2  =    5539 <  124.3 | 3I0 =       0 < -180.0
IA  =      66 <  -33.6 | IB  =    9659 < -145.8 | IC  =    9634 <   34.6
Ветвь № 9 - Нагрузка T1 PS1
I1  =      30 < -150.2 | I2  =      59 <  119.8 | 3I0 =       0 < -180.0
IA  =      66 <  146.4 | IB  =      37 < -144.0 | IC  =      86 <  -10.1

Ветвь № 7 - T1 PS1
Значения токов по ветви со стороны узла №3 - PS1 ВН

I1  =     511 <  -85.5 | I2  =     506 <  154.3 | 3I0 =       0 <    0.0
IA  =     507 < -145.0 | IB  =     510 < -146.1 | IC  =    1017 <   34.4
IAB =      10 <  -33.6 | IBC =    1528 < -145.8 | ICA =    1524 <   34.6
Значения напряжения в узле №3 - PS1 ВН

U1  =   59383 <    2.0 | U2  =    6077 <   39.9 | 3U0 =       0 < -180.0
UA  =   64287 <    5.3 | UB  =   60519 < -123.7 | UC  =   53801 <  124.4
UAB =  112677 <   30.0 | UBC =   94770 <  -91.9 | UCA =  101943 <  157.8

Добавлено: 2020-12-03 16:09:54

Версия 3.12 от 03.12.2020
- Оптимизирован метод mdl.Calc, в части понижения потребляемой памяти и повышения
  быстродействия, за счет отказа от использования списков python для формирования
  координатной разреженной матрицы, вместо этого используются вектора numpy;
- Произведен переход на расчет фазных, междуфазных (линейных) и прочих величин
  с помощью матричного умножения результатов в симметричных составляющих на
  преобразующие матрицы (Ms2f - для вычисления фазных величин, Ms2ff - для
  вычисления междуфазных (линейных) величин);
- При формировании разреженной матрицы в ходе перебора типов несимметрий для
  повышения быстродействия на первое место поставлены КЗ 'N0' и обрыв 'N0'
  как наиболее часто встречающиеся в модели;
- Оптимизирован код, по выводу результатов расчетов, изменен порядок вывода
  результата, сначала идут фазные значения, потом симметричные составляющие
  и наконец междуфазные (линейные) величины. Уменьшено дублирование кода.

Добавлено: 2021-01-18 16:28:20

Версия 3.13

18.01.2021
- Реализована поддержка проводимостей Y (См) подключенных к узлу, например компенсирующих
  реакторов (ранее, да и сейчас их можно также представить ветвями на землю);
- Реализована поддержка источников тока J(А), что необходимо для учета в схеме
  замещения сети ветровых и солнечных электростанция и других ЭС со звеном
  постоянного тока с последующим инвертированием к промышленной частоте 50 Гц.
  Q(model,name,Y=(Y1,Y2,Y0))
  Q(model,name,J=(J1,J2,J0))
  Q(model,name,Y=(Y1,Y2,Y0),J=(J1,J2,J0))

13

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

aspirmk писал(а):
2020-11-13 09:28:55

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

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

14

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Андрей писал(а):
2021-01-19 08:18:43

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

или на худой конец -
- шаблон в екселе, где просто надо заполнять поля параметрами сети

15

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

Добрый день!

1. Да согласен, без графического редактора сложно контролировать правильность формирования модели сети, но с другой стороны есть же программы без оного (тот же ТКЗ например), и ничего пользовались для формирования больших моделей и расчетов ткз в них.
2. Назначение данного модуля - образовательное и научное применение, для коммерческого использования есть удобные, но стоящие больших денег программные продукты.
3. Основой целью разработки данного модуля было разобраться в матричных расчетах электрических цепей и дальнейшее использование в научных целях.
4. Далеко не всегда имеется необходимость в графическом интерфейсе пользователе, например при необходимости расчетов токов КЗ в сотнях и тысячах точках

Добавлено: 2021-01-19 13:38:32

Пользователь писал(а):
2021-01-19 11:25:42

или на худой конец -
- шаблон в екселе, где просто надо заполнять поля параметрами сети

В принципе сейчас занимаюсь импортом моделей АРМ СРЗА из формата Excel в скрипт Python, т.е. в принципе может появиться возможность формирования базы сети в Excel, с последующим ее использованием для расчета ТКЗ

16

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

aspirmk писал(а):
2021-01-19 12:38:32

Да согласен, без графического редактора сложно контролировать правильность формирования модели сети, но с другой стороны есть же программы без оного (тот же ТКЗ например), и ничего пользовались для формирования больших моделей и расчетов ткз в них.

Естественно, ТКЗ пользовались, даже считается эталоном, но работать с ней совсем не удобно. Кроме ТКЗ собственно, ничего не было.

17

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

С учетом пожелания коллеги luba

22.01.2021

- С учетом реализации возможности ввода проводимости в узле скорректирован вывод результатов расчетов расчета по узлу
- В таблицах вывода результатов заменен знак < на знак ∠

Теперь вывод результатов выглядит следующим образом

Ветвь № 7 - T1 PS1
Значения токов по ветви со стороны узла №3 - PS1 ВН
____________________________________________________________________________
|                        |                        |                        |
| IA  =     507 ∠ -145.0 | IB  =     510 ∠ -146.1 | IC  =    1017 ∠   34.4 |
| I1  =     511 ∠  -85.5 | I2  =     506 ∠  154.3 | 3I0 =       0 ∠    0.0 |
| IAB =      10 ∠  -33.6 | IBC =    1528 ∠ -145.8 | ICA =    1524 ∠   34.6 |
|________________________|________________________|________________________|
Значения напряжения в узле №3 - PS1 ВН
____________________________________________________________________________
|                        |                        |                        |
| UA  =   64287 ∠    5.3 | UB  =   60519 ∠ -123.7 | UC  =   53801 ∠  124.4 |
| U1  =   59383 ∠    2.0 | U2  =    6077 ∠   39.9 | 3U0 =       0 ∠ -180.0 |
| UAB =  112677 ∠   30.0 | UBC =   94770 ∠  -91.9 | UCA =  101943 ∠  157.8 |
|________________________|________________________|________________________|

PS А в Spyder таблицы едут, а тут ровно...

Добавлено: 2021-01-27 17:49:02

27.01.2021
- Рефакторинг кода, исключено применение промежуточного массива для суммирования
  B/2 подключенных к узлу ветвей и собственной Y узла;
- Реализован метод позволяющий выявить висящие, не связанные с землей узлы, ветви,
  взаимоиндукции и несимметрии что в приводит к вырожденности (сингулярности)
  формируемой СЛАУ, т.е. к невозможности решения СЛАУ.
  Параллельные ветви с нулевым сопротивлением (ШСВ и  СВ), также приводят к
  вырожденности, но данный метод не позволяет их выявить!,
  для предотвращения вырожденности можно предложить использовать некоторое
  сопротивление на СВ и ШСВ вместо 0, например 0.001 Ом.
  mdl.Test4Singularity();
- Выявлена и устранена логическая ошибка в условии вывода результатов токов
  в проводимости узла.

18

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

aspirmk писал(а):
Сегодня 16:49:02

Параллельные ветви с нулевым сопротивлением (ШСВ и  СВ), также приводят к
  вырожденности, но данный метод не позволяет их выявить!,

Вы же кроме уравнений по законам Кирхгофа формируете граничные условия для КЗ и обрывов типа что U = I * Rдуги (для КЗ через дугу) или Ia = 0, Ib = 0, Uc = 0 (для обрыва АВ)? Почему для выключателя вместо ветви с малым сопротивлением просто не ввести условие на эту ветвь что U = 0?

19

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

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

20 (Сегодня 18:10:43 отредактировано aspirmk)

Re: Модуль расчета токов КЗ в сетях любых классов напряжения на Python3

zigzag писал(а):
Сегодня 17:29:50

Почему для выключателя вместо ветви с малым сопротивлением просто не ввести условие на эту ветвь что U = 0?

Так оно так и получается:
уравнение для ветви
Zp*Ip - Uq1 + Uq2 = 0
Таким образом при сопротивлении ветви Zp = 0 получаем уравнение, содержащее только потенциалы узлов:
-Uq1 + Uq2 = 0
или падение напряжения на ветви равно нулю DUp = 0

Тут дело в том, что ток ветви Ip еще участвует в уравнениях по 1-му закону Кирхгофа, и если есть две параллельные ветви с нулевыми сопротивлениями, то возникает неопределенность в значениях тока по данным ветвям...