DSS C-API and dss.hpp
DSS C-API and dss.hpp expose a customized and extended implementation of OpenDSS to C and C++.
dss::obj::StorageController Class Reference
Inheritance diagram for dss::obj::StorageController:
[legend]
Collaboration diagram for dss::obj::StorageController:
[legend]

Classes

struct  Properties
 

Public Types

enum class  StorageControllerDischargemode : int32_t {
  Peakshave = 5 , Follow = 1 , Support = 3 , Loadshape = 2 ,
  Time = 4 , Schedule = 6 , I_Peakshave = 8
}
 StorageController: Discharge mode (DSS enumeration for StorageController) More...
 
enum class  StorageControllerChargemode : int32_t { Loadshape = 2 , Time = 4 , PeakshaveLow = 7 , I_PeakshaveLow = 9 }
 StorageController: Charge mode (DSS enumeration for StorageController) More...
 

Public Member Functions

 StorageController (APIUtil *util=nullptr, void *ptr_=nullptr)
 Create wrapper directly by a given object handle/pointer.
 
 StorageController (APIUtil *util, int32_t idx)
 Create a wrapper for an element given by the integer index "idx".
 
 StorageController (APIUtil *util, char *name)
 Create a wrapper for an element given its name.
 
const char * name ()
 Returns the object's name.
 
StorageControllerbegin_edit ()
 Marks an object for edition. More...
 
StorageControllerend_edit (int32_t num_edits=1)
 Finalizes an object edition. More...
 
string Element ()
 Full object name of the circuit element, typically a line or transformer, which the control is monitoring. More...
 
StorageControllerElement (const string &value)
 
StorageControllerElement (dss::obj::DSSObj &value)
 
dss::obj::DSSObj Element_obj ()
 Full object name of the circuit element, typically a line or transformer, which the control is monitoring. More...
 
StorageControllerElement_obj (dss::obj::DSSObj &value)
 
int32_t Terminal ()
 Number of the terminal of the circuit element to which the StorageController2 control is connected. More...
 
StorageControllerTerminal (int32_t value)
 
int32_t MonPhase ()
 Number of the phase being monitored or one of {AVG | MAX | MIN} for all phases. More...
 
StorageControllerMonPhase (int32_t value)
 
StorageControllerMonPhase (MonitoredPhase value)
 
StorageControllerMonPhase (const string &value)
 
StorageControllerMonPhase (const char *value)
 
string MonPhase_str ()
 Number of the phase being monitored or one of {AVG | MAX | MIN} for all phases. More...
 
StorageControllerMonPhase_str (const string &value)
 Number of the phase being monitored or one of {AVG | MAX | MIN} for all phases. More...
 
double kWTarget ()
 kW/kamps target for Discharging. More...
 
StorageControllerkWTarget (double value)
 
double kWTargetLow ()
 kW/kamps target for Charging. More...
 
StorageControllerkWTargetLow (double value)
 
double pctkWBand ()
 Bandwidth (% of Target kW/kamps) of the dead band around the kW/kamps target value. More...
 
StorageControllerpctkWBand (double value)
 
double kWBand ()
 Alternative way of specifying the bandwidth. More...
 
StorageControllerkWBand (double value)
 
double pctkWBandLow ()
 Bandwidth (% of kWTargetLow) of the dead band around the kW/kamps low target value. More...
 
StorageControllerpctkWBandLow (double value)
 
double kWBandLow ()
 Alternative way of specifying the bandwidth. More...
 
StorageControllerkWBandLow (double value)
 
strings ElementList ()
 Array list of Storage elements to be controlled. More...
 
StorageControllerElementList (strings &value)
 
VectorXd Weights ()
 Array of proportional weights corresponding to each Storage element in the ElementList. More...
 
StorageControllerWeights (VectorXd &value)
 
StorageControllerDischargemode ModeDischarge ()
 {PeakShave* | Follow | Support | Loadshape | Time | Schedule | I-PeakShave} Mode of operation for the DISCHARGE FUNCTION of this controller. More...
 
StorageControllerModeDischarge (int32_t value)
 
StorageControllerModeDischarge (StorageControllerDischargemode value)
 
StorageControllerModeDischarge (const string &value)
 
StorageControllerModeDischarge (const char *value)
 
