0% found this document useful (0 votes)
190 views30 pages

Storage Element: 1 Purpose

The document describes updates made in 2019 to the Storage element model in OpenDSS. Key updates include adding an inverter model with losses and control capabilities, moving idling losses to the DC side, and allowing simultaneous control by a StorageController and InvControl. The Storage element can operate independently or be controlled. It is modeled as a load during charging and generator during discharging, subject to power and energy limits. Losses are accounted for during different operating states to determine the effective power charging or discharging the storage.

Uploaded by

TerrorTricolorFC
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
190 views30 pages

Storage Element: 1 Purpose

The document describes updates made in 2019 to the Storage element model in OpenDSS. Key updates include adding an inverter model with losses and control capabilities, moving idling losses to the DC side, and allowing simultaneous control by a StorageController and InvControl. The Storage element can operate independently or be controlled. It is modeled as a load during charging and generator during discharging, subject to power and energy limits. Losses are accounted for during different operating states to determine the effective power charging or discharging the storage.

Uploaded by

TerrorTricolorFC
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

May 31, 2020

Storage Element
Celso Rocha, Jouni Peppanen, Paulo Radatz, Matthew Rylander, Roger Dugan

1 Purpose
This technical note describes the modelling and dispatch modes of the Storage element implemented
in 2019.

2 Why?
OpenDSS Storage element has passed through a major update in 2019. This technical note has been
elaborated mainly to explain the new features, but also to expand the previous Storage documentation
[1] with a comprehensive description of the model. The new features are:
ˆ Addition of a built-in inverter model, including losses and capability curve;
ˆ Idling losses block has been moved from the grid interface to the DC side of the inverter;
ˆ Possibility to be controlled by an InvControl control element in a similar way to PVSystem
element, including the possibility of being controlled simultaneously by a StorageController and
an InvControl;
ˆ Addition of new state variables to aid in the understanding of the operation of the element;
Besides the aforementioned features, it is worth commenting that the Storage source code has been
formulated for better compatibility with InvControl and PVSystem implementation, facilitating fu-
ture implementations of smart inverter functionalities in the InvControl source code, which are ap-
plicable to both PVSystem and Storage elements.

3 Brief Introduction
The Storage element can operate either in standalone mode or be controlled by a StorageController
[2], responsible for commanding its active power dispatch, and/or an InvControl [3], responsible for
limiting its active power dispatch and/or requesting reactive power according to different functions.
The Storage model is developed based on the old Storage model, which in turn was originally de-
veloped based on the Generator element model. Thus, both the new and the old Storage models
have inherited some of the features from the Generator model such as a built-in energy meter and
an interface to user-written DLLs.
The Storage element can be used in a Snapshot power flow to simply compute the power flow for
a selected state of the Storage element. In that case, you would simply set the state and then
solve. However, the strength of the model is in time-varying simulation modes. The model supports
Daily, Yearly and DutyCycle modes. Daily or Yearly modes are intended for analyzing energy-related
issues over a period of time with time step sizes from several minutes to one hour. DutyCycle mode

1
May 31, 2020

is intended for studying the effectiveness of energy storage to compensate for short-term second-scale
power variations, e.g., during cloud transients affecting solar PV generation.
As follows, the general Storage model is firstly presented and its operation in charging, discharging
and idling states is explained. Next, different ways to manage energy storage dispatch are summa-
rized. Then, all available standalone or “self-dispatch” modes are introduced and a summary of the
Storage state variables is provided. Then, all “self-dispatch” are illustrated with several examples.
Last, all the available Storage model properties are listed.

4 Modelling
The Storage element is a Power Conversion Element (PCE), which, at a high level, is modelled as a
constant power load during charging and as a generator that can inject power into the grid during
discharging, always subjected to its power rating and it stored energy capacity. The general model
is illustrated in Figure 1.

kW, kvar
DC

AC
State Ch/Dch
Inverter Losses
Idling Ideal Stored
Grid
Losses Storage Energy

Figure 1: General Model of the Storage Element

The different components of the model are as follows:


ˆ Ideal Storage: represents an ideal, lossless energy storage. Its State of Charge (SOC) varies
according to the evolution of the element state amongst charging, discharging and idling along
with the associated charging and discharging rates and losses;
ˆ Charging and Discharging Losses: represent the charging and discharging losses associated with
the conversion from the storage medium (e.g. battery) to electric energy and vice versa. The
model allows to specify separate efficiencies for charging and discharging;
ˆ Inverter: is a key new feature of the new Storage model, which works similarly to the inverter
within PVSystem element as a built-in equipment in the model. It allows dispatching reactive
power based on several functions, modelling the inverter losses and limiting the rate of charge
and discharge based on its ratings. Note that it is different than the InvControl control element
which is responsible for providing smart inverter functionality (see [3]);
ˆ State: represents the state in which Storage element operates. The three possible states are:
charging, discharging and idling;

2
May 31, 2020

ˆ Idling Losses: represent storage self-depletion losses and auxiliary loads (e.g. A/C, control and
communication equipment, etc.), which are supplied by the same inverter as the energy storage
medium/battery. When in discharging state, the self-depletion losses and auxiliary loads are
supplied by the ideal storage, increasing the power that actually discharges the element. When
in charging state, they are supplied by the inverter and act to slow the charging of the ideal
storage. In idling state, they are supplied by the grid through the inverter. Note that AC
auxiliary loads, which are not supplied by the same inverter as the storage medium/battery,
can be modeled by a load object connected in parallel to the Storage element.

5 Operation
This section demonstrates the power flow and losses within the element during the operation in each
of the three possible states.
The power flow within the Storage element is performed from the interface with the grid to the
ideal storage component. First the active power at the interface with the grid, kW and kvar are
determined. Then, all the losses (inverter, idling and charging/discharging losses) are subtracted,
with the net effect of reducing the power that actually charges/discharges the ideal storage. The power
flow within the Storage element is calculated identically in all OpenDSS solution modes (static, daily,
yearly, duty) as described in the following subsections. The power flow within the Storage element
at simulation time instant t is calculated based on the power at the Storage element grid interface
obtained from the final power flow solution (power flow executed in the last control iteration) at
simulation time instant t. For time-varying simulations, OpenDSS assumes this flow is constant over
the time interval until next time instant t + ∆t, where ∆t is the time step size selected. The following
nomenclature is used:
ˆ Pin [t]: power flowing into the storage at t when it is either in charging or idling states;
ˆ Pout [t]: power flowing out of the storage or into the grid at t when it is in discharging state;
ˆ Pidl : constant idling losses;
ˆ ηinv [t]: inverter efficiency at t;
ˆ ηch : charging efficiency;
ˆ ηdch : discharging efficiency;
ˆ E[t]: energy stored at t;

5.1 Charging State


The Storage element can only enter into charging state if the amount of energy stored, kW hStored,
is less than the rated storage capacity, kW hRated. The rate of charge can be defined through either
properties kW (as a negative value) or %Charge (percentage of the kW Rated). The power flow
within the storage element during the charging state is illustrated in Figure 2.
After the power Pin [t] at the storage element grid interface has been determined from the power flow
solution1 , the storage inverter losses are determined by:
1
Note that the powers at the interface with the grid may differ from the specified ones due to the inverter capability

3
May 31, 2020

ch
Plosses,inv [t] = Pin [t] × (1 − ηinv [t]) (1)

The power at the DC side of the storage inverter, Pin [t] × ηinv [t], supplies the idling losses Pidl . The
charging losses are calculated analogous to the storage inverter losses:

Plosses,ch [t] = (Pin [t] × ηinv [t] − Pidl ) × (1 − ηch ) (2)

Thus, the total losses are

ch
Plosses,tot [t] = Lossesch
inv [t] + Pidl + Plosses,ch [t] (3)

ch
and the power that effectively charges the ideal storage, Pef f [t], is determined by

ch
Pef f [t] = (Pin [t] × ηinv [t] − Pidl ) × ηch (4)

or, equivalently,

ch ch
Pef f [t] = Pin [t] − Plosses,tot [t] (5)

The energy stored at the next simulation time step, t + ∆t, is given by:

ch
E[t + ∆t] = E[t] + Pef f [t] × ∆t

5.2 Discharging State


The Storage element can only enter into discharging state if the amount of energy stored is greater
than the energy capacity to be held in reserve for normal operation, %Reserve × kW hrated. The
discharge rate is defined either with kW (as a positive value) or %Discharge (percentage of the
kW Rated).
The power flow within the storage element during the discharging state is illustrated in Figure 3.
After the power flowing out of the Storage element, Pout [t] has been determined from the power flow
solution2 , the storage inverter losses are determined by:
curve and the model selected for variation with voltage (see property model).
2
Note that the powers at the interface with the grid may differ from the specified ones due to the inverter capability
curve and the model selected for variation with voltage (see property model).

4
May 31, 2020

Pin + jQin Pin × ηinv Pin × ηinv − Pidl (Pin × ηinv − Pidl ) × ηch
DC

AC
Ch/Dch
Inverter Losses
Pidl Idling Ideal Stored
Grid
Losses Storage Energy

Figure 2: The Internal Power Flow of the Storage Element during Charging State

 
dch 1
Plosses,inv [t] = Pout [t] × −1 (6)
ηinv [t]

The ideal storage supplies the power at the DC side of the inverter along with the idling losses and
the discharging losses. The discharging losses are given by:

   
Pout [t] 1
Plosses,dch [t] = + Pidl × −1 (7)
ηinv [t] ηdch

The total losses during discharging state are calculated with

dch dch
Plosses,tot [t] = Plosses,inv [t] + Pidl + Plosses,dch [t] (8)

dch
and the power that effectively discharges the ideal storage, Pef f [t], is determined by

dch Pout [t] Pidl [t]


Pef f [t] = + (9)
ηinv [t] × ηdch ηdch

or, equivalently,

dch dch
Pef f [t] = Pout [t] + Plosses,tot [t] [W ] (10)

Therefore, the energy stored at the following time step, t + ∆t, is given by:

dch
E[t + ∆t] = E[t] − Pef f [t] × ∆t

5
May 31, 2020

Pout Pout Pout Pidl


Pout + jQout ηinv ηinv +Pidl ηinv ×ηdch + ηdch
DC

AC
Ch/Dch
Inverter Losses
Pidl Idling Ideal Stored
Grid
Losses Storage Energy

Figure 3: The Internal Power Flow of the Storage Element during Discharging State

5.3 Idling State


When the storage element is in idling state, the idling losses and the associated inverter losses are
supplied by the grid3 , i.e., the SOC remains unaltered, as shown in Figure 4. In other words, the
storage element works as a load. The idling losses are specified as a percentage of kW rated through
the property %IdlingkW .

Pidl
ηinv + jQin Pidl 0 0
DC

AC
Ch/Dch
Inverter Losses
Pidl Idling Ideal Stored
Grid
Losses Storage Energy

Figure 4: The Internal Power Flow of the Storage Element during Idling State

6 Dispatch Modes
The Storage element has several different dispatch modes, i.e., different ways to control the operation
of a Storage element. The dispatch modes can be divided into self-dispatch modes and other dispatch
modes. In self-dispatch modes, a Storage element determines its own operation. In the other dispatch
3
In practice, this is how storage systems operate. Typically, the storage systems maintain a certain SOC, which
means that some charging is done to account for the self-depletion and auxiliary loads supplied by the same inverter.

6
May 31, 2020

modes, the storage operation is determined by a combination of StorageController and InvControl


control elements. The currently available Storage element dispatch modes are summarized in Table 1.
The dispatch modes can be further divided into active and reactive power dispatch modes. Separate
dispatch modes can be used for active power and reactive power but it is not possible to simultaneously
use multiple dispatch modes for active power or reactive power. It is however, possible to use separate
charging-specific and discharging-specific active power dispatch modes. For instance, the following
combinations are allowed:
ˆ Active power and reactive power dispatch driven by Follow self-dispatch mode and InvControl’s
Volt-Var function, respectively;
ˆ Active power and reactive power dispatch driven by StorageController‘s Time mode and In-
vControl’s Volt-Var function, respectively;
ˆ Active power and reactive power dispatch driven by StorageController‘s PeakShave (for charg-
ing) and PeakShaveLow (for discharging) modes and InvControl’s Volt-Var function, respec-
tively;
It is worth mentioning that InvControl‘s VW function can always be applied simultaneously with
any other active power dispatch mode, because it has a “limiting nature”, differently from the modes
presented in Table 1, which have a “requesting nature”.

Table 1: Currently Available Storage Element Dispatch Modes

Measure Means Mode/Function


Default
Follow
LoadLevel
Self-Dispatch
Price
External
TimeChargeTrigger (Discharge Only)
Active
PeakShave (Discharge Only)
Power
Follow (Discharge Only)
Support (Discharge Only)
StorageController Loadshape
PeakShaveLow (Charge Only)
Time
Schedule (Discharge Only)
Constant PF
Self-Dispatch
Constant kvar
Reactive Volt-Var (VV)
Power Dynamic Reactive Current (DRC)
InvControl
VV + DRC
VV + Volt-Watt (VW)

Observation: As specified in IEEE1547-2018[4], the smart-inverter Volt-Watt function applied to

7
May 31, 2020

