Architecture Overview
In the following the architecture of PowerDynamics with its components is explained in more detail.
Components of PowerDynamics
The main components of PowerDynamics are
- nodes
- lines
- PowerGrid
- operationpoint
- faults
- PowerGridSolutions
For a typical simulation the data flow between some of the components is illustrated in the figure below:
nodes
The node component includes a library of different standard generators, loads and inverters. The definition of new nodes is simplified with the node macro @DynamicNode
.
lines
The line component includes a standard library of different line and transformer types, e.g. a simple admittance line (StaticLine
), the PiModelLine
and a simple transfomer model based on the Pi Model branch representation.
PowerGrid
The PowerGrid component is built from nodes and lines. It contains all information about the graph and is used to derive the right-hand-side function with the NetworkDynamics.jl-library. The powergrid can also be parsed from a json-file with read_powergrid
.
operationpoint
The operationpoint represents the steady-state solution of the dynamic power system. There are different methods for finding the operation point: rootfind, nlsolve and dynamic. The function find_operationpoint
returns the operationpoint which is of type State
.
faults
All simulation in PowerDynamics assume some kind of fault scenario. It can be either a change in initial conditions (different from the operation point of the system) at the beginning of a simulation. Or it is a perturbation of node or line paramers for a certain time span tspan_fault
that alter the PowerGrid. These can be e.g. a sudden loss of load, PowerPerturbation
, or a line failure, LineFailure
. The latter faults are all derived from AbstractPerturbation
, and all share the same simulate
function.
PowerGridSolution
After a simulation in PowerDynamics the solution returned is of type PowerGridSolutions. It allows to access the solution output of the ODE solver in a user friendly manner.