1

Тема: Библиотека для анализа осциллограмм на Python

Добрый день, коллеги!

Хочу поделиться библиотекой на Python для анализа осциллограмм в формате Comtrade, которая выложена на Github по ссылке: https://github.com/selkovevgeny/RelayLab

Данная библиотека может пригодиться тем, кому не хватает гибкости стандартных просмотрщиков осциллограмм и является альтернативой matlab. То есть в основном предназначена для исследовательских и учебных целей.

Библиотеку написал для решения своих задач по прототипированию функций РЗА и анализа работы устройств, так как по своим рабочим обязанностям занимаюсь разработкой устройств релейной защиты в НПП КИТ, г. Санкт-Петербург, https://www.kit-electro.ru/

Для работы с библиотекой удобнее всего пользоваться Jupiter Notebook, который является средой разработки для Python. По ссылке можно посмотреть online примеры работы с библиотекой: https://nbviewer.org/github/selkovevgen … notebooks/

Библиотека позволяет:
- загружать осциллограммы в формате comtrade;
- генерировать сигналы тока и напряжения;
- выполнять манипуляции с аналоговыми и логическими сигналами: сложение, вычитание, расчет диф. токов, сопротивлений, сравнение с уставками и пр.
- выгружать расчетные каналы в формат Comtrade;
- строить интерактивные графики сигналов и характеристики срабатывания защит.
В настоящее время реализован далеко не весь задуманный функционал. Пополняю по мере поступления задач с подходящей тематикой.

Надеюсь, что кому-нибудь все это также будет полезно.

2

Re: Библиотека для анализа осциллограмм на Python

Здравствуйте, Евгений! Вроде бы в Ессентуках мы совместными усилиями проводили курсы по анализу аварийных событий. В конце мая ожидаются аналогичные в учкомбинате Ростовэнерго. Меня приглашают. То ли сам приедешь, то ли мне соответствующие материалы передашь.

3 (2024-04-30 12:31:14 отредактировано ПАУтина)

Re: Библиотека для анализа осциллограмм на Python

Сельков Евгений писал(а):
2024-02-07 16:26:34

Хочу поделиться библиотекой на Python для анализа осциллограмм в формате Comtrade,

Пожалуйста, приведите примеры и особенности, в чём собственно достоинства такой обработки... стоит ли вообще в это вникать?! Насколько она универсальна, вдруг там нет того, что надо мне?!
Мне если что-то надо специфическое, а файл в COMTRADE, так всё просто - Exсel!!! вводишь другие данные в шаблон и всё, зато всё понятно и надёжно...

4

Re: Библиотека для анализа осциллограмм на Python

doro писал(а):
2024-04-29 16:21:40

Здравствуйте, Евгений! Вроде бы в Ессентуках мы совместными усилиями проводили курсы по анализу аварийных событий. В конце мая ожидаются аналогичные в учкомбинате Ростовэнерго. Меня приглашают. То ли сам приедешь, то ли мне соответствующие материалы передашь.

Здравствуйте, Евгений Георгиевич! Все верно, имело место такое событие.

Думаю, что из материалов наиболее подходящее это вот эти примеры: https://nbviewer.org/github/selkovevgen … notebooks/
А про практическое использование я в первом посте написал.

Но предупреждаю, что это не замена традиционным просмотрщикам. По сравнению с ними сложнее пользоваться.
Библиотека больше ориентирована на исследовательскую деятельность.

Добавлено: 2024-05-14 18:54:53

ПАУтина писал(а):
2024-04-30 12:26:38

Пожалуйста, приведите примеры и особенности, в чём собственно достоинства такой обработки... стоит ли вообще в это вникать?! Насколько она универсальна, вдруг там нет того, что надо мне?!
Мне если что-то надо специфическое, а файл в COMTRADE, так всё просто - Exсel!!! вводишь другие данные в шаблон и всё, зато всё понятно и надёжно...


Добрый день!

Порог вхождения выше, чем в Excel, конечно, но сопоставим в Matlab.
В библиотеке на данный момент реализовано работа с Comtrade и базовые функции, наподобие преобразования Фурье, расчета симметричных составляющих и пр.
Реализованы отображения характеристик срабатывания защит: ДЗ, характеристики торможения диф. защиты.

