Inverter Modelling: 1 Purpose

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

May 30, 2020

Inverter Modelling
Celso Rocha, Jouni Peppanen, Paulo Radatz, Matthew Rylander, Roger Dugan

1 Purpose
This technical note describes the inverter modelling applied to PVSystem and Storage elements,
recently implemented in 2019.

2 Why?
OpenDSS inverter modelling has passed through an update, released at the end of 2019. These are
mainly related to the new minimum reactive power capability requirements for Distributed Energy
Resources (DER) specified in IEEE 1547-2018 [1]. This technical note has been elaborated not
only to explain the new features, but also to document how the inverter is modelled in OpenDSS,
including all functions available up to date and how the simultaneous operation of several functions
are handled. The new features/modifications are:
ˆ Addition of properties %P minN oV ars and %P minkvarM ax to provide a region with active
power generation/absorption only and a region with ascending linear limit of reactive power,
respectively;
ˆ Addition of property %kvarM axAbs to provide the possibility of having different limits for
maximum absorption and maximum generation of reactive power;
ˆ Addition of property P F priority to enable power factor priority for when the requested op-
eration point is outside the inverter capability curve and for operation under either constant
power factor or constant reactive power functions;
ˆ Renaming of some properties names to more suitable ones, in accordance with IEEE 1547-2018
[1];

3 General Remarks
Up to this date, there is no standalone element for an inverter in OpenDSS. All inverter-related set-
tings/functions span over PVSystem and Storage Power Conversion Element (PCE) and InvControl
Control Element (CE) models. Even though IEEE 1547-2018 is applicable to DER with different
power conversion device technologies such as synchronous machines, induction machines and static
power inverters/converters, the features described in this document apply only to the aforementioned
OpenDSS PCE. Figure 1 shows the relation between these elements and references [2] and [3] provide
a detailed explanation about them.

1
May 30, 2020

PVSystem Storage
Inverter Inverter
Power Conversion Element (PCE)
Control Element (CE)

InvControl

Figure 1: Relation between PVSystem, Storage and InvControl elements

4 Brief Introduction
Settings and limits such as apparent power, cut-in/cut-out power and maximum reactive power are
modeled within PVSystem and Storage models. These PCEs are also responsible for carrying the
definition of other inverter-related parameters, for instance, losses and a few autonomous functions,
named as “direct functions” throughout this document. “Direct functions” include constant power
factor, constant reactive power (constant kvar) and limit DER power output (commonly used for
generation curtailment when power is being generated) functions.
Other functions currently implemented in OpenDSS such as Volt-Var (VV), Volt-Watt (VW) and
Dynamic Reactive Current (DRC), referred to in this document as “voltage-dependent functions”
are modeled in a separate element, the InvControl CE. The motivation for this approach is that the
operation of any PCE at the interface with the grid depends primarily on a nominal power to be
injected or absorbed. Because of that, and due to the nature of the constant power factor, constant
kvar and limit DER power output functions, they are implemented within the PCE itself. In other
words, these functions have all information they need to set the nominal power at grid the interface
before solving a power flow. On the other hand, “voltage-dependent” functions rely on a reference
voltage, which means that “voltage-dependent” functions first need a successful power flow solution
before assigning new nominal power values to the PCE. Thus, the “voltage-dependent” functions are
modeled in InvControl CE. Refer to [4] and [5] for more information about how OpenDSS models
control elements and manages the operation of multiple control elements during the simulation.
This document first describes the modelling of the inverter capability curve and its associated pa-
rameters by showing the most general shape of the curve, including possible modifications to its
shape and how OpenDSS handles cases in which the requested complex power violates it. A quick
explanation of how the inverter efficiency curve is modeled is also given. Then, all inverter-related
functions currently modeled are briefly presented and segmented by the specific elements in which
each of them can be defined in OpenDSS scripting language. Next, the precedence rules of settings
and functions is presented along with an explanation about which functions are mutually exclusive
and which can operate simultaneously. Finally, a few commented examples are provided.

5 Inverter Capability Curve


5.1 General Description
The most flexible inverter capability curve is presented in Figure 2. All measures are on the AC side
of the inverter. Note that %CutIn and %CutOut have been assumed equal. If that’s not the case,

2
May 30, 2020

once the inverter is on, only %CutOut is considered.

Qgen (pu)
1

.8
kV A
.6 %CutIn/%CutOut
%P minN oV ars
.4
%P minkvarM ax
.2
kW Rated
kvarM ax
Pgen (pu) kvarM axAbs
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1 Operation Region
-.2
Op. Region (W Only)
-.4
Op. Region (Night)

-.6

-.8

-1

Figure 2: General Inverter Capability Curve

The following properties are utilized to define the inverter capability curve:
ˆ kV A [kVA]: indicates the inverter nameplate capability. For PVSystem, it serves as the default
value for kvarM ax and kvarM axAbs properties in case they are not specified. For Storage, this
property is automatically set to kW Rated whenever kV A has not been specified yet. Defaults
to 500 for PVSystem and to kW Rated for Storage.
ˆ kW Rated [kW]: indicates the maximum active power that the DER can deliver to the grid. It
is currently available only for Storage element. Defaults to 25. Meanwhile for PVSystem, the
same effect (limit on active power delivered) can be obtained through property %P mpp (see
subsection 8.1).
ˆ kvarM ax [kvar]: Indicates the maximum reactive power generation (un-signed numerical vari-
able in kvar) for the inverter. Defaults to kV A rating of the inverter.
ˆ kvarM axAbs [kvar]: Indicates the maximum reactive power absorption (un-signed numerical
variable in kvar) for the inverter. Defaults to kvarM ax.
ˆ %CutIn [unit-less]: cut-in power as a percentage of inverter kVA rating. It is the minimum
DC power necessary to turn the inverter ON when it is OFF. Must be greater than or equal
to %CutOut. Defaults to 2 for PVSystems and 0 for Storage elements which means that the
inverter state will be always ON for this element. %CutIn in Figure 2 represents the specified
%CutIn adjusted by inverter losses, i.e., the equivalent %CutIn at the AC side of the inverter.

3
May 30, 2020

ˆ %CutOut [unit-less]: cut-out power as a percentage of inverter kVA rating. It is the minimum
DC power necessary to keep the inverter ON. Must be less than or equal to %CutIn. Defaults
to 2 for PVSystems and 0 for Storage elements which means that, once ON, the inverter state
will be always ON for this element. %CutOut in Figure 2 represents the specified %CutOut
adjusted by inverter losses, i.e., the equivalent %CutOut at the AC side of the inverter.
ˆ %P minN oV ars [unit-less]: minimum active power as percentage of kW rated for Storage and
as percentage of P mpp for PVSystem under which there is no reactive power production/ab-
sorption. Defaults to 0 (disabled).
ˆ %P minkvarM ax [unit-less]: minimum active power as percentage of kW rated for Storage and
as percentage of P mpp for PVSystem that allows the inverter to produce/absorb reactive power
up to its maximum reactive power, which can be either kvarM ax or kvarM axAbs, depending
on the current operation quadrant. Defaults to 0 (disabled).
ˆ varF ollowInverter [True/False]: Defaults to False, which indicates that the reactive power
generation/absorption does not respect the inverter status. When set to True, the reactive
power generation/absorption will cease when the inverter status is off, due to DC kW dropping
below %Cutout. The reactive power generation/absorption will begin again when the DC kW
is above %Cutin. When set to False, the storage will generate/absorb reactive power regardless
of the status of the inverter.

4
May 30, 2020

5.2 Enabling/Disabling a specific parameter


As mentioned earlier, Figure 2 shows the inverter capability curve resulting from the use of all
possible properties. In order to generate simpler curves, OpenDSS allows some of the properties to
be disabled. Figure 3 describes possible modifications to the capability curve by enabling/disabling
the %PminNoVars, %PminkvarLimit and varFollowInverter. For simplicity, the resulting capability
curve is shown for operation in first quadrant only (the disabling of any parameter also affect the
capability curve in the other quadrants). Note that %CutOut and varFollowInverter can also be
disabled.

kV A kvarM ax %P minkvarM ax %CutOut Op. Region (W Only)


kW Rated %P minN oV ars Op. Region (Night) Op. Region

Qgen Qgen Qgen


1 1 1

.8 .8 .8

.6 .6 .6

.4 .4 .4

.2 .2 .2

Pgen Pgen Pgen


.2 .4 .6 .8 1 .2 .4 .6 .8 1 .2 .4 .6 .8 1

(a) All parameters enabled (b) %P minN oV ars disabled (c) %P minkvarLimit disabled
Qgen Qgen Qgen
1 1 1

.8 .8 .8

.6 .6 .6

.4 .4 .4

.2 .2 .2

Pgen Pgen Pgen


.2 .4 .6 .8 1 .2 .4 .6 .8 1 .2 .4 .6 .8 1

(d) %P minN oV ars and (e) %P minN oV ars and %CutOut (f) %P minN oV ars disabled and
%P minkvarLimit disabled disabled varF ollowInverter=True

Figure 3: Possible Shapes for Inverter Capability Curve

6 Violation of Inverter Capability Curve Limits


Whenever the total complex power determined by the combination of the available (for PVSystem)
or the desired (for Storage) active power output and the reactive power resulting from the application

5
May 30, 2020

of the functions described in this document exceeds the inverter capability curve, OpenDSS ensures
that it will return to the allowed operating region. This “returning” can be controlled by the user
by assigning different priorities. There are three types of priorities: active power, reactive power and
power factor. They can be selected through two parameters of the PCE:
ˆ W attP riority [Yes|No or True|False]: If set to True, priority is given to active power. If set to
False, priority is given to reactive power. Defaults to False.
ˆ P F P riority [Yes|No or True|False]: If set to True, priority is given to power factor and
W attP riority is neglected. It works only if operating in either constant PF or constant kvar
modes. Defaults to False.
Depending on the region where the desired complex power is located, different priorities lead to
different final operating points, as follows:
ˆ kV A Violation: The desired active and reactive power are less than their limits, kvarM ax and
kW Rated, respectively. In this case, all three priorities are applicable, as shown in Figure 4a.
ˆ kW Rated Violation: The final operating point will be on the kW Rated axis regardless the
priority selected, as shown in Figure 4b. If either VW or Limit DER Power Output functions
are also active, the most restricting limit applies.
ˆ kW Rated and kV A Violation: In this region, first the active power output is limited by
kW Rated, and then, the same rules applies as for kV A violation case. If W attP riority is
set to True, the final operating point will be at the intersection of kV A and kW Rated, as
shown in Figure 4c.
ˆ kvarM ax Violation: In this region, only active power and power factor priorities apply. In
both cases the final reactive power is limited by kvarM ax, as shown in Figure 4d.
ˆ Reactive Power Violation on Region of Ascending Linear Limit: The power factor priority is
not applicable in the region of ascending linear reactive power limit because the limit crosses
the complex plane origin. Thus, only active power priority applies, as shown in Figure 4e.
ˆ kvarM ax and kV A Violation: In this region, first the reactive power output is limited by
kvarM ax, and then, the same rules applies as for kV A violation case. With W attP riority set
to False, the final operating point will be at the intersection of kV A and kvarM ax, as shown
in Figure 4f.
ˆ kW Rated, kvarM ax and kV A Violation: First, kW Rated limit is applied, then kvarM ax,
and finally, kV A. The final operating point will be at the intersection of kV A and kW Rated if
W attP riority is True, and at the intersection of kV A and kvarM ax if W attP riority is False,
as shown in Figure 4g.

