Network.create_curve_reactive_limits(df=None, **kwargs)[source]#

Creates reactive limits as “curves”.

Curves are actually composed of line segments, defined by a list of points. Each row of the input data actually defines 2 points: one for the minimum limit, one for the maximum limit, for the given active power value.

Return type:



Data may be provided as a dataframe or as keyword arguments. In the latter case, all arguments must have the same length.

Valid attributes are:

  • id: the identifier of the generator

  • p: active power, in MW, for which this row defines limits

  • min_q: minimum reactive limit at this active power value, in MVAr

  • max_q: maximum reactive limit at this active power value, in MVAr

At least 2 rows must be defined for each generator, for 2 different active power values. Previously defined limits for a given generator, if present, will be replaced by the new ones.


Generator GEN-1 will be able to provide 150MVAr when P=0MW, and only 100MVAr when it generates 100MW:

network.create_curve_reactive_limits(id=['GEN-1', 'GEN-1'],
                                     p=[0, 100],
                                     min_q=[-150, -100],
                                     max_q=[150, 100])