This repository contains the business logic of the smart grid simulator (SimSG). Should run along with the WebUI.
- Load approximation
- certain load approximation
- uncertain load approximation
- naive version: all versions are considered
- efficient version: only versions that validate business rules
- circle finder
- JSON importer and exporter
- Connection through a web socket to the WebUI
- JDK 14 or later
The project uses Maven for the project management. Uses the classic cycle goals to build or execute the test.
- From your favaorite idea, run execute the main class in
RunServer
- After packaging the project (
mvn package
):java -jar server/ws/target/creos.simsg.server.ws.jar
algorithms
: this directory contains all modules that implement an algorithm. Note: algorithms SHOULD NOT modify the model itself.circlefinder
: this module retrieves all possible circle in a topologyextractor
: modules that contains algorithm to extract different elements (cables, entities, fuses, ...) of a gridloadapproximator
: contains different algorithms to approximate the loadcertain
: algorithm that do not consider fuse status confidenceuncertain
: contains the different algorithms to handle uncertainty for the load approximationnaive
: naive version that process all possible configurations for mono-substation topologiesmultisubs
: contains first steps/thoughts towards an algorithm for uncertain load approximation WARNING: none of the algorithms are tested. So they might contain bugs or be even completely wrongbsrules
: version that filter out invalid configurations for mono-substation topologies
matrixbuilder
: contains different algorithms to generate the equation matrixcertain
: algorithm that do not consider fuse status confidenceuncertain
: algorithm that lists all possible configurations for mono-substation topologies
navigation
: algorithms to navigate through the grid and collect different elements (fuses, entities, ...)bfs
: navigate the grid using a BFS strategy
powerflow
: algorithm that defines the power flow in a gridtransformers
: contain different modules to transform the grid into another format or from another format to the grid -json
: transform the grid from/into JSON objectvalidator
: contains a set of validation algorithms for the model or the result of another algorithm.
model
: module that contains the smart grid model, should only contain an abstraction of the grid statescenarios
: this module contains the implementation of the different pre-built topologiesserver
: directories with a list of modules for the serverws
: module that contains a WebSocket server
simsg.uncertainty
: contains all uncertainty elements specific for the smart griduncertainty
: module that contains different utils to manipulate uncertain data, should be general and not smart grid specificutils
For this project, we use the calendar versioning schema.
- YYYY: full year (e.g., 2006, 2016, 2106)
- 0M: zero-padded month (e.g., 01, 02, 11, 12)
- 0D: zero-padded day (e.g., 04, 08, 25, 31)
SimSG is a research prototype, mainly used by those who developed it. Its main goal is to be used as demonstration tool for academic conference or in front of (potential) partners. The version number will not be used to inform users about new features or patches fix. Instead, the goal was to use it as timestamp and refer them in report, academic papers, or any other written document.