Static Generator
Note
Static generators should always have a positive p_mw value, since all power values are given in the generator convention. If you want to model constant power consumption, it is recommended to use a load element instead of a static generator with negative active power value. If you want to model a voltage controlled generator, use the generator element.
See also
Create Function
- pandapower.create_sgen(net, bus, p_mw, q_mvar=0, sn_mva=nan, name=None, index=None, scaling=1.0, type='wye', in_service=True, max_p_mw=nan, min_p_mw=nan, max_q_mvar=nan, min_q_mvar=nan, controllable=nan, k=nan, rx=nan, id_q_capability_characteristic=None, reactive_capability_curve=False, curve_style=None, current_source=True, generator_type=None, max_ik_ka=nan, kappa=nan, lrc_pu=nan, **kwargs)
Adds one static generator in table net[“sgen”].
Static generators are modelled as positive and constant PQ power. This element is used to model generators with a constant active and reactive power feed-in. If you want to model a voltage controlled generator, use the generator element instead.
gen, sgen and ext_grid in the grid are modelled in the generator system! If you want to model the generation of power, you have to assign a positive active power to the generator. Please pay attention to the correct signing of the reactive power as well (positive for injection and negative for consumption).
- Parameters:
created (**net** - The net within this static generator should be)
**bus** (int)
**p_mw** (float) - The active power of the static generator (positive for generation!)
**q_mvar** (float, 0)
**sn_mva** (float, None)
**name** (string, None)
**index** (int, None)
**scaling** (float, 1.)
q_mvar. (Multiplies with p_mw and)
**type** (string, None) – wye/delta
**in_service** (boolean)
**max_p_mw** (float, NaN)
**min_p_mw** (float, NaN)
**max_q_mvar** (float, NaN)
**min_q_mvar** (float, NaN)
**controllable** (bool, NaN)
**k** (float, NaN)
**rx** (float, NaN)
**reactive_capability_curve** (bool, False)
**id_q_capability_characteristic** (int, None) - references the index of the characteristic from the net.q_capability_characteristic table (id_q_capability_curve column)
**curve_style** (string, None) - The curve style of the generator represents the relationship between active power (P) and reactive power (Q)
**generator_type** (str, None) - can be one of "current_source" (full size converter), "async" (asynchronous generator), or "async_doubly_fed" (doubly fed asynchronous generator, DFIG)
**lrc_pu** (float, nan)
**max_ik_ka** (float, nan) - the highest instantaneous short-circuit value in case of a three-phase short-circuit (provided by the manufacturer)
**kappa** (float, nan) - the factor for the calculation of the peak short-circuit current, referred to the high-voltage side (provided by the manufacturer). Relevant if the generator_type is "async_doubly_fed". If the superposition method is used (use_pre_fault_voltage=True)
**current_source** (bool, True) –
net (pandapowerNet)
bus (int | integer)
p_mw (float)
q_mvar (float)
sn_mva (float)
name (str | None)
index (int | integer | None)
scaling (float)
type (Literal['wye', 'delta'])
in_service (bool)
max_p_mw (float)
min_p_mw (float)
max_q_mvar (float)
min_q_mvar (float)
controllable (bool | float)
k (float)
rx (float)
id_q_capability_characteristic (int | None)
reactive_capability_curve (bool)
current_source (bool)
generator_type (Literal['current_source', 'async', 'async_doubly_fed'] | None)
max_ik_ka (float)
kappa (float)
lrc_pu (float)
- Returns:
index (int) - The unique ID of the created sgen
- Return type:
int | integer
Example
create_sgen(net, 1, p_mw=120)
- pandapower.create_sgen_from_cosphi(net, bus, sn_mva, cos_phi, mode, **kwargs)
Creates an sgen element from rated power and power factor cos(phi).
- Parameters:
created (**net** - The net within this static generator should be)
**bus** (int)
**sn_mva** (float)
**cos_phi** (float)
**mode** (str) - "underexcited" (Q absorption, decreases voltage) or "overexcited" (Q injection, increases voltage)
net (pandapowerNet)
bus (int | integer)
sn_mva (float)
cos_phi (float)
mode (Literal['underexcited', 'overexcited'])
- Returns:
index (int) - The unique ID of the created sgen
- Return type:
int | integer
gen, sgen, and ext_grid are modelled in the generator point of view. Active power will therefore be positive for generation, and reactive power will be negative for underexcited behavior (Q absorption, decreases voltage) and positive for overexcited behavior (Q injection, increases voltage).
Input Parameters
net.sgen
Parameter |
Datatype |
Value Range |
Explanation |
name |
string |
name of the static generator |
|
type |
string |
naming conventions:
“PV” - photovoltaic system
“WP” - wind power system
“CHP” - combined heating and power system
|
type of generator |
bus* |
integer |
index of connected bus |
|
p_mw* |
float |
\(\leq\) 0 |
active power of the static generator [MW] |
q_mvar* |
float |
reactive power of the static generator [MVAr] |
|
sn_mva |
float |
\(>\) 0 |
rated power ot the static generator [MVA] |
scaling* |
float |
\(\geq\) 0 |
scaling factor for the active and reactive power |
max_p_mw** |
float |
maximum active power [MW] |
|
min_p_mw** |
float |
minimum active power [MW] |
|
max_q_mvar** |
float |
maximum reactive power [MVAr] |
|
min_q_mvar** |
float |
minimum reactive power [MVAr] |
|
controllable** |
bool |
states if sgen is controllable or not, sgen will not be used as a flexibility if it is not controllable |
|
k*** |
float |
\(\geq\) 0 |
ratio of short circuit current to nominal current |
rx*** |
float |
\(\geq\) 0 |
R/X ratio for short circuit impedance. Only relevant if type is specified as motor so that sgen is treated as asynchronous motor |
in_service* |
boolean |
True / False |
specifies if the generator is in service. |
id_q_capability_characteristic |
integer |
references the index of the characteristic from the q_capability_characteristic |
|
curve_style |
string |
either “straightLineYValues” or “constantYValue” |
the style of the static generator reactive power capability curve |
reactive_capability_curve |
boolean |
True / False |
True if static generator has dependency on q characteristic |
*necessary for executing a power flow calculation
**optimal power flow parameter
***short-circuit calculation parameter
Static Generator Reactive Power Capability Curve Characteristics
The static generator reactive power capability curve characteristics provide a reference framework for determining the reactive power limits (Qmin and Qmax) of static generators based on their active power output. The reactive power capability curve data can be imported into pandapower in a tabular format, populating net.q_capability_curve_table. The characteristics can either be automatically generated via the CIM CGMES to pandapower converter or the PowerFactory to pandapower converter, or they can be created by the user using the pandapower.control.util.create_q_capability_characteristics_object function, provided that the q_capability_curve_table is previously defined in the network case.
Q capability curve characteristic objects are then generated from net.q_capability_curve_table, populating net.q_capability_characteristic. The characteristics can either be automatically generated via the CIM CGMES to pandapower converter or the PowerFactory to pandapower converter, or they can be created by the user using the pandapower.control.util.create_q_capability_characteristics_object function, provided that the q_capability_curve_table is previously defined in the network case.
If the variable reactive_capability_curve in net.sgen is set to True, it indicates that pairs of P vs Qmin/Qmax values and the corresponding characteristic are defined in net.q_capability_curve_table and net.q_capability_characteristic respectively. This overrides the default reactive power limits of the static generator when an optimal power flow is executed for static generators that have their “controllable” flag set to True. The variable id_q_capability_characteristic in net.sgen establishes a direct reference to the id_q_capability_curve column in both net.q_capability_curve_table and net.q_capability_characteristic, thereby associating each static generator with its corresponding capability curve.
Below is an example of a q_capability_curve_table populated for two sample static generators.
id_q_capability_curve |
p_mw |
q_min_mvar |
q_max_mvar |
|
0 |
0 |
-63.00999832 |
-10.01000023 |
18.01000023 |
1 |
0 |
-20 |
-27.01000023 |
32.00999832 |
2 |
0 |
-1 |
-29.01000023 |
33.00999832 |
3 |
0 |
0 |
-28.82818222 |
32.73727036 |
4 |
0 |
10 |
-27.01000023 |
30.01000023 |
5 |
0 |
20 |
-25.01000023 |
28.01000023 |
6 |
0 |
30 |
-23.01000023 |
25.01000023 |
7 |
0 |
38 |
-21.01000023 |
23.01000023 |
8 |
0 |
50 |
-19.01000023 |
21.01000023 |
9 |
0 |
51.00999832 |
-18.01000023 |
20.01000023 |
10 |
1 |
-40.00999832 |
-5.010000229 |
5.010000229 |
11 |
1 |
0 |
-5.010000229 |
5.010000229 |
12 |
1 |
40.00999832 |
-5.010000229 |
5.010000229 |
The table below illustrates an example of a q_capability_characteristic table populated for two static generators.
id_q_capability_curve |
q_max_characteristic |
q_min_characteristic |
|
0 |
0 |
Characteristic |
Characteristic |
1 |
1 |
Characteristic |
Characteristic |
Note
reactive_capability_curve has to be set to True, and id_q_capability_characteristic and curve_style variables need to be populated in order to consider the reactive power limits of the corresponding characteristic.
Each static generator supports only a single reactive_capability_curve.
In this version, only two types of generator reactive power capability characteristics are supported: 1. constantYValue: The reactive power values are assumed constant until the next curve point and prior to the first curve point. 2. straightLineYValues: The reactive power values are assumed to be a straight line between values.
Linear interpolation is employed to determine Qmin and Qmax based on the given active power dispatch for the above two curve types.
The function pandapower.control.util.q_capability_curve_table_diagnostic is available to perform sanity checks on the generator reactive power capability curve table.
Electric Model
Static Generators are modelled as PQ-buses in the power flow calculation:
The PQ-Values are calculated from the parameter table values as:
Note
The apparent power value sn_mva is provided as additional information for usage in controller or other applications based on pandapower. It is not considered in the power flow!
Result Parameters
net.res_sgen
Parameter |
Datatype |
Explanation |
p_mw |
float |
resulting active power demand after scaling [MW] |
q_mvar |
float |
resulting reactive power demand after scaling [MVAr] |
The power values in the net.res_sgen table are equivalent to \(P_{sgen}\) and \(Q_{sgen}\).