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.
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 fileOpenIPSL-master.zip
, in your local drive. - In Dymola, File/Open
./OpenIpSL-master/OpenIPSL/package.mo
- In Dymola, File/Open the N44 package
./N44/package.mo
- In Dymola, load the
Nordic44_DAEModeTestCases.mo
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.
The models that were used in the experiments section of the article can be found in the package Nordic44_DAEModeTestCases.mo
. 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.
- To reproduce results from the original N44 model publication here
Insert a PwFault component (see procedure below) in
Nordic44_Original_Case
and connect it tobus_3100
as in the figure below. Set the fault parameters as:pwFault.R = 0
, andpwFault.X = 0
.
- 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 outputV_RMAX0
. This triggers state events and re-initializations of the internal states in theSimpleLagLim
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.
- To perform further analysis on state events the following modifications were made to the original model.
- 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 ofVm1
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:
-
The fault is applied at
t = 61.050
s and cleared att = 61.15
. After this time, the variable EFD present a state event att = 61.5066
s as indicated by the event log and the plot of the variable EFD. -
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.
- 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 theEXST1 controller
model of the new generator at bus 5610 (N44.Base_Case.Generators.GenEventTest
) in the modelNordic 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:
The models in this repository are maintained by Erik Henningsson and Luigi Vanfretti.
Contributions are welcome via pull requests.
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.