6
May 30, 2020

kV A kvarM ax %P minkvarM ax %CutOut kW Rated


Op.Region V iolationRegion Final Op. Point Requested Op. Point

1
Qgen 1
Qgen 1
Qgen

.8 .8 .8
Q Q
.6 PF .6 .6 PF
P P
.4 .4 .4

.2 .2 .2
P, Q, PF
Pgen Pgen Pgen
.2 .4 .6 .8 1 .2 .4 .6 .8 1 .2 .4 .6 .8 1

(a) kV A Violation (b) kW Rated Violation (c) kW Rated and kV A Violation


1
Qgen 1
Qgen 1
Qgen

.8 .8 .8
PF P, Q Q
.6 .6 .6 PF
P, Q, PF P
.4 .4 .4

.2 .2 .2

Pgen Pgen Pgen


.2 .4 .6 .8 1 .2 .4 .6 .8 1 .2 .4 .6 .8 1

(d) kvarM ax Violation (e) kvarM ax Violation on Region of (f) kvarM ax and kV A Violation
Ascending Linear vars Limit

1
Qgen

.8
Q
.6 PF
P
.4

.2

Pgen
.2 .4 .6 .8 1

(g) kW Rated, kvarM ax and


kV AM ax Violation

Figure 4: Response for Violations in Different Regions of the Inverter Capability Curve and for
Different Priorities
7
May 30, 2020

7 Inverter Efficiency Curve


The efficiency curve of an inverter corresponds to a family of curves with varying DC link voltages. In
the present version of the model, it is possible to define a single curve only, which is generally selected
considering the rated DC link voltage. It can be defined through property Ef f Curve of each DER,
for which a XY Curve object that characterizes the variation of the inverter efficiency as a function
of Pdc , the DC power in per unit of its kVA rating, must be assigned. For PVSystems, Pdc varies with
P mpp and ambient conditions, so the calculation of the efficiency is straight forward, whereas for
Storage, as active the power is defined first at the interface with the grid, the calculation is backwards,
i.e, an efficiency and a DC power that leads to the given AC power are calculated simultaneously.
Refer to [2] and [3] for detailed information. An example of how to define a XYCurve object is
shown below. If Pdc goes beyond the highest or lowest value of xarray, OpenDSS calculates the
corresponding efficiency by assuming the same slope of the two nearest points defined.

 

New XYCurve . E f f n p t s=4 x a r r a y = [ . 1 . 2 . 4 1 . 0 ] y a r r a y = [ . 8 6 . 9 . 9 3 . 9 7 ]




8 Smart-Inverter Functions
8.1 “Direct Functions”
In the OpenDSS environment, these are the functions specified within the PCE definition. They are
the following:
ˆ Limit DER Power: this function establish an upper limit on the real power that the DER
can produce/discharge and charge at its interface with the grid [6]. For Storage, it is specified
by the property %kW Rated, which currently applies to both charging and discharging states.
For PVSystems, it is specified through property %P mpp (as a percentage of P mpp). In both
cases, the default value is 100, which means that this function is disabled.
ˆ Constant Power Factor (PF): it can be enabled by defining the property pf of the PCE.
The sign convention used in OpenDSS dictates that a positive pf means reactive power in the
same direction as active power. On the other hand, a negative pf means reactive power and
active power with opposed signs. Note that for Storage elements, it means that, for a given
pf , as it charges and discharges the reactive power sign is changed accordingly. For instance,
assume that a positive pf has been specified and the selected operation mode dictates that the
element should charge at the beginning of the day and discharge in the evening. In this case,
there would be vars absorption and generation, respectively. Also, during operation in idling
state, the reactive power dispatched by a storage element is calculated based on the specified
idling losses, if any.
ˆ Constant Reactive Power (kvar): it can be enabled by defining the property kvar at the
DER element. The sign follows the generator convention, i.e., a positive kvar means generated
vars whereas a negative kvar means absorbed vars.

8
May 30, 2020

8.2 “Voltage-Dependent” Functions


These are the functions which are defined through an InvControl CE. This section intends to provide
a quick presentation of how they can be enabled and interact with each other. For a detailed expla-
nation of their implementation, see [2]. The “voltage-dependent functions” currently implemented
in InvControl are:
ˆ Volt-Watt (VW): it can be enabled by two different ways. If operating alone, by setting
InvControl’s mode property to VW. If operating with VV, by setting InvControl’s combimode
property to VV VW;
ˆ Volt-Var (VV): it can be enabled by three different ways. If operating alone, through In-
vControl’s mode property, by setting it to VV. If operating with DRC, by setting InvControl’s
combimode property to VV DRC. If operating with VW, by setting combimode to VV VW;
ˆ Dynamic Reactive Current (DRC): it can be enabled by two different ways. If operat-
ing alone, by setting InvControl’s mode property to DRC. If operating with VV, by setting
InvControl’s combimode property to VV DRC;

8.3 Combined Functions