То есть базовые функции самостоятельно писать уже не надо.
Дополнительно можно написать свои функции, которые будут обрабатывать сигналы из осциллограммы, причем очень гибко. Можно обратиться даже к отдельной точке любого сигнала и произвести любые математические операции. За мат. операции отвечает популярная библиотека Numpy.

Например, в библиотеке уже реализована функция, моделирующая протекание первичного тока через ТТ. Реализована модель ТТ с ПХН. При желании ее можно в среде разработки реализовать самостоятельно.

А так на развитие хотел еще добавить:
- Определение места повреждения
- расчет частоты
- расчет сопротивления по уравнению линии

Из более глобального: автоматизированный анализ осциллограмм.

Еще из плюсов:
- Реализован базовый функционал, который не надо самостоятельно писать
- Через скрипт, написанный один раз можно прогонять осциллограммы с однотипного устройства или других устройств с минимальными коррекциями (перепривязка наименований)
- я использую картинки, сгенерировнные программой, для презентаций.  По мне так достойно получается, лучше чем из традиционных просмотрщиков.
- про гибкость  и возможность дополнения собственным функциями я уже писал.
- возможность сохранения результатов расчета в новую осциллограмму Comtrade, которую можно открыть традиционным просмотрщиком.

Из минусов:
- более высокий порог вхождения. Нужно знать основы языка Python
- не подходит для быстрого анализа. То есть открыть и быстро посмотреть, что произошло лучше традиционным просмотрщиком.

Post's attachments

ДЗ.png 18.7 Кб, файл не был скачан. 

токи.png 47.94 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

5

Re: Библиотека для анализа осциллограмм на Python

Сельков Евгений писал(а):
2024-05-14 16:54:53

Порог вхождения выше, чем в Excel, конечно, но сопоставим в Matlab.

Спасибо за пояснения!
действительно есть интересные функции
будет время займусь
Просто тут проблема заведение рабочей среды... не совсем понятно как этим пользоваться? уж извините ... за ...
Сейчас тестирую Engee ID (типа раша матлаб, всё в зачатке...) по сети. Открываешь браузер, прям по центру - запустить скрипт, запускаешь, чёй-то там крутится ... скачивается и оба на готовое API - рабочее поле и библиотека блоков...
причём на лисе не работает, а на хроме нормально..... правда тупит ну и понятно по сети сервер где-то в Москве...
а здесь как?

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

6

Re: Библиотека для анализа осциллограмм на Python

Делал когда-то на матлабе аналогичную штуку (там кстати был расчет частоты).
Определение частоты сигнала

7

Re: Библиотека для анализа осциллограмм на Python

ПАУтина писал(а):
2024-05-15 05:33:07

Спасибо за пояснения!
действительно есть интересные функции
будет время займусь
Просто тут проблема заведение рабочей среды... не совсем понятно как этим пользоваться? уж извините ... за ...
Сейчас тестирую Engee ID (типа раша матлаб, всё в зачатке...) по сети. Открываешь браузер, прям по центру - запустить скрипт, запускаешь, чёй-то там крутится ... скачивается и оба на готовое API - рабочее поле и библиотека блоков...
причём на лисе не работает, а на хроме нормально..... правда тупит ну и понятно по сети сервер где-то в Москве...
а здесь как?

Здесь устанавливается либо интерпретатор Python, либо дистрибутив Anaconda (интерпретатор + полезные библиотеки).
После этого можно писать скрипты либо в среде разработки (например PyCharm), либо в Jupiter Notebook, который устанавливается вместе с Anaconda.
Jupiter Notebook работает в браузере, но обращается к интерпретатору, установленному на ПК.
Примеры файлов Jupiter Notebook я как раз и выкладывал в репозитории:
https://nbviewer.org/github/selkovevgen … notebooks/
При переходе по ссылке открывается предпросмотр, код не запустить. Но если установить Anaconda и загрузить файлы на ПК, то файлы оживут, появится возможность редактирования и запуска отдельных ячеек.
Примечание: в правом верхнем углу можно нажать кнопку Execute on Binder - запустится облачный сервис и через пару минут откроется ноутбук примерно в таком виде, как должно быть. Для ознакомления сойдет.