energy storage systems may require the element to charge during high voltage scenarios. Thus, the
InvControl element could also be added as a mean to control the active power dispatch of a storage
element under VW function. However, this functionality has not been implemented yet. Currently,
the curve specified for VW function can only limit the active power dispatch to a value as low as
zero.
This technical note focuses on the self-dispatch modes, for both active and reactive powers. For more
information on the modes/functions available in StorageController and InvControl elements, see [2]
and [3].
Three of the five active power self-dispatch modes: Default, LoadLevel and Price, are commanded by
two triggers: one for charging, named ChargeT rigger, and the other for discharging, DischargeT rigger.
In general, a Storage element operates in a given state until one of the following events happens:
ˆ The stored energy, kW hstored, reaches the element’s rated capacity kW hRated when in charg-
ing state. In this case, the element automatically goes to idling state;
ˆ The stored energy reaches its minimum reserve, %reserve, when in discharging state. In this
case, the element automatically goes to idling state;
ˆ A trigger is activated. In this case, the storage automatically goes to the state determined by
the respective trigger, i.e., if ChargeT rigger has been activated, the storage goes to charging
state, whereas if the DischargeT rigger has been activated, the storage goes to discharging
state;
ˆ The user manually sets a new state: this can be done either through the parameter state or
kW ;
ˆ The storage receives a request from a StorageController element to operate in a specific state;
For the last three cases above, the element only operates in the selected/requested state if there is
enough energy stored/left. In other words, a given state and charge/discharge rate can always be
requested from a storage element but the storage operation may be limited among other things by
the storage energy capacity and the storage inverter operating limits (the inverter capability curve or
limit active power output and VW functions). The following subsections introduce the self-dispatch
modes.

6.1 Default
In this mode, the triggers follow the specified loadshape corresponding to the present solution mode
(properties daily, yearly and dutycycle). When the value of the loadshape is greater than the value
specified in DischargeT rigger, the storage discharges at a constant power, defined by %Discharge.
The discharging continues until either the SOC reaches %reserve or the value from the curve assumes
a value less than DischargeT rigger. Analogously, when the value of the loadshape is less than the
specified ChargeT rigger, the storage charges until either it is fully charged or the loadshape value
becomes greater than DischargeT rigger. Besides that, time criteria, if active, has priority over the
triggers. Time criteria is defined by the property T imeChargeT rigger, which corresponds to the
time of the day when the storage charging is activated, even if the value from the specified loadshape
is not less than ChargeT rigger. This mechanism can be utilized, e.g., to charge the storage at the
beginning of the day, when the demand is low, to ensure that the storage is fully charged to be

8
May 31, 2020

discharged during the rest of the day. By default, T imeChargeT rigger is active and equal to 2
(2am). To disable this feature, assign any negative value to this property.
In this mode, the triggers follow the specified loadshape corresponding to the present solution mode
(properties daily, yearly and dutycycle). Whenever the value from the curve is greater than the value
specified in DischargeT rigger, the storage discharges at a constant power, defined by %Discharge.
The discharging continues until either the SOC reaches %reserve or the value from the curve assumes
a value less than DischargeT rigger. In a similar way, whenever the value from the curve is less than
the specified ChargeT rigger the element charges until either it is fully charged or the curve assumes
a value greater than DischargeT rigger. Besides the aformentioned rules, there is another criteria
that, when active, has priority over the triggers. It is a time criteria and it is defined by the property
T imeChargeT rigger. It corresponds to the time of the day when the storage charging is activated,
even if the value from the specified loadshape is not less than ChargeT rigger. This mechanism
is normally utilized to charge the storage at the beginning of the day, when the demand is low,
to ensure that the element is fully charged for operation during the rest of the day. By default,
T imeChargeT rigger is active and equal to 2 (2am). To disable this feature, assign any negative
value to his property.

6.2 Follow
As the name suggests, in this mode, storage charging and discharging follow a loadshape until the
storage is either fully charged or discharged. As in the Default mode, the specified loadshape must
correspond to the present solution mode (properties daily, yearly and dutycycle). For positive
values, the storage is set to discharge and for negative values it is set to charge. A zero value sets
the element to idling state. Contrary to the Default mode, the charging and discharging rates are
variable and determined by the multiplication of the rated active power of the element, kW rated,
and the multipliers from the loadshape.

6.3 Price and LoadLevel


In these two modes, the charging and discharging triggers are also utilized, however they are compared
to global properties, which can be used, for instance, to model the effect of a control center responsible
for managing multiple energy storage elements.
Price mode uses, instead of a loadshape object, a PriceShape object, which represents of an array
of prices. The PriceShape object is assigned to the pricecurve global property. The triggers are
defined as prices and the rule is that whenever the energy price assigned to ChargeT rigger is
greater than the price from the global PriceShape, the storage is set to charging state. In other
words, the ChargeT rigger represents the maximum energy price the storage owner is willing to pay
to charge the storage. The storage charging is naturally limited by the storage energy capacity. The
DischargeT rigger works in an opposite way representing the minimum price that the storage owner
is willing to accept to sell energy to the grid. So the element is set to discharging state whenever
the price assigned is less than the global energy price. The global property pricesignal can also be
used to manually set the price of energy during the simulation, which can be useful when, e.g., the
prices are determined by an external algorithm. When manually setting the pricesignal property,
the pricecurve should not be defined as otherwise, it would be used.
The same logic applies to Loadlevel dispatch mode. In this mode, the global loadshape is defined

9
May 31, 2020

through a loadshape object that must be assigned to either def aultdaily or def aultyearly global
properties, depending on the solution mode being considered.
The commands used for defining the aforementioned properties are illustrated below.

 

// P r i c e S h a p e o b j e c t d e f i n i t i o n
New P r i c e S h a p e . P r i c e i n t e r v a l =1 n p t s =24
˜ p r i c e = [ 7 5 , 68 , 67 , 69 , 71 , 75 , 75 , 80 , 80 , 8 0 , 9 0 , 9 0 , 90 , 9 5 , 9 5 , 9 5 ,
105 , 105 , 110 , 110 , 110 , 90 , 90 , 90]

// A s s i g n i n g a g l o b a l p r i c e c u r v e t o t h e s i m u l a t i o n
Set p r i c e c u r v e = Price

// A s s i g n i n g a s p e c i f i c g l o b a l p r i c e
S e t p r i c e s i g n a l = 100 ! u s e t h i s when you d e s i r e t o
! manually a s s i g n a g l o b a l p r i c e

// A s s i g n i n g a g l o b a l l o a d s h a p e t o t h e s i m u l a t i o n
S e t d e f a u l t d a i l y = ‘ ‘ MyDailyLoadShapeName ’ ’ ! t h i s w i l l be c o n s i d e r e d i n
! a d a i l y mode s i m u l a t i o n
S e t d e f a u l t y e a r l y = ‘ ‘ MyYearlyLoadShapeName ’ ’ ! t h i s w i l l be c o n s i d e r e d i n
! a y e a r l y mode s i m u l a t i o n

! Optional
Set loadmult = pernunitvalue ! loadmult g l o b a l property a l s o a p p l i e s
! t o l o a d s h a p e s a s s i g n e d t o d e f a u l t d a i l y and d e f a u l t y e a r l y