OpenDSS allows the combination of some functions. They are the following:
ˆ PF + VW: to enable this mode, define a power factor in a DER element and also enable VW
function at the InvControl element (property mode) responsible for controlling the correspond-
ing DER. If VW limits the active power output, the constant power factor will be applied on
top of the limited active power, such that at the interface with the grid, the constant power
factor desired will be kept constant. The same applies if the active power is further limited by
the Limit DER Power function;
ˆ kvar + VW: to enable this mode, define a kvar in a DER element and also enable VW function
at the InvControl element (property mode) responsible for controlling the corresponding DER;
ˆ VV + VW: to enable this mode, use an InvControl element (property combimode) responsible
for controlling the corresponding DER. If the inverter capability curve has not been exceeded,
the power exchanged with the grid will be the desired active power, which might be limited by
the VW function, and the reactive power requested by the VV function;
ˆ VV + DRC: to enable this mode, use an InvControl element (property combimode) responsible
for controlling the corresponding DER. If the inverter capability curve has not been excedeed,
the power exchanged with the grid will be the desired active power and the sum of the reactive
power requested by the VV and DRC functions individually;

9 Precedence of Functions/Settings
As one may have noticed, there are several types of control functions that can be applied to Storage
and PVSystem elements in OpenDSS. Some of those operate on the same electrical measure, i.e.
active or reactive power. In these cases, depending on the nature of the control function, they may
be allowed to operate simultaneously or they might be mutually exclusive. In the first case, it is
necessary to establish an order of precedence. The precedence rules applied in OpenDSS follows

9
May 30, 2020

the summary of functional descriptions for smart inverters from [6] and also in IEEE 1547-2018 [1]
requirements, where applicable. They have been adapted to OpenDSS context and are summarized
in Tables 1 and 2 for functions/settings that manage active and reactive power, respectively.

Table 1: Precedence of Watt Related Functions

Settings/
Priority Description
Functions
A DER cannot produce/absorb active power that it does not have avail-
1st : DER able. These represent the ultimate limit of the DER. For PVSystem, it
Fundamental Primary is represented by the available active power at a given time instant and
Physical Source of for Storage it is represented by the energy capacity available (depending
Limit Energy on the relation between kW hrated and kW hstored for charging state
and between %stored and %reserve for discharging state).
2nd : This is the configurable setting establishing the DER's maximum ac-
Nameplate Max Power tive power input/output: kV A, for PVSystem, and kV A and kW Rated,
and Device Capability for Storage. Higher or lower priority settings/functions may reduce the
Limits Setting wattage output below this value, but nothing may increase it above this
Settings value.

These functions serve to reduce maximum allowed watt level to some


Limit percentage of the Max Power Capability Setting less than 100%. The
DER cause varies: For Volt-Watt function, it’s the voltage at the DER ter-
3rd :
Power minal (autonomous function). For Limit DER Power Output Function,
Settings it’s a direct control command (for instance, sent by the operator), spec-
Function
Actively ified through property %kW Rated for Storage and %P mpp for PVSys-
Affecting tem. They may be simultaneously active with the same relative priority.
Operating The one requiring the greatest reduction in watts takes precedence. As
Boundaries functions intended to establish operating boundaries, these functions are
Volt-Watt higher priority than any of the dynamic or steady-state functions. Those
Function functions may be active at the same time as these functions, but must
operate (even dynamically) within the boundaries established by these
functions.
4th : None at
These would be Dynamic Real-Power Support and Dynamic Volt-Watt
Dynamic Current functions. These are dynamic functions that would produce “additional”
Functions Version active power. See [6] for more information.
Storage
Each of these functions/dispatch modes serve to manage the flow of real
5th : Direct power into or out of the DER. These functions are mutually exclusive
Steady Ch./Dch. and cannot be active simultaneously. The first one refers to the direct
State Any Storage dispatch command through properties kW , kvar, state, %charge, and
Functions Dispatch %discharge, whereas the second refers to any of the self-dispatch modes
Function or any mode available through a StorageController CE.

10
May 30, 2020

Table 2: Precedence of Vars Related Functions

Settings/
Priority Description
Functions
1st :
Fundamental Self-Imposed
None at current version
Physical Limits
Limit
2nd : This is the configurable setting establishing the DER's maximum reactive
Max power input/output: kvarM ax, kvarM axAbs and the ascending linear
Nameplate
Power vars limit specified through %P minN oV ars and %P minkvarM ax for
and Device
Capability both PVSystem and Storage. Higher or lower priority settings may re-
Limits duce the vars output/input below these values, but nothing may increase
Setting
Settings it above these values.
3rd :
Settings
Actively None defined
None at current version
Affecting for Vars
Operating
Boundaries
4th :
DRC This is a dynamic function, and produces “Additional” reactive current
Dynamic that adds-to or subtracts-from whatever the present reactive current level
Function
Functions may be based on one1 of the 5th priority functions.
Constant
5th : These functions instruct the DER as to the desired level of reactive power
PF Function
to produce at any time. For each function, the reactive power level is
Steady Constant indirectly related to the watt output. These functions have equal priority,
State kvar Function but are never in conflict because they are mutually exclusive and only
Functions Volt-Var one may be effective at any time.
Function

1
At current version, DRC can only be applied on top of Volt-Var function.

11
May 30, 2020

10 Mapping of parameters to IEEE1547-2018


As IEEE 1547-2018 [1] has been widely adopted, Table 3 lists the mapping between the applicable
properties from the standard to OpenDSS PVSystem and Storage elements.

Table 3: Mapping of Parameters between OpenDSS and IEEE1547-2018

OpenDSS IEEE1547-2018 IEEE 1547-2018 Description


