This document is under construction, we apologize for any inconveniences that it might cause.
- Description
- Functionality
- Documentation
- Requirements
- Installation
- Source Code Explanation
- Cite
- Lincense
- Acknowledgement
- Contribute
GUILDA Python is the Python version of the original MATLAB based program GUILDA. While both programs are ment to be equivalent versions of each other, GUILDA is developed in MATLAB and documented in Japanese, while GUILDA Python is developed in Python and documented in English.
GUILDA stands for Grid & Utility Infrastructure Linkage Dynamics Analyzer. GUILDA is a numerical simulator platform for smart energy management. The purpose of this program is to provide students and researchers in the field of systems and control engineering with an advanced numerical simulation environment that can be used with minimal knowledge of power systems. To achieve this, it is recommended to use this program in closeness with the textbook "Power Systems Control Engineering: Systems Theory and MATLAB Simulation" (only available in its original language, Japanese. The English translation is currently being developed). As in this textbook the authors explain the structure and mathematical fundamentals of power systems in the language of systems and control engineering.
We are devising a way for students to learn the mathematical fundamentals and the construction of a numerical simulation environment in parallel. Through these activities, we aim to establish power systems as one of the familiar benchmark models in the field of systems and control, thereby helping to promote power system reform through the technologies and knowledge in this field.
This is an in-development project by:
- Ishizaki Laboratory at Tokyo Institute of Technology
- Assistant Professor Takahiro Kawaguchi of Gunma University.
To learn more visit here.
As a numerical simulator platform, GUILDA has the following main capabilities:
- Define power system network models, composed of generators, loads, buses, and lines. The networks can be based on standard models (e.g., IEEE-68), as well as personilized models.
- Implement controllers (local or global) to such network models.
- Simulate linear and non-linear models (with or without controllers / faults).
To achieve the above, the following functionalities are present:
- Linearize models and express them in state space representation.
- Calculate power flow.
- Determine equilibrium point (if not defined).
Please visit the official documentation site. In it you will find several tutorials on:
- How to define a power system model.
- How to add controllers.
- How to perform numerical simulations.
- How to derive an approximate linearized model of the created power system network model.
Additionally, a demonstrative example of implementing, simulating, and adding control to a 3-bus network system is explained here.
-
Python version >=3.9
-
C Compiler
-
Fortran Compiler
-
Sundials version >=5.1.0
-
It will be used in simulation. See this page.
-
Alternatively, installing from conda:
conda install -c conda-forge scikits.odes
will ease the process.
The main libraries are:
numpy
scipy
control
assimulo
Python Libraries (should we indicate the purpose of each library?):
- contourpy version 1.0.6
- control version0.9.3.post2
- cycler version 0.11.0
- fonttools version 4.38.0
- kiwisolver version 1.4.4
- matplotlib version 3.6.2
- numpy version 1.24.1
- packaging version 23.0
- pandas version 1.5.2
- pillow version 9.4.0
- pyparsing version 3.0.9
- python-dateutil version 2.8.2
- pytz version 2022.7
- scipy version 1.10.0
- scikits.odes version 2.7.0
- six version 1.16.0
- Make sure to comply with all the requirements.
- Download the source code from this site.
- ...
- Ready to use.
In this section a brief description of the general structure of the source code is provided.
As a general rule, all classes and functions that are supposed to be called and used by the user directly, should start with a brief comment on its intended use and variable description. Thus, if there is a class or function that you want to use, please open its source code and look for such description.
The classes that play a central role in GUILDA Python can be broadly divided into five types:
These five classes are the main classes from which the rest of classes are derived.
Here, the variables and methods implemented in these five main classes are explained. Other classes are not explained; however, as mentioned before, you can always check the description of the source code of your class of interest.
This directory stores functions that may be useful for improving work efficiency when using GUILDA Python.
This directory is implemented by GUILDA Python. It stores functions used in the code of a class or function. It is created for the purpose of modularizing frequently used execution contents and improving the listing of source code. Therefore, the code under this directory is not a function that is used directly by the user, so we will omit the explanation.
To cite GUILDA Python please use the following:
/Insert how to cite/
GUILDA is licensed under the open source MIT License.
The autors thank the continuous support of /Insert list of supporters/