Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ACS
Public
Power System Simulation and Optimization
DPsim
DPsim
Commits
2e33a77b
Commit
2e33a77b
authored
Apr 27, 2020
by
Jan Dinkelbach
Committed by
Markus Mirz
Jul 17, 2020
Browse files
make inheritance from TopologicalPowerComp virtual to enable use in component base classes
parent
872b0cb6
Changes
81
Hide whitespace changes
Inline
Side-by-side
models/Include/cps/SimPowerComp.h
View file @
2e33a77b
...
...
@@ -15,7 +15,7 @@
namespace
CPS
{
/// Base class for all components that are transmitting power.
template
<
typename
VarType
>
class
SimPowerComp
:
public
TopologicalPowerComp
{
class
SimPowerComp
:
public
virtual
TopologicalPowerComp
{
protected:
/// List of Terminals
...
...
models/Source/DP/DP_Ph1_AvVoltageSourceInverterDQ.cpp
View file @
2e33a77b
...
...
@@ -11,8 +11,9 @@
using
namespace
CPS
;
DP
::
Ph1
::
AvVoltageSourceInverterDQ
::
AvVoltageSourceInverterDQ
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
,
Bool
withTrafo
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
DP
::
Ph1
::
AvVoltageSourceInverterDQ
::
AvVoltageSourceInverterDQ
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
,
Bool
withTrafo
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
if
(
withTrafo
)
{
setVirtualNodeNumber
(
5
);
mConnectionTransformer
=
DP
::
Ph1
::
Transformer
::
make
(
mName
+
"_trans"
,
Logger
::
Level
::
debug
);
...
...
models/Source/DP/DP_Ph1_Capacitor.cpp
View file @
2e33a77b
...
...
@@ -12,7 +12,7 @@ using namespace CPS;
using
namespace
CPS
::
DP
::
Ph1
;
DP
::
Ph1
::
Capacitor
::
Capacitor
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
mEquivCurrent
=
{
0
,
0
};
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_ControlledVoltageSource.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
ControlledVoltageSource
::
ControlledVoltageSource
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
1
);
setTerminalNumber
(
2
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_CurrentSource.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
CurrentSource
::
CurrentSource
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setTerminalNumber
(
2
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_Inductor.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
Inductor
::
Inductor
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
mEquivCurrent
=
{
0
,
0
};
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_Inverter.cpp
View file @
2e33a77b
...
...
@@ -14,7 +14,7 @@ using namespace CPS;
using
namespace
std
;
DP
::
Ph1
::
Inverter
::
Inverter
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setTerminalNumber
(
1
);
setVirtualNodeNumber
(
1
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_NetworkInjection.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
NetworkInjection
::
NetworkInjection
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
1
);
setTerminalNumber
(
1
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_PQLoadCS.cpp
View file @
2e33a77b
...
...
@@ -12,7 +12,7 @@ using namespace CPS;
DP
::
Ph1
::
PQLoadCS
::
PQLoadCS
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setTerminalNumber
(
1
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_PiLine.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
PiLine
::
PiLine
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
1
);
setTerminalNumber
(
2
);
...
...
models/Source/DP/DP_Ph1_RXLoad.cpp
View file @
2e33a77b
...
...
@@ -12,7 +12,7 @@ using namespace CPS;
DP
::
Ph1
::
RXLoad
::
RXLoad
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setTerminalNumber
(
1
);
mSLog
->
info
(
"Create {} {}"
,
this
->
type
(),
name
);
...
...
models/Source/DP/DP_Ph1_ResIndSeries.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
ResIndSeries
::
ResIndSeries
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
mEquivCurrent
=
{
0
,
0
};
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_Resistor.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
Resistor
::
Resistor
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
setTerminalNumber
(
2
);
...
...
models/Source/DP/DP_Ph1_RxLine.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
RxLine
::
RxLine
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
1
);
setTerminalNumber
(
2
);
...
...
models/Source/DP/DP_Ph1_Switch.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
Switch
::
Switch
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setTerminalNumber
(
2
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_SynchronGeneratorIdeal.cpp
View file @
2e33a77b
...
...
@@ -13,7 +13,7 @@ using namespace CPS;
DP
::
Ph1
::
SynchronGeneratorIdeal
::
SynchronGeneratorIdeal
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
1
);
setTerminalNumber
(
1
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_SynchronGeneratorTrStab.cpp
View file @
2e33a77b
...
...
@@ -10,7 +10,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
SynchronGeneratorTrStab
::
SynchronGeneratorTrStab
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
2
);
setTerminalNumber
(
1
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_Transformer.cpp
View file @
2e33a77b
...
...
@@ -11,10 +11,14 @@
using
namespace
CPS
;
DP
::
Ph1
::
Transformer
::
Transformer
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
Logger
::
Level
logLevel
,
Bool
withResistiveLosses
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
if
(
withResistiveLosses
)
setVirtualNodeNumber
(
3
);
else
setVirtualNodeNumber
(
2
);
setTerminalNumber
(
2
);
setVirtualNodeNumber
(
1
);
mSLog
->
info
(
"Create {} {}"
,
this
->
type
(),
name
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
@@ -34,12 +38,8 @@ SimPowerComp<Complex>::Ptr DP::Ph1::Transformer::clone(String name) {
void
DP
::
Ph1
::
Transformer
::
setParameters
(
Real
ratioAbs
,
Real
ratioPhase
,
Real
resistance
,
Real
inductance
)
{
Base
::
Ph1
::
Transformer
::
setParameters
(
ratioAbs
,
ratioPhase
,
resistance
,
inductance
);
if
(
resistance
>
0
)
setVirtualNodeNumber
(
3
);
else
setVirtualNodeNumber
(
2
);
Base
::
Ph1
::
Transformer
::
setParameters
(
ratioAbs
,
ratioPhase
,
resistance
,
inductance
);
mSLog
->
info
(
"Resistance={} [Ohm] Inductance={} [Ohm] (referred to primary side)"
,
resistance
,
inductance
);
mSLog
->
info
(
"Tap Ratio={} [ ] Phase Shift={} [deg]"
,
ratioAbs
,
ratioPhase
);
...
...
models/Source/DP/DP_Ph1_VoltageSource.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
VoltageSource
::
VoltageSource
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setVirtualNodeNumber
(
1
);
setTerminalNumber
(
2
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
models/Source/DP/DP_Ph1_VoltageSourceNorton.cpp
View file @
2e33a77b
...
...
@@ -11,7 +11,7 @@
using
namespace
CPS
;
DP
::
Ph1
::
VoltageSourceNorton
::
VoltageSourceNorton
(
String
uid
,
String
name
,
Logger
::
Level
logLevel
)
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
)
{
:
SimPowerComp
<
Complex
>
(
uid
,
name
,
logLevel
),
TopologicalPowerComp
(
uid
,
name
,
logLevel
)
{
setTerminalNumber
(
2
);
mIntfVoltage
=
MatrixComp
::
Zero
(
1
,
1
);
mIntfCurrent
=
MatrixComp
::
Zero
(
1
,
1
);
...
...
Prev
1
2
3
4
5
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment