From 05f9925025e140518ac49000246fa755d56cbb72 Mon Sep 17 00:00:00 2001 From: m-mirz Date: Fri, 16 Aug 2024 18:32:33 +0000 Subject: [PATCH] deploy: 832c48472c0baf143d782e501a07b1cc9c9c1dba --- docs/concepts/dyn-phasors/index.html | 4 +- docs/concepts/index.html | 2 +- docs/concepts/nodal-analysis/index.html | 6 +- docs/concepts/powerflow/index.html | 6 +- docs/contribution-guidelines/index.html | 6 +- docs/development/debugging/index.html | 6 +- docs/development/guidelines/index.html | 6 +- docs/development/index.html | 2 +- docs/examples/index.html | 2 +- docs/getting-started/build/index.html | 6 +- docs/getting-started/index.html | 2 +- docs/getting-started/install/index.html | 6 +- docs/getting-started/real-time/index.html | 6 +- docs/index.html | 2 +- docs/models/branches/index.html | 4 +- docs/models/index.html | 2 +- docs/models/induction-machine/index.html | 4 +- docs/models/power-electronics/index.html | 4 +- docs/models/rlc-elements/index.html | 4 +- docs/models/synchronous-generator/index.html | 6 +- docs/models/transformer/index.html | 6 +- docs/overview/architecture/index.html | 4 +- docs/overview/attributes/index.html | 4 +- docs/overview/index.html | 2 +- docs/overview/interfaces/index.html | 4 +- docs/overview/mnainterface/index.html | 4 +- docs/overview/scheduling/index.html | 6 +- docs/overview/subcomponents/index.html | 6 +- docs/reference/index.html | 6 +- docs/roadmap/index.html | 6 +- docs/tasks/add-model/index.html | 6 +- docs/tasks/create-simulation/index.html | 6 +- docs/tasks/index.html | 2 +- doxygen/_components_8h_source.html | 89 +- .../_e_m_t___ph1___switch_8cpp_source.html | 211 + doxygen/_e_m_t___ph1___switch_8h_source.html | 158 + doxygen/_e_m_t_components_8cpp_source.html | 648 +-- doxygen/annotated.html | 7 +- ...ass_c_p_s_1_1_base_1_1_ph1_1_1_switch.html | 2 +- ...ase_1_1_ph1_1_1_switch__inherit__graph.map | 9 +- ...ase_1_1_ph1_1_1_switch__inherit__graph.md5 | 2 +- ...ase_1_1_ph1_1_1_switch__inherit__graph.svg | 79 +- ..._1_1_e_m_t_1_1_ph1_1_1_switch-members.html | 220 + ...ss_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch.html | 644 +++ ..._e_m_t_1_1_ph1_1_1_switch__coll__graph.map | 27 + ..._e_m_t_1_1_ph1_1_1_switch__coll__graph.md5 | 1 + ..._e_m_t_1_1_ph1_1_1_switch__coll__graph.svg | 581 +++ ..._t_1_1_ph1_1_1_switch__coll__graph_org.svg | 493 ++ ...m_t_1_1_ph1_1_1_switch__inherit__graph.map | 14 + ...m_t_1_1_ph1_1_1_switch__inherit__graph.md5 | 1 + ...m_t_1_1_ph1_1_1_switch__inherit__graph.svg | 299 ++ ...1_1_ph1_1_1_switch__inherit__graph_org.svg | 211 + ..._1_1_identified_object__inherit__graph.md5 | 2 +- ..._1_1_identified_object__inherit__graph.svg | 144 +- ..._identified_object__inherit__graph_org.svg | 144 +- ..._s_1_1_m_n_a_interface__inherit__graph.map | 16 +- ..._s_1_1_m_n_a_interface__inherit__graph.md5 | 2 +- ..._s_1_1_m_n_a_interface__inherit__graph.svg | 98 +- ..._1_m_n_a_interface__inherit__graph_org.svg | 98 +- ...1_m_n_a_sim_power_comp__inherit__graph.map | 8 +- ...1_m_n_a_sim_power_comp__inherit__graph.md5 | 2 +- ...1_m_n_a_sim_power_comp__inherit__graph.svg | 44 +- ...n_a_sim_power_comp__inherit__graph_org.svg | 44 +- ...lass_c_p_s_1_1_m_n_a_switch_interface.html | 2 +- ...m_n_a_switch_interface__inherit__graph.map | 11 +- ...m_n_a_switch_interface__inherit__graph.md5 | 2 +- ...m_n_a_switch_interface__inherit__graph.svg | 97 +- ...p_s_1_1_sim_power_comp__inherit__graph.md5 | 2 +- ...p_s_1_1_sim_power_comp__inherit__graph.svg | 80 +- ...1_1_sim_power_comp__inherit__graph_org.svg | 80 +- ...topological_power_comp__inherit__graph.md5 | 2 +- ...topological_power_comp__inherit__graph.svg | 32 +- ...logical_power_comp__inherit__graph_org.svg | 32 +- doxygen/classes.html | 2 +- doxygen/files.html | 130 +- doxygen/functions_c.html | 1 + doxygen/functions_func_c.html | 1 + doxygen/functions_func_i.html | 1 + doxygen/functions_func_m.html | 8 + doxygen/functions_func_s.html | 13 +- doxygen/functions_i.html | 1 + doxygen/functions_m.html | 8 + doxygen/functions_s.html | 11 +- doxygen/hierarchy.html | 68 +- doxygen/inherit_graph_0.map | 489 +- doxygen/inherit_graph_0.md5 | 2 +- doxygen/inherit_graph_0.svg | 4329 +++++++++-------- doxygen/inherit_graph_37.md5 | 2 +- doxygen/inherit_graph_37.svg | 8 +- doxygen/inherit_graph_4.md5 | 2 +- doxygen/inherit_graph_4.svg | 8 +- doxygen/inherit_graph_41.md5 | 2 +- doxygen/inherit_graph_41.svg | 24 +- doxygen/inherit_graph_47.md5 | 2 +- doxygen/inherit_graph_47.svg | 8 +- doxygen/inherit_graph_62.md5 | 2 +- doxygen/inherit_graph_62.svg | 72 +- doxygen/inherit_graph_64.md5 | 2 +- doxygen/inherit_graph_64.svg | 8 +- doxygen/inherits.html | 2 +- doxygen/namespaces.html | 7 +- doxygen/search/all_11.js | 24 +- doxygen/search/all_2.js | 2 +- doxygen/search/all_8.js | 2 +- doxygen/search/all_b.js | 100 +- doxygen/search/classes_10.js | 6 +- doxygen/search/functions_11.js | 28 +- doxygen/search/functions_2.js | 2 +- doxygen/search/functions_8.js | 2 +- doxygen/search/functions_b.js | 20 +- search/index.html | 2 +- sitemap.xml | 2 +- sphinx/Reference.html | 716 +-- sphinx/genindex.html | 190 +- sphinx/objects.inv | Bin 3347 -> 3378 bytes sphinx/searchindex.js | 2 +- 116 files changed, 7068 insertions(+), 4029 deletions(-) create mode 100644 doxygen/_e_m_t___ph1___switch_8cpp_source.html create mode 100644 doxygen/_e_m_t___ph1___switch_8h_source.html create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch-members.html create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch.html create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__coll__graph.map create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__coll__graph.md5 create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__coll__graph.svg create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__coll__graph_org.svg create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__inherit__graph.map create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__inherit__graph.md5 create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__inherit__graph.svg create mode 100644 doxygen/class_c_p_s_1_1_e_m_t_1_1_ph1_1_1_switch__inherit__graph_org.svg diff --git a/docs/concepts/dyn-phasors/index.html b/docs/concepts/dyn-phasors/index.html index a76f65ad90..44f1e692ae 100644 --- a/docs/concepts/dyn-phasors/index.html +++ b/docs/concepts/dyn-phasors/index.html @@ -1,4 +1,4 @@ -Dynamic Phasors | DPsim +Dynamic Phasors | DPsim
© 2024 The DPsim Authors All Rights Reserved
+Futhermore, higher frequencies, for example, generated by power electronics can be modelled in a similar way.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/concepts/index.html b/docs/concepts/index.html index cae3b41fa4..9451b877cb 100644 --- a/docs/concepts/index.html +++ b/docs/concepts/index.html @@ -7,5 +7,5 @@ Print entire section

