Git Product home page Git Product logo

dssdata's Introduction

Hi there 👋

I'm a fusion of an Electrical Engineer, Scientist, and Dev working in Campinas, Brazil. 👷👨‍🔬👨‍💻

NOW
BIO
  • 🎓 Bachelor in Electrical Engineering by UEA/EST.
  • 🎓 Master in Electrical Power Systems by USP/EESC.
  • 🎓 MBA in Project Management by USP/ESALQ.
  • ⚙️ I use daily: Python 🐍, Julia 💜, C/C++ ⚙️.
  • ⌛ I have experience with Machine Learning, Optimization, and Mathematical Modelling.
  • 🌱 Learning about Rust 🦀 and loving it!
  • 💬 Ping me about Optimization, Machine learning, electrical distribution systems, renewable energies, and project management.
  • ⚡ I’m interested in all computing and math stuff to solve applying problems.
  • 💞️ I'm looking for collaborations on DSSData.
  • 🎮 Fun fact: 1.e4/e5 are the best moves. Change my mind.
PUBLICATIONS

I'm always interested in collaborating in researching papers on electrical power systems. Please look at my last publications if you are interested and contact me. 😄

dssdata's People

Contributors

felipemarkson avatar jonasvil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dssdata's Issues

Bug: Line tools shows IndexError when MakePosSeq is used.

When a .dss file with a "MakePosSeq" command is performed a IndexError on line.tools.get_all_infos.

Report:
[...]
File "~ /.venv/lib/python3.8/site-packages/dssdata/_formatters.py", line 30, in __get_mag_vanish
return tuple(map(func_aux, range(0, 3)))
File "~ /.venv/lib/python3.8/site-packages/dssdata/_formatters.py", line 15, in __aux_vanish
return mag_or_ang[list_ph.index(indx + 1)]
IndexError: tuple index out of range

Desenvolver análise de fluxo de potência temporal.

O Fluxo de potência temporal precisa ser implementado a partir do fluxo de potência estático.

Até o momento está definido que cada resolução do passo de tempo será organizado em um Pandas.DataFrame, da mesma forma que o fluxo de potência estático, com uma coluna indicando o passo de tempo no qual foi executado.

Deve-se definir quais métodos serão criados, por exemplo, retorno de tensão e ângulo, perdas das linhas?

Losses Tools

  • Create all losses tools
  • Create Tests
  • Documentation

How to simulate the documentation

This project uses MkDocs for documentation with the following extensions:

To simulate the documentation make sure that all these packages are installed.

You can easily get all the development environment using Poetry.

$ git clone https://github.com/felipemarkson/dssdata.git
$ cd dssdata
$ poetry install
$ poetry shell

The file requiriments.txt does not have the development packages.

After installing all packages, you can run:

$ mkdocs serve

By default, the documentation is built in http://127.0.0.1:8000 on a development server.

You can edit any file from /docs or/and edit the functions docstrings in python files.

Método para obtenção do estado do tap dos reguladores

Como chamar a funcionalidade?

Precisa ser definido se a funcionalidade será um método ou um atributo do sistema. Eu acredito que pode ser um método.

Estrutura de dados?

Futuramente será implementado a funcionalidade de time-series. A funcionalidade deve ter uma estrutura de dados que possamos, no futuro, incluir no padrão DataFrame.

loadmult has no influence

Hello,

  1. I am trying to use the Time series Power Flow, however, no matter what values I give loadmult, the voltage values remains the same. (for example for loadmult=[0,0.5,1] I get 3 identical values of voltages at all of the loads) (the code appears below)
  2. Is there an option to get the values of P,Q at each load (like voltages.get_all for voltage values)?
  3. Is it possible to identify different loadmult to different loads?

Thank you!

the code:
distSys = SystemClass(path=path, kV=[115, 4.16, 0.48], loadmult=[0,0.5,1])
cfg_tspf(distSys, step_size="1h", initial_time=(0, 0))
[voltageDataFrame] = run_tspf(distSys, tools=[voltages.get_all], num_steps=3)

Novas funcionalidades do losses_tools.py

Acrescentar funções e/ou agregar mais sobre as perdas relacionadas as componentes do tipo PD ao losses_tool.py. Por enquanto são apresentadas as perdas totais de todos os elementos do tipo PD, é interessante apresentar a contribuição de cada elemento para a composição dessa perda total.