Engee только рекламу видел. Если получится так же надежно и качественно, как Matlab, то супер.

Добавлено: 2024-05-15 17:15:20

retriever писал(а):
2024-05-15 13:27:24

Делал когда-то на матлабе аналогичную штуку (там кстати был расчет частоты).
Определение частоты сигнала

Тоже пользовался матлабом, но потом перешел на Python и вкусил ООП))
Мат. библиотеки Python зачастую повторяют Matlab. И они законно бесплатны.
А так на Python можно накрутить GUI или строить web сервис, как уж желание будет.

Вообще говоря можно реализовать несколько вариантов расчета частоты, начиная от грубых приближений, заканчивая более точные. И на основании суммарной информации принимать решение.

8 (2024-05-15 15:24:45 отредактировано retriever)

Re: Библиотека для анализа осциллограмм на Python

Сельков Евгений писал(а):
2024-05-15 15:15:20

Тоже пользовался матлабом, но потом перешел на Python и вкусил ООП))

ООП и на матлабе есть)
Я просто исходил из того, что если есть модель в матлабе, то можно и нужно делать комтрейд сразу в матлабе. Модели в матлабе их повторить в коде может быть не очень просто.

Так я даже на С# такую штуку делал когда-то, сделал недо-просмотрищик осциллограмм черно-белым.
Но на C# делать сами графики занятие неприятное, там много нужно делать руками из того, что обычно в матлабе сделано так.

9

Re: Библиотека для анализа осциллограмм на Python

retriever писал(а):
2024-05-15 15:24:00

ООП и на матлабе есть)
Я просто исходил из того, что если есть модель в матлабе, то можно и нужно делать комтрейд сразу в матлабе. Модели в матлабе их повторить в коде может быть не очень просто.

Так я даже на С# такую штуку делал когда-то, сделал недо-просмотрищик осциллограмм черно-белым.
Но на C# делать сами графики занятие неприятное, там много нужно делать руками из того, что обычно в матлабе сделано так.

В свое время счел изучение ООП в матлабе нецелесообразным. Решил, что на питоне перспективнее будет.

Да замены симулинк на питоне нет, это, конечно, минус.

Построение графиков в питоне весьма похоже на матлаб, тоже без лишних заморочек. Библиотека Matplotlib, я больше Plotly использую, потому что в Jupiter Notebook получаются интерактивные графики.

Вообще Python и JupiterNotebook, кстати активно используются в сфере DataScience. Но этим область применения не ограничивается, вот недавно нашел курс по ЦОС, тоже на питоне сделан, +\- по той же технологии, что и у меня.
https://github.com/hukenovs/dsp-theory? … me-ov-file

10 (2024-05-15 17:03:30 отредактировано retriever)

Re: Библиотека для анализа осциллограмм на Python

Сельков Евгений писал(а):
2024-05-15 16:48:54

В свое время счел изучение ООП в матлабе нецелесообразным.

По-моему оно везде примерно одинаковое, во всяком случае разницы сильной нет.

classdef ClassName<handle

properties
... тут поля класса
end

propertis (Dependent)
... тут свойства, которые get и set
propA
end

methods

function value=get.propA(this)
...вычисляем value, например, запуская некую функцию
end
function set.propA(this, value)
...делаем какие то расчеты
end

function this=ClassName(this, ...прочие аргументы) %конструктор
end

function DoSomething(this, прочие аргументы) %обычные методы, можно возвращать что-то, если надо, this идет как ссылка на объект
end
end

methods (Static) %статические методы
function y=f(x)
end
end

end

11

Re: Библиотека для анализа осциллограмм на Python

Могу только порадоваться за коллег, которые и программированием (ООП) занимаются, и релейной защитой. На все время хватает!!! Кто-то даже диссертации хочет писать! Ана машинные коды время найдется? Или нельзя "объять необъятное"?

12 (2024-05-15 18:30:28 отредактировано retriever)

Re: Библиотека для анализа осциллограмм на Python

Машинные коды не знаю.
Кто-то давно на форуме когда-то разбирал COMTRADE в бинарном формате, как устроен.

