Refactor VBR models
Opened this issue · 0 comments
-
Reuse the order-specific auxiliar constants in the domain specific VBR models
- Example 4th order:
- EMT_Ph3_SynchronGenerator4OrderVBR
- The same constants are also used by
DP_Ph1_SynchronGenerator4OrderVBR
andSP_Ph1_SynchronGenerator4OrderVBR
- Instantiate and calculate the order-specific auxiliar constants already in
Base_ReducedOrderSynchronGenerator
- Same goes for 3rd and 6th order
- Stick for 3rd/4th order model to nomenclature for auxiliar constants introduced in 6th order model, i.e. use
_t
as subscript e.g.mAd_t
- Example 4th order:
-
Specify and reuse the order-specific resistance matrix constants in the domain specific VBR models
- Example 4th order
- DP_Ph1_SynchronGenerator4OrderVBR
- The same constants can also used by
EMT_Ph3_SynchronGenerator4OrderVBR
andSP_Ph1_SynchronGenerator4OrderVBR
- Instantiate and calculate the order-specific resistance matrix constants already in
Base_ReducedOrderSynchronGenerator
- Same goes for 3rd and 6th order
- Example 4th order
-
Remove
Ef
from auxiliar constants- Example 4th order:
- Remove
Ef
-
Rename
Cq
toDq
- Example 4th order:
-
Reconsider zero component in EMT_Ph3 models
-
Use resistance matrix constants
A
andB
inEMT_Ph3_SynchronGenerator4OrderVBR
-
Simplify the DP-DQ interface to obtain armature voltage (and armature current), which currently looks as follows
dpsim/models/Source/DP/DP_Ph1_SynchronGeneratorVBR.cpp
Lines 97 to 102 in 2499325
Instead of applying DP-EMT and EMT-DQ transformation, directly apply DP-DQ transformation, as e.g. done for the voltage behind the reactance
using
dpsim/models/Source/DP/DP_Ph1_SynchronGeneratorVBR.cpp
Lines 65 to 67 in 2499325
-
Harmonize implementation of DQ-DP and DQ-SP interface implementation
dpsim/models/Source/SP/SP_Ph1_SynchronGeneratorVBR.cpp
Lines 80 to 82 in 15657fe
-
Simplify definition of VBR resistance matrix in DP_Ph1 models according to equivalent derivation
dpsim/models/Source/DP/DP_Ph1_SynchronGeneratorVBR.cpp
Lines 47 to 50 in e6f3776
-
Rename
DP_Ph1_SynchronGeneratorVBR
andSP_Ph1_SynchronGeneratorVBR
to be consistent withEMT_Ph3_ReducedOrderSynchronGeneratorVBR
-
Make
SGModel
of typeString
. Then you can use'6a'
and'6b'
instead of6
and7
, which can become confusing in particular if we have models6c
,6d
etc. in the future -
We can add another case distinction during calculation of constants in
Base::ReducedOrderSynchronGenerator
, sincemAd_t
andmBd_t
are only used within the fourth-order model.
dpsim/dpsim-models/src/Base/Base_ReducedOrderSynchronGenerator.cpp
Lines 216 to 217 in 2cca71a