Overview
The nature of power system dynamics is deeply evolving towards more diverse and difficult to predict behaviors due to the massive changes going on in power systems. Large penetration of power-electronic based components such as Renewable Energies Sources – RES – or High Voltage Direct Current – HVDC – links, booming use of complex special protection schemes, control strategies or smart grids, and other digital transformations are redefining the entire system. This radical change from physically-driven to numerically-driven dynamics is making it harder to assess system stability, but it is still essential as any generalized incident will be unacceptable for the economy and consumers. This requires access to a transparent, flexible, robust and easy to use suite of simulation tools that can run collaborative studies in a very simple way by sharing not only the same data, but also the same modeling and solving choices in an open-source framework. Such tools will ensure similar results and agreement upon optimal and shared actions on the system to accompany the ongoing changes in the best possible way. This is why a new effort was launched around simulation tools that resulted in the development of Dynaωo.
Architecture
Dynaωo is based on two main principles: the use of a high level modeling language Modelica and a strict separation between modeling and solving parts. Modelica is an equation-based, declarative and object-oriented modeling language that is easy to read and understand – the equations are written in a similar way than they are written in textbooks for example – and already used in different and various industrial sectors. Using this language enables Dynaωo to easily share and discuss modeling choices because the final model’s implementation is available in an understandable way, even for the end-user. It is important to mention that Modelica-based tools already exist (Dymola, OpenModelica, JModelica, etc.) but they are not efficient enough for large scale simulation of power systems, which was one of the motivations for Dynaωo. In addition to this, the Modelica language itself has some limitations that are addressed in Dynaωo by the possibility of using C++ models in a similar way than Modelica models. The second important point in Dynaωo is the strict separation between modeler and solvers, which means that the models only expose a few methods to the solvers such as the residual evaluation, the Jacobian evaluation, or the zero-crossing functions – in other words that the numerical resolution method doesn’t interfere in the modeling part. This feature has several advantages: it enables Dynaωo to easily test or use new solvers, it eases the addition of new models, and it allows modeling experts not to bother with numerical difficulties and vice versa.
Further Details
Dynaωo’s primary focus has been on long-term and short-term stability studies, and the very encouraging results obtained and the flexibility of the approach have led to an extension of the initiative. Dynaωo continues to evolve towards a complete extensive models library sharing the same philosophy.
For the sake of clarity, the available models library has been classified in a suite to show which kind of simulations and studies can be run using Dynaωo:
- DynaFlow for steady-state calculations;
- DySym for short-circuit calculations;
- DynaWaltz for long-term stability studies;
- DynaSwing for short-term stability studies;
- DynaWave for stability studies and system design with a high-penetration of power electronics based components (quasi-EMT).
In order to provide a more complete environment around Dynaωo, a series of companion projects are available in Dynaωo GitHub organization:
- Dynaflow-launcher: utility used to easily run unitary or systematic analysis simulation with DynaFlow using a minimal set of inputs;
- Dynawo-algorithms: wrapper around Dynaωo that provides utility algorithms to calculate complex key values of a power system (unitary simulations, systematic analysis, margin calculations and load increase);
- Dynawo-large-scale-validation: a repository of scripts and utilities built during the projects carried out in 2020-2021 for the purpose of validating DynaWaltz and DynaFlow.