Concepts

The book introduces the reader to the general concepts implemented in DPsim, a dynamic phasor (DP) real-time simulator, as well as the physical models of the power system components that are used in simulations. The first chapters give an overview of dynamic phasors and nodal analysis which are the two pillars of the main solver implemented in DPsim. The second part describes in detail what are the physical equations for each model and how they are transformed and implemented for dynamic phasor simulations and other domains that are also supported by DPsim.

In order to be able to run a dynamic simulation, DPsim also includes a loadflow solver to compute the initial state of the network if it is not included in the network data. -Besides DP simulations, DPsim also comes with EMT models for some components which are used as reference for testing the DP models.

+Besides DP simulations, DPsim also comes with EMT models for some components which are used as reference for testing the DP models.


Dynamic Phasors

Nodal Analysis

Powerflow

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/concepts/nodal-analysis/index.html b/docs/concepts/nodal-analysis/index.html index e973baa2e9..38a725f8a7 100644 --- a/docs/concepts/nodal-analysis/index.html +++ b/docs/concepts/nodal-analysis/index.html @@ -1,7 +1,7 @@ Nodal Analysis | DPsim
© 2024 The DPsim Authors All Rights Reserved
+$$\boldsymbol{Y} \boldsymbol{v} = \boldsymbol{i}$$

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/concepts/powerflow/index.html b/docs/concepts/powerflow/index.html index e418fd8689..7a33aedce5 100644 --- a/docs/concepts/powerflow/index.html +++ b/docs/concepts/powerflow/index.html @@ -1,7 +1,7 @@ Powerflow | DPsim
+\end{align}$$