Obs: Os capacitores aparecem como um elemento PD, mas durante o cálculo das perdas totais do circuito não são levados em cosideração.

Método para obter as informações das linhas do sistema

Deve-se definir quais informações serão disponibilizadas neste método.

Acredito que:

  • Nome da linha
  • Barras as quais ela interliga
  • Corrente que passa em cada fase da linha;
  • Valor máximo de carregamento;
  • Porcentagem de carregamento da linha;
  • Perdas da linha

Implementation of vanish dss file

As reported in #90 the SystemClass has some troubles when the DSS File has multi-line comments.

This could be solved using a function that vanishes the DSS content before save in SystemClass._dsscontent. This must be done without changing the DSS file.

Seria melhor dividir a classe PowerFlow em outras?

A classe PowerFlow está se tornando extramente grande e muitas outras funcionalidades ainda precisam ser implementadas.

Talvez dividir a classe PowerFlow em:

  • Uma classe possuem apenas informações do sistema que não precisam ser calculadas, chamada DistSys. Esta abordagem facilitaria na inclusão de outras classes, como BESS, DG que podem ser englobadas em outra Classe geral de montagem.

  • Classe geral chamada PowerFlow que "monta" o sistema para assim poder gerar as informações do fluxo de potência estático.

Método para obter as perdas totais do sistema.

Funcionalidade de retorno de perdas

Como chamar a funcionalidade?

Precisa ser definido se a funcionalidade será um método ou um atributo do sistema. Eu acredito que pode ser um método.

Estrutura de dados?

Futuramente será implementado a funcionalidade de time-series. A funcionalidade deve ter uma estrutura de dados que possamos, no futuro, incluir no padrão DataFrame.

Quais informações terão no retorno da funcionalidade?

O OpendssDirect possui os métodos :

  • Circuit.LineLosses() : Este método retorna as perdas de todas as linhas.
  • Circuit.Losses(): Este método retorna as perdas de todas as linhas com as perdas de outros dispositivos, como DG e Storage e etc...

Qual utilizar? englobar perdas de outros dispositivos?

Bug: Problema com a fixação da ordem das fases

A partir do Pull Request #30 está definido que as fases das linhas devem ser conectadas na ordem no arquivo OpenDSS, ou seja "bus1 = bus.2.3", não podendo ser "bus1= bus.3.2".

Este problema inviabiliza sistemas de distribuição com transposição (pouco comum).

[PT-BR]Discussão sobre PC element tools

Após o PR #35 foi decidido que cada PC element terá seu próprio tool.
Parecido com o que é feito no line_tools.py.

Questionamentos:

  • Quais dados cada elemento terá em seu tools? (Tensão, corrent, perdas... etc)

  • Como mostrar as características únicas de cada PC element. Ex. O Storage possui kwhrated.

Improvement: Performance Issues

When the system is big (greater than 1000 nodes) or there is many steps in TS Power Flow (one year on 15min step) the run_tspf or run_pf may present performance issues.

Maybe concated Dataframe just on final of Power Flow can fix it.

Bug: Valores diferentes em SOs diferentes.

Foi identificado um bug durante os testes em sistemas operacionais diferentes.

O bug ocorre no OpenDSSDirect.py e foi reportado na issue #82.

Após a solução do bug, deverá ser criado testes automatizados em sistemas operacionais diferentes neste projeto.

How to contribute

How the project is organized

The SystemClass has only the responsibility to process the .dss file.

The Power flow modes has only the responsibility to configure and run a power flow mode with Actions and Tools.

The Actions has only the responsibility to change the distribution system state temporarily.

The Tools has only the responsibility to get data information from the current state of the distribution system.

The Reduction has only the responsibility to transform various tool's returns in a DataFrame.

See the package documentation for more details

The dependence manager and development environment

We use Poetry to manage the dependencies.

You can quickly get all the development environment run the following commands:

$ git clone https://github.com/felipemarkson/dssdata.git
$ cd dssdata
$ poetry install
$ poetry shell

Make sure that you have installed the Python version required.

Linting

Flake8 in default configuration.

Documentation

We use Google's Style Guide for docstrings documentation.

All public functions must be documented at last with docstrings.

You can see more details to how to simulate the documentation on #72.

Tests and CI

We use the unittest for our functional tests. We know that it is not the best choice, but it works fine.

If you have other suggestions on how to build our tests, please tell us in an Issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.