6.4 External
In this mode, the storage state and dispatch values are defined by an external StorageController
control element. When a StorageController takes control over a storage element, this mode is auto-
matically activated for the storage element. Using StorageController enables further control modes
discussed in [2].
The External mode is also utilized when the user wants to take more direct control over the storage
operation, which can be done through the properties state, kW , kvar, %Charge, %Discharge. The
External mode should be selected when there is an external algorithm controlling these properties,
which is usually done through COM interface, but could also be performed by scripting the simulation
from a script file.

6.5 Reactive Power Dispatch


The reactive power of Storage element is similar to the PVSystem element. As shown in Table 1,
the Storage element has two self-dispatch modes for reactive power: constant power factor (PF)
and constant reactive power (kvar). The modes can be activated by simply assigning a value to the
Storage element pf or kvar properties.
In constant PF mode, the reactive power is calculated directly from the actual active power being
dispatched. By default, the Storage element operates in constant PF mode with unity power factor.
A positive power factor means reactive power flowing in the same direction as the active power,

10
May 31, 2020

whereas a negative power factor means reactive and active powers flowing in opposite directions.
Hence, depending on the Storage element operating state, the constant PF mode can cause the
Storage element to either generate or absorb reactive power .
In constant kvar mode, the reactive power requested through kvar is decoupled from the active
power. The sign convention is the same as for active power, i.e., a positive kvar means power flowing
out of the element (var generation) and a negative kvar means power flowing into the element (var
absorption).
Note that the active and reactive powers are subject to the inverter capability curve and other limiting
functions. Thus, the actual powers at the Storage grid interface may differ from the requested ones.
For more information, see [3] and [5].

7 State Variables
Table 2 lists all the state variables of the Storage element. The state variables can be monitored by
setting a monitor for the Storage element in mode 3.

Table 2: State Variables of the Storage Element

State Variable Description


kWh Stored Energy in kWh.
State Storage state. 1 for discharging, -1 for charging and 0 for idling.
Power flowing out of the element, in kW. It is a result from the power
kWOut
flow. For discharging state.
Power flowing into the element in kW. It is a result from the power
kWIn
flow. For charging and idling states.
Power flowing out of the element in kvar as a signed-value. Positive
kvarOut
for vars generation and negative for vars absorption.
DC power flowing into the storage inverter in kW at the DC side of
DCkW the inverter as a signed-value. Positive for power flowing into the grid
and negative for power flowing into the Storage element.
kWTotalLosses Total losses in kW.
kWInvLosses Inverter losses in kW.
kWIdlingLosses Idling losses in kW.
kWChDchLosses Charging and discharging losses in kW.
Energy variation from the last time step, in kWh. Corresponds to the
kWh Chng power that effectively charges/discharges the storage medium/battery
multiplied by the time step length.
InvEff Inverter efficiency.
InverterON Flag indicating the inverter status. See [3].
Reference voltage used by the voltage-dependent InvControl function-
Vref
alities. Equal to 9999 if there is no InvControl controlling the Storage
element. See [3].
Continues on next page

11
May 31, 2020

Table 2 – Continuation from previous page


State Variable Description
Average voltage of the moving window used in InvControl’s DRC func-
Vavg (DRC)
tion. Equal to 9999 if there is no InvControl controlling the element.
See [3].
Flag variable that indicates the status of InvControl’s Volt-Var function
VV Oper operation. Equal to 9999 if there is no InvControl controlling the
element. See [3].
Flag variable that indicates the status of InvControl’s Volt-Watt func-
VW Oper tion operation. Equal to 9999 if there is no InvControl controlling the
element. See[3].
Flag variable that indicates the status of InvControl’s DRC function
DRC Oper operation. Equal to 9999 if there is no InvControl controlling the
element. See [3].
Flag variable that indicates the status of InvControl’s VV + DRC
VV DRC Oper function operation. Equal to 9999 if there is no InvControl controlling
the element. See [3].
Nominal power desired or requested by the dispatch mode selected, in
kWDesired
kW, if there is enough energy capacity left. Otherwise, it is 0.
Active power limit imposed by Volt-Watt function, in kW. See [3].
kW VW Limit
Equal to 9999 if the function is disabled due to inverter status.
Active power limit imposed by “Limit DER output function”
Limit kWOut Function
(%kW Rated × kW Rated), in kW. See [3].
kVA Exceeded Flag indicating if inverter kVA rating has been exceeded. See [3].

8 Examples
In this section, several examples are presented to show the operation of the storage element in each
of the self-dispatch modes listed in Table 1. For simplicity, a small circuit containing a single storage
connected to a voltage source will be utilized, as shown in Figure 5.
In the first example, 8.1, several aspects of the model operation will be described in details. In the
following examples, the focus will be given to the aspects related to the storage dispatch itself.

A
1
2
Circuit 3 Storage
4
0

Figure 5: Storage Element Connected directly to a Voltage Source

12
May 31, 2020

8.1 Default Mode


In the script presented below, a loadshape is first created to be used as the dispatch curve to drive
the storage operation. Since the simulation is performed in daily mode, in the storage definition, it
is assigned to the Storage element daily property. Note that the element’s initial state is set to idling
and its initial SOC is set to 50%. Figure 6 presents the evolution of the element SOC, dispatch curve,
and charging and discharging triggers. Figure 7 shows the element input and output active powers,
and the storage inverter, idling, charging/discharging, and total losses. The curves have been plotted
from the data exported from a monitor attached to the storage in mode 3.

 

! S t o r a g e O p e r a t i o n i n D e f a u l t D i s p a t c h Mode
Clear

New C i r c u i t . S o u r c e bus1=A basekv =0.48 p h a s e s=3 pu=1

New LoadShape . d i s p a t c h s h a p e i n t e r v a l =1 n p t s =24


˜ mult = [ 0 . 3 8 0 , 0 . 2 2 0 , 0 . 2 4 7 , 0 . 2 8 0 , 0 . 3 1 3 , 0 . 3 7 0 , 0 . 5 8 9 , 0 . 6 7 2 , 0 . 7 4 7 7 , 0 . 8 3 2 ,
0.88 , 0.94 , 0.989 , 0.985 , 0.98 , 0.9898 , 0.999 , 1.0 , 0.958 , 0.936 , 0.913 ,
0.800 , 0.720 , 0.610]

! 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 . S t o r a g e 1 p h a s e s=3 bus1=A kv =0.48 p f=1 kWrated=50 % r e s e r v e =20


˜ e f f c u r v e=E f f kWhrated= 500 %stored=50 %idlingkW=2 s t a t e=i d l i n g
˜ dispmode=d e f a u l t model=1 d a i l y=d i s p a t c h s h a p e
˜ chargeTrigger = 0.34 dischargeTrigger = 0.85

New Monitor . M o n S t o r a g e 1 S t a t e e l e m e n t=S t o r a g e . S t o r a g e 1 mode=3


New Monitor . Mon Storage1 Powers e l e m e n t=S t o r a g e . S t o r a g e 1 mode=1 p p o l a r=No

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

S e t mode=D a i l y
Solve