To sum up, the NR algorithm, for application to the power flow problem is:

  1. Set the iteration counter to $i=1$. Use the initial solution $V_{i} = 1 \angle 0^{\circ}$
  2. Compute the mismatch vector $\vec{f}({\vec{x}})$ using the power flow equations
  3. Perform the following stopping criterion tests:
    • If $\vert \Delta P_{i} \vert < \epsilon_{P}$ for all type PQ and PV buses and
    • If $\vert \Delta Q_{i} \vert < \epsilon_{Q}$ for all type PQ
    • Then go to step 6
    • Otherwise, go to step 4.
  4. Evaluate the Jacobian matrix $\textbf{J}^{(i)}$ and compute $\Delta \vec{x}^{(i)}$.
  5. Compute the update solution vector $\vec{x}^{(i+1)}$. Return to step 3.
  6. Stop.
Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/contribution-guidelines/index.html b/docs/contribution-guidelines/index.html index f9df755a6e..d35d03df2b 100644 --- a/docs/contribution-guidelines/index.html +++ b/docs/contribution-guidelines/index.html @@ -1,7 +1,7 @@ Contribution Guidelines | DPsim
© 2024 The DPsim Authors All Rights Reserved
+Please send us a pull request or get in touch with us via mail or slack if you would like to contribute.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/development/debugging/index.html b/docs/development/debugging/index.html index c424a8a95a..4652c54eae 100644 --- a/docs/development/debugging/index.html +++ b/docs/development/debugging/index.html @@ -1,7 +1,7 @@ Debugging | DPsim
© 2024 The DPsim Authors All Rights Reserved
+}
Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/development/guidelines/index.html b/docs/development/guidelines/index.html index 4ad49d9ea0..4677a17f8a 100644 --- a/docs/development/guidelines/index.html +++ b/docs/development/guidelines/index.html @@ -2,9 +2,9 @@ Scaling of Voltages and Currents Voltage quantities are expressed either as phase-to-phase RMS values (denominated as RMS3PH) or as phase-to-ground peak values (denominated as PEAK1PH): Initialisation quantities (e.g. initialSingleVoltage of SimPowerComp) as RMS3PH values Simulation quantities in both SP and DP domain (e.g. mIntfVoltage of DP::Ph1::PiLine) as RMS3PH values Simulation quantities in the EMT domain (e.g. mIntfVoltage of EMT::Ph3::Transformer) as PEAK1PH values Current quantities are expressed either as RMS or as PEAK values:">

Guidelines

This is a summary of general guidelines for the development of DPsim.

Scaling of Voltages and Currents

Voltage quantities are expressed either as phase-to-phase RMS values (denominated as RMS3PH) or as phase-to-ground peak values (denominated as PEAK1PH):

  • Initialisation quantities (e.g. initialSingleVoltage of SimPowerComp) as RMS3PH values
  • Simulation quantities in both SP and DP domain (e.g. mIntfVoltage of DP::Ph1::PiLine) as RMS3PH values
  • Simulation quantities in the EMT domain (e.g. mIntfVoltage of EMT::Ph3::Transformer) as PEAK1PH values

Current quantities are expressed either as RMS or as PEAK values:

  • Simulation quantities in both SP and DP domain (e.g. mIntfCurrent of DP::Ph1::PiLine) as RMS values
  • Simulation quantities in the EMT domain (e.g. mIntfCurrent of EMT::Ph3::Transformer) as PEAK values

Logging

Debug or trace should be the default log level for information that might be nice to have but not necessary for every simulation case.

Calls to the logger that might occur during simulation must use spdlog macros, like SPDLOG_LOGGER_INFO.

Creating New Releases

Although DPsim currently does not have any conventions on versioning, the periodic creation of new versions can help to mark significant changes and to analyze new portions of code using tools like SonarCloud.

A new version of DPsim has to be indicated as follows:

  • Create a new tag with an increased version number
  • Update setup.cfg
  • Update CMakeLists.txt
  • Update sonar-project.properties

Due to the creation of a new tag, a new PyPi package will be deployed automatically. -To release an updated Docker image, the container workflow needs to be triggered manually.

© 2024 The DPsim Authors All Rights Reserved
+To release an updated Docker image, the container workflow needs to be triggered manually.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/development/index.html b/docs/development/index.html index bae3537209..0953672a19 100644 --- a/docs/development/index.html +++ b/docs/development/index.html @@ -8,5 +8,5 @@ Create child page Create documentation issue Create project issue - Print entire section

Development

How to extend DPsim.

Environment

We recommend the following development tools:

Please follow the build instructions to checkout your code and install the basic dependencies and tools.

+ Print entire section

Development

How to extend DPsim.

Environment

We recommend the following development tools:

Please follow the build instructions to checkout your code and install the basic dependencies and tools.

\ No newline at end of file diff --git a/docs/examples/index.html b/docs/examples/index.html index cbbe58c795..8d2f49731f 100644 --- a/docs/examples/index.html +++ b/docs/examples/index.html @@ -8,5 +8,5 @@ Create child page Create documentation issue Create project issue - Print entire section

Examples

Here you can find some examples to get started with DPsim.

The DPsim repository includes examples that can be run locally.

+ Print entire section

Examples

Here you can find some examples to get started with DPsim.

The DPsim repository includes examples that can be run locally.

\ No newline at end of file diff --git a/docs/getting-started/build/index.html b/docs/getting-started/build/index.html index 55bf549b27..2fc2f6422f 100644 --- a/docs/getting-started/build/index.html +++ b/docs/getting-started/build/index.html @@ -6,11 +6,11 @@ $ git clone git@github.com:sogno-platform/dpsim.git or using https if you do not have an account $ git clone https://github.com/sogno-platform/dpsim.git In the repository, there is a Docker file with all required dependencies $ cd dpsim $ docker build -t sogno/dpsim:dev -f Packaging/Docker/Dockerfile.dev . Alternatively, the image can be pulled from DockerHub like so -$ docker pull sogno/dpsim:dev For OS specific instructions on how to install requirements, see the sections below.">Last modified 21.07.2024: Reuse stamp code for EMT synchron. generators (#315) (ce74d8e) +

The resulting documentation will be generated in Documentation/html/Cxx.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 404a28c51b..80e2e2163b 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -8,5 +8,5 @@ Create child page Create documentation issue Create project issue - Print entire section

Getting Started