string ModeDischarge_str ()
 {PeakShave* | Follow | Support | Loadshape | Time | Schedule | I-PeakShave} Mode of operation for the DISCHARGE FUNCTION of this controller. More...
 
StorageControllerModeDischarge_str (const string &value)
 {PeakShave* | Follow | Support | Loadshape | Time | Schedule | I-PeakShave} Mode of operation for the DISCHARGE FUNCTION of this controller. More...
 
StorageControllerChargemode ModeCharge ()
 {Loadshape | Time* | PeakShaveLow | I-PeakShaveLow} Mode of operation for the CHARGE FUNCTION of this controller. More...
 
StorageControllerModeCharge (int32_t value)
 
StorageControllerModeCharge (StorageControllerChargemode value)
 
StorageControllerModeCharge (const string &value)
 
StorageControllerModeCharge (const char *value)
 
string ModeCharge_str ()
 {Loadshape | Time* | PeakShaveLow | I-PeakShaveLow} Mode of operation for the CHARGE FUNCTION of this controller. More...
 
StorageControllerModeCharge_str (const string &value)
 {Loadshape | Time* | PeakShaveLow | I-PeakShaveLow} Mode of operation for the CHARGE FUNCTION of this controller. More...
 
double TimeDischargeTrigger ()
 Default time of day (hr) for initiating Discharging of the fleet. More...
 
StorageControllerTimeDischargeTrigger (double value)
 
double TimeChargeTrigger ()
 Default time of day (hr) for initiating charging in Time control mode. More...
 
StorageControllerTimeChargeTrigger (double value)
 
double pctRatekW ()
 Sets the kW discharge rate in % of rated capacity for each element of the fleet. More...
 
StorageControllerpctRatekW (double value)
 
double pctRateCharge ()
 Sets the kW charging rate in % of rated capacity for each element of the fleet. More...
 
StorageControllerpctRateCharge (double value)
 
double pctReserve ()
 Use this property to change the % reserve for each Storage element under control of this controller. More...
 
StorageControllerpctReserve (double value)
 
double kWhTotal ()
 (Read only). More...
 
StorageControllerkWhTotal (double value)
 
double kWTotal ()
 (Read only). More...
 
StorageControllerkWTotal (double value)
 
double kWhActual ()
 (Read only). More...
 
StorageControllerkWhActual (double value)
 
double kWActual ()
 (Read only). More...
 
StorageControllerkWActual (double value)
 
double kWneed ()
 (Read only). More...
 
StorageControllerkWneed (double value)
 
string Yearly ()
 Dispatch loadshape object, If any, for Yearly solution Mode. More...
 
StorageControllerYearly (const string &value)
 
StorageControllerYearly (dss::obj::LoadShape &value)
 
dss::obj::LoadShape Yearly_obj ()
 Dispatch loadshape object, If any, for Yearly solution Mode. More...
 
StorageControllerYearly_obj (dss::obj::LoadShape &value)
 
string Daily ()
 Dispatch loadshape object, If any, for Daily solution mode. More...
 
StorageControllerDaily (const string &value)
 
StorageControllerDaily (dss::obj::LoadShape &value)
 
dss::obj::LoadShape Daily_obj ()
 Dispatch loadshape object, If any, for Daily solution mode. More...
 
StorageControllerDaily_obj (dss::obj::LoadShape &value)
 
string Duty ()
 Dispatch loadshape object, If any, for Dutycycle solution mode. More...
 
StorageControllerDuty (const string &value)
 
StorageControllerDuty (dss::obj::LoadShape &value)
 
dss::obj::LoadShape Duty_obj ()
 Dispatch loadshape object, If any, for Dutycycle solution mode. More...
 
StorageControllerDuty_obj (dss::obj::LoadShape &value)
 
bool EventLog ()
 {Yes/True | No/False} Default is No. More...
 
StorageControllerEventLog (bool value)
 
int32_t InhibitTime ()
 Hours (integer) to inhibit Discharging after going into Charge mode. More...
 
StorageControllerInhibitTime (int32_t value)
 
double Tup ()
 Duration, hrs, of upramp part for SCHEDULE mode. More...
 
StorageControllerTup (double value)
 
double TFlat ()
 Duration, hrs, of flat part for SCHEDULE mode. More...
 