P l o t Monitor o b j e c t=M o n S t o r a g e 1 S t a t e c h a n n e l s =(1 2 3 4 7 8 9 1 0 )


P l o t Monitor o b j e c t=Mon Storage1 Powers c h a n n e l s =(1 3 5 )




The storage element operation is discussed below in detail for the different time periods:
ˆ 1am - 2am : The storage SOC is 50% (250 kWh) and the storage is operating in idling state
(initial state) absorbing the power necessary to supply its idling losses and associated inverter
losses. No state change is requested as the dispatch curve is greater than ChargeT rigger and
less than DischargeT rigger;
ˆ 2am - 6am : At 2am, the dispatch curve becomes less than ChargeT rigger, so the storage
changes to charging mode charging at the rated power, kW Rated;
ˆ 6am - 11am : At 6am, the charging is ceased as the dispatch curve exceeds the ChargeT rigger;
ˆ 11am - 5pm : At 11am, the storage starts to discharge at rated power, kW Rated, as the

13
May 31, 2020

500
Dispatch Curve Charge Trigger Discharge Trigger

1
400

Loadshape Multiplier
Stored Energy [kWh]

0.8
300
0.6

200 0.4

0.2
100
Stored Energy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 6: Stored Energy, Dispatch Curve and Triggers in Example 8.1

10
Output Power Inverter Losses
Input Power Idling Losses 9
50 Ch/Dch Losses
Total Losses 8

Power Losses [kW]


7
Power [kW]

6
5
4
0 3
2
1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 7: Powers at Storage Interface and Power Losses in Example 8.1

dispatch curve exceeds the DischargeT rigger. At 5pm, the discharging is suspended as the
stored energy reaches its reserve level (100 kW, 20% of kW hRated) even though the dispatch
curve stays above DischargeT rigger;
ˆ 5pm - 12am : The element stays in idling state;

14
May 31, 2020

Note that the storage total losses 2-6am are different to the storage total losses 11am-5pm even
though the power at the storage grid interface is equal between these two periods (but with different
directions). This fact is in agreement with the storage element internal power flow discussed in
sections 5.1 and 5.2. In charging state, the power at the input of the charging losses block is
equal to the power at the grid interface, 50 kW, minus the inverter and idling losses, whereas in
discharging state, the power at the input of the discharging losses block is the sum of the output
power, the inverter and idling losses and the discharging losses itself, according to equations 2 and
7, respectively. The inverter losses also differ between charging and discharging states but less than
the charging/discharging losses.
As ηch e ηdisch have not been specified, both are equal to their default value 90%. The idling losses
are 2% of the rated power, which is equal to 1kW. Consider two time instants: one with the storage
charging and second with the storage discharging. Following the equations shown in section 5, the
storage losses during these two time instants can be described as shown below.
In charging state, the inverter efficiency (based on the inverter efficiency curve) for 50kW power at
the grid interface is ηinv ∼
= 0.968 (extracted from the report exported from monitor in mode 3). The
losses are given by:

Losseschinv = 50 × (1 − ηinv ) = 1.607 kW


Lossesch = (50 × ηinv − 1) × (1 − 0.9) = 4.739 kW
Lossesch
tot = 1.607 + 4.739 + 1 = 7.346 kW

Thus, the power that effectively charges the storage is

ch
Pef f = 50 − 7.346 = 42.654 kW

In discharging state, the inverter efficiency curve (based on the inverter efficiency curve) for 50kW
power at the grid interface is ηinv ∼
= 0.972 (extracted from the report exported from monitor in mode
3). The losses are given by:

 
1
Lossesdch
inv = 50 × − 1 = 1.444 kW
ηinv
   
50 1
Lossesdch = +1 × − 1 = 5.827 kW
ηinv 0.9
Lossesdch
tot = 1.444 + 5.827 + 1 = 8.271 kW

Thus, the power that effectively discharges the element is

ch
Pef f = 50 + 8.271 = 58.271 kW

We encourage the user to run the script of this example and to export the state variables from
monitor “Mon Storage1 State” to verify these results.

15
May 31, 2020

8.2 Follow Mode


In the script below, a different loadshape has been used to drive the operation of the element. Figure 8
shows the evolution of the stored energy and the dispatch curve and Figure 9 shows the active power
input and output at the storage grid interface.

 

! S t o r a g e O p e r a t i o n i n Follow D i s p a t c h Mode
Clear

New C i r c u i t . S o u r c e bus1=A basekv =0.48 p h a s e s=3 pu=1

New LoadShape . d i s p a t c h s h a p e i n t e r v a l =1 n p t s =24