How to install, build and run the DPsim project.
+ Print entire section

Getting Started

How to install, build and run the DPsim project.
\ No newline at end of file diff --git a/docs/getting-started/install/index.html b/docs/getting-started/install/index.html index 90e06b1af9..b5977ab71c 100644 --- a/docs/getting-started/install/index.html +++ b/docs/getting-started/install/index.html @@ -2,9 +2,9 @@ Docker First, you need to install Docker. Then, you could either build a docker image by yourself as described in the build instructions or download a prepared image from Docker Hub as described in the following. To start a Jupyter session, run a DPsim Docker container">
© 2024 The DPsim Authors All Rights Reserved
+

From Source

To build and install DPsim from the source files, please refer to the build section.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/getting-started/real-time/index.html b/docs/getting-started/real-time/index.html index 178952161e..3f7662b9e2 100644 --- a/docs/getting-started/real-time/index.html +++ b/docs/getting-started/real-time/index.html @@ -6,11 +6,11 @@ In principle, real-time execution is supported on all platforms. However, we recommend to use an optimized Linux installation. Operating System and Kernel For minimum latency several kernel and driver settings can be optimized. To get started, we recommend the Redhat Real-time Tuning Guide. -A PREEMPT_RT patched Linux kernel is recommended. Precompiled kernels for Fedora can be found here: http://ccrma.">Last modified 21.07.2024: Reuse stamp code for EMT synchron. generators (#315) (ce74d8e) +

More details:

Some proposals for the selection of appropriate server hardware:

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 5364ab38a4..fa11dd0d7a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,5 +4,5 @@ Create child page Create documentation issue Create project issue - Print entire section

Documentation

DPsim is a solver library for dynamic power system simulation.

  • It supports both the electromagnetic transient (EMT) and dynamic phasor (DP) domain for dynamic simulation.
  • A powerflow solver is included for standalone usage or to initialize dynamic simulations.
  • It provides a Python module which can be embedded in any Python 3 application / scripts.
  • The simulation core is implemented in highly-efficient C++ code.
  • It supports real-time execution with time-steps down to 50 uS.
  • It can load models in the IEC61970 Common Information Model (CIM) / Common Grid Model Exchange Standard (CGMES) XML format.
  • It can be interfaced to a variety of protocols and interfaces via VILLASnode.

Connect

Using or want to use DPsim? Find out more here:

LF Energy Slack - Chat with other users and developers and get help in the #sogno or #sogno-dpsim channel.

You can also send a direct message to

  • Markus Mirz
  • Jan Dinkelbach
  • Steffen Vogel

Contribute

If you want to get more involved by contributing to DPsim, please send us a Pull Request on GitHub.

Publications

If you are using DPsim for your research, please cite one of the following papers in your publications:


Overview

Getting Started

How to install, build and run the DPsim project.

Concepts

Development

How to extend DPsim.

Models

Mathematical description of the models implemented in DPsim.

Core Tasks

Description of typical simulation and development tasks.

Examples

Here you can find some examples to get started with DPsim.

Roadmap

Reference

Low level reference docs for DPsim.

Contribution Guidelines

How to contribute to DPsim.

+ Print entire section

Documentation

DPsim is a solver library for dynamic power system simulation.

  • It supports both the electromagnetic transient (EMT) and dynamic phasor (DP) domain for dynamic simulation.
  • A powerflow solver is included for standalone usage or to initialize dynamic simulations.
  • It provides a Python module which can be embedded in any Python 3 application / scripts.
  • The simulation core is implemented in highly-efficient C++ code.
  • It supports real-time execution with time-steps down to 50 uS.
  • It can load models in the IEC61970 Common Information Model (CIM) / Common Grid Model Exchange Standard (CGMES) XML format.
  • It can be interfaced to a variety of protocols and interfaces via VILLASnode.

Connect

Using or want to use DPsim? Find out more here:

LF Energy Slack - Chat with other users and developers and get help in the #sogno or #sogno-dpsim channel.

You can also send a direct message to

  • Markus Mirz
  • Jan Dinkelbach
  • Steffen Vogel

Contribute

If you want to get more involved by contributing to DPsim, please send us a Pull Request on GitHub.

Publications

If you are using DPsim for your research, please cite one of the following papers in your publications:


Overview

Getting Started

How to install, build and run the DPsim project.

Concepts

Development

How to extend DPsim.

Models

Mathematical description of the models implemented in DPsim.

Core Tasks

Description of typical simulation and development tasks.

Examples

Here you can find some examples to get started with DPsim.

Roadmap

Reference

Low level reference docs for DPsim.

Contribution Guidelines

How to contribute to DPsim.

\ No newline at end of file diff --git a/docs/models/branches/index.html b/docs/models/branches/index.html index 37ef483d70..a03fb127c7 100644 --- a/docs/models/branches/index.html +++ b/docs/models/branches/index.html @@ -1,8 +1,8 @@ -Branches | DPsim +Branches | DPsim
© 2024 The DPsim Authors All Rights Reserved
+ Print entire section

Branches

RX-Line

PI-Line

Transformer

\ No newline at end of file diff --git a/docs/models/index.html b/docs/models/index.html index cab2de0192..8eb9ce75e4 100644 --- a/docs/models/index.html +++ b/docs/models/index.html @@ -8,5 +8,5 @@ Create child page Create documentation issue Create project issue - Print entire section

Models

Mathematical description of the models implemented in DPsim.