Осциллограмма в формате Comtrade

13

Re: Библиотека для анализа осциллограмм на Python

#7, что-то не удается получить нужную информацию.

14

Re: Библиотека для анализа осциллограмм на Python

retriever писал(а):
2024-05-15 17:01:47

По-моему оно везде примерно одинаковое, во всяком случае разницы сильной нет.

Я имел ввиду, что вникать в особенности реализации ООП в matlab.
По совокупности причин решил перейти на python и уже на нем разбираться в программировании, большем чем написание скриптов.
А так концепция понятно, что одна и та же.

Добавлено: 2024-05-16 11:23:25

doro писал(а):
2024-05-15 20:04:06

#7, что-то не удается получить нужную информацию.

1 - Перейти по ссылке: https://nbviewer.org/github/selkovevgen … notebooks/
2 - Выбрать из списка пример.
3 - Откроется предпросмотр примера.

https://rzia.ru/uploads/images/7792/6c6f03a23917f9282e66bcd25261d6b7.png https://rzia.ru/uploads/images/7792/6c6f03a23917f9282e66bcd25261d6b7.png

Расчеты в режиме предпросмотра не работают. Но для ознакомления вполне подойдет.

P.S. Касательно обучения, которые вы проводите. Если нужно, то могу провести небольшую презентацию в через онлайн технологии. Но это уже в личную связь.

Добавлено: 2024-05-16 11:35:10

Conspirator писал(а):
2024-05-15 17:52:50

Могу только порадоваться за коллег, которые и программированием (ООП) занимаются, и релейной защитой. На все время хватает!!! Кто-то даже диссертации хочет писать! Ана машинные коды время найдется? Или нельзя "объять необъятное"?


Зависит от целей и мотивации)
Все то же самое можно написать на C++, но работы будет в разы больше.
По мне так, минимом усилий, максимум результата. Если не требуется разбираться в машинных кодах, то и хорошо.

Касательно бинарного comtrade. Я взял уже готовую библиотеку на питон, написанную то ли бразильцами, то ли испанцами. Она открывает comtrade, в том числе бинарный. Сохраняется все осциллограммы в ASCII.

15

Re: Библиотека для анализа осциллограмм на Python

Евгений!
спасибо
скачал, поставил Anacond-у  пока так ...
пока шастал по интернету нашёл массу и других не менее интересных вещей на такой же "технологии" (я бы назвал - "питонлогии")...
поэтому буду как получится вникать...

16 (2024-05-16 17:01:44 отредактировано doro)

Re: Библиотека для анализа осциллограмм на Python

Да я вообще не могу войти на этот сайт! Виндовс десятка, здесь еще Аваст (то еще тот). Но на вирусную опасность не ругается (хотя и упоминает). Не могу войти, и все тут.

Добавлено: 16-05-2024 16:14:23

17

Re: Библиотека для анализа осциллограмм на Python

ПАУтина писал(а):
2024-05-16 12:05:44

Евгений!
спасибо
скачал, поставил Anacond-у  пока так ...
пока шастал по интернету нашёл массу и других не менее интересных вещей на такой же "технологии" (я бы назвал - "питонлогии")...
поэтому буду как получится вникать...

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

18

Re: Библиотека для анализа осциллограмм на Python

doro писал(а):
2024-05-16 16:14:23

Да я вообще не могу войти на этот сайт! Виндовс десятка, здесь еще Аваст (то еще тот). Но на вирусную опасность не ругается (хотя и упоминает). Не могу войти, и все тут.

У меня тоже десятка. Вхожу без проблем. Зачем Вам Аваст? Удаляйте. Уже писали, что внутренний антивирус 10-ки достаточен.

19

Re: Библиотека для анализа осциллограмм на Python

doro писал(а):
2024-05-16 16:14:23

Да я вообще не могу войти на этот сайт! Виндовс десятка, здесь еще Аваст (то еще тот). Но на вирусную опасность не ругается (хотя и упоминает). Не могу войти, и все тут.

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

20

Re: Библиотека для анализа осциллограмм на Python

Да блокировка вроде не просматривается. Просто не открывается сайт.