kWRated Nameplate Active Active power rating in watts at unity power
(for Storage) Power Rating factor
Apparent Power Maximum apparent power rating in
kVA
Maximum Rating voltamperes
Reactive Power
Maximum injected reactive power rating in
kvarMax Injected
vars
Maximum Rating
Reactive Power
Maximum absorbed reactive power rating
kvarMaxAbs Absorbed
in vars
Maximum Rating
Not implemented as a specific Active Power
property in current version. Charge Maximum Maximum active power charge in Watts
Assumed equal to kWRated Rating
Not implemented as a specific Maximum apparent power charge rating in
Apparent Power
property in current version. voltamperes. May differ from the apparent
Charge Maximum Rating power maximum rating
Assumed equal to kVA
AC Voltage
kV Nominal AC voltage rating in RMS volts
Nominal Rating

Note that for PVSystem element, there is currently no kW Rated property. However, the property can
be modeled with the “Limit DER Power Function”, by specifying an appropriate value to %P mpp.
Also note that, for Storage, IEEE1547-2018 states that both the active power charge maximum
rating and the apparent power charge maximum rating may differ from their discharging/generation
equivalent parameters. The current version of OpenDSS accepts only a single kW Rated and a single
kV A, which are assumed to be the same for charging and discharging states.

12
May 30, 2020

11 Examples
In this section, a few examples are presented to show different aspects of the inverter modelling de-
scribed throughout this document. For simplicity and easy reproducibility, a small circuit containing
a single storage connected to a voltage source will be utilized, as shown in Figure 5.
The base script utilized in all examples is provided below. This script and also all the other scripts
used to generate the examples are available in OpenDSS “Examples\InverterM odels\InverterT ech−
N ote ” folder.

 

! Base C i r c u i t with a S i n g l e S t o r a g e
Clear

New C i r c u i t . S o u r c e bus1=A basekv =13.8 p h a s e s=3 pu=1 Z0 =[10 , 1 0 ] Z1 =[10 , 1 0 ]

! I n v e r t e r E f f i c i e n c y Curve
New XYCurve . E f f n p t s=4 x a r r a y = [ . 1 .2 .4 1.0] yarray =[.86 .9 .93 .97]

New S t o r a g e .A p h a s e s=3 bus1=A kv =13.8


˜ %charge=100 % d i s c h a r g e =100 % r e s e r v e =20
˜ % e f f c h a r g e =90 % e f f d i s c h a r g e =90
˜ %idlingkW=2
˜ kWhrated= 10000 %stored=80 s t a t e=i d l i n g
˜ dispmode=d e f a u l t model=1 kVA=1000 kWrated=900 kvarMax=800 %kWRated=100
˜ EffCurve=E f f %cutin=5 %cutout=5 v a r f o l l o w i n v e r t e r=f a l s e w a t t p r i o r i t y=True
˜ %PminkvarMax = 20 %PminNoVars = 10
˜ vminpu = 0 . 8 vmaxpu= 1 . 2

New Monitor . Mon StorageA State e l e m e n t=S t o r a g e .A mode=3


New Monitor . Mon StorageA V e l e m e n t=S t o r a g e .A mode=0

Set v o l t a g e b a s e s = [ 1 3 . 8 ]
Calcvoltagebases




A
1
2
Circuit 3 Storage
4
0

Figure 5: Storage Element Connected directly to a Voltage Source

13
May 30, 2020

11.1 Operation with different Priorities: kV A Violation Only


This example illustrates the violation of the inverter kVA rating considering active power, reactive
power and power factor priorities. Besides the base script, the following script has been utilized.

 

! kVA V i o l a t i o n Only
New LoadShape . d i s p a t c h F o l l o w i n t e r v a l =1 n p t s =24 mult = [ 0 . 0 , = 0.01 , = 0.08 ,
= 0.12 , = 0.16 , = 0.30 , = 0.50 , = 0.96 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 1 ,
0.08 , 0.12 , 0.16 , 0.30 , 0.50 , 0.96 , 0.0 , 0.0]

Ed it S t o r a g e .A dispmode=f o l l o w d a i l y=d i s p a t c h F o l l o w p f = =0.8

! P Priority
S e t casename=P p r i o r i t y
Ed it S t o r a g e .A w a t t p r i o r i t y=t r u e

! Q Priority
! S e t casename=Q p r i o r i t y
! Edi t S t o r a g e .A w a t t p r i o r i t y=f a l s e

! PF P r i o r i t y
! S e t casename=P F p r i o r i t y
! Edi t S t o r a g e .A P F p r i o r i t y=t r u e

S e t mode=D a i l y
S e t m a x c o n t r o l i t e r =50
S e t s t e p s i z e =1h

Solve

Export m o n i t o r s Mon StorageA State


Export m o n i t o r s Mon StorageA V




First, a loadshape is specified to drive the storage active power dispatch in “Follow” mode. Then,
the storage element definition is edited to enable the operation in the desired mode. Constant PF
reactive power dispatch mode is also enabled, with a power factor of -0.8.
Next, wattpriority and P F priority are set. Note that only one case can be run at each time.
Finally, the solution settings are specified. The simulation is solved in daily mode and the monitors
are exported.
Figure 6 shows the PQ plane with all operating points for each of the priorities. They correspond
to the state variables kW Out and kW In exported from monitor M on StorageA State. Note that
all operating points lie on the constant power factor line for all three priorities, except during the
following time instants:
ˆ The two time instants (one while in charging state and the other while in discharging state)
in which the inverter kVA has been violated and for both active and reactive power priorities.
These two operating points correspond to the multiplier -0.96 and 0.96 for charging and dis-
charging, respectively. For further details about storage operation in “Follow” dispatch mode,
see [3];

14
May 30, 2020

ˆ For the time instants when the active power lies within the region between %CutIn/%CutOut
and %P minN oV ars (W Only), in which only active power dispatch is allowed;
Also note that as varF ollowInverter has been set to “false”, the operating points for the time
instants when the storage is in idling state also lie in the constant power factor line, even though the
inverter status is OFF. The small active power that charges the element during this state is due to
idling losses (see [3]).

1 Qgen (pu)
.8
kVA
.6 kWRated
.4 kvarMax
.2
kvarMaxAbs
Operating Region
Pgen (pu)
Op. Region (W Only)
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1
-.2 Op. Region (Night)
-.4
PF = -0.8
P Priority
-.6
Q Priority
-.8 PF Priority
-1

Figure 6: PQ Plane with Inverter Capability Curve and Operating Points under Constant PF Mode
(Example 11.1)

15
May 30, 2020

11.2 Precedence of Watt Related Functions/Settings


This example illustrates the precedence of watt related functions and the violation of the element’s
kW Rated limit. The following script has been utilized.

 

! kWRated V i o l a t i o n Only
New LoadShape . d i s p a t c h F o l l o w i n t e r v a l =1 n p t s =24 mult = [ 0 , = 0.01 , = 0.08 , = 0.12 ,
= 0.16 , = 0.30 , = 0.85 , = 0.96 , = 1.05 , = 1.05 , 0 , 0 , 0 , 0 , 0 . 0 1 , 0 . 0 8 , 0 . 1 2 , 0 . 1 6 ,
0.30 , 0.85 , 0.96 , 1.05 , 0 , 0]

Ed it S t o r a g e .A dispmode=f o l l o w d a i l y=d i s p a t c h F o l l o w kvar =200

! VW Curves
! VW Curve f o r Discharging
New XYCurve . v w c u r v e d c h n p t s=4 y a r r a y =[1 1 0 . 0 0 . 0 ] x a r r a y =[1 1 . 0 5 1 . 1 1 . 3 ]
! VW Curve f o r Charging
New XYCurve . v w c u r v e c h n p t s=4 y a r r a y = [ 0 . 0 0 . 0 1 1 ] x a r r a y = [ 0 . 7 0 . 9 0 . 9 5 1 ]

New I n v C o n t r o l . I n v C t r l mode=VOLTWATT v o l t W a t t c u r v e=v w c u r v e d c h


˜ voltWattCH curve=v w c u r v e c h

! P Priority
S e t casename=P p r i o r i t y
Ed it S t o r a g e .A w a t t p r i o r i t y=t r u e

! Q Priority
! S e t casename=Q p r i o r i t y
! Edi t S t o r a g e .A w a t t p r i o r i t y=f a l s e

! PF P r i o r i t y
! S e t casename=P F p r i o r i t y
! Edi t S t o r a g e .A P F p r i o r i t y=t r u e

S e t mode=D a i l y
S e t m a x c o n t r o l i t e r =50
S e t s t e p s i z e =1h

! 1 = 5am
Ed it VSource . s o u r c e pu =1.02
S e t number=5
Solve

! 6am
Ed it VSource . s o u r c e pu =0.94
S e t number=1
Solve

! 7am
Ed it VSource . s o u r c e pu =0.95
Solve

! 8am
Ed it VSource . s o u r c e pu =0.982
Ed it S t o r a g e 2 .A %kWRated=88
Solve

16
May 30, 2020

! 9am
Ed it VSource . s o u r c e pu=1.0
Ed it S t o r a g e 2 .A %kWRated=100
Solve

! 10am = 7pm
Ed it VSource . s o u r c e pu =1.02
S e t number=10
Solve

! 8pm
Ed it VSource . s o u r c e pu =1.025
S e t number=1
Solve

! 9pm
Ed it VSource . s o u r c e pu =0.98
Ed it S t o r a g e 2 .A %kWRated=88
Solve

! 10pm
Ed it VSource . s o u r c e pu =0.97
Ed it S t o r a g e .A %kWRated=100
Solve

! 11pm = 12am
Ed it VSource . s o u r c e pu =1.02
S e t number=2
Solve

Export m o n i t o r s Mon StorageA State


Export m o n i t o r s Mon StorageA V
Export e v e n t l o g




Similarly to the previous example, the storage element is operated with active power dispatch driven
by “Follow” mode, however the reactive power dispatch is set to constant kvar mode, with 200 kvar
of reactive power generation. Futhermore, the actual active power dispatch may be limited by the
smart inverter VW functionality, which is specified in “InvCtrl” InvControl control element. Note
that two different Volt-Watt curves (XYCurve object) have been specified. One for operation in
discharging state and the other for operation in charging state, as shown in Figure 7.
The daily simulation is broken in several time intervals with varying sizes (specified through property
number). The voltage magnitude of the voltage source (pu property) is also varied in the simulation.
This has been done to force the operation of the VW function in selected time instants in order to
highlight the precedence of functions.
Note that there are 3 different inverter functions from Table 1 being applied in this example:
ˆ Volt-Watt Function (3rd priority): enabled by the InvControl control element;
ˆ Limit DER Power Function (3rd priority): enabled by setting %kW Rated to a value less than
100, which is done at 8am and 9pm only;

17
May 30, 2020

Max Watt Absorbed (pu)


Max Watt Output (pu)

1 1

Allowed Allowed
Operating Operating
Area Area
Vref (pu) Vref (pu)
0 0
1 1.05 1.1 1.15 0.85 0.9 0.95 1

(a) VW Curve for Discharging (b) VW Curve for Charging

Figure 7: Volt-Watt Curve for Discharging (a) and Charging (b)

ˆ Storage “Follow” Dispatch Mode (5th priority): enabled when setting dispmode = f ollow;
Figure 8 shows the PQ plane with all operating points for each of the priorities. Note that all
operating points lie on the constant power factor line (except for those that fall in the Watts only
region) and that there are no differences in the inverter response between all three priorities for the
kW Rated violation, as expected, according to Figure 4b.

1 Qgen (pu)
.8
kVA
.6 kWRated
.4 kvarMax
.2
kvarMaxAbs
Operating Region
Pgen (pu)
Op. Region (W Only)
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1
-.2 Op. Region (Night)
-.4
kvar = 0.2
P Priority
-.6
Q Priority
-.8 PF Priority
-1

Figure 8: PQ Plane with Inverter Capability Curve and Operating Points under Constant kvar Mode
(Example 11.2)

A few rows and columns of the .csv file exported from monitor M on StorageA State are shown in
Table 4. For a complete description of each column, see [3].
At 6am, the kW desired by the “follow” dispatch mode to charge the element is 270kW, and the
average voltage (see InvControl’s monV oltageCalc property) applied at the element’s terminal is
0.9357, which lies within the region where the VW curve for charging tries to limit the active power.
1
The limit imposed can be calculated as (0.9357 − 0.9) × 0.05 × 900 = 642.6kW , which is greater than
the desired output. Thus, the power that charges the element at the grid interface, kW In, is 270kW .
At 7am, the desired power is 765kW. However, the voltage reference to the VW is 0.9299, which leads

18
May 30, 2020

1
to a limit imposed by this function of (0.92994 − 0.9) × 0.05 × 900 = 538.9kW . Since %kW Rated at
this time instant is 100%, the limit imposed by the Limit DER Power Function is 900kW. Thus, as
the limit imposed by the VW function requires the greatest reduction and it has a greater priority
than the power desired by the “follow” dispatch function, it takes precedence and the actual power
with which the element is charged is 538.9kW.
At 8am, %kW Rated has been set to limit the output in 88 percent of the rated active power, which
is 792kW. Note that the voltage reference for the VW function is 0.9477, which means the limit
1
of (0.9477 − 0.9) × 0.05 × 900 = 858.6kW . However, the controller has access to the limit imposed
by the Limit DER Power Function, and thus, the power reported in “kW VW Limit” is the lowest
between the power calculated from the VW curve and the one imposed by the direct command. As
the desired power at this time instant is higher than the limit imposed by %kW Rated, the actual
power output that charges the element at the grid interface is 792kW .
At 9am, the power desired is 1.05 × 900 = 945kW . As none of the limiting functions impose a lower
limit, the actual power at the grid interface is limited by the nameplate device setting, kW Rated
(2nd priority).
Finally, at 10am, there is not enough energy capacity left to keep charging the element, which
corresponds to a Fundamental Physical Limit (1st priority). Therefore, the element enters in idling
state, charging only enough power to sustain its idling and associated inverter losses. Note that
because there is no energy capacity left, kW Desired shows 0, even though the loadshape multiplier
at 10am is -1.05.
Table 4: Selected Rows and Columns of csv File Exported from Monitor M on StorageA State

kW Limit
Inv VW kW
Hour State kWOut kWIn kvarOut Vref VW kWOut
ON Oper Desired
Limit Function
1 0 0 21.8 200 0 1.0290 0 0 9999 900
2 0 0 21.8 200 0 1.0290 0 -9 9999 900
3 -1 0 72 0 1 1.0163 0 -72 900 900
4 -1 0 108 200 1 1.0246 0 -108 900 900
5 -1 0 144 200 1 1.0227 0 -144 900 900
6 -1 0 270 200 1 0.9357 0 -270 642.6 900
7 -1 0 538.9 200 1 0.9299 1 -765 538.9 900
8 -1 0 792 200 1 0.9477 0 -864 792 792
9 -1 0 900 200 1 0.9599 0 -945 900 900
10 0 0 22.0 200 0 1.0290 0 0 9999 900
11 0 0 21.8 200 0 1.0290 0 0 9999 900
12 0 0 21.8 200 0 1.0290 0 0 9999 900

19
May 30, 2020

11.3 Reactive Power Violation


This example illustrates the violation of reactive power limit in several violation regions. It also
shows a different inverter capability curve shape from the previous ones.

 

! R e a c t i v e Power V i o l a t i o n ( l i n e a r r e g i o n , kvarMax , kVA)
New LoadShape . d i s p a t c h F o l l o w i n t e r v a l =(1 3600 / ) n p t s =24 mult = [ 0 , = 0.01 ,
= 0.08 , = 0.12 , = 0.14 , = 0.16 , = 0.30 , = 0.50 , = 0.6 , = 0.8 , = 0.95 , 0 , 0 . 0 1 , 0 . 0 8 ,
0.12 , 0.14 , 0.16 , 0.30 , 0.50 , 0.6 , 0.8 , 0.95 , 0 , 0]

Ed it S t o r a g e .A dispmode=f o l l o w d a i l y=d i s p a t c h F o l l o w %cutin=0 %cutout=0


˜ %PminNoVars=0 kvarMaxAbs=600 %idlingkW=0

! VV Curve
New XYCurve . v v c u r v e n p t s=5 y a r r a y =[1 1 0 =1 = 1] xarray =[0.5 0.92 1.0 1.08 1 . 5 ]

New I n v C o n t r o l . I n v C t r l combiMode=VV DRC dbVMin=1 dbVMax=1 arGraLowV=50


˜ arGraHiV=50 dynReacAvgWindowLen=2s r e f R e a c t i v e P o w e r=VARMAX v v c c u r v e 1=v v c u r v e
˜ varChangeTolerance =0.001

! P Priority
S e t casename=P p r i o r i t y
Ed it S t o r a g e .A w a t t p r i o r i t y=t r u e

! Q Priority
! S e t casename=Q p r i o r i t y
! Edi t S t o r a g e .A w a t t p r i o r i t y=f a l s e

S e t mode=D a i l y
S e t m a x c o n t r o l i t e r =50
S e t s t e p s i z e =1s

! 1 = 3am
Ed it VSource . s o u r c e pu=1.0
S e t number=3
Solve

! 4am
Ed it VSource . s o u r c e pu =0.98
S e t number=1
Solve

! 5am
Ed it VSource . s o u r c e pu =0.96
Solve

! 6am
Ed it VSource . s o u r c e pu =0.94
Solve

! 7am
Ed it VSource . s o u r c e pu =0.92
Solve

! 8am

20
May 30, 2020

Ed it VSource . s o u r c e pu =1.05
Solve

! 9 = 10am
Ed it VSource . s o u r c e pu =1.00
S e t number=2
Solve

! 11am
Ed it VSource . s o u r c e pu =0.97
S e t number=1
Solve

! 12pm = 3pm
Ed it VSource . s o u r c e pu =1.00
S e t number=4
Solve

! 4pm
Ed it VSource . s o u r c e pu =1.03
S e t number=1
Solve

! 5pm
Ed it VSource . s o u r c e pu =1.06
Solve

! 6pm
Ed it VSource . s o u r c e pu=1.1
Solve

! 7 = 9pm
Ed it VSource . s o u r c e pu =0.98
s e t number=3
Solve

! 10pm
Ed it VSource . s o u r c e pu =1.16
s e t number=1
Solve

! 11pm = 12am
Ed it VSource . s o u r c e pu=1.0
S e t number=2
Solve

Export m o n i t o r s Mon StorageA State


Export m o n i t o r s Mon StorageA V
Export e v e n t l o g




Similarly to the previous example, the storage element is operated with active power driven by
“Follow” mode. Properties %CutIn, %CutOut, %P minN oV ars and %idlingkW have been set to
0 and kvarM axAbs has been set to 600 kvar to modify the shape of the inverter capability curve.
The reactive power dispatch is driven by an InvControl control element, through VV and DRC smart

21
May 30, 2020

inverter functions, which have been enabled through property combimode. For more details about
the other InvControl properties used, see [2]. As in this reactive power dispatch mode constant PF
priority is not applicable, the simulation is run considering active and reactive power priorities only.
The time step size has been set to 1 second, which is more appropriate for the DRC function.
As in the previous examples, the magnitude of the voltage source is varied throughout the simulation
to force the InvControl to requested different reactive power levels to the storage element. In this
particular case, the voltage has been intentionally varied such that the inverter operates in all four
quadrants throughout the simulation. Figure 9 shows the PQ plane with all operating points for
both priorities.
Note that the reactive power reaches several boundaries: kV A, kvarM ax, kvarM axAbs and also the
boundaries in the region of ascending linear reactive power limit (in quadrants II and IV). Besides
that, note that the operating point differs between the two priorities considered for some operating
points in which they apparently should be the same (highlighted in Figure 9). There are two reasons
for that. The first one is due to the nature of the DRC function, which considers a moving average
(with a time window of 2 seconds in this example) of the voltage at the element’s terminal to calculate
the requested reactive power. The second is that there is a difference between the moving average
calculated at some time instants only because they happen right after a time instant in which there
has been a kVA violation. Thus, the different priorities set different final complex power operating
points, and, by consequence, different voltages, leading to different reactive power requests by the
DRC function in the following time steps. As the moving average acts as low-pass filter, the response
for the two different priorities eventually converge to the same value after a few later time steps. The
user is encouraged to run the examples and verify this fact.

1 Qgen (pu)
.8
kVA
.6 kWRated
.4 kvarMax
.2
kvarMaxAbs
Operating Region
Pgen (pu)
Op. Region (Night)
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1
-.2 P Priority
-.4
Q Priority

-.6

-.8

-1

Figure 9: PQ Plane with Inverter Capability Curve and Operating Points for Operation Driven by
an InvControl in VV+DRC (Example 11.3)

22
May 30, 2020

12 References
[1] IEEE Standard for Interconnection and Interoperability of Distributed Energy Resources with
Associated Electric Power Systems Interfaces, Std., April 2018.
[2] P. Radatz, W. Sunderman, and C. Rocha, “Opendss pvsystem and invcontrol element models,”
EPRI, OpenDSS Tech. Note, November 2019.
[3] C. Rocha, J. Peppanen, P. Radatz, M. Rylander, and R. Dugan, “Storage element,” EPRI,
OpenDSS Tech. Note, November 2019.
[4] R. Dugan and D. Montenegro, “The open distribution system simulator (opendss),” EPRI,
OpenDSS Tech. Note, April 2018.
[5] A. Birchfield, “Python to opendss interface for mopdeling control systems,” EPRI, OpenDSS
Tech. Note, July 2015.
[6] Common Function for Smart Inverters: 4th Edition, EPRI, Palo Alto, CA: 2016. :3002008217.

23

You might also like