The following models are currently available:

  • Dynamic phasors
    • inductor, capacitor, resistor
    • current and voltage source
    • load (PQ and Z type)
    • pi-line
    • transmission line (Bergeron)
    • synchronous generator dq-frame full order (Kundur, Krause)
    • inverter averaged
    • inverter with harmonics (comparable to switched model)
    • switch
  • EMT
    • inductor, capacitor, resistor
    • current and voltage source
    • load (Z type)
    • pi-line
    • transmission line (Bergeron)
    • synchronous generator dq-frame full order (Kundur, Krause)
    • inverter averaged
    • switch
+ Print entire section

Models

Mathematical description of the models implemented in DPsim.

The following models are currently available:

  • Dynamic phasors
    • inductor, capacitor, resistor
    • current and voltage source
    • load (PQ and Z type)
    • pi-line
    • transmission line (Bergeron)
    • synchronous generator dq-frame full order (Kundur, Krause)
    • inverter averaged
    • inverter with harmonics (comparable to switched model)
    • switch
  • EMT
    • inductor, capacitor, resistor
    • current and voltage source
    • load (Z type)
    • pi-line
    • transmission line (Bergeron)
    • synchronous generator dq-frame full order (Kundur, Krause)
    • inverter averaged
    • switch
\ No newline at end of file diff --git a/docs/models/induction-machine/index.html b/docs/models/induction-machine/index.html index 945aa39e7f..cbaae3cd8e 100644 --- a/docs/models/induction-machine/index.html +++ b/docs/models/induction-machine/index.html @@ -1,8 +1,8 @@ -Induction Machine | DPsim +Induction Machine | DPsim
© 2024 The DPsim Authors All Rights Reserved
+ Print entire section

Induction Machine

\ No newline at end of file diff --git a/docs/models/power-electronics/index.html b/docs/models/power-electronics/index.html index a7bf333ec5..7a106b53c0 100644 --- a/docs/models/power-electronics/index.html +++ b/docs/models/power-electronics/index.html @@ -1,8 +1,8 @@ -VS-Inverter | DPsim +VS-Inverter | DPsim
© 2024 The DPsim Authors All Rights Reserved
+ Print entire section

VS-Inverter

\ No newline at end of file diff --git a/docs/models/rlc-elements/index.html b/docs/models/rlc-elements/index.html index 4ed8d412e9..1df5fd460f 100644 --- a/docs/models/rlc-elements/index.html +++ b/docs/models/rlc-elements/index.html @@ -1,4 +1,4 @@ -RLC-Elements | DPsim +RLC-Elements | DPsim
© 2024 The DPsim Authors All Rights Reserved
+$$

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/models/synchronous-generator/index.html b/docs/models/synchronous-generator/index.html index 643760ce09..74115caacc 100644 --- a/docs/models/synchronous-generator/index.html +++ b/docs/models/synchronous-generator/index.html @@ -2,9 +2,9 @@ the full order dq0 reference frame model (EMT, DP) [Kundur, Power system stability and control, 1994] and the much simpler transient stability model (DP) [Eremia, Handbook of Electrical Power System Dynamics, 2003] The machine model is interfaced to the nodal analysis network solver through a current source, which only affects the source vector and not the system matrix Wang2010. Basic Equations The equations of the stator and rotor voltages are">
+\end{align}$$

Transient Stability Model

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/models/transformer/index.html b/docs/models/transformer/index.html index b0f929730b..29bcb66044 100644 --- a/docs/models/transformer/index.html +++ b/docs/models/transformer/index.html @@ -4,10 +4,10 @@ $$\begin{array}{c|c c c} ~ & j & k & l \cr \hline j & & & -1 \cr k & & & T \cr l & 1 & -T & 0 \end{array} \begin{pmatrix} v_j \cr v_k \cr i_{l} \cr \end{pmatrix} = \begin{pmatrix} \cr \cr 0\cr \end{pmatrix} $$The variable $j$ denotes the high voltage node while $k$ is the low voltage node."> @@ -38,5 +38,5 @@ \end{pmatrix} $$

The variable $j$ denotes the high voltage node while $k$ is the low voltage node. $l$ indicates the inserted row and column to accommodate the relation between the two voltages at the ends of the transformer. The transformer ratio is defined as $T = V_{j} / V_{k}$. -A phase shift can be introduced if $T$ is considered as a complex number.

Last modified 21.07.2024: Reuse stamp code for EMT synchron. generators (#315) (ce74d8e)
+A phase shift can be introduced if $T$ is considered as a complex number.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/architecture/index.html b/docs/overview/architecture/index.html index 2addc294bd..bbedf6194f 100644 --- a/docs/overview/architecture/index.html +++ b/docs/overview/architecture/index.html @@ -1,4 +1,4 @@ -Architecture | DPsim +Architecture | DPsim
© 2024 The DPsim Authors All Rights Reserved
+Instead, the attribute system is used to define signal type connections.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/attributes/index.html b/docs/overview/attributes/index.html index 465feb057f..8f3704ec89 100644 --- a/docs/overview/attributes/index.html +++ b/docs/overview/attributes/index.html @@ -1,4 +1,4 @@ -Attributes | DPsim +Attributes | DPsim
+Therefore, this task needs to be scheduled after the system solution that computes leftVector and before tasks that require the voltage and current interface vectors of the inductance, e.g. the task logging these values.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/index.html b/docs/overview/index.html index ab3a783b1c..3dcec3bab3 100644 --- a/docs/overview/index.html +++ b/docs/overview/index.html @@ -6,5 +6,5 @@ Create project issue Print entire section

Overview

DPsim is a real-time capable power system simulator that supports dynamic phasor and electromagnetic transient simulation as well as continuous powerflow. It primarily targets large-scale scenarios on commercial off-the-sheld hardware that require deterministic time steps in the range of micro- to milliseconds.

DPsim supports the CIM format as native input for the description of electrical network topologies, component parameters and load flow data, which is used for initialization. For this purpose, CIM++ is integrated in DPsim. Users interact with the C++ simulation kernel via Python bindings, which can be used to script the execution, schedule events, change parameters and retrieve results. Supported by the availability of existing Python frameworks like Numpy, Pandas and Matplotlib, Python scripts have been proven as an easy and flexible way to codify the complete workflow of a simulation from modelling to analysis and plotting, for example in Jupyter notebooks.

The DPsim simulation kernel is implemented in C++ and uses the Eigen linear algebra library. By using a system programming language like C++ and a highly optimized math library, optimal performance and real-time execution can be guaranteed. -The integration into the VILLASframework allows DPsim to be used in large-scale co-simulations.

Licensing

The project is released under the terms of the MPL 2.0.

Where should I go next?

+The integration into the VILLASframework allows DPsim to be used in large-scale co-simulations.

Licensing

The project is released under the terms of the MPL 2.0.

Where should I go next?


Architecture

Attributes

Scheduling

Interfacing with the MNA Solver

Subcomponent Handling

Interfaces

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/interfaces/index.html b/docs/overview/interfaces/index.html index eadece34fa..d920f8ac43 100644 --- a/docs/overview/interfaces/index.html +++ b/docs/overview/interfaces/index.html @@ -1,4 +1,4 @@ -Interfaces | DPsim +Interfaces | DPsim
© 2024 The DPsim Authors All Rights Reserved
+which have syncOnSimulationStart set, the Simulation::sync will be called before the first time step. This method will:

Note that this setting operates independently of the blockOnRead flag. This means that with both flags set, the simulation will block again after the synchronization at the start of the first time step until another value is received for the attribute in question.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/mnainterface/index.html b/docs/overview/mnainterface/index.html index 43fbdea65a..2bc19b346f 100644 --- a/docs/overview/mnainterface/index.html +++ b/docs/overview/mnainterface/index.html @@ -1,4 +1,4 @@ -Interfacing with the MNA Solver | DPsim +Interfacing with the MNA Solver | DPsim
+

For all other MNA methods, the MNASimPowerComp base class will just call the associated mnaComp... method. For more details, take a look at the implementations in MNASimPowerComp.cpp.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/scheduling/index.html b/docs/overview/scheduling/index.html index ed62a221d2..33f0025011 100644 --- a/docs/overview/scheduling/index.html +++ b/docs/overview/scheduling/index.html @@ -1,7 +1,7 @@ Scheduling | DPsim

Scheduling

DPsim implements level scheduling. A task T4 that depends on data modified by task T1 is scheduled to the level following the level of task T1. In the simplest case, all tasks of a level have to be finished before tasks of the next level are started.

image

The dependencies of tasks on data are determined by referencing the attributes that are read or modified by the task. -The scheduler computes the schedule prior to the simulation from the task dependency graph resulting from the tasks’ data dependencies.

© 2024 The DPsim Authors All Rights Reserved
+The scheduler computes the schedule prior to the simulation from the task dependency graph resulting from the tasks’ data dependencies.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/overview/subcomponents/index.html b/docs/overview/subcomponents/index.html index 8b7a3e487a..21969b7e65 100644 --- a/docs/overview/subcomponents/index.html +++ b/docs/overview/subcomponents/index.html @@ -1,7 +1,7 @@ Subcomponent Handling | DPsim
+
Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/reference/index.html b/docs/reference/index.html index 1f7a5fd001..6f1e94cc6f 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -1,7 +1,7 @@ Reference | DPsim
© 2024 The DPsim Authors All Rights Reserved
+It is helpful to understand the general structure of the C++ DPsim core components.

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/roadmap/index.html b/docs/roadmap/index.html index 933f7f4ce6..9aff370a6f 100644 --- a/docs/roadmap/index.html +++ b/docs/roadmap/index.html @@ -2,9 +2,9 @@ You can also check the Issues List or the Pull Requests on GitHub. Under Development Solver CUDA sparse implementation improve online system matrix computation and refactorization to support nonlinear elements in network solution (NICSLU integration) merge DAE solver branch Interfaces reimplement python interface using pybind and expose more models / functionalities add python based examples using the VILLASnode interface support matpower / pypower format for static simulation Tests, Examples, CI convert most of the examples to Python and test them against reference results in CI convert more gitlab CI jobs to github actions add IEEE39 system to examples Models VBR generator model SVC add tap-change to transfomer Ideas Solver improve integration of diakoptics solver Interfaces implement CIM reader in Python using new pybind interface and cimpy library ">

Roadmap

Short-term planning for new features is done on the GitHub Project board.

You can also check the Issues List or the Pull Requests on GitHub.

Under Development

  • Solver
    • CUDA sparse implementation
    • improve online system matrix computation and refactorization to support nonlinear elements in network solution (NICSLU integration)
    • merge DAE solver branch
  • Interfaces
    • reimplement python interface using pybind and expose more models / functionalities
    • add python based examples using the VILLASnode interface
    • support matpower / pypower format for static simulation
  • Tests, Examples, CI
    • convert most of the examples to Python and test them against reference results in CI
    • convert more gitlab CI jobs to github actions
    • add IEEE39 system to examples
  • Models
    • VBR generator model
    • SVC
    • add tap-change to transfomer

Ideas

  • Solver
    • improve integration of diakoptics solver
  • Interfaces
    • implement CIM reader in Python using new pybind interface and cimpy library
© 2024 The DPsim Authors All Rights Reserved
+ Print entire section

Roadmap

Short-term planning for new features is done on the GitHub Project board.

You can also check the Issues List or the Pull Requests on GitHub.

Under Development

  • Solver
    • CUDA sparse implementation
    • improve online system matrix computation and refactorization to support nonlinear elements in network solution (NICSLU integration)
    • merge DAE solver branch
  • Interfaces
    • reimplement python interface using pybind and expose more models / functionalities
    • add python based examples using the VILLASnode interface
    • support matpower / pypower format for static simulation
  • Tests, Examples, CI
    • convert most of the examples to Python and test them against reference results in CI
    • convert more gitlab CI jobs to github actions
    • add IEEE39 system to examples
  • Models
    • VBR generator model
    • SVC
    • add tap-change to transfomer

Ideas

  • Solver
    • improve integration of diakoptics solver
  • Interfaces
    • implement CIM reader in Python using new pybind interface and cimpy library
\ No newline at end of file diff --git a/docs/tasks/add-model/index.html b/docs/tasks/add-model/index.html index 4dd7b172b6..6b206bd056 100644 --- a/docs/tasks/add-model/index.html +++ b/docs/tasks/add-model/index.html @@ -1,7 +1,7 @@ Add New Model | DPsim
© 2024 The DPsim Authors All Rights Reserved
+

Attributes

Each components has a list of attributes, which has to be specified when creating the components class.

TODO: explain attribute system

Tasks for Pre/Post-step Functions

TODO: add example task dependency graph

Adding the new Component to DPsim

After finishing the implementation of the new component, it needs to be added to the following files:

Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/tasks/create-simulation/index.html b/docs/tasks/create-simulation/index.html index 6a7cdf5760..82a9a4b07d 100644 --- a/docs/tasks/create-simulation/index.html +++ b/docs/tasks/create-simulation/index.html @@ -1,7 +1,7 @@ Create New Simulation | DPsim
© 2024 The DPsim Authors All Rights Reserved
+$ make my-scenario
Last modified 16.08.2024: Addition of EMT::Ph1::Switch component (#312) (832c484)
\ No newline at end of file diff --git a/docs/tasks/index.html b/docs/tasks/index.html index 30b79feaf0..c58cfd23a5 100644 --- a/docs/tasks/index.html +++ b/docs/tasks/index.html @@ -8,5 +8,5 @@ Create child page Create documentation issue Create project issue - Print entire section

Core Tasks

Description of typical simulation and development tasks.

Each task should give the user

  • The prerequisites for this task, if any (this can be specified at the top of a multi-task page if they’re the same for all the page’s tasks. “All these tasks assume that you understand….and that you have already….”).
  • What this task accomplishes.
  • Instructions for the task. If it involves editing a file, running a command, or writing code, provide code-formatted example snippets to show the user what to do! If there are multiple steps, provide them as a numbered list.
  • If appropriate, links to related concept, tutorial, or example pages.

Add New Model

Extending the simulator with new component or control models.

Create New Simulation

Using DPsim for a new simulation scenario.

+ Print entire section

Core Tasks

Description of typical simulation and development tasks.

Each task should give the user

  • The prerequisites for this task, if any (this can be specified at the top of a multi-task page if they’re the same for all the page’s tasks. “All these tasks assume that you understand….and that you have already….”).
  • What this task accomplishes.
  • Instructions for the task. If it involves editing a file, running a command, or writing code, provide code-formatted example snippets to show the user what to do! If there are multiple steps, provide them as a numbered list.
  • If appropriate, links to related concept, tutorial, or example pages.

Add New Model

Extending the simulator with new component or control models.

Create New Simulation

Using DPsim for a new simulation scenario.

\ No newline at end of file diff --git a/doxygen/_components_8h_source.html b/doxygen/_components_8h_source.html index aaad48e1e5..229ceb7a3a 100644 --- a/doxygen/_components_8h_source.html +++ b/doxygen/_components_8h_source.html @@ -158,50 +158,51 @@
87 #include <dpsim-models/EMT/EMT_Ph1_VoltageSource.h>
88 #include <dpsim-models/EMT/EMT_Ph1_VoltageSourceNorton.h>
89 #include <dpsim-models/EMT/EMT_Ph1_VoltageSourceRamp.h>
-
90 
-
91 #include <dpsim-models/EMT/EMT_Ph3_AvVoltSourceInverterStateSpace.h>
-
92 #include <dpsim-models/EMT/EMT_Ph3_AvVoltageSourceInverterDQ.h>
-
93 #include <dpsim-models/EMT/EMT_Ph3_Capacitor.h>
-
94 #include <dpsim-models/EMT/EMT_Ph3_CurrentSource.h>
-
95 #include <dpsim-models/EMT/EMT_Ph3_Inductor.h>
-
96 #include <dpsim-models/EMT/EMT_Ph3_ReducedOrderSynchronGeneratorVBR.h>
-
97 #include <dpsim-models/EMT/EMT_Ph3_Resistor.h>
-
98 #include <dpsim-models/EMT/EMT_Ph3_SeriesResistor.h>
-
99 #include <dpsim-models/EMT/EMT_Ph3_SeriesSwitch.h>
-
100 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator3OrderVBR.h>
-
101 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator4OrderPCM.h>
-
102 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator4OrderVBR.h>
-
103 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator5OrderVBR.h>
-
104 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator6aOrderVBR.h>
-
105 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator6bOrderVBR.h>
-
106 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorDQ.h>
-
107 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorDQTrapez.h>
-
108 #include <dpsim-models/EMT/EMT_Ph3_VoltageSource.h>
-
109 #include <dpsim-models/EMT/EMT_Ph3_VoltageSourceNorton.h>
-
110 #ifdef WITH_SUNDIALS
-
111 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorDQODE.h>
-
112 #endif
-
113 #include <dpsim-models/EMT/EMT_Ph3_NetworkInjection.h>
-
114 #include <dpsim-models/EMT/EMT_Ph3_PiLine.h>
-
115 #include <dpsim-models/EMT/EMT_Ph3_RXLoad.h>
-
116 #include <dpsim-models/EMT/EMT_Ph3_RxLine.h>
-
117 #include <dpsim-models/EMT/EMT_Ph3_Switch.h>
-
118 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorIdeal.h>
-
119 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorTrStab.h>
-
120 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorVBR.h>
-
121 #include <dpsim-models/EMT/EMT_Ph3_Transformer.h>
-
122 
-
123 #include <dpsim-models/Signal/CosineFMGenerator.h>
-
124 #include <dpsim-models/Signal/DecouplingLine.h>
-
125 #include <dpsim-models/Signal/DecouplingLineEMT.h>
-
126 #include <dpsim-models/Signal/Exciter.h>
-
127 #include <dpsim-models/Signal/FIRFilter.h>
-
128 #include <dpsim-models/Signal/FrequencyRampGenerator.h>
-
129 #include <dpsim-models/Signal/Integrator.h>
-
130 #include <dpsim-models/Signal/SignalGenerator.h>
-
131 #include <dpsim-models/Signal/SineWaveGenerator.h>
-
132 #include <dpsim-models/Signal/TurbineGovernor.h>
-
133 #include <dpsim-models/Signal/TurbineGovernorType1.h>
+
90 #include <dpsim-models/EMT/EMT_Ph1_Switch.h>
+
91 
+
92 #include <dpsim-models/EMT/EMT_Ph3_AvVoltSourceInverterStateSpace.h>
+
93 #include <dpsim-models/EMT/EMT_Ph3_AvVoltageSourceInverterDQ.h>
+
94 #include <dpsim-models/EMT/EMT_Ph3_Capacitor.h>
+
95 #include <dpsim-models/EMT/EMT_Ph3_CurrentSource.h>
+
96 #include <dpsim-models/EMT/EMT_Ph3_Inductor.h>
+
97 #include <dpsim-models/EMT/EMT_Ph3_ReducedOrderSynchronGeneratorVBR.h>
+
98 #include <dpsim-models/EMT/EMT_Ph3_Resistor.h>
+
99 #include <dpsim-models/EMT/EMT_Ph3_SeriesResistor.h>
+
100 #include <dpsim-models/EMT/EMT_Ph3_SeriesSwitch.h>
+
101 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator3OrderVBR.h>
+
102 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator4OrderPCM.h>
+
103 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator4OrderVBR.h>
+
104 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator5OrderVBR.h>
+
105 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator6aOrderVBR.h>
+
106 #include <dpsim-models/EMT/EMT_Ph3_SynchronGenerator6bOrderVBR.h>
+
107 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorDQ.h>
+
108 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorDQTrapez.h>
+
109 #include <dpsim-models/EMT/EMT_Ph3_VoltageSource.h>
+
110 #include <dpsim-models/EMT/EMT_Ph3_VoltageSourceNorton.h>
+
111 #ifdef WITH_SUNDIALS
+
112 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorDQODE.h>
+
113 #endif
+
114 #include <dpsim-models/EMT/EMT_Ph3_NetworkInjection.h>
+
115 #include <dpsim-models/EMT/EMT_Ph3_PiLine.h>
+
116 #include <dpsim-models/EMT/EMT_Ph3_RXLoad.h>
+
117 #include <dpsim-models/EMT/EMT_Ph3_RxLine.h>
+
118 #include <dpsim-models/EMT/EMT_Ph3_Switch.h>
+
119 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorIdeal.h>
+
120 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorTrStab.h>
+
121 #include <dpsim-models/EMT/EMT_Ph3_SynchronGeneratorVBR.h>
+
122 #include <dpsim-models/EMT/EMT_Ph3_Transformer.h>
+
123 
+
124 #include <dpsim-models/Signal/CosineFMGenerator.h>
+
125 #include <dpsim-models/Signal/DecouplingLine.h>
+
126 #include <dpsim-models/Signal/DecouplingLineEMT.h>
+
127 #include <dpsim-models/Signal/Exciter.h>
+
128 #include <dpsim-models/Signal/FIRFilter.h>
+
129 #include <dpsim-models/Signal/FrequencyRampGenerator.h>
+
130 #include <dpsim-models/Signal/Integrator.h>
+
131 #include <dpsim-models/Signal/SignalGenerator.h>
+
132 #include <dpsim-models/Signal/SineWaveGenerator.h>
+
133 #include <dpsim-models/Signal/TurbineGovernor.h>
+
134 #include <dpsim-models/Signal/TurbineGovernorType1.h>