StorageControllerTFlat (double value)
 
double Tdn ()
 Duration, hrs, of downramp part for SCHEDULE mode. More...
 
StorageControllerTdn (double value)
 
double kWThreshold ()
 Threshold, kW, for Follow mode. More...
 
StorageControllerkWThreshold (double value)
 
double DispFactor ()
 Defaults to 1 (disabled). More...
 
StorageControllerDispFactor (double value)
 
double ResetLevel ()
 The level of charge required for allowing the storage to discharge again after reaching the reserve storage level. More...
 
StorageControllerResetLevel (double value)
 
int32_t Seasons ()
 With this property the user can specify the number of targets to be used by the controller using the list given at "SeasonTargets"/"SeasonTargetsLow", which can be used to dynamically adjust the storage controller during a QSTS simulation. More...
 
StorageControllerSeasons (int32_t value)
 
VectorXd SeasonTargets ()
 An array of doubles specifying the targets to be used during a QSTS simulation. More...
 
StorageControllerSeasonTargets (VectorXd &value)
 
VectorXd SeasonTargetsLow ()
 An array of doubles specifying the targets to be used during a QSTS simulation. More...
 
StorageControllerSeasonTargetsLow (VectorXd &value)
 
double basefreq ()
 Base Frequency for ratings. More...
 
StorageControllerbasefreq (double value)
 
bool enabled ()
 {Yes|No or True|False} Indicates whether this element is enabled. More...
 
StorageControllerenabled (bool value)
 
StorageControllerlike (const string &value)
 Make like another object, e.g. More...
 
StorageControllerlike (const char *value)
 Make like another object, e.g. More...
 
- Public Member Functions inherited from dss::obj::DSSObj
 DSSObj (APIUtil *util=nullptr, void *ptr_=nullptr)
 

Static Public Attributes

static const char dss_cls_name [] = "StorageController"
 
static const int32_t dss_cls_idx = 29
 

Additional Inherited Members

- Public Attributes inherited from dss::obj::DSSObj
APIUtilapi_util
 
void * ptr
 
- Protected Member Functions inherited from dss::obj::DSSObj
void check_for_error ()
 
void set_string (int32_t index, const string &value)
 
void set_string (int32_t index, const char *value)
 
string get_prop_string (int32_t index)
 
complex get_complex (int32_t index)
 
void set_complex (int32_t index, complex value)
 
void set_string_array (int32_t index, strings &value)
 
void set_obj (int32_t index, DSSObj &value)
 
template<typename T >
get_obj (int32_t index)
 
template<typename T = VectorXd>
get_array (int32_t index)
 
template<typename T = VectorXd>
void set_array (int32_t index, T value)
 
- Static Protected Member Functions inherited from dss::obj::DSSObj
template<typename T = VectorXd>
static void set_array (void *ptr, int32_t index, T value)
 
- Protected Attributes inherited from dss::obj::DSSObj
friend DSSBatch
 

Member Enumeration Documentation

◆ StorageControllerChargemode

StorageController: Charge mode (DSS enumeration for StorageController)

Enumerator
Loadshape 

Loadshape.

Time 

Time.

PeakshaveLow 

PeakshaveLow.

I_PeakshaveLow 

I-PeakshaveLow.

◆ StorageControllerDischargemode

StorageController: Discharge mode (DSS enumeration for StorageController)

Enumerator
Peakshave 

Peakshave.

Follow 

Follow.

Support 

Support.

Loadshape 

Loadshape.

Time 

Time.

Schedule 

Schedule.

I_Peakshave 

I-Peakshave.

Member Function Documentation

◆ basefreq()

double dss::obj::StorageController::basefreq ( )
inline

Base Frequency for ratings.

DSS property name: basefreq, DSS property index: 38

◆ begin_edit()

StorageController & dss::obj::StorageController::begin_edit ( )
inline

Marks an object for edition.

Until end_edit is called, some actions are postponed.

◆ Daily()

string dss::obj::StorageController::Daily ( )
inline

Dispatch loadshape object, If any, for Daily solution mode.

DSS property name: Daily, DSS property index: 25

◆ Daily_obj()

dss::obj::LoadShape dss::obj::StorageController::Daily_obj ( )
inline

Dispatch loadshape object, If any, for Daily solution mode.