˜ mult = [ 0 , = 1.0 , = 1.0 , = 1.0 , = 0.5 , = 0.5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 . 5 , 0 . 7 5 ,
1.0 , 1.0 , 1.0 , 1.0 , 0.75 , 0.5 , 0 , 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 . S t o r a g e 1 p h a s e s=3 bus1=A kv =0.48 p f=1 kWrated=50 % r e s e r v e =20


˜ e f f c u r v e=E f f kWhrated= 500 %stored=50 s t a t e=i d l i n g
˜ dispmode=f o l l o w model=1 d a i l y=d i s p a t c h s h a p e

New Monitor . M o n S t o r a g e 1 S t a t e e l e m e n t=S t o r a g e . S t o r a g e 1 mode=3


New Monitor . Mon Storage1 Powers e l e m e n t=S t o r a g e . S t o r a g e 1 mode=1 p p o l a r=No

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

S e t mode=D a i l y
Solve

P l o t Monitor o b j e c t=M o n S t o r a g e 1 S t a t e c h a n n e l s =(3 4 )


P l o t Monitor o b j e c t=Mon Storage1 Powers c h a n n e l s =(1 3 5 )




Note that a negative dispatch value means power flowing into the storage, i.e., charging state, and a
positive value means power flowing out of the storage, i.e., discharging state. Note also the similarity
of the dispatch curve and the storage powers at the grid interface. As presented in section 6.2, in
follow mode, the charge and discharge rates are determined as a product of the dispatch curve value
and the storage rated power, kW Rated. For instance, at 3am, the multiplier is -1, so the storage
charges at its rated power, 50 kW . At 3pm, a mutiplier of 0.5 leads the element to discharge at 25
kW.
To force the element to go to idling state, just specify a multiplier equal to 0. Finally, it is worth
mentioning again that the storage operation will follow the dispatch curve only if there is still enough
energy capacity left. For instance, at 10pm, the multiplier would lead the storage to discharge at 25
kW . However, at this time step, kW hstored has already reached the reserve value (100 kW), so the
element goes to idling state.

16
May 31, 2020

500
Dispatch Curve
1
400

Loadshape Multiplier
Stored Energy [kWh]

0.5

300
0

200 −0.5

100 −1
Stored Energy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 8: Stored Energy and Dispatch Curve in Example 8.2

Output Input

50
Power [kW]

25

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 9: Powers at Storage Interface in Example 8.2

8.3 Price and LoadLevel Modes


As these modes are very similar, the storage operation is illustrated only for the Price mode. In
the script below, a PriceShape object has been defined as an hypothetical energy price that varies
throughout the day. Note that the definition of this object is very similar to a LoadShape object.
The PriceShape element is assigned to the global price curve, pricecurve. Figures 10 and 11 show

17
May 31, 2020

the resulting storage operation.



 

! S t o r a g e O p e r a t i o n i n P r i c e Mode
Clear

New C i r c u i t . S o u r c e bus1=A basekv =0.48 p h a s e s=3 pu=1

New P r i c e S h a p e . P r i c e i n t e r v a l =1 n p t s =24
˜ p r i c e = [ 7 5 , 68 , 67 , 69 , 71 , 75 , 75 , 80 , 80 , 8 0 , 9 0 , 9 0 , 90 , 9 5 , 9 5 , 9 5 ,
105 , 105 , 110 , 110 , 110 , 90 , 90 , 90]

! 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 . S t o r a g e 1 p h a s e s=3 bus1=A kv =0.48 p f=1 kWrated=50 % r e s e r v e =20


˜ kWhrated= 500 %stored=50 s t a t e=i d l i n g d e b u g t r a c e=y e s dispmode=p r i c e model=1
˜ d i s c h a r g e T r i g g e r = 100 c h a r g e T r i g g e r= 74

New Monitor . M o n S t o r a g e 1 S t a t e e l e m e n t=S t o r a g e . S t o r a g e 1 mode=3


New Monitor . Mon Storage1 Powers e l e m e n t=S t o r a g e . S t o r a g e 1 mode=1 p p o l a r=No

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

S e t p r i c e c u r v e=P r i c e
S e t mode=D a i l y
Solve

P l o t Monitor o b j e c t=M o n S t o r a g e 1 S t a t e c h a n n e l s =(1 2 3 4 5 6 7 )


P l o t Monitor o b j e c t=Mon Storage1 Powers c h a n n e l s =(1 3 5 )




400
100
Stored Energy [kWh]

300 90
US$/MWh

80
200
70

Price Curve
60
100 Dischage Trigger
Stored Energy Charge Trigger

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 10: Stored Energy, Price Curve and Triggers in Example 8.3

18
May 31, 2020

50 Output
Input
Power [kW]

−50
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 11: Powers at Storage Interface in Example 8.3

8.4 External Mode


This example shows how a “manual” control of the storage dispatch can be accomplished. In this
example, the simulation is broken into smaller time periods that are each solved by issuing the solve
command for a desired number of time steps specified with the global property number. The storage
state and power are set to desired values in the beginning of each time period.

 

! S t o r a g e O p e r a t i o n i n E x t e r n a l Mode
Clear

New C i r c u i t . S o u r c e bus1=A basekv =0.48 p h a s e s=3 pu=1

! 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 . S t o r a g e 1 p h a s e s=3 bus1=A kv =0.48 p f=1 kWrated=50 % r e s e r v e =20


˜ e f f c u r v e=E f f kWhrated= 500 %stored=50 s t a t e=i d l i n g dispmode=E x t e r n a l

New Monitor . M o n S t o r a g e 1 S t a t e e l e m e n t=S t o r a g e . S t o r a g e 1 mode=3


New Monitor . Mon Storage1 Powers e l e m e n t=S t o r a g e . S t o r a g e 1 mode=1 p p o l a r=No

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

S e t mode=D a i l y
S e t s t e p s i z e =1h

// I d l e s i n t h e f i r s t two h o u r s
// 1am=2am
S e t number=2

19
May 31, 2020

Solve

// Charges f o r t h e next 5 h o u r s with 80% o f r a t e d power


// 3am=7am
Ed it S t o r a g e . S t o r a g e 1 s t a t e=c h a r g i n g %charge=80 ! s e t t i n g s t a t e d i r e c t l y
S e t number=5
Solve

// I d l e s f o r t h e next 10 h o u r s
// 8am=5pm
Ed it S t o r a g e . S t o r a g e 1 s t a t e=i d l i n g
S e t number= 10
Solve

// D i s c h a r g e s f o r t h e next 5 h o u r s with h a l f o f r a t e d power


// 6pm=10pm
! s e t t i n g s t a t e d i r e c t l y through kw ( p o s i t i v e means d i s c h a r g i n g )
Ed it S t o r a g e . S t o r a g e 1 kW=25
S e t number=5
Solve

// I d l e s f o r t h e l a s t two h o u r s
// 11pm=12am
Ed it S t o r a g e . S t o r a g e 1 s t a t e=i d l i n g
S e t number= 2
Solve

P l o t Monitor o b j e c t=M o n S t o r a g e 1 S t a t e c h a n n e l s =(1 2 3 4 5 6 7 )


P l o t Monitor o b j e c t=Mon Storage1 Powers c h a n n e l s =(1 3 5 )




40
Output
Input

30
Power [kW]

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 12: Powers at Storage Interface in Example 8.4

From 3am to 7am, the element is set to charge with a charging rate of 80%, 40 kW. Both are specified

20
May 31, 2020

directly through state and %charge properties. This could also be accomplished by setting kW to
-40. From 6pm to 10pm, the element is set to discharge with 50 kW through kW property. In the
other time intervals, the element is set to idling state.

8.5 Reactive Power Dispatch


The next two examples are intended to demonstrate the operation of the storage element under the
two reactive power self-dispatch modes: constant PF and constant kvar.

8.5.1 Constant PF Mode


To illustrate the storage operation in the constant PF mode, the Follow active power self-dispatch
mode has been considered. The script used is similar to the one in example 8.2 apart from the
differences in the dispatch curve and the addition of storage element property pf = −0.90.

 

New LoadShape . d i s p a t c h s h a p e 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.88 , 0 . 0 , 0 . 0 , 0 . 0 ,
0.0 , 0.0 , 0.0 , 0.0 , 0.01 , 0.08 , 0.12 , 0.16 , 0.30 , 0.50 , 0.88 , 0.0 , 0.0]

New S t o r a g e . S t o r a g e 1 p h a s e s=3 bus1=A kv =0.48 p f=1 kWrated=50 % r e s e r v e =20


˜ e f f c u r v e=E f f kWhrated= 500 %stored=50 s t a t e=i d l i n g
˜ dispmode=f o l l o w p f = = 0.90 model=1 d a i l y=d i s p a t c h s h a p e




Figure 13 shows the active and reactive powers at the interface with the grid. Note that because of
the negative power factor, the reactive power has an opposite sign to the active power. Figure 16
shows the PQ plane with the resulting operating points throughout the simulation. All points are
over the constant -0.9 power factor line, even during idling state.

Active Power Output Active Power Input Reactive Power Output


50

40

30
Power [kW]

20

10

−10

−20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 13: Powers at Storage Interface in Example 8.5.1

21
May 31, 2020

