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. A pre-print is available under
./Doc/; note that this is the version submitted for review, and not the final version of the paper, which you can obtain in the website cited above.
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
OpenIPSL-master.zip, in your local drive.
- In Dymola, File/Open
- In Dymola, File/Open the N44 package
- In Dymola, load the
Nordic44_DAEModeTestCases.mopackage from File/Open. The package browser should look like this:
- Right click
Nordi44_Original_Case_Bus_Faultand 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
Nordic44_DAEModeTestCases.mo. These are
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_Caseand connect it to
bus_3100as in the figure below. Set the fault parameters as:
pwFault.R = 0, and
pwFault.X = 0.
- This scenario already triggers state events. When the fault at
bus_3100is 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
SimpleLagLimnon-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.
- 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-elsestatement 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
Vm1in 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.
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_StateEvents2which 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_Cis equal to 1.5 in the
EXST1 controllermodel 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_StateEventsfrom 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
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.