DSS property name: Daily, DSS property index: 25

◆ DispFactor()

double dss::obj::StorageController::DispFactor ( )
inline

Defaults to 1 (disabled).

Set to any value between 0 and 1 to enable this parameter.

Use this parameter to reduce the amount of power requested by the controller in each control iteration. It can be useful when maximum control iterations are exceeded due to numerical instability such as fleet being set to charging and idling in subsequent control iterations (check the Eventlog).

DSS property name: DispFactor, DSS property index: 33

◆ Duty()

string dss::obj::StorageController::Duty ( )
inline

Dispatch loadshape object, If any, for Dutycycle solution mode.

DSS property name: Duty, DSS property index: 26

◆ Duty_obj()

dss::obj::LoadShape dss::obj::StorageController::Duty_obj ( )
inline

Dispatch loadshape object, If any, for Dutycycle solution mode.

DSS property name: Duty, DSS property index: 26

◆ Element()

string dss::obj::StorageController::Element ( )
inline

Full object name of the circuit element, typically a line or transformer, which the control is monitoring.

There is no default; Must be specified.

DSS property name: Element, DSS property index: 1

◆ Element_obj()

dss::obj::DSSObj dss::obj::StorageController::Element_obj ( )
inline

Full object name of the circuit element, typically a line or transformer, which the control is monitoring.

There is no default; Must be specified.

DSS property name: Element, DSS property index: 1

◆ ElementList()

strings dss::obj::StorageController::ElementList ( )
inline

Array list of Storage elements to be controlled.

If not specified, all Storage elements in the circuit not presently dispatched by another controller are assumed dispatched by this controller.

DSS property name: ElementList, DSS property index: 10

◆ enabled()

bool dss::obj::StorageController::enabled ( )
inline

{Yes|No or True|False} Indicates whether this element is enabled.

DSS property name: enabled, DSS property index: 39

◆ end_edit()

StorageController & dss::obj::StorageController::end_edit ( int32_t  num_edits = 1)
inline

Finalizes an object edition.

This will result more compelx side-effects like Yprim and other internal data recalculation, for example.

◆ EventLog()

bool dss::obj::StorageController::EventLog ( )
inline

{Yes/True | No/False} Default is No.

Log control actions to Eventlog.

DSS property name: EventLog, DSS property index: 27

◆ InhibitTime()

int32_t dss::obj::StorageController::InhibitTime ( )
inline

Hours (integer) to inhibit Discharging after going into Charge mode.

Default is 5.

DSS property name: InhibitTime, DSS property index: 28

◆ kWActual()

double dss::obj::StorageController::kWActual ( )
inline

(Read only).

Actual kW output of all controlled Storage elements.

DSS property name: kWActual, DSS property index: 22

◆ kWBand()

double dss::obj::StorageController::kWBand ( )
inline

Alternative way of specifying the bandwidth.

(kW/kamps) of the dead band around the kW/kamps target value. Default is 2% of kWTarget (+/-1%).No dispatch changes are attempted if the power in the monitored terminal stays within this band.

DSS property name: kWBand, DSS property index: 7

◆ kWBandLow()

double dss::obj::StorageController::kWBandLow ( )
inline

Alternative way of specifying the bandwidth.

(kW/kamps) of the dead band around the kW/kamps low target value. Default is 2% of kWTargetLow (+/-1%).No charging is attempted if the power in the monitored terminal stays within this band.

DSS property name: kWBandLow, DSS property index: 9

◆ kWhActual()

double dss::obj::StorageController::kWhActual ( )
inline

(Read only).

Actual kWh stored of all controlled Storage elements.

DSS property name: kWhActual, DSS property index: 21

◆ kWhTotal()

double dss::obj::StorageController::kWhTotal ( )
inline

(Read only).

Total rated kWh energy Storage capacity of Storage elements controlled by this controller.

DSS property name: kWhTotal, DSS property index: 19

◆ kWneed()

double dss::obj::StorageController::kWneed ( )
inline

(Read only).

KW needed to meet target.

DSS property name: kWneed, DSS property index: 23

◆ kWTarget()

double dss::obj::StorageController::kWTarget ( )
inline

kW/kamps target for Discharging.

The Storage element fleet is dispatched to try to hold the power/current in band at least until the Storage is depleted. The selection of power or current depends on the Discharge mode (PeakShave->kW, I-PeakShave->kamps).

DSS property name: kWTarget, DSS property index: 4

◆ kWTargetLow()

double dss::obj::StorageController::kWTargetLow ( )
inline

kW/kamps target for Charging.

The Storage element fleet is dispatched to try to hold the power/current in band at least until the Storage is fully charged. The selection of power or current depends on the charge mode (PeakShavelow->kW, I-PeakShavelow->kamps).

DSS property name: kWTargetLow, DSS property index: 5

◆ kWThreshold()

double dss::obj::StorageController::kWThreshold ( )
inline

Threshold, kW, for Follow mode.

kW has to be above this value for the Storage element to be dispatched on. Defaults to 75% of the kWTarget value. Must reset this property after setting kWTarget if you want a different value.

DSS property name: kWThreshold, DSS property index: 32

◆ kWTotal()

double dss::obj::StorageController::kWTotal ( )
inline

(Read only).

Total rated kW power capacity of Storage elements controlled by this controller.

DSS property name: kWTotal, DSS property index: 20

◆ like() [1/2]

StorageController & dss::obj::StorageController::like ( const char *  value)
inline

Make like another object, e.g.

:

New Capacitor.C2 like=c1 ...

DSS property name: like, DSS property index: 40

◆ like() [2/2]

StorageController & dss::obj::StorageController::like ( const string &  value)
inline

Make like another object, e.g.

:

New Capacitor.C2 like=c1 ...

DSS property name: like, DSS property index: 40

◆ ModeCharge()

StorageControllerChargemode dss::obj::StorageController::ModeCharge ( )
inline

{Loadshape | Time* | PeakShaveLow | I-PeakShaveLow} Mode of operation for the CHARGE FUNCTION of this controller.

In Loadshape mode, both charging and discharging precisely follows the per unit loadshape. Storage is charged when the loadshape value is negative.

In Time mode, the Storage charging FUNCTION is triggered at the specified RateCharge at the specified charge trigger time in fractional hours.

In PeakShaveLow mode, the charging operation will charge the Storage fleet when the power at amonitored element is below a specified KW target (kWTarget_low). The Storage will charge as much power as necessary to keep the power within the deadband around kWTarget_low.

In I-PeakShaveLow mode, the charging operation will charge the Storage fleet when the current (Amps) at amonitored element is below a specified amps target (kWTarget_low). The Storage will charge as much power as necessary to keep the amps within the deadband around kWTarget_low. When this control mode is active, the property kWTarget_low will be expressed in k-amps and all the other parameters will be adjusted to match the amps (current) control criteria.

DSS property name: ModeCharge, DSS property index: 13

◆ ModeCharge_str() [1/2]

string dss::obj::StorageController::ModeCharge_str ( )
inline

{Loadshape | Time* | PeakShaveLow | I-PeakShaveLow} Mode of operation for the CHARGE FUNCTION of this controller.

In Loadshape mode, both charging and discharging precisely follows the per unit loadshape. Storage is charged when the loadshape value is negative.

In Time mode, the Storage charging FUNCTION is triggered at the specified RateCharge at the specified charge trigger time in fractional hours.

In PeakShaveLow mode, the charging operation will charge the Storage fleet when the power at amonitored element is below a specified KW target (kWTarget_low). The Storage will charge as much power as necessary to keep the power within the deadband around kWTarget_low.

In I-PeakShaveLow mode, the charging operation will charge the Storage fleet when the current (Amps) at amonitored element is below a specified amps target (kWTarget_low). The Storage will charge as much power as necessary to keep the amps within the deadband around kWTarget_low. When this control mode is active, the property kWTarget_low will be expressed in k-amps and all the other parameters will be adjusted to match the amps (current) control criteria.

DSS property name: ModeCharge, DSS property index: 13

◆ ModeCharge_str() [2/2]

StorageController & dss::obj::StorageController::ModeCharge_str ( const string &  value)
inline

{Loadshape | Time* | PeakShaveLow | I-PeakShaveLow} Mode of operation for the CHARGE FUNCTION of this controller.

In Loadshape mode, both charging and discharging precisely follows the per unit loadshape. Storage is charged when the loadshape value is negative.

In Time mode, the Storage charging FUNCTION is triggered at the specified RateCharge at the specified charge trigger time in fractional hours.

In PeakShaveLow mode, the charging operation will charge the Storage fleet when the power at amonitored element is below a specified KW target (kWTarget_low). The Storage will charge as much power as necessary to keep the power within the deadband around kWTarget_low.

In I-PeakShaveLow mode, the charging operation will charge the Storage fleet when the current (Amps) at amonitored element is below a specified amps target (kWTarget_low). The Storage will charge as much power as necessary to keep the amps within the deadband around kWTarget_low. When this control mode is active, the property kWTarget_low will be expressed in k-amps and all the other parameters will be adjusted to match the amps (current) control criteria.

DSS property name: ModeCharge, DSS property index: 13

◆ ModeDischarge()

StorageControllerDischargemode dss::obj::StorageController::ModeDischarge ( )
inline

{PeakShave* | Follow | Support | Loadshape | Time | Schedule | I-PeakShave} Mode of operation for the DISCHARGE FUNCTION of this controller.

In PeakShave mode (Default), the control attempts to discharge Storage to keep power in the monitored element below the kWTarget.

In Follow mode, the control is triggered by time and resets the kWTarget value to the present monitored element power. It then attempts to discharge Storage to keep power in the monitored element below the new kWTarget. See TimeDischargeTrigger.

In Support mode, the control operates oppositely of PeakShave mode: Storage is discharged to keep kW power output up near the target.

In Loadshape mode, both charging and discharging precisely follows the per unit loadshape. Storage is discharged when the loadshape value is positive.

In Time mode, the Storage discharge is turned on at the specified RatekW at the specified discharge trigger time in fractional hours.

In Schedule mode, the Tup, TFlat, and Tdn properties specify the up ramp duration, flat duration, and down ramp duration for the schedule. The schedule start time is set by TimeDischargeTrigger and the rate of discharge for the flat part is determined by RatekW.

In I-PeakShave mode, the control attempts to discharge Storage to keep current in the monitored element below the target given in k-amps (thousands of amps), when this control mode is active, the property kWTarget will be expressed in k-amps.

DSS property name: ModeDischarge, DSS property index: 12

◆ ModeDischarge_str() [1/2]

string dss::obj::StorageController::ModeDischarge_str ( )
inline

{PeakShave* | Follow | Support | Loadshape | Time | Schedule | I-PeakShave} Mode of operation for the DISCHARGE FUNCTION of this controller.

In PeakShave mode (Default), the control attempts to discharge Storage to keep power in the monitored element below the kWTarget.

In Follow mode, the control is triggered by time and resets the kWTarget value to the present monitored element power. It then attempts to discharge Storage to keep power in the monitored element below the new kWTarget. See TimeDischargeTrigger.

In Support mode, the control operates oppositely of PeakShave mode: Storage is discharged to keep kW power output up near the target.

In Loadshape mode, both charging and discharging precisely follows the per unit loadshape. Storage is discharged when the loadshape value is positive.

In Time mode, the Storage discharge is turned on at the specified RatekW at the specified discharge trigger time in fractional hours.

In Schedule mode, the Tup, TFlat, and Tdn properties specify the up ramp duration, flat duration, and down ramp duration for the schedule. The schedule start time is set by TimeDischargeTrigger and the rate of discharge for the flat part is determined by RatekW.

In I-PeakShave mode, the control attempts to discharge Storage to keep current in the monitored element below the target given in k-amps (thousands of amps), when this control mode is active, the property kWTarget will be expressed in k-amps.

DSS property name: ModeDischarge, DSS property index: 12

◆ ModeDischarge_str() [2/2]

StorageController & dss::obj::StorageController::ModeDischarge_str ( const string &  value)
inline

{PeakShave* | Follow | Support | Loadshape | Time | Schedule | I-PeakShave} Mode of operation for the DISCHARGE FUNCTION of this controller.

In PeakShave mode (Default), the control attempts to discharge Storage to keep power in the monitored element below the kWTarget.

In Follow mode, the control is triggered by time and resets the kWTarget value to the present monitored element power. It then attempts to discharge Storage to keep power in the monitored element below the new kWTarget. See TimeDischargeTrigger.

In Support mode, the control operates oppositely of PeakShave mode: Storage is discharged to keep kW power output up near the target.

In Loadshape mode, both charging and discharging precisely follows the per unit loadshape. Storage is discharged when the loadshape value is positive.

In Time mode, the Storage discharge is turned on at the specified RatekW at the specified discharge trigger time in fractional hours.

In Schedule mode, the Tup, TFlat, and Tdn properties specify the up ramp duration, flat duration, and down ramp duration for the schedule. The schedule start time is set by TimeDischargeTrigger and the rate of discharge for the flat part is determined by RatekW.

In I-PeakShave mode, the control attempts to discharge Storage to keep current in the monitored element below the target given in k-amps (thousands of amps), when this control mode is active, the property kWTarget will be expressed in k-amps.

DSS property name: ModeDischarge, DSS property index: 12

◆ MonPhase()

int32_t dss::obj::StorageController::MonPhase ( )
inline

Number of the phase being monitored or one of {AVG | MAX | MIN} for all phases.

Default=MAX. Must be less than the number of phases. Used in PeakShave, Follow, Support and I-PeakShave discharging modes and in PeakShaveLow, I-PeakShaveLow charging modes. For modes based on active power measurements, the value used by the control is the monitored one multiplied by the number of phases of the monitored element.

DSS property name: MonPhase, DSS property index: 3

◆ MonPhase_str() [1/2]

string dss::obj::StorageController::MonPhase_str ( )
inline

Number of the phase being monitored or one of {AVG | MAX | MIN} for all phases.

Default=MAX. Must be less than the number of phases. Used in PeakShave, Follow, Support and I-PeakShave discharging modes and in PeakShaveLow, I-PeakShaveLow charging modes. For modes based on active power measurements, the value used by the control is the monitored one multiplied by the number of phases of the monitored element.

DSS property name: MonPhase, DSS property index: 3

◆ MonPhase_str() [2/2]

StorageController & dss::obj::StorageController::MonPhase_str ( const string &  value)
inline

Number of the phase being monitored or one of {AVG | MAX | MIN} for all phases.

Default=MAX. Must be less than the number of phases. Used in PeakShave, Follow, Support and I-PeakShave discharging modes and in PeakShaveLow, I-PeakShaveLow charging modes. For modes based on active power measurements, the value used by the control is the monitored one multiplied by the number of phases of the monitored element.

DSS property name: MonPhase, DSS property index: 3

◆ pctkWBand()

double dss::obj::StorageController::pctkWBand ( )
inline

Bandwidth (% of Target kW/kamps) of the dead band around the kW/kamps target value.

Default is 2% (+/-1%).No dispatch changes are attempted if the power in the monitored terminal stays within this band.

DSS property name: kWBand, DSS property index: 6

◆ pctkWBandLow()

double dss::obj::StorageController::pctkWBandLow ( )
inline

Bandwidth (% of kWTargetLow) of the dead band around the kW/kamps low target value.

Default is 2% (+/-1%).No charging is attempted if the power in the monitored terminal stays within this band.

DSS property name: kWBandLow, DSS property index: 8

◆ pctRateCharge()

double dss::obj::StorageController::pctRateCharge ( )
inline

Sets the kW charging rate in % of rated capacity for each element of the fleet.

Applies to TIME control mode and anytime charging mode is entered due to a time trigger.

DSS property name: RateCharge, DSS property index: 17

◆ pctRatekW()

double dss::obj::StorageController::pctRatekW ( )
inline

Sets the kW discharge rate in % of rated capacity for each element of the fleet.

Applies to TIME control mode, SCHEDULE mode, or anytime discharging is triggered by time.

DSS property name: RatekW, DSS property index: 16

◆ pctReserve()

double dss::obj::StorageController::pctReserve ( )
inline

Use this property to change the % reserve for each Storage element under control of this controller.

This might be used, for example, to allow deeper discharges of Storage or in case of emergency operation to use the remainder of the Storage element.

DSS property name: Reserve, DSS property index: 18

◆ ResetLevel()

double dss::obj::StorageController::ResetLevel ( )
inline

The level of charge required for allowing the storage to discharge again after reaching the reserve storage level.

After reaching this level, the storage control will not allow the storage device to discharge, forcing the storage to charge. Once the storage reaches thislevel, the storage will be able to discharge again. This value is a number between 0.2 and 1

DSS property name: ResetLevel, DSS property index: 34

◆ Seasons()

int32_t dss::obj::StorageController::Seasons ( )
inline

With this property the user can specify the number of targets to be used by the controller using the list given at "SeasonTargets"/"SeasonTargetsLow", which can be used to dynamically adjust the storage controller during a QSTS simulation.

The default value is 1. This property needs to be defined before defining SeasonTargets/SeasonTargetsLow.

DSS property name: Seasons, DSS property index: 35

◆ SeasonTargets()

VectorXd dss::obj::StorageController::SeasonTargets ( )
inline

An array of doubles specifying the targets to be used during a QSTS simulation.

These targets will take effect only if SeasonRating=true. The number of targets cannot exceed the number of seasons defined at the SeasonSignal.The difference between the targets defined at SeasonTargets and SeasonTargetsLow is that SeasonTargets applies to discharging modes, while SeasonTargetsLow applies to charging modes.

DSS property name: SeasonTargets, DSS property index: 36

◆ SeasonTargetsLow()

VectorXd dss::obj::StorageController::SeasonTargetsLow ( )
inline

An array of doubles specifying the targets to be used during a QSTS simulation.

These targets will take effect only if SeasonRating=true. The number of targets cannot exceed the number of seasons defined at the SeasonSignal.The difference between the targets defined at SeasonTargets and SeasonTargetsLow is that SeasonTargets applies to discharging modes, while SeasonTargetsLow applies to charging modes.

DSS property name: SeasonTargetsLow, DSS property index: 37

◆ Tdn()

double dss::obj::StorageController::Tdn ( )
inline

Duration, hrs, of downramp part for SCHEDULE mode.

Default is 0.25.

DSS property name: Tdn, DSS property index: 31

◆ Terminal()

int32_t dss::obj::StorageController::Terminal ( )
inline

Number of the terminal of the circuit element to which the StorageController2 control is connected.

1 or 2, typically. Default is 1. Make sure to select the proper direction on the power for the respective dispatch mode.

DSS property name: Terminal, DSS property index: 2

◆ TFlat()

double dss::obj::StorageController::TFlat ( )
inline

Duration, hrs, of flat part for SCHEDULE mode.

Default is 2.0.

DSS property name: TFlat, DSS property index: 30

◆ TimeChargeTrigger()

double dss::obj::StorageController::TimeChargeTrigger ( )
inline

Default time of day (hr) for initiating charging in Time control mode.

Set this to a negative value to ignore. Default is 2.0. (0200).When this value is >0 the Storage fleet is set to charging at this time regardless of other control criteria to make sure Storage is topped off for the next discharge cycle.

DSS property name: TimeChargeTrigger, DSS property index: 15

◆ TimeDischargeTrigger()

double dss::obj::StorageController::TimeDischargeTrigger ( )
inline

Default time of day (hr) for initiating Discharging of the fleet.

During Follow or Time mode discharging is triggered at a fixed time each day at this hour. If Follow mode, Storage will be discharged to attempt to hold the load at or below the power level at the time of triggering. In Time mode, the discharge is based on the RatekW property value. Set this to a negative value to ignore. Default is 12.0 for Follow mode; otherwise it is -1 (ignored).

DSS property name: TimeDischargeTrigger, DSS property index: 14

◆ Tup()

double dss::obj::StorageController::Tup ( )
inline

Duration, hrs, of upramp part for SCHEDULE mode.

Default is 0.25.

DSS property name: Tup, DSS property index: 29

◆ Weights()

VectorXd dss::obj::StorageController::Weights ( )
inline

Array of proportional weights corresponding to each Storage element in the ElementList.

The needed kW or kvar to get back to center band is dispatched to each Storage element according to these weights. Default is to set all weights to 1.0.

DSS property name: Weights, DSS property index: 11

◆ Yearly()

string dss::obj::StorageController::Yearly ( )
inline

Dispatch loadshape object, If any, for Yearly solution Mode.

DSS property name: Yearly, DSS property index: 24

◆ Yearly_obj()

dss::obj::LoadShape dss::obj::StorageController::Yearly_obj ( )
inline

Dispatch loadshape object, If any, for Yearly solution Mode.

DSS property name: Yearly, DSS property index: 24


The documentation for this class was generated from the following file: