Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Modelica Models from "DAE Solvers for Large-Scale Hybrid Models"

This repository contains specialized versions of the the Nordic44 (N44) power system model, from the OpenIPSL library, which has been modified and used for simulation in the following paper (to be) presented in the International Modelica Conference 2019:

Erik Henningsson, Hans Olsson and Luigi Vanfretti, "DAE Solvers for Large-Scale Hybrid Models," Proceedings of the 13th International Modelica Conference, Regensburg, Germany, March 4–6, 2019.

Please see the full paper on the scope of usage for the models. You can download the full paper from the conference website when it becomes available, or from this repository under ./Paper/.

How to Simulate it?

The DAE mode functionality demonstrated by the models in this repository was introduced in Dymola 2019 and 3DEXPERIENCE 2019x (DBM, Dynamic Behavior Modeling). We exemplify how to simulate the models using Dymola.

Using Dymola 2019 or newer, follow the steps below:

  • Load the OpenIPSL library distributed with this repository under ./Models/ by uncompressing the .zip file, in your local drive.
  • In Dymola, File/Open ./OpenIpSL-master/OpenIPSL/
  • In Dymola, File/Open the N44 package ./N44/
  • In Dymola, load the package from File/Open. The package browser should look like this:


  • Right click Nordi44_Original_Case_Bus_Fault and select "Simulation model".


  • Simulate and you shall obtain the results shown below.


Models used for the publication

The models that were used in the experiments section of the article can be found in the package These are Nordic44_Original_Case_Line_Opening, Nordic44_Original_Case_Bus_Fault, and Nordic44_Base_Case_StateEvents3. The Dymola experiment annotations have been set up in these models as to reproduce the DAE mode test cases in the publication.

These three models can be directly used out-of-the-box to recreate the experiments of the article. However, in the following sections we also outline instructions on how to modify the original N44 models to recreate these test cases.

Reproducing results from previous work

  • To reproduce results from the original N44 model publication here Insert a PwFault component (see procedure below) in Nordic44_Original_Case and connect it to bus_3100 as in the figure below. Set the fault parameters as: pwFault.R = 0, and pwFault.X = 0.

original fault

  • This scenario already triggers state events. When the fault at bus_3100 is applied, the excitation control systems inside several of the generators reach their max limit, the maximum AVR output V_RMAX0. This triggers state events and re-initializations of the internal states in the SimpleLagLim non-wind-up transfer functions. Because the desired set point can’t be reached these integral controllers continue to wind-up and several resets are required, thus resulting in several state events.

original sim

original sim

  • To perform further analysis on state events the following modifications were made to the original model.

Modifications made to the N44 model to introduce state events

  • To create a state event a new electric power generator at bus 5610 was included. The generator is equipped with a controller modeled using the EXST1 "IEEE Type AC2A Excitation System" model from OpenIPSL, shown below.


  • The EXST1 controller model includes an if-elseif-else statement that will change the output of the model depending on the value of the generator field voltage. This creates an event that depends on the value of the state of Vm1 in the figure below.


Inspecting the text view of the model, it can be observed that the value of the parameter K_C has been changed from 0.2 to 1.5 so that the condition EFD > ECOMP*VRMAX – K_C*XADIFD is fulfilled more easily and therefore trigger a state event quickly.


  • To trigger the state event, a fault model (pwFault) was added to bus 5603 near this new generator, as shown in the first figure of this section. The fault settings are shown next: fault

  • The fault is applied at t = 61.050 s and cleared at t = 61.15. After this time, the variable EFD present a state event at t = 61.5066 s as indicated by the event log and the plot of the variable EFD. fault fault

  • Note: The system is simulated first without the fault from 0.0 s to 60 s to let the system arrive to equilibrium. This is because the initial conditions have changed change due to the inclusion of the new generator. See the next section on how to perform the simulation required for initialization.

Simulating State Events at t=60

  • Step 1: The model Nordic 44 Base_Case_StateEvents2 which does not include the fault is used to generate a new set of initial conditions. This is required because of the inclusion of the new generator at bus 5610 which change the operating point of the whole system. This model is simulated from t = 0.0 s to t = 60 s, time at which it is consider the transient response has extinguished. The figure shows the behavior of the variable of interest.


  • Step 2: Make sure the parameter K_C is equal to 1.5 in the EXST1 controller model of the new generator at bus 5610 (N44.Base_Case.Generators.GenEventTest) in the model Nordic 44 Base_Case_StateEvents.


  • Step 3: The result file of the simulation above can be used to start a new simulation by selecting Simulation > Continue > Import initial...) .


The simulation executed in Step 1 is used to continue the simulation using the model Nordic 44 Base_Case_StateEvents from t = 60 s to t= 65 s. In this case the fault is applied. The result of the simulation is shown in the following figure.


  • Step 4: The above steps are equivalent to simulate the model Nordic 44 Base_Case_StateEvents from t = 0 s to t = 65 s. the fault is applied at t = 61.05 s. This long time is necessary to ensure that the system is in steady-state before the application of the fault, due to the connection of the new generator. The following figure shows the result.


  • Note: All the simulations were performed using the "DAE mode" and the following settings:


Development and contribution

The models in this repository are maintained by Erik Henningsson and Luigi Vanfretti.

Contributions are welcome via pull requests.

License - No Warranty

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the GNU Public License version 3.

Copyright (C) 2018, Erik Henningsson and Luigi Vanfretti.


Modelica models from the 2019 International Modelica Conference for the paper "DAE Solvers for Large-Scale Hybrid Models" by Erik Henningsson, Hans Olsson and Luigi Vanfretti







No releases published


No packages published