1 Qgen (pu)
.8
kVA
.6 kWRated
.4 kvarMax
.2
kvarMaxAbs
Operating Region
Pgen (pu) PF = -0.9
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1
-.2 Operating Points
-.4

-.6

-.8

-1

Figure 14: PQ Plane with Inverter Capability Curve and Operating Points under Constant PF Mode

8.5.2 Constant kvar Mode


This example illustrates the storage operation in the constant kvar mode using the dispatch curve
from example 8.5.1 but with a constant reactive power generation of 20 kvar.

 

New S t o r a g e . S t o r a g e 1 p h a s e s=3 bus1=A kv =0.48 p f=1 kWrated=50 % r e s e r v e =20
˜ e f f c u r v e=E f f kWhrated= 500 %stored=50 s t a t e=i d l i n g
˜ dispmode=f o l l o w kvar=20 model=1 d a i l y=d i s p a t c h s h a p e




Active Power Output Active Power Input Reactive Power Output


50

40

30
Power [kW]

20

10

−10

−20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Time [hours]

Figure 15: Powers at storage interface in example 8.5.2

22
May 31, 2020

1 Qgen (pu)
.8
kVA
.6 kWRated
.4 kvarMax
.2
kvarMaxAbs
Operating Region
Pgen (pu) kvar = 0.4 pu
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1
-.2 Operating Points
-.4

-.6

-.8

-1

Figure 16: PQ Plane with Inverter Capability Curve and Operating Points under Constant kvar
Mode

23
May 31, 2020

9 List of properties
Table 3 lists all the available properties of the storage element. Some of them are referenced in
Figures 17 and 18.

Table 3: Properties of the storage Element

Property Description
Number of Phases, this Storage element. Power is evenly divided
(1) phases
among phases.
Bus to which the Storage element is connected. May include specific
(2) bus1
node specification.
Nominal rated (1.0 per unit) voltage, kV, for Storage element. For
2- and 3-phase Storage elements, specify phase-phase kV. Otherwise,
(3) kv specify actual kV across each branch of the Storage element. If wye
(star), specify phase-neutral kV. If delta or phase-phase connected,
specify phase-phase kV.
(4) conn { wye | LN | delta | LL }. Default is wye.
Get/set the requested kW value. Final kW is subjected to the inverter
ratings. A positive value denotes power coming OUT of the element,
(5) kW which is the opposite of a Load element. A negative value indicates the
Storage element is in Charging state. This value is modified internally
depending on the dispatch mode.
Get/set the requested kvar value. Final kvar is subjected to the inverter
(6) kvar
ratings. Sets inverter to operate in constant kvar mode.
Get/set the requested PF value. Final PF is subjected to the inverter
ratings. Sets inverter to operate in constant PF mode. Nominally, the
power factor for discharging (acting as a generator). Default is 1.0.
(7) pf Enter a negative value for leading power factor (when kW and kvar
have opposite signs). A positive power factor signifies kw and kvar at
the same direction.
Indicates the inverter nameplate capability (in kVA). Used as the base
(8) kVA
for Dynamics mode and Harmonics mode values. See Figure 18.
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
(9) %CutIn greater than or equal to %CutOut. Defaults to 0, which means that
the inverter state will be always ON for this element. See Figure 18.
Cut-out power as a percentage of inverter kVA rating. It is the mini-
mum DC power necessary to keep the inverter ON. Must be less than
(10) %CutOut or equal to %CutIn. Defaults to 0, which means that, once ON, the
inverter state will be always ON for this element. See Figure 18.
Continues on next page

24
May 31, 2020

Table 3 – Continuation from previous page


Property Description
An XYCurve object, previously defined, that describes the PER UNIT
(11) EffCurve efficiency vs PER UNIT of rated kVA for the inverter. Power at the
AC side of the inverter is discounted by the multiplier obtained from
this curve.
Boolean variable (Yes|No) or (True|False). Defaults to False which in-
dicates that the reactive power generation/absorption does not respect
the inverter status. When set to True, the reactive power genera-
tion/absorption will cease when the inverter status is off, due to DC
(12) varFollowInverter kW dropping below %CutOut. The reactive power generation/absorp-
tion 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.
Indicates the maximum reactive power GENERATION (un-signed nu-
(13) kvarMax merical variable in kvar) for the inverter. Defaults to kVA rating of
the inverter. See Figure 18.
Indicates the maximum reactive power ABSORPTION (un-signed nu-
(14) kvarMaxAbs
merical variable in kvar) for the inverter. Defaults to kvarMax. See
Figure 18.
{Yes|No*|True|False} Set inverter to watt priority instead of the de-
(15) WattPriority
fault var priority.
If set to true, priority is given to power factor and WattPriority is
(16) PFPriority neglected. It works only if operating in either constant PF or constant
kvar modes. Defaults to False.
Minimum active power as percentage of kWrated under which there is
(17) %PminNoVars
no vars production/absorption. Defaults to 0 (disabled). See Figure 18.
Minimum active power as percentage of kWrated that allows the in-
verter to produce/absorb reactive power up to its maximum reactive
(18) %PminkvarMax power, which can be either kvarMax or kvarMaxAbs, depending on the
current operation quadrant. Defaults to 0 (disabled). See Figure 18.
kW rating of inverter active power output. Base for Loadshapes when
(19) kWrated DispMode=Follow. Sets kVA property if it has not been specified yet.
Defaults to 25. See Figure 18.
Upper limit on active power as a percentage of kWrated. Defaults to
(20) %kWrated
100 (disabled).
(21) kWhrated Rated storage capacity in kWh. Default is 50.
(22) kWhstored Present amount of energy stored, kWh. Default is same as kWhrated.
(23) %stored Present amount of energy stored, % of rated kWh. Default is 100.
Percentage of rated kWh storage capacity to be held in reserve for
normal operation. Default = 20. This is treated as the minimum
(24) %reserve energy discharge level unless there is an emergency. For emergency
operation set this property lower. Cannot be less than zero.
Continues on next page

25
May 31, 2020

Table 3 – Continuation from previous page


Property Description
{ IDLING | CHARGING | DISCHARGING } Get/Set present oper-
ational state. In DISCHARGING mode, the Storage element acts as
a generator and the kW property is positive. The element contin-
ues discharging at the scheduled output power level until the storage
reaches the reserve value. Then the state reverts to IDLING. In the
(25) state
CHARGING state, the Storage element behaves like a Load and the
kW property is negative. The element continues to charge until the
max storage kWh is reached and then switches to IDLING state. In
IDLING state, the element draws the idling losses plus the associated
inverter losses.
Discharge rate (output power) in percentage of rated kW. Default =
(26) %Discharge
100.
(27) %Charge Charging rate (input power) in percentage of rated kW. Default = 100.
Percentage efficiency for CHARGING the storage element. Default =
(28) %EffCharge
90.
Percentage efficiency for DISCHARGING the storage element. Default
(29) %EffDischarge
= 90.
(30) %IdlingkW Percentage of rated kW consumed by idling losses. Default = 1.
(31) %Idlingkvar Deprecated.
Equivalent percentage internal resistance, ohms. Default is 0. Placed
in series with internal voltage source for harmonics and dynamics
(32) %R modes. Use a combination of %IdlingkW, %EffCharge and %EffDis-
charge to account for losses in power flow modes.
Equivalent percentage internal reactance, ohms. Default is 50%.
(33) %X Placed in series with internal voltage source for harmonics and dy-
namics modes. (Limits fault current to 2 pu.)
Integer code (default=1) for the model to be used for power output
variation with voltage. Valid values are:
(34) model 1:Storage element injects/absorbs a CONSTANT power.
2:Storage element is modeled as a CONSTANT IMPEDANCE.
3:Compute load injection from User-written Model.
Default = 0.90. Minimum per unit voltage for which the Model is as-
(35) vminpu sumed to apply. Below this value, the load model reverts to a constant
impedance model.
Default = 1.10. Maximum per unit voltage for which the Model is as-
(36) vmaxpu sumed to apply. Above this value, the load model reverts to a constant
impedance model.
{Yes|No*} Default is No. Force balanced current only for 3-phase
(37) Balanced
Storage. Forces zero- and negative-sequence to zero.
Continues on next page

26
May 31, 2020

Table 3 – Continuation from previous page


Property Description
Limits current magnitude to Vminpu value for both 1-phase and 3-
(38) LimitCurrent phase Storage similar to Generator Model 7. For 3-phase, limits the
positive-sequence current but not the negative-sequence.
Dispatch shape to use for yearly simulations. Must be previously de-
fined as a Loadshape object. If this is not specified, the Daily dispatch
(39) yearly shape, if any, is repeated during Yearly solution modes. In the default
dispatch mode, the Storage element uses this loadshape to trigger State
changes.
Dispatch shape to use for daily simulations. Must be previously defined
(40) daily as a Loadshape object of 24 hrs, typically. In the default dispatch
mode, the Storage element uses this loadshape to trigger State changes.
Load shape to use for duty cycle dispatch simulations such as for solar
ramp rate studies. Must be previously defined as a Loadshape object.
Typically would have time intervals of 1-5 seconds. Designate the
(41) duty number of points to solve using the Set Number=xxxx command. If
there are fewer points in the actual shape, the shape is assumed to
repeat.
One amongst { DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL |
PRICE} Dispatch Mode. Default = “DEFAULT”. In DEFAULT mode,
Storage element state is triggered to discharge or charge at the specified
rate by the loadshape curve corresponding to the solution mode. In
FOLLOW mode the kW output of the STORAGE element follows the
active loadshape multiplier until storage is either exhausted or full.
The element discharges for positive values and charges for negative
(42)DispMode values. The loadshape is based on rated kW. In EXTERNAL mode,
Storage element state is controlled by an external Storage controller.
This mode is automatically set if this Storage element is included in
the element list of a StorageController element. For the other two
dispatch modes, the Storage element state is controlled by either the
global default Loadlevel value or the price level.
Dispatch trigger value for discharging the storage. If = 0.0 the Storage
element state is changed by the State command or by a StorageCon-
troller object. If <> 0 the Storage element state is set to DISCHARG-
(43) DischargeTrigger ING when this trigger level is EXCEEDED by either the specified
Loadshape curve value or the price signal or global Loadlevel value,
depending on dispatch mode. See State property.
Dispatch trigger value for charging the storage. If = 0.0 the Storage
element state is changed by the State command or StorageController
object. If <> 0 the Storage element state is set to CHARGING when
(44) ChargeTrigger this trigger level is GREATER than either the specified Loadshape
curve value or the price signal or global Loadlevel value, depending on
dispatch mode. See State property.
Continues on next page

27
May 31, 2020

Table 3 – Continuation from previous page


Property Description
Time of day in fractional hours (0230 = 2.5) at which storage element
(45) TimeChargeTrig will automatically go into charge state. Default is 2.0. Enter a negative
time value to disable this feature.
An arbitrary integer number representing the class of Storage element
(46) class
so that Storage values may be segregated by class.
Name of DLL containing user-written dynamics model, which com-
putes the terminal currents for Dynamics-mode simulations, overriding
(47) DynaDLL the default model. Set to “none” to negate previous setting. This DLL
has a simpler interface than the UserModel DLL and is only used for
Dynamics mode.
String (in quotes or parentheses if necessary) that gets passed to the
(48) DynaData user-written dynamics model Edit function for defining the data re-
quired for that model.
Name of DLL containing user-written model, which computes the ter-
(49) UserModel minal currents for both power flow and dynamics, overriding the default
model. Set to “none” to negate previous setting.
String (in quotes or parentheses) that gets passed to user-written model
(50) UserData
for defining the data required for that model.
{yes|no}.Default is no. Turn this on to capture the progress of the Stor-
(51) debugtrace age model for each iteration. Creates a separate file for each Storage
element named “STORAGE name.csv”.

kWrated, pf, kVA, %CutIn, %CutOut,


EffCurve, varFollowInverter, kvar-
Max, kvarMaxAbs, WattPrior-
ity, PFPriority, %PminNoVars,
%PminkvarMax, %Charge, %Discharge

kW, kvar state %EffCharge, %EffDischarge


DC

AC
State Ch/Dch
Inverter Losses
Idling Ideal Stored
Grid %IdlingkW
Losses Storage Energy

kWhrated, kWhstored,
%stored, %reserve

Figure 17: General Model of the Storage Element with Mapping of Properties and Internal Compo-
nents

28
May 31, 2020

Qgen (pu)
1

.8
kVA
.6 %CutIn/%CutOut
%PminNoVars
.4
%PminkvarMax
.2
kWRated
kvarMax
Pgen (pu) kvarMaxAbs
-1 -.8 -.6 -.4 -.2 .2 .4 .6 .8 1 Operating Region
-.2
Op. Region (W Only)
-.4
Op. Region (Night)

-.6

-.8

-1

Figure 18: General Inverter Capability Curve

29
May 31, 2020

10 References
[1] R. Dugan and D. Montenegro, “Opendss storage element and storagecontroller element,” EPRI,
OpenDSS Tech. Note, October 2019.
[2] C. Rocha, J. Peppanen, P. Radatz, M. Rylander, and R. Dugan, “Storagecontroller element,”
EPRI, OpenDSS Tech. Note, November 2019.
[3] P. Radatz, W. Sunderman, and C. Rocha, “Opendss pvsystem and invcontrol element models,”
EPRI, OpenDSS Tech. Note, November 2019.
[4] IEEE Standard for Interconnection and Interoperability of Distributed Energy Resources with
Associated Electric Power Systems Interfaces, Std., April 2018.
[5] C. Rocha, P. Radatz, J. Peppanen, M. Rylander, and R. Dugan, “Inverter modelling,” EPRI,
OpenDSS Tech. Note, 2019.

30

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy