altdss.Storage

Contents

altdss.Storage#

Module Contents#

Classes#

IStorage

Storage

StorageBatch

StorageBatchProperties

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

StorageProperties

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

API#

class altdss.Storage.IStorage(iobj)#

Bases: altdss.DSSObj.IDSSObj, altdss.Storage.StorageBatch

AmpLimit: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

The current limiter per phase for the IBR when operating in GFM mode. This limit is imposed to prevent the IBR to enter into Safe Mode when reaching the IBR power ratings. Once the IBR reaches this value, it remains there without moving into Safe Mode. This value needs to be set lower than the IBR Amps rating.

DSS property name: AmpLimit, DSS property index: 60.

AmpLimitGain: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Use it for fine tunning the current limiter when active, by default is 0.8, it has to be a value between 0.1 and 1. This value allows users to fine tune the IBRs current limiter to match with the user requirements.

DSS property name: AmpLimitGain, DSS property index: 61.

Balanced: List[bool]#

‘property(…)’

{Yes | No*} Default is No. Force balanced current only for 3-phase Storage. Forces zero- and negative-sequence to zero.

DSS property name: Balanced, DSS property index: 37.

BaseFreq: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Base Frequency for ratings.

DSS property name: BaseFreq, DSS property index: 63.

Bus1: List[str]#

‘property(…)’

Bus to which the Storage element is connected. May include specific node specification.

DSS property name: Bus1, DSS property index: 2.

ChargeTrigger: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘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 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.

DSS property name: ChargeTrigger, DSS property index: 44.

Class: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

An arbitrary integer number representing the class of Storage element so that Storage values may be segregated by class.

DSS property name: Class, DSS property index: 46.

ComplexSeqCurrents() altdss.types.ComplexArray#

Complex double array of Sequence Currents for all conductors of all terminals of active circuit element.

Original COM help: https://opendss.epri.com/CplxSeqCurrents.html

ComplexSeqVoltages() altdss.types.ComplexArray#

Complex double array of Sequence Voltage for all terminals of active circuit element.

Original COM help: https://opendss.epri.com/CplxSeqVoltages1.html

Conn: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

={wye|LN|delta|LL}. Default is wye.

DSS property name: Conn, DSS property index: 4.

Conn_str: List[str]#

‘property(…)’

={wye|LN|delta|LL}. Default is wye.

DSS property name: Conn, DSS property index: 4.

ControlMode: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

Defines the control mode for the inverter. It can be one of {GFM | GFL*}. By default it is GFL (Grid Following Inverter). Use GFM (Grid Forming Inverter) for energizing islanded microgrids, but, if the device is connected to the grid, it is highly recommended to use GFL.

GFM control mode disables any control action set by the InvControl device.

DSS property name: ControlMode, DSS property index: 59.

ControlMode_str: List[str]#

‘property(…)’

Defines the control mode for the inverter. It can be one of {GFM | GFL*}. By default it is GFL (Grid Following Inverter). Use GFM (Grid Forming Inverter) for energizing islanded microgrids, but, if the device is connected to the grid, it is highly recommended to use GFL.

GFM control mode disables any control action set by the InvControl device.

DSS property name: ControlMode, DSS property index: 59.

Currents() altdss.types.ComplexArray#

Complex array of currents into each conductor of each terminal

Original COM help: https://opendss.epri.com/Currents1.html

CurrentsMagAng() altdss.types.Float64Array#

Currents in magnitude, angle (degrees) format as a array of doubles.

Original COM help: https://opendss.epri.com/CurrentsMagAng.html

Daily: List[altdss.LoadShape.LoadShape]#

‘property(…)’

Dispatch shape to use for daily simulations. Must be previously defined as a Loadshape object of 24 hrs, typically. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Daily, DSS property index: 40.

Daily_str: List[str]#

‘property(…)’

Dispatch shape to use for daily simulations. Must be previously defined as a Loadshape object of 24 hrs, typically. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Daily, DSS property index: 40.

DebugTrace: List[bool]#

‘property(…)’

{Yes | No } Default is no. Turn this on to capture the progress of the Storage model for each iteration. Creates a separate file for each Storage element named “Storage_name.csv”.

DSS property name: DebugTrace, DSS property index: 51.

DischargeTrigger: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Dispatch trigger value for discharging the Storage. If = 0.0 the Storage element state is changed by the State command or by a StorageController object. If <> 0 the Storage element state is set to DISCHARGING 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.

DSS property name: DischargeTrigger, DSS property index: 43.

DispMode: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

{DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL | PRICE } Default = “DEFAULT”. Dispatch mode.

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 values. The loadshape is based on rated kW.

In EXTERNAL mode, Storage element state is controlled by an external Storagecontroller. 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.

DSS property name: DispMode, DSS property index: 42.

DispMode_str: List[str]#

‘property(…)’

{DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL | PRICE } Default = “DEFAULT”. Dispatch mode.

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 values. The loadshape is based on rated kW.

In EXTERNAL mode, Storage element state is controlled by an external Storagecontroller. 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.

DSS property name: DispMode, DSS property index: 42.

Duty: List[altdss.LoadShape.LoadShape]#

‘property(…)’

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 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.

DSS property name: Duty, DSS property index: 41.

Duty_str: List[str]#

‘property(…)’

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 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.

DSS property name: Duty, DSS property index: 41.

DynOut: List[List[str]]#

‘property(…)’

The name of the variables within the Dynamic equation that will be used to govern the Storage dynamics. This Storage model requires 1 output from the dynamic equation:

1. Current.

The output variables need to be defined in the same order.

DSS property name: DynOut, DSS property index: 58.

DynaDLL: List[str]#

‘property(…)’

Name of DLL containing user-written dynamics model, which computes the terminal currents for Dynamics-mode simulations, overriding 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.

DSS property name: DynaDLL, DSS property index: 47.

DynaData: List[str]#

‘property(…)’

String (in quotes or parentheses if necessary) that gets passed to the user-written dynamics model Edit function for defining the data required for that model.

DSS property name: DynaData, DSS property index: 48.

DynamicEq: List[altdss.DynamicExp.DynamicExp]#

‘property(…)’

The name of the dynamic equation (DynamicExp) that will be used for defining the dynamic behavior of the generator. If not defined, the generator dynamics will follow the built-in dynamic equation.

DSS property name: DynamicEq, DSS property index: 57.

DynamicEq_str: List[str]#

‘property(…)’

The name of the dynamic equation (DynamicExp) that will be used for defining the dynamic behavior of the generator. If not defined, the generator dynamics will follow the built-in dynamic equation.

DSS property name: DynamicEq, DSS property index: 57.

EffCurve: List[altdss.XYcurve.XYcurve]#

‘property(…)’

An XYCurve object, previously defined, that describes the PER UNIT 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.

DSS property name: EffCurve, DSS property index: 11.

EffCurve_str: List[str]#

‘property(…)’

An XYCurve object, previously defined, that describes the PER UNIT 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.

DSS property name: EffCurve, DSS property index: 11.

Enabled: List[bool]#

‘property(…)’

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

DSS property name: Enabled, DSS property index: 64.

EnergyMeter() List[altdss.DSSObj.DSSObj]#
EnergyMeterName() List[str]#
FullName() List[str]#

Returns the full name (including object type) for all objects in this batch

GUID() List[str]#

GUID/UUID for each object. Currently used only in the CIM-related methods.

Original COM help: https://opendss.epri.com/GUID.html

Handle() altdss.types.Int32Array#

Index of each element into the circuit’s element list.

Original COM help: https://opendss.epri.com/Handle.html

HasOCPDevice() altdss.types.BoolArray#

For each element in the batch: returns true if a recloser, relay, or fuse controlling the circuit element.

OCP = Overcurrent Protection

Original COM help: https://opendss.epri.com/HasOCPDevice.html

HasSwitchControl() altdss.types.BoolArray#

For each element in the batch: returns true if the element has a SwtControl attached.

Original COM help: https://opendss.epri.com/HasSwitchControl.html

HasVoltControl() altdss.types.BoolArray#

For each element in the batch: returns true if the element has a CapControl or RegControl attached.

Original COM help: https://opendss.epri.com/HasVoltControl.html

IsIsolated() altdss.types.BoolArray#

For each element in the batch: returns true if the element is isolated. Note that this only fetches the current value. See also the Topology interface.

Kp: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

It is the proportional gain for the PI controller within the inverter. Use it to modify the controller response in dynamics simulation mode.

DSS property name: Kp, DSS property index: 53.

Like(value: AnyStr, flags: altdss.enums.SetterFlags = 0)#

Make like another object, e.g.:

New Capacitor.C2 like=c1 …

DSS property name: Like, DSS property index: 65.

LimitCurrent: List[bool]#

‘property(…)’

Limits current magnitude to Vminpu value for both 1-phase and 3-phase Storage similar to Generator Model 7. For 3-phase, limits the positive-sequence current but not the negative-sequence.

DSS property name: LimitCurrent, DSS property index: 38.

Losses() altdss.types.ComplexArray#

For each element in the batch: total losses in the element, in VA (watts, vars).

Original COM help: https://opendss.epri.com/Losses1.html

MaxCurrent(terminal: int) altdss.types.Float64Array#

Returns the maximum current (magnitude) at the specified terminal for each element in this batch. Use -1 as terminal to get the value across all terminals.

Model: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

Integer code (default=1) for the model to be used for power output variation with voltage. Valid values are:

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.

DSS property name: Model, DSS property index: 34.

property Name: List[str]#
NumConductors() altdss.types.Int32Array#

Number of conductors per terminal for each element in the batch.

Original COM help: https://opendss.epri.com/NumConductors.html

NumControllers() altdss.types.Int32Array#

Number of controllers connected to each device in the batch.

Original COM help: https://opendss.epri.com/NumControls.html

NumPhases() altdss.types.Int32Array#

Number of Phases for each element in this batch.

Original COM help: https://opendss.epri.com/NumPhases.html

NumTerminals() altdss.types.Int32Array#

Number of terminals for each Circuit Element in the batch.

Original COM help: https://opendss.epri.com/NumTerminals.html

OCPDevice() List[Union[altdss.DSSObj.DSSObj, None]]#

Returns (as a list of Python objects) the OCP device controlling each element.

OCPDeviceIndex() altdss.types.Int32Array#

For each element in the batch: index into each controller list of the OCP Device controlling each circuit element

Original COM help: https://opendss.epri.com/OCPDevIndex.html

OCPDeviceType() List[dss.enums.OCPDevType]#

For each element in the batch: type of OCP controller device

Original COM help: https://opendss.epri.com/OCPDevType.html

PF: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

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.

Enter negative for leading power factor (when kW and kvar have opposite signs.)

A positive power factor signifies kw and kvar at the same direction.

DSS property name: PF, DSS property index: 7.

PFPriority: List[bool]#

‘property(…)’

If set to true, priority is given to power factor and WattPriority is neglected. It works only if operating in either constant PF or constant kvar modes. Defaults to False.

DSS property name: PFPriority, DSS property index: 16.

PITol: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

It is the tolerance (%) for the closed loop controller of the inverter. For dynamics simulation mode.

DSS property name: PITol, DSS property index: 54.

PhaseLosses() altdss.types.ComplexArray#

Complex array of losses (kVA) by phase

Original COM help: https://opendss.epri.com/PhaseLosses.html

Phases: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

Number of Phases, this Storage element. Power is evenly divided among phases.

DSS property name: Phases, DSS property index: 1.

Powers() altdss.types.ComplexArray#

Complex array of powers (kVA) into each conductor of each terminal, of each element in the batch.

Original COM help: https://opendss.epri.com/Powers.html

SafeMode: List[bool]#

‘property(…)’

(Read only) Indicates whether the inverter entered (Yes) or not (No) into Safe Mode.

DSS property name: SafeMode, DSS property index: 56.

SafeVoltage: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the voltage level (%) respect to the base voltage level for which the Inverter will operate. If this threshold is violated, the Inverter will enter safe mode (OFF). For dynamic simulation. By default is 80%.

DSS property name: SafeVoltage, DSS property index: 55.

SeqCurrents() altdss.types.Float64Array#

Array of symmetrical component currents (magnitudes only) into each 3-phase terminal of each element

Original COM help: https://opendss.epri.com/SeqCurrents.html

SeqPowers() altdss.types.ComplexArray#

Complex array of sequence powers (kW, kvar) into each 3-phase terminal of each element

Original COM help: https://opendss.epri.com/SeqPowers.html

SeqVoltages() altdss.types.Float64Array#

Double array of symmetrical component voltages (magnitudes only) at each 3-phase terminal

Original COM help: https://opendss.epri.com/SeqVoltages1.html

Spectrum: List[altdss.Spectrum.Spectrum]#

‘property(…)’

Name of harmonic voltage or current spectrum for this Storage element. Current injection is assumed for inverter. Default value is “default”, which is defined when the DSS starts.

DSS property name: Spectrum, DSS property index: 62.

Spectrum_str: List[str]#

‘property(…)’

Name of harmonic voltage or current spectrum for this Storage element. Current injection is assumed for inverter. Default value is “default”, which is defined when the DSS starts.

DSS property name: Spectrum, DSS property index: 62.

State: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

{IDLING | CHARGING | DISCHARGING} Get/Set present operational state. In DISCHARGING mode, the Storage element acts as a generator and the kW property is positive. The element continues discharging at the scheduled output power level until the Storage reaches the reserve value. Then the state reverts to IDLING. In the 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.

DSS property name: State, DSS property index: 25.

State_str: List[str]#

‘property(…)’

{IDLING | CHARGING | DISCHARGING} Get/Set present operational state. In DISCHARGING mode, the Storage element acts as a generator and the kW property is positive. The element continues discharging at the scheduled output power level until the Storage reaches the reserve value. Then the state reverts to IDLING. In the 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.

DSS property name: State, DSS property index: 25.

TimeChargeTrig: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Time of day in fractional hours (0230 = 2.5) at which Storage element will automatically go into charge state. Default is 2.0. Enter a negative time value to disable this feature.

DSS property name: TimeChargeTrig, DSS property index: 45.

TotalPowers() altdss.types.ComplexArray#

Returns an array with the total powers (complex, kVA) at all terminals of the circuit elements in this batch.

The resulting array is equivalent to concatenating the TotalPowers for each element.

UserData: List[str]#

‘property(…)’

String (in quotes or parentheses) that gets passed to user-written model for defining the data required for that model.

DSS property name: UserData, DSS property index: 50.

UserModel: List[str]#

‘property(…)’

Name of DLL containing user-written model, which computes the terminal currents for both power flow and dynamics, overriding the default model. Set to “none” to negate previous setting.

DSS property name: UserModel, DSS property index: 49.

VMaxpu: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Default = 1.10. Maximum per unit voltage for which the Model is assumed to apply. Above this value, the load model reverts to a constant impedance model.

DSS property name: VMaxpu, DSS property index: 36.

VMinpu: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Default = 0.90. Minimum per unit voltage for which the Model is assumed to apply. Below this value, the load model reverts to a constant impedance model.

DSS property name: VMinpu, DSS property index: 35.

VarFollowInverter: List[bool]#

‘property(…)’

Boolean variable (Yes|No) or (True|False). Defaults to False, which indicates that the reactive power generation/absorption does not respect the inverter status.When set to True, the reactive power generation/absorption will cease when the inverter status is off, due to DC kW dropping below %CutOut. The reactive power generation/absorption will begin again when the DC kW is above %CutIn. When set to False, the Storage will generate/absorb reactive power regardless of the status of the inverter.

DSS property name: VarFollowInverter, DSS property index: 12.

Voltages() altdss.types.ComplexArray#

Complex array of voltages at terminals

Original COM help: https://opendss.epri.com/Voltages1.html

VoltagesMagAng() altdss.types.Float64Array#

Voltages at each conductor in magnitude, angle form as array of doubles.

Original COM help: https://opendss.epri.com/VoltagesMagAng.html

WattPriority: List[bool]#

‘property(…)’

{Yes/No*/True/False} Set inverter to watt priority instead of the default var priority.

DSS property name: WattPriority, DSS property index: 15.

Yearly: List[altdss.LoadShape.LoadShape]#

‘property(…)’

Dispatch shape to use for yearly simulations. Must be previously defined as a Loadshape object. If this is not specified, the Daily dispatch shape, if any, is repeated during Yearly solution modes. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Yearly, DSS property index: 39.

Yearly_str: List[str]#

‘property(…)’

Dispatch shape to use for yearly simulations. Must be previously defined as a Loadshape object. If this is not specified, the Daily dispatch shape, if any, is repeated during Yearly solution modes. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Yearly, DSS property index: 39.

__call__()#
__contains__(name: str) bool#
__getitem__(name_or_idx)#
__init__(iobj)#
__iter__()#
__len__() int#
batch(**kwargs)#

Creates a new batch handler of (existing) objects

batch_new(names: Optional[List[AnyStr]] = None, *, df=None, count: Optional[int] = None, begin_edit: Optional[bool] = None, **kwargs: typing_extensions.Unpack[altdss.Storage.StorageBatchProperties]) altdss.Storage.StorageBatch#

Creates a new batch of Storage objects

Either names, count or df is required.

Parameters:
  • begin_edit – The argument begin_edit indicates if the user want to leave the elements in the edit state, and requires a call to end_edit() or equivalent. The default begin_edit is set to None. With None, the behavior will be adjusted according the default of how the batch is created.

  • **kwargs – Pass keyword arguments equivalent to the DSS properties of the object.

  • names – When using a list of names, each new object will match the names from this list. begin_edit defaults to True if no arguments for properties were passed, False otherwise.

  • count – When using count, new objects will be created with based on a random prefix, with an increasing integer up to count. begin_edit defaults to True if no arguments for properties were passed, False otherwise.

  • df – Currently EXPERIMENTAL AND LIMITED, tries to get the columns from a dataframe to populate the names and the DSS properties. begin_edit defaults to False.

Returns:

Returns the new batch of DSS objects, wrapped in Python.

Note that, to make it easier for new users where the edit context might not be too relevant, AltDSS automatically opens/closes edit contexts for single properties if the object is not in the edit state already.

begin_edit() None#

Marks for editing all DSS objects in the batch

In the editing mode, some final side-effects of changing properties are postponed until end_edit is called. This side-effects can be somewhat costly, like updating the model parameters or internal matrices.

If you don’t have any performance constraint, you may edit each property individually without worrying about using begin_edit and end_edit. For convenience, those are emitted automatically when editing single properties outside an edit block.

edit(**kwargs: typing_extensions.Unpack[altdss.Storage.StorageBatchProperties]) altdss.Storage.StorageBatch#

Edit this Storage batch.

This method will try to open a new edit context (if not already open), edit the properties, and finalize the edit context for objects in the batch. It can be seen as a shortcut to manually setting each property, or a Pythonic analogous (but extended) to the DSS BatchEdit command.

Parameters:

**kwargs – Pass keyword arguments equivalent to the DSS properties of the objects.

Returns:

Returns itself to allow call chaining.

end_edit(num_changes: int = 1) None#

Leaves the editing states of all DSS objects in the batch

num_changes is required for a few classes to correctly match the official OpenDSS behavior and must be the number of properties modified in the current editing block. As of DSS C-API v0.13, this is only required for the Monitor class, when the Action property is used with the Process value.

find(name_or_idx: Union[AnyStr, int]) altdss.DSSObj.DSSObj#

Returns an object from the collection by name or index; the index must be zero-based.

kV: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Nominal rated (1.0 per unit) voltage, kV, for Storage element. For 2- and 3-phase Storage elements, specify phase-phase kV. Otherwise, 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.

DSS property name: kV, DSS property index: 3.

kVA: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the inverter nameplate capability (in kVA). Used as the base for Dynamics mode and Harmonics mode values.

DSS property name: kVA, DSS property index: 8.

kVDC: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the rated voltage (kV) at the input of the inverter while the storage is discharging. The value is normally greater or equal to the kV base of the Storage device. It is used for dynamics simulation ONLY.

DSS property name: kVDC, DSS property index: 52.

kW: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Get/set the requested kW value. Final kW is subjected to the inverter ratings. A positive value denotes power coming OUT of the element, 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.

DSS property name: kW, DSS property index: 5.

kWRated: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

kW rating of power output. Base for Loadshapes when DispMode=Follow. Sets kVA property if it has not been specified yet. Defaults to 25.

DSS property name: kWRated, DSS property index: 19.

kWhRated: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Rated Storage capacity in kWh. Default is 50.

DSS property name: kWhRated, DSS property index: 21.

kWhStored: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Present amount of energy stored, kWh. Default is same as kWhrated.

DSS property name: kWhStored, DSS property index: 22.

kvar: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Get/set the requested kvar value. Final kvar is subjected to the inverter ratings. Sets inverter to operate in constant kvar mode.

DSS property name: kvar, DSS property index: 6.

kvarMax: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the maximum reactive power GENERATION (un-signed numerical variable in kvar) for the inverter. Defaults to kVA rating of the inverter.

DSS property name: kvarMax, DSS property index: 13.

kvarMaxAbs: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the maximum reactive power ABSORPTION (un-signed numerical variable in kvar) for the inverter. Defaults to kvarMax.

DSS property name: kvarMaxAbs, DSS property index: 14.

new(name: AnyStr, *, begin_edit: Optional[bool] = None, activate=False, **kwargs: typing_extensions.Unpack[altdss.Storage.StorageProperties]) altdss.Storage.Storage#

Creates a new Storage.

Parameters:
  • name – The object’s name is a required positional argument.

  • activate – Activation (setting activate to true) is useful for integration with the classic API, and some internal OpenDSS commands. If you interact with this object only via the Alt API, no need to activate it (due to performance costs).

  • begin_edit – This controls how the edit context is left after the object creation:

  • True: The object will be left in the edit state, requiring an end_edit call or equivalent.

  • False: No edit context is started.

  • None: If no properties are passed as keyword arguments, the object will be left in the edit state (assumes the user will fill the properties from Python attributes). Otherwise, the internal edit context will be finalized.

Parameters:

**kwargs – Pass keyword arguments equivalent to the DSS properties of the object.

Returns:

Returns the new DSS object, wrapped in Python.

Note that, to make it easier for new users where the edit context might not be too relevant, AltDSS automatically opens/closes edit contexts for single properties if the object is not in the edit state already.

pctCharge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Charging rate (input power) in percentage of rated kW. Default = 100.

DSS property name: %Charge, DSS property index: 27.

pctCutIn: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Cut-in power as a percentage of inverter kVA rating. It is the minimum DC power necessary to turn the inverter ON when it is OFF. Must be greater than or equal to %CutOut. Defaults to 2 for PVSystems and 0 for Storage elements which means that the inverter state will be always ON for this element.

DSS property name: %CutIn, DSS property index: 9.

pctCutOut: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Cut-out power as a percentage of inverter kVA rating. It is the minimum DC power necessary to keep the inverter ON. Must be less than or equal to %CutIn. Defaults to 0, which means that, once ON, the inverter state will be always ON for this element.

DSS property name: %CutOut, DSS property index: 10.

pctDischarge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Discharge rate (output power) in percentage of rated kW. Default = 100.

DSS property name: %Discharge, DSS property index: 26.

pctEffCharge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage efficiency for CHARGING the Storage element. Default = 90.

DSS property name: %EffCharge, DSS property index: 28.

pctEffDischarge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage efficiency for DISCHARGING the Storage element. Default = 90.

DSS property name: %EffDischarge, DSS property index: 29.

pctIdlingkW: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage of rated kW consumed by idling losses. Default = 1.

DSS property name: %IdlingkW, DSS property index: 30.

pctPMinNoVars: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Minimum active power as percentage of kWrated under which there is no vars production/absorption. Defaults to 0 (disabled).

DSS property name: %PMinNoVars, DSS property index: 17.

pctPMinkvarMax: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Minimum active power as percentage of kWrated that allows the inverter to produce/absorb reactive power up to its maximum reactive power, which can be either kvarMax or kvarMaxAbs, depending on the current operation quadrant. Defaults to 0 (disabled).

DSS property name: %PMinkvarMax, DSS property index: 18.

pctR: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Equivalent percentage internal resistance, ohms. Default is 0. Placed in series with internal voltage source for harmonics and dynamics modes. Use a combination of %IdlingkW, %EffCharge and %EffDischarge to account for losses in power flow modes.

DSS property name: %R, DSS property index: 32.

pctReserve: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage of rated kWh Storage capacity to be held in reserve for normal operation. Default = 20. This is treated as the minimum energy discharge level unless there is an emergency. For emergency operation set this property lower. Cannot be less than zero.

DSS property name: %Reserve, DSS property index: 24.

pctStored: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Present amount of energy stored, % of rated kWh. Default is 100.

DSS property name: %Stored, DSS property index: 23.

pctX: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Equivalent percentage internal reactance, ohms. Default is 50%. Placed in series with internal voltage source for harmonics and dynamics modes. (Limits fault current to 2 pu.

DSS property name: %X, DSS property index: 33.

pctkWRated: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Upper limit on active power as a percentage of kWrated. Defaults to 100 (disabled).

DSS property name: %kWRated, DSS property index: 20.

to_json(options: Union[int, dss.enums.DSSJSONFlags] = 0)#

Returns the data (as a list) of the elements in a batch as a JSON-encoded string.

The options parameter contains bit-flags to toggle specific features. See Obj_ToJSON (C-API) for more, or DSSObj.to_json in Python.

Additionally, the ExcludeDisabled flag can be used to excluded disabled elements from the output.

to_list()#
class altdss.Storage.Storage(api_util, ptr)#

Bases: altdss.DSSObj.DSSObj, altdss.CircuitElement.CircuitElementMixin, altdss.PCElement.PCElementMixin, altdss.PCElement.ElementHasRegistersMixin

AmpLimit: float#

‘property(…)’

The current limiter per phase for the IBR when operating in GFM mode. This limit is imposed to prevent the IBR to enter into Safe Mode when reaching the IBR power ratings. Once the IBR reaches this value, it remains there without moving into Safe Mode. This value needs to be set lower than the IBR Amps rating.

DSS property name: AmpLimit, DSS property index: 60.

AmpLimitGain: float#

‘property(…)’

Use it for fine tunning the current limiter when active, by default is 0.8, it has to be a value between 0.1 and 1. This value allows users to fine tune the IBRs current limiter to match with the user requirements.

DSS property name: AmpLimitGain, DSS property index: 61.

Balanced: bool#

‘property(…)’

{Yes | No*} Default is No. Force balanced current only for 3-phase Storage. Forces zero- and negative-sequence to zero.

DSS property name: Balanced, DSS property index: 37.

BaseFreq: float#

‘property(…)’

Base Frequency for ratings.

DSS property name: BaseFreq, DSS property index: 63.

Bus1: str#

‘property(…)’

Bus to which the Storage element is connected. May include specific node specification.

DSS property name: Bus1, DSS property index: 2.

ChargeTrigger: float#

‘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 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.

DSS property name: ChargeTrigger, DSS property index: 44.

Class: int#

‘property(…)’

An arbitrary integer number representing the class of Storage element so that Storage values may be segregated by class.

DSS property name: Class, DSS property index: 46.

Close(terminal: int, phase: int) None#

Close the specified terminal and phase, if non-zero, or all conductors at the terminal.

Original COM help: https://opendss.epri.com/Close1.html

ComplexSeqCurrents() altdss.types.ComplexArray#

Complex double array of Sequence Currents for all conductors of all terminals of active circuit element.

Original COM help: https://opendss.epri.com/CplxSeqCurrents.html

ComplexSeqVoltages() altdss.types.ComplexArray#

Complex double array of Sequence Voltage for all terminals of active circuit element.

Original COM help: https://opendss.epri.com/CplxSeqVoltages1.html

Conn: altdss.enums.Connection#

‘property(…)’

={wye|LN|delta|LL}. Default is wye.

DSS property name: Conn, DSS property index: 4.

Conn_str: str#

‘property(…)’

={wye|LN|delta|LL}. Default is wye.

DSS property name: Conn, DSS property index: 4.

ControlMode: altdss.enums.InverterControlMode#

‘property(…)’

Defines the control mode for the inverter. It can be one of {GFM | GFL*}. By default it is GFL (Grid Following Inverter). Use GFM (Grid Forming Inverter) for energizing islanded microgrids, but, if the device is connected to the grid, it is highly recommended to use GFL.

GFM control mode disables any control action set by the InvControl device.

DSS property name: ControlMode, DSS property index: 59.

ControlMode_str: str#

‘property(…)’

Defines the control mode for the inverter. It can be one of {GFM | GFL*}. By default it is GFL (Grid Following Inverter). Use GFM (Grid Forming Inverter) for energizing islanded microgrids, but, if the device is connected to the grid, it is highly recommended to use GFL.

GFM control mode disables any control action set by the InvControl device.

DSS property name: ControlMode, DSS property index: 59.

Currents() altdss.types.ComplexArray#

Complex array of currents into each conductor of each terminal

Original COM help: https://opendss.epri.com/Currents1.html

Daily: altdss.LoadShape.LoadShape#

‘property(…)’

Dispatch shape to use for daily simulations. Must be previously defined as a Loadshape object of 24 hrs, typically. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Daily, DSS property index: 40.

Daily_str: str#

‘property(…)’

Dispatch shape to use for daily simulations. Must be previously defined as a Loadshape object of 24 hrs, typically. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Daily, DSS property index: 40.

DebugTrace: bool#

‘property(…)’

{Yes | No } Default is no. Turn this on to capture the progress of the Storage model for each iteration. Creates a separate file for each Storage element named “Storage_name.csv”.

DSS property name: DebugTrace, DSS property index: 51.

DischargeTrigger: float#

‘property(…)’

Dispatch trigger value for discharging the Storage. If = 0.0 the Storage element state is changed by the State command or by a StorageController object. If <> 0 the Storage element state is set to DISCHARGING 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.

DSS property name: DischargeTrigger, DSS property index: 43.

DispMode: altdss.enums.StorageDispatchMode#

‘property(…)’

{DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL | PRICE } Default = “DEFAULT”. Dispatch mode.

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 values. The loadshape is based on rated kW.

In EXTERNAL mode, Storage element state is controlled by an external Storagecontroller. 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.

DSS property name: DispMode, DSS property index: 42.

DispMode_str: str#

‘property(…)’

{DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL | PRICE } Default = “DEFAULT”. Dispatch mode.

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 values. The loadshape is based on rated kW.

In EXTERNAL mode, Storage element state is controlled by an external Storagecontroller. 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.

DSS property name: DispMode, DSS property index: 42.

DisplayName: str#

‘property(…)’

Display name of the object (not necessarily unique)

Original COM help: https://opendss.epri.com/DisplayName.html

Duty: altdss.LoadShape.LoadShape#

‘property(…)’

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 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.

DSS property name: Duty, DSS property index: 41.

Duty_str: str#

‘property(…)’

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 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.

DSS property name: Duty, DSS property index: 41.

DynOut: List[str]#

‘property(…)’

The name of the variables within the Dynamic equation that will be used to govern the Storage dynamics. This Storage model requires 1 output from the dynamic equation:

1. Current.

The output variables need to be defined in the same order.

DSS property name: DynOut, DSS property index: 58.

DynaDLL: str#

‘property(…)’

Name of DLL containing user-written dynamics model, which computes the terminal currents for Dynamics-mode simulations, overriding 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.

DSS property name: DynaDLL, DSS property index: 47.

DynaData: str#

‘property(…)’

String (in quotes or parentheses if necessary) that gets passed to the user-written dynamics model Edit function for defining the data required for that model.

DSS property name: DynaData, DSS property index: 48.

DynamicEq: altdss.DynamicExp.DynamicExp#

‘property(…)’

The name of the dynamic equation (DynamicExp) that will be used for defining the dynamic behavior of the generator. If not defined, the generator dynamics will follow the built-in dynamic equation.

DSS property name: DynamicEq, DSS property index: 57.

DynamicEq_str: str#

‘property(…)’

The name of the dynamic equation (DynamicExp) that will be used for defining the dynamic behavior of the generator. If not defined, the generator dynamics will follow the built-in dynamic equation.

DSS property name: DynamicEq, DSS property index: 57.

EffCurve: altdss.XYcurve.XYcurve#

‘property(…)’

An XYCurve object, previously defined, that describes the PER UNIT 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.

DSS property name: EffCurve, DSS property index: 11.

EffCurve_str: str#

‘property(…)’

An XYCurve object, previously defined, that describes the PER UNIT 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.

DSS property name: EffCurve, DSS property index: 11.

Enabled: bool#

‘property(…)’

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

DSS property name: Enabled, DSS property index: 64.

EnergyMeter() altdss.DSSObj.DSSObj#

Energy Meter this element is assigned to.

Requires an energy meter with an updated zone.

Original COM help: https://opendss.epri.com/EnergyMeter.html

EnergyMeterName() str#

Name of the Energy Meter this element is assigned to.

Requires an energy meter with an updated zone.

Original COM help: https://opendss.epri.com/EnergyMeter.html

FullName() str#
GUID() str#

Object’s GUID/UUID. Currently used only in the CIM-related methods.

Original COM help: https://opendss.epri.com/GUID.html

GetVariableValue(varIdxName: Union[AnyStr, int]) float#
Handle() int#

Index of this element into the circuit’s element list.

Original COM help: https://opendss.epri.com/Handle.html

HasOCPDevice() bool#

Returns true if a recloser, relay, or fuse controlling the circuit element.

OCP = Overcurrent Protection

Original COM help: https://opendss.epri.com/HasOCPDevice.html

HasSwitchControl() bool#

Returns true if the element has a SwtControl attached.

Original COM help: https://opendss.epri.com/HasSwitchControl.html

HasVoltControl() bool#

Returns true if the element has a CapControl or RegControl attached.

Original COM help: https://opendss.epri.com/HasVoltControl.html

IsIsolated() bool#

Returns true if the element is isolated. Note that this only fetches the current value. See also the Topology interface.

IsOpen(terminal: int, phase: int) bool#

Returns true if the specified terminal and phase are open.

If the phase parameter is zero, returns if any conductor at the terminal is open.

Kp: float#

‘property(…)’

It is the proportional gain for the PI controller within the inverter. Use it to modify the controller response in dynamics simulation mode.

DSS property name: Kp, DSS property index: 53.

Like(value: AnyStr)#

Make like another object, e.g.:

New Capacitor.C2 like=c1 …

DSS property name: Like, DSS property index: 65.

LimitCurrent: bool#

‘property(…)’

Limits current magnitude to Vminpu value for both 1-phase and 3-phase Storage similar to Generator Model 7. For 3-phase, limits the positive-sequence current but not the negative-sequence.

DSS property name: LimitCurrent, DSS property index: 38.

Losses() complex#

Total (complex) losses in the element, in VA (watts, vars)

Original COM help: https://opendss.epri.com/Losses1.html

MaxCurrent(terminal: int) float#

Returns the maximum current (magnitude) at the specified terminal. Use -1 as terminal to get the value across all terminals.

Model: int#

‘property(…)’

Integer code (default=1) for the model to be used for power output variation with voltage. Valid values are:

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.

DSS property name: Model, DSS property index: 34.

property Name: str#
NodeOrder() altdss.types.Int32Array#

Array of integer containing the node numbers (representing phases, for example) for each conductor of each terminal.

Be sure to run a solution to initialize the values after the circuit is created or modified.

NodeRef() altdss.types.Int32Array#

Array of integers, a copy of the internal NodeRef of the CktElement.

Be sure to run a solution to initialize the values after the circuit is created or modified.

NumConductors() int#

Number of conductors per terminal

Original COM help: https://opendss.epri.com/NumConductors.html

NumControllers() int#

Number of controllers connected to this device.

Original COM help: https://opendss.epri.com/NumControls.html

NumPhases() int#

Number of phases

Original COM help: https://opendss.epri.com/NumPhases.html

NumTerminals() int#

Number of terminals in this circuit element

Original COM help: https://opendss.epri.com/NumTerminals.html

OCPDevice() Union[altdss.DSSObj.DSSObj, None]#

Returns (as a Python object) the OCP device controlling this element, if any.

OCPDeviceIndex() int#

Index into controller list of OCP Device controlling this circuit element

Original COM help: https://opendss.epri.com/OCPDevIndex.html

OCPDeviceType() dss.enums.OCPDevType#

Type of OCP controller device

Original COM help: https://opendss.epri.com/OCPDevType.html

Open(terminal: int, phase: int) None#

Open the specified terminal and phase, if non-zero, or all conductors at the terminal.

Original COM help: https://opendss.epri.com/Open1.html

PF: float#

‘property(…)’

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.

Enter negative for leading power factor (when kW and kvar have opposite signs.)

A positive power factor signifies kw and kvar at the same direction.

DSS property name: PF, DSS property index: 7.

PFPriority: bool#

‘property(…)’

If set to true, priority is given to power factor and WattPriority is neglected. It works only if operating in either constant PF or constant kvar modes. Defaults to False.

DSS property name: PFPriority, DSS property index: 16.

PITol: float#

‘property(…)’

It is the tolerance (%) for the closed loop controller of the inverter. For dynamics simulation mode.

DSS property name: PITol, DSS property index: 54.

PhaseLosses() altdss.types.ComplexArray#

Complex array of losses (kVA) by phase

Original COM help: https://opendss.epri.com/PhaseLosses.html

Phases: int#

‘property(…)’

Number of Phases, this Storage element. Power is evenly divided among phases.

DSS property name: Phases, DSS property index: 1.

Powers() altdss.types.ComplexArray#

Complex array of powers (kVA) into each conductor of each terminal

Original COM help: https://opendss.epri.com/Powers.html

RegisterNames() List[str]#

List of names of the energy meter registers for this element.

See also the enums EnergyMeterRegisters and GeneratorRegisters.

RegisterValues() altdss.types.Float64Array#

Array of values in this element’s energy meter registers.

Original COM help: https://opendss.epri.com/RegisterValues.html

RegistersDict() Dict[str, float]#

Convenience function: returns a dict of the element’s energy meter register names mapping to their current values.

Residuals() altdss.types.Float64Array#

Residual currents for each terminal: (magnitude, angle in degrees)

Original COM help: https://opendss.epri.com/Residuals.html

SafeMode: bool#

‘property(…)’

(Read only) Indicates whether the inverter entered (Yes) or not (No) into Safe Mode.

DSS property name: SafeMode, DSS property index: 56.

SafeVoltage: float#

‘property(…)’

Indicates the voltage level (%) respect to the base voltage level for which the Inverter will operate. If this threshold is violated, the Inverter will enter safe mode (OFF). For dynamic simulation. By default is 80%.

DSS property name: SafeVoltage, DSS property index: 55.

SeqCurrents() altdss.types.Float64Array#

Array of symmetrical component currents (magnitudes only) into each 3-phase terminal

Original COM help: https://opendss.epri.com/SeqCurrents.html

SeqPowers() altdss.types.ComplexArray#

Complex array of sequence powers (kW, kvar) into each 3-phase terminal

Original COM help: https://opendss.epri.com/SeqPowers.html

SeqVoltages() altdss.types.Float64Array#

Double array of symmetrical component voltages (magnitudes only) at each 3-phase terminal

Original COM help: https://opendss.epri.com/SeqVoltages1.html

SetVariableValue(varIdxName: Union[AnyStr, int], value: float)#
Spectrum: altdss.Spectrum.Spectrum#

‘property(…)’

Name of harmonic voltage or current spectrum for this Storage element. Current injection is assumed for inverter. Default value is “default”, which is defined when the DSS starts.

DSS property name: Spectrum, DSS property index: 62.

Spectrum_str: str#

‘property(…)’

Name of harmonic voltage or current spectrum for this Storage element. Current injection is assumed for inverter. Default value is “default”, which is defined when the DSS starts.

DSS property name: Spectrum, DSS property index: 62.

State: altdss.enums.StorageState#

‘property(…)’

{IDLING | CHARGING | DISCHARGING} Get/Set present operational state. In DISCHARGING mode, the Storage element acts as a generator and the kW property is positive. The element continues discharging at the scheduled output power level until the Storage reaches the reserve value. Then the state reverts to IDLING. In the 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.

DSS property name: State, DSS property index: 25.

State_str: str#

‘property(…)’

{IDLING | CHARGING | DISCHARGING} Get/Set present operational state. In DISCHARGING mode, the Storage element acts as a generator and the kW property is positive. The element continues discharging at the scheduled output power level until the Storage reaches the reserve value. Then the state reverts to IDLING. In the 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.

DSS property name: State, DSS property index: 25.

TimeChargeTrig: float#

‘property(…)’

Time of day in fractional hours (0230 = 2.5) at which Storage element will automatically go into charge state. Default is 2.0. Enter a negative time value to disable this feature.

DSS property name: TimeChargeTrig, DSS property index: 45.

TotalPowers() altdss.types.ComplexArray#

Returns an array with the total powers (complex, kVA) at ALL terminals of the active circuit element.

Original COM help: https://opendss.epri.com/TotalPowers.html

UserData: str#

‘property(…)’

String (in quotes or parentheses) that gets passed to user-written model for defining the data required for that model.

DSS property name: UserData, DSS property index: 50.

UserModel: str#

‘property(…)’

Name of DLL containing user-written model, which computes the terminal currents for both power flow and dynamics, overriding the default model. Set to “none” to negate previous setting.

DSS property name: UserModel, DSS property index: 49.

VMaxpu: float#

‘property(…)’

Default = 1.10. Maximum per unit voltage for which the Model is assumed to apply. Above this value, the load model reverts to a constant impedance model.

DSS property name: VMaxpu, DSS property index: 36.

VMinpu: float#

‘property(…)’

Default = 0.90. Minimum per unit voltage for which the Model is assumed to apply. Below this value, the load model reverts to a constant impedance model.

DSS property name: VMinpu, DSS property index: 35.

VarFollowInverter: bool#

‘property(…)’

Boolean variable (Yes|No) or (True|False). Defaults to False, which indicates that the reactive power generation/absorption does not respect the inverter status.When set to True, the reactive power generation/absorption will cease when the inverter status is off, due to DC kW dropping below %CutOut. The reactive power generation/absorption will begin again when the DC kW is above %CutIn. When set to False, the Storage will generate/absorb reactive power regardless of the status of the inverter.

DSS property name: VarFollowInverter, DSS property index: 12.

VariableNames() List[str]#
VariableValues() altdss.types.Float64Array#
VariablesDict() Dict[str, float]#
Voltages() altdss.types.ComplexArray#

Complex array of voltages at terminals

Original COM help: https://opendss.epri.com/Voltages1.html

VoltagesMagAng() altdss.types.Float64Array#

Voltages at each conductor in magnitude, angle form as array of doubles.

Original COM help: https://opendss.epri.com/VoltagesMagAng.html

WattPriority: bool#

‘property(…)’

{Yes/No*/True/False} Set inverter to watt priority instead of the default var priority.

DSS property name: WattPriority, DSS property index: 15.

YPrim() altdss.types.ComplexArray#

YPrim matrix, column order, complex numbers

Original COM help: https://opendss.epri.com/Yprim.html

Yearly: altdss.LoadShape.LoadShape#

‘property(…)’

Dispatch shape to use for yearly simulations. Must be previously defined as a Loadshape object. If this is not specified, the Daily dispatch shape, if any, is repeated during Yearly solution modes. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Yearly, DSS property index: 39.

Yearly_str: str#

‘property(…)’

Dispatch shape to use for yearly simulations. Must be previously defined as a Loadshape object. If this is not specified, the Daily dispatch shape, if any, is repeated during Yearly solution modes. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Yearly, DSS property index: 39.

__hash__()#

Return hash(self).

__init__(api_util, ptr)#
__ne__(other)#

Return self!=value.

__repr__()#

Return repr(self).

begin_edit() None#

Marks a DSS object for editing

In the editing mode, some final side-effects of changing properties are postponed until end_edit is called. This side-effects can be somewhat costly, like updating the model parameters or internal matrices.

If you don’t have any performance constraint, you may edit each property individually without worrying about using begin_edit and end_edit. For convenience, those are emitted automatically when editing single properties outside an edit block.

edit(**kwargs: typing_extensions.Unpack[altdss.Storage.StorageProperties]) altdss.Storage.Storage#

Edit this Storage.

This method will try to open a new edit context (if not already open), edit the properties, and finalize the edit context. It can be seen as a shortcut to manually setting each property, or a Pythonic analogous (but extended) to the DSS Edit command.

Parameters:

**kwargs – Pass keyword arguments equivalent to the DSS properties of the object.

Returns:

Returns itself to allow call chaining.

end_edit(num_changes: int = 1) None#

Leaves the editing state of a DSS object

num_changes is required for a few classes to correctly match the official OpenDSS behavior and must be the number of properties modified in the current editing block. As of DSS C-API v0.13, this is only required for the Monitor class, when the Action property is used with the Process value.

kV: float#

‘property(…)’

Nominal rated (1.0 per unit) voltage, kV, for Storage element. For 2- and 3-phase Storage elements, specify phase-phase kV. Otherwise, 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.

DSS property name: kV, DSS property index: 3.

kVA: float#

‘property(…)’

Indicates the inverter nameplate capability (in kVA). Used as the base for Dynamics mode and Harmonics mode values.

DSS property name: kVA, DSS property index: 8.

kVDC: float#

‘property(…)’

Indicates the rated voltage (kV) at the input of the inverter while the storage is discharging. The value is normally greater or equal to the kV base of the Storage device. It is used for dynamics simulation ONLY.

DSS property name: kVDC, DSS property index: 52.

kW: float#

‘property(…)’

Get/set the requested kW value. Final kW is subjected to the inverter ratings. A positive value denotes power coming OUT of the element, 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.

DSS property name: kW, DSS property index: 5.

kWRated: float#

‘property(…)’

kW rating of power output. Base for Loadshapes when DispMode=Follow. Sets kVA property if it has not been specified yet. Defaults to 25.

DSS property name: kWRated, DSS property index: 19.

kWhRated: float#

‘property(…)’

Rated Storage capacity in kWh. Default is 50.

DSS property name: kWhRated, DSS property index: 21.

kWhStored: float#

‘property(…)’

Present amount of energy stored, kWh. Default is same as kWhrated.

DSS property name: kWhStored, DSS property index: 22.

kvar: float#

‘property(…)’

Get/set the requested kvar value. Final kvar is subjected to the inverter ratings. Sets inverter to operate in constant kvar mode.

DSS property name: kvar, DSS property index: 6.

kvarMax: float#

‘property(…)’

Indicates the maximum reactive power GENERATION (un-signed numerical variable in kvar) for the inverter. Defaults to kVA rating of the inverter.

DSS property name: kvarMax, DSS property index: 13.

kvarMaxAbs: float#

‘property(…)’

Indicates the maximum reactive power ABSORPTION (un-signed numerical variable in kvar) for the inverter. Defaults to kvarMax.

DSS property name: kvarMaxAbs, DSS property index: 14.

pctCharge: float#

‘property(…)’

Charging rate (input power) in percentage of rated kW. Default = 100.

DSS property name: %Charge, DSS property index: 27.

pctCutIn: float#

‘property(…)’

Cut-in power as a percentage of inverter kVA rating. It is the minimum DC power necessary to turn the inverter ON when it is OFF. Must be greater than or equal to %CutOut. Defaults to 2 for PVSystems and 0 for Storage elements which means that the inverter state will be always ON for this element.

DSS property name: %CutIn, DSS property index: 9.

pctCutOut: float#

‘property(…)’

Cut-out power as a percentage of inverter kVA rating. It is the minimum DC power necessary to keep the inverter ON. Must be less than or equal to %CutIn. Defaults to 0, which means that, once ON, the inverter state will be always ON for this element.

DSS property name: %CutOut, DSS property index: 10.

pctDischarge: float#

‘property(…)’

Discharge rate (output power) in percentage of rated kW. Default = 100.

DSS property name: %Discharge, DSS property index: 26.

pctEffCharge: float#

‘property(…)’

Percentage efficiency for CHARGING the Storage element. Default = 90.

DSS property name: %EffCharge, DSS property index: 28.

pctEffDischarge: float#

‘property(…)’

Percentage efficiency for DISCHARGING the Storage element. Default = 90.

DSS property name: %EffDischarge, DSS property index: 29.

pctIdlingkW: float#

‘property(…)’

Percentage of rated kW consumed by idling losses. Default = 1.

DSS property name: %IdlingkW, DSS property index: 30.

pctPMinNoVars: float#

‘property(…)’

Minimum active power as percentage of kWrated under which there is no vars production/absorption. Defaults to 0 (disabled).

DSS property name: %PMinNoVars, DSS property index: 17.

pctPMinkvarMax: float#

‘property(…)’

Minimum active power as percentage of kWrated that allows the inverter to produce/absorb reactive power up to its maximum reactive power, which can be either kvarMax or kvarMaxAbs, depending on the current operation quadrant. Defaults to 0 (disabled).

DSS property name: %PMinkvarMax, DSS property index: 18.

pctR: float#

‘property(…)’

Equivalent percentage internal resistance, ohms. Default is 0. Placed in series with internal voltage source for harmonics and dynamics modes. Use a combination of %IdlingkW, %EffCharge and %EffDischarge to account for losses in power flow modes.

DSS property name: %R, DSS property index: 32.

pctReserve: float#

‘property(…)’

Percentage of rated kWh Storage capacity to be held in reserve for normal operation. Default = 20. This is treated as the minimum energy discharge level unless there is an emergency. For emergency operation set this property lower. Cannot be less than zero.

DSS property name: %Reserve, DSS property index: 24.

pctStored: float#

‘property(…)’

Present amount of energy stored, % of rated kWh. Default is 100.

DSS property name: %Stored, DSS property index: 23.

pctX: float#

‘property(…)’

Equivalent percentage internal reactance, ohms. Default is 50%. Placed in series with internal voltage source for harmonics and dynamics modes. (Limits fault current to 2 pu.

DSS property name: %X, DSS property index: 33.

pctkWRated: float#

‘property(…)’

Upper limit on active power as a percentage of kWrated. Defaults to 100 (disabled).

DSS property name: %kWRated, DSS property index: 20.

to_json(options: Union[int, dss.enums.DSSJSONFlags] = 0)#

Returns an element’s data as a JSON-encoded string.

The options parameter contains bit-flags to toggle specific features.

By default (options = 0), only the properties explicitly set. The properties are returned in the order they are set in the input. As a reminder, OpenDSS is sensitive to the order of the properties.

The options bit-flags are available in the DSSJSONFlags enum. Values used by this function are:

  • Full: if set, all properties are returned, ordered by property index instead.

  • SkipRedundant: if used with Full, all properties except redundant and unused ones are returned.

  • EnumAsInt: enumerated properties are returned as integer values instead of strings.

  • FullNames: any element reference will use the full name ({class name}.{element name}) even if not required.

  • Pretty: more whitespace is used in the output for a “prettier” format.

  • SkipDSSClass: do not add the “DSSClass” property to the JSON objects.

NOT IMPLEMENTED YET:

  • State: include run-time state information

  • Debug: include debug information

Other bit-flags are reserved for future uses. Please use DSSJSONFlags enum to avoid potential conflicts.

(API Extension)

class altdss.Storage.StorageBatch(api_util, **kwargs)#

Bases: altdss.Batch.DSSBatch, altdss.CircuitElement.CircuitElementBatchMixin, altdss.PCElement.PCElementBatchMixin

AmpLimit: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

The current limiter per phase for the IBR when operating in GFM mode. This limit is imposed to prevent the IBR to enter into Safe Mode when reaching the IBR power ratings. Once the IBR reaches this value, it remains there without moving into Safe Mode. This value needs to be set lower than the IBR Amps rating.

DSS property name: AmpLimit, DSS property index: 60.

AmpLimitGain: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Use it for fine tunning the current limiter when active, by default is 0.8, it has to be a value between 0.1 and 1. This value allows users to fine tune the IBRs current limiter to match with the user requirements.

DSS property name: AmpLimitGain, DSS property index: 61.

Balanced: List[bool]#

‘property(…)’

{Yes | No*} Default is No. Force balanced current only for 3-phase Storage. Forces zero- and negative-sequence to zero.

DSS property name: Balanced, DSS property index: 37.

BaseFreq: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Base Frequency for ratings.

DSS property name: BaseFreq, DSS property index: 63.

Bus1: List[str]#

‘property(…)’

Bus to which the Storage element is connected. May include specific node specification.

DSS property name: Bus1, DSS property index: 2.

ChargeTrigger: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘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 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.

DSS property name: ChargeTrigger, DSS property index: 44.

Class: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

An arbitrary integer number representing the class of Storage element so that Storage values may be segregated by class.

DSS property name: Class, DSS property index: 46.

ComplexSeqCurrents() altdss.types.ComplexArray#

Complex double array of Sequence Currents for all conductors of all terminals of active circuit element.

Original COM help: https://opendss.epri.com/CplxSeqCurrents.html

ComplexSeqVoltages() altdss.types.ComplexArray#

Complex double array of Sequence Voltage for all terminals of active circuit element.

Original COM help: https://opendss.epri.com/CplxSeqVoltages1.html

Conn: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

={wye|LN|delta|LL}. Default is wye.

DSS property name: Conn, DSS property index: 4.

Conn_str: List[str]#

‘property(…)’

={wye|LN|delta|LL}. Default is wye.

DSS property name: Conn, DSS property index: 4.

ControlMode: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

Defines the control mode for the inverter. It can be one of {GFM | GFL*}. By default it is GFL (Grid Following Inverter). Use GFM (Grid Forming Inverter) for energizing islanded microgrids, but, if the device is connected to the grid, it is highly recommended to use GFL.

GFM control mode disables any control action set by the InvControl device.

DSS property name: ControlMode, DSS property index: 59.

ControlMode_str: List[str]#

‘property(…)’

Defines the control mode for the inverter. It can be one of {GFM | GFL*}. By default it is GFL (Grid Following Inverter). Use GFM (Grid Forming Inverter) for energizing islanded microgrids, but, if the device is connected to the grid, it is highly recommended to use GFL.

GFM control mode disables any control action set by the InvControl device.

DSS property name: ControlMode, DSS property index: 59.

Currents() altdss.types.ComplexArray#

Complex array of currents into each conductor of each terminal

Original COM help: https://opendss.epri.com/Currents1.html

CurrentsMagAng() altdss.types.Float64Array#

Currents in magnitude, angle (degrees) format as a array of doubles.

Original COM help: https://opendss.epri.com/CurrentsMagAng.html

Daily: List[altdss.LoadShape.LoadShape]#

‘property(…)’

Dispatch shape to use for daily simulations. Must be previously defined as a Loadshape object of 24 hrs, typically. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Daily, DSS property index: 40.

Daily_str: List[str]#

‘property(…)’

Dispatch shape to use for daily simulations. Must be previously defined as a Loadshape object of 24 hrs, typically. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Daily, DSS property index: 40.

DebugTrace: List[bool]#

‘property(…)’

{Yes | No } Default is no. Turn this on to capture the progress of the Storage model for each iteration. Creates a separate file for each Storage element named “Storage_name.csv”.

DSS property name: DebugTrace, DSS property index: 51.

DischargeTrigger: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Dispatch trigger value for discharging the Storage. If = 0.0 the Storage element state is changed by the State command or by a StorageController object. If <> 0 the Storage element state is set to DISCHARGING 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.

DSS property name: DischargeTrigger, DSS property index: 43.

DispMode: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

{DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL | PRICE } Default = “DEFAULT”. Dispatch mode.

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 values. The loadshape is based on rated kW.

In EXTERNAL mode, Storage element state is controlled by an external Storagecontroller. 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.

DSS property name: DispMode, DSS property index: 42.

DispMode_str: List[str]#

‘property(…)’

{DEFAULT | FOLLOW | EXTERNAL | LOADLEVEL | PRICE } Default = “DEFAULT”. Dispatch mode.

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 values. The loadshape is based on rated kW.

In EXTERNAL mode, Storage element state is controlled by an external Storagecontroller. 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.

DSS property name: DispMode, DSS property index: 42.

Duty: List[altdss.LoadShape.LoadShape]#

‘property(…)’

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 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.

DSS property name: Duty, DSS property index: 41.

Duty_str: List[str]#

‘property(…)’

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 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.

DSS property name: Duty, DSS property index: 41.

DynOut: List[List[str]]#

‘property(…)’

The name of the variables within the Dynamic equation that will be used to govern the Storage dynamics. This Storage model requires 1 output from the dynamic equation:

1. Current.

The output variables need to be defined in the same order.

DSS property name: DynOut, DSS property index: 58.

DynaDLL: List[str]#

‘property(…)’

Name of DLL containing user-written dynamics model, which computes the terminal currents for Dynamics-mode simulations, overriding 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.

DSS property name: DynaDLL, DSS property index: 47.

DynaData: List[str]#

‘property(…)’

String (in quotes or parentheses if necessary) that gets passed to the user-written dynamics model Edit function for defining the data required for that model.

DSS property name: DynaData, DSS property index: 48.

DynamicEq: List[altdss.DynamicExp.DynamicExp]#

‘property(…)’

The name of the dynamic equation (DynamicExp) that will be used for defining the dynamic behavior of the generator. If not defined, the generator dynamics will follow the built-in dynamic equation.

DSS property name: DynamicEq, DSS property index: 57.

DynamicEq_str: List[str]#

‘property(…)’

The name of the dynamic equation (DynamicExp) that will be used for defining the dynamic behavior of the generator. If not defined, the generator dynamics will follow the built-in dynamic equation.

DSS property name: DynamicEq, DSS property index: 57.

EffCurve: List[altdss.XYcurve.XYcurve]#

‘property(…)’

An XYCurve object, previously defined, that describes the PER UNIT 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.

DSS property name: EffCurve, DSS property index: 11.

EffCurve_str: List[str]#

‘property(…)’

An XYCurve object, previously defined, that describes the PER UNIT 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.

DSS property name: EffCurve, DSS property index: 11.

Enabled: List[bool]#

‘property(…)’

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

DSS property name: Enabled, DSS property index: 64.

EnergyMeter() List[altdss.DSSObj.DSSObj]#
EnergyMeterName() List[str]#
FullName() List[str]#

Returns the full name (including object type) for all objects in this batch

GUID() List[str]#

GUID/UUID for each object. Currently used only in the CIM-related methods.

Original COM help: https://opendss.epri.com/GUID.html

Handle() altdss.types.Int32Array#

Index of each element into the circuit’s element list.

Original COM help: https://opendss.epri.com/Handle.html

HasOCPDevice() altdss.types.BoolArray#

For each element in the batch: returns true if a recloser, relay, or fuse controlling the circuit element.

OCP = Overcurrent Protection

Original COM help: https://opendss.epri.com/HasOCPDevice.html

HasSwitchControl() altdss.types.BoolArray#

For each element in the batch: returns true if the element has a SwtControl attached.

Original COM help: https://opendss.epri.com/HasSwitchControl.html

HasVoltControl() altdss.types.BoolArray#

For each element in the batch: returns true if the element has a CapControl or RegControl attached.

Original COM help: https://opendss.epri.com/HasVoltControl.html

IsIsolated() altdss.types.BoolArray#

For each element in the batch: returns true if the element is isolated. Note that this only fetches the current value. See also the Topology interface.

Kp: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

It is the proportional gain for the PI controller within the inverter. Use it to modify the controller response in dynamics simulation mode.

DSS property name: Kp, DSS property index: 53.

Like(value: AnyStr, flags: altdss.enums.SetterFlags = 0)#

Make like another object, e.g.:

New Capacitor.C2 like=c1 …

DSS property name: Like, DSS property index: 65.

LimitCurrent: List[bool]#

‘property(…)’

Limits current magnitude to Vminpu value for both 1-phase and 3-phase Storage similar to Generator Model 7. For 3-phase, limits the positive-sequence current but not the negative-sequence.

DSS property name: LimitCurrent, DSS property index: 38.

Losses() altdss.types.ComplexArray#

For each element in the batch: total losses in the element, in VA (watts, vars).

Original COM help: https://opendss.epri.com/Losses1.html

MaxCurrent(terminal: int) altdss.types.Float64Array#

Returns the maximum current (magnitude) at the specified terminal for each element in this batch. Use -1 as terminal to get the value across all terminals.

Model: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

Integer code (default=1) for the model to be used for power output variation with voltage. Valid values are:

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.

DSS property name: Model, DSS property index: 34.

property Name: List[str]#
NumConductors() altdss.types.Int32Array#

Number of conductors per terminal for each element in the batch.

Original COM help: https://opendss.epri.com/NumConductors.html

NumControllers() altdss.types.Int32Array#

Number of controllers connected to each device in the batch.

Original COM help: https://opendss.epri.com/NumControls.html

NumPhases() altdss.types.Int32Array#

Number of Phases for each element in this batch.

Original COM help: https://opendss.epri.com/NumPhases.html

NumTerminals() altdss.types.Int32Array#

Number of terminals for each Circuit Element in the batch.

Original COM help: https://opendss.epri.com/NumTerminals.html

OCPDevice() List[Union[altdss.DSSObj.DSSObj, None]]#

Returns (as a list of Python objects) the OCP device controlling each element.

OCPDeviceIndex() altdss.types.Int32Array#

For each element in the batch: index into each controller list of the OCP Device controlling each circuit element

Original COM help: https://opendss.epri.com/OCPDevIndex.html

OCPDeviceType() List[dss.enums.OCPDevType]#

For each element in the batch: type of OCP controller device

Original COM help: https://opendss.epri.com/OCPDevType.html

PF: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

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.

Enter negative for leading power factor (when kW and kvar have opposite signs.)

A positive power factor signifies kw and kvar at the same direction.

DSS property name: PF, DSS property index: 7.

PFPriority: List[bool]#

‘property(…)’

If set to true, priority is given to power factor and WattPriority is neglected. It works only if operating in either constant PF or constant kvar modes. Defaults to False.

DSS property name: PFPriority, DSS property index: 16.

PITol: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

It is the tolerance (%) for the closed loop controller of the inverter. For dynamics simulation mode.

DSS property name: PITol, DSS property index: 54.

PhaseLosses() altdss.types.ComplexArray#

Complex array of losses (kVA) by phase

Original COM help: https://opendss.epri.com/PhaseLosses.html

Phases: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

Number of Phases, this Storage element. Power is evenly divided among phases.

DSS property name: Phases, DSS property index: 1.

Powers() altdss.types.ComplexArray#

Complex array of powers (kVA) into each conductor of each terminal, of each element in the batch.

Original COM help: https://opendss.epri.com/Powers.html

SafeMode: List[bool]#

‘property(…)’

(Read only) Indicates whether the inverter entered (Yes) or not (No) into Safe Mode.

DSS property name: SafeMode, DSS property index: 56.

SafeVoltage: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the voltage level (%) respect to the base voltage level for which the Inverter will operate. If this threshold is violated, the Inverter will enter safe mode (OFF). For dynamic simulation. By default is 80%.

DSS property name: SafeVoltage, DSS property index: 55.

SeqCurrents() altdss.types.Float64Array#

Array of symmetrical component currents (magnitudes only) into each 3-phase terminal of each element

Original COM help: https://opendss.epri.com/SeqCurrents.html

SeqPowers() altdss.types.ComplexArray#

Complex array of sequence powers (kW, kvar) into each 3-phase terminal of each element

Original COM help: https://opendss.epri.com/SeqPowers.html

SeqVoltages() altdss.types.Float64Array#

Double array of symmetrical component voltages (magnitudes only) at each 3-phase terminal

Original COM help: https://opendss.epri.com/SeqVoltages1.html

Spectrum: List[altdss.Spectrum.Spectrum]#

‘property(…)’

Name of harmonic voltage or current spectrum for this Storage element. Current injection is assumed for inverter. Default value is “default”, which is defined when the DSS starts.

DSS property name: Spectrum, DSS property index: 62.

Spectrum_str: List[str]#

‘property(…)’

Name of harmonic voltage or current spectrum for this Storage element. Current injection is assumed for inverter. Default value is “default”, which is defined when the DSS starts.

DSS property name: Spectrum, DSS property index: 62.

State: altdss.ArrayProxy.BatchInt32ArrayProxy#

‘property(…)’

{IDLING | CHARGING | DISCHARGING} Get/Set present operational state. In DISCHARGING mode, the Storage element acts as a generator and the kW property is positive. The element continues discharging at the scheduled output power level until the Storage reaches the reserve value. Then the state reverts to IDLING. In the 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.

DSS property name: State, DSS property index: 25.

State_str: List[str]#

‘property(…)’

{IDLING | CHARGING | DISCHARGING} Get/Set present operational state. In DISCHARGING mode, the Storage element acts as a generator and the kW property is positive. The element continues discharging at the scheduled output power level until the Storage reaches the reserve value. Then the state reverts to IDLING. In the 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.

DSS property name: State, DSS property index: 25.

TimeChargeTrig: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Time of day in fractional hours (0230 = 2.5) at which Storage element will automatically go into charge state. Default is 2.0. Enter a negative time value to disable this feature.

DSS property name: TimeChargeTrig, DSS property index: 45.

TotalPowers() altdss.types.ComplexArray#

Returns an array with the total powers (complex, kVA) at all terminals of the circuit elements in this batch.

The resulting array is equivalent to concatenating the TotalPowers for each element.

UserData: List[str]#

‘property(…)’

String (in quotes or parentheses) that gets passed to user-written model for defining the data required for that model.

DSS property name: UserData, DSS property index: 50.

UserModel: List[str]#

‘property(…)’

Name of DLL containing user-written model, which computes the terminal currents for both power flow and dynamics, overriding the default model. Set to “none” to negate previous setting.

DSS property name: UserModel, DSS property index: 49.

VMaxpu: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Default = 1.10. Maximum per unit voltage for which the Model is assumed to apply. Above this value, the load model reverts to a constant impedance model.

DSS property name: VMaxpu, DSS property index: 36.

VMinpu: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Default = 0.90. Minimum per unit voltage for which the Model is assumed to apply. Below this value, the load model reverts to a constant impedance model.

DSS property name: VMinpu, DSS property index: 35.

VarFollowInverter: List[bool]#

‘property(…)’

Boolean variable (Yes|No) or (True|False). Defaults to False, which indicates that the reactive power generation/absorption does not respect the inverter status.When set to True, the reactive power generation/absorption will cease when the inverter status is off, due to DC kW dropping below %CutOut. The reactive power generation/absorption will begin again when the DC kW is above %CutIn. When set to False, the Storage will generate/absorb reactive power regardless of the status of the inverter.

DSS property name: VarFollowInverter, DSS property index: 12.

Voltages() altdss.types.ComplexArray#

Complex array of voltages at terminals

Original COM help: https://opendss.epri.com/Voltages1.html

VoltagesMagAng() altdss.types.Float64Array#

Voltages at each conductor in magnitude, angle form as array of doubles.

Original COM help: https://opendss.epri.com/VoltagesMagAng.html

WattPriority: List[bool]#

‘property(…)’

{Yes/No*/True/False} Set inverter to watt priority instead of the default var priority.

DSS property name: WattPriority, DSS property index: 15.

Yearly: List[altdss.LoadShape.LoadShape]#

‘property(…)’

Dispatch shape to use for yearly simulations. Must be previously defined as a Loadshape object. If this is not specified, the Daily dispatch shape, if any, is repeated during Yearly solution modes. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Yearly, DSS property index: 39.

Yearly_str: List[str]#

‘property(…)’

Dispatch shape to use for yearly simulations. Must be previously defined as a Loadshape object. If this is not specified, the Daily dispatch shape, if any, is repeated during Yearly solution modes. In the default dispatch mode, the Storage element uses this loadshape to trigger State changes.

DSS property name: Yearly, DSS property index: 39.

__call__()#
__getitem__(idx0) altdss.DSSObj.DSSObj#

Get element at 0-based index of the batch pointer array

__init__(api_util, **kwargs)#
__iter__()#
__len__() int#
batch(**kwargs) altdss.Batch.DSSBatch#

Filter a batch using integer or float DSS properties, returning a new batch.

For integers, provide a single value to match.

For floats, provide a range as a 2-valued tuple/list (min value, max value), or an exact value to value (not recommended).

Multiple properties can be listed to allow filtering various conditions.

Example for loads:

    # Create an initial batch using a regular expression
    abc_loads = altdss.Load.batch(re=r'^abc.*$') # a batch of all loads with names starting with "abc"
    abc_loads_filtered = abc_loads.batch(Class=1, Phases=1, kV=(0.1, 1.0))

    # Create an initial batch, already filtered
    abc_loads_filtered = altdss.Load.batch(re=r'^abc.*$', Class=1, Phases=1, kV=(0.1, 1.0))
begin_edit() None#

Marks for editing all DSS objects in the batch

In the editing mode, some final side-effects of changing properties are postponed until end_edit is called. This side-effects can be somewhat costly, like updating the model parameters or internal matrices.

If you don’t have any performance constraint, you may edit each property individually without worrying about using begin_edit and end_edit. For convenience, those are emitted automatically when editing single properties outside an edit block.

edit(**kwargs: typing_extensions.Unpack[altdss.Storage.StorageBatchProperties]) altdss.Storage.StorageBatch#

Edit this Storage batch.

This method will try to open a new edit context (if not already open), edit the properties, and finalize the edit context for objects in the batch. It can be seen as a shortcut to manually setting each property, or a Pythonic analogous (but extended) to the DSS BatchEdit command.

Parameters:

**kwargs – Pass keyword arguments equivalent to the DSS properties of the objects.

Returns:

Returns itself to allow call chaining.

end_edit(num_changes: int = 1) None#

Leaves the editing states of all DSS objects in the batch

num_changes is required for a few classes to correctly match the official OpenDSS behavior and must be the number of properties modified in the current editing block. As of DSS C-API v0.13, this is only required for the Monitor class, when the Action property is used with the Process value.

kV: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Nominal rated (1.0 per unit) voltage, kV, for Storage element. For 2- and 3-phase Storage elements, specify phase-phase kV. Otherwise, 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.

DSS property name: kV, DSS property index: 3.

kVA: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the inverter nameplate capability (in kVA). Used as the base for Dynamics mode and Harmonics mode values.

DSS property name: kVA, DSS property index: 8.

kVDC: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the rated voltage (kV) at the input of the inverter while the storage is discharging. The value is normally greater or equal to the kV base of the Storage device. It is used for dynamics simulation ONLY.

DSS property name: kVDC, DSS property index: 52.

kW: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Get/set the requested kW value. Final kW is subjected to the inverter ratings. A positive value denotes power coming OUT of the element, 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.

DSS property name: kW, DSS property index: 5.

kWRated: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

kW rating of power output. Base for Loadshapes when DispMode=Follow. Sets kVA property if it has not been specified yet. Defaults to 25.

DSS property name: kWRated, DSS property index: 19.

kWhRated: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Rated Storage capacity in kWh. Default is 50.

DSS property name: kWhRated, DSS property index: 21.

kWhStored: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Present amount of energy stored, kWh. Default is same as kWhrated.

DSS property name: kWhStored, DSS property index: 22.

kvar: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Get/set the requested kvar value. Final kvar is subjected to the inverter ratings. Sets inverter to operate in constant kvar mode.

DSS property name: kvar, DSS property index: 6.

kvarMax: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the maximum reactive power GENERATION (un-signed numerical variable in kvar) for the inverter. Defaults to kVA rating of the inverter.

DSS property name: kvarMax, DSS property index: 13.

kvarMaxAbs: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Indicates the maximum reactive power ABSORPTION (un-signed numerical variable in kvar) for the inverter. Defaults to kvarMax.

DSS property name: kvarMaxAbs, DSS property index: 14.

pctCharge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Charging rate (input power) in percentage of rated kW. Default = 100.

DSS property name: %Charge, DSS property index: 27.

pctCutIn: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Cut-in power as a percentage of inverter kVA rating. It is the minimum DC power necessary to turn the inverter ON when it is OFF. Must be greater than or equal to %CutOut. Defaults to 2 for PVSystems and 0 for Storage elements which means that the inverter state will be always ON for this element.

DSS property name: %CutIn, DSS property index: 9.

pctCutOut: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Cut-out power as a percentage of inverter kVA rating. It is the minimum DC power necessary to keep the inverter ON. Must be less than or equal to %CutIn. Defaults to 0, which means that, once ON, the inverter state will be always ON for this element.

DSS property name: %CutOut, DSS property index: 10.

pctDischarge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Discharge rate (output power) in percentage of rated kW. Default = 100.

DSS property name: %Discharge, DSS property index: 26.

pctEffCharge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage efficiency for CHARGING the Storage element. Default = 90.

DSS property name: %EffCharge, DSS property index: 28.

pctEffDischarge: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage efficiency for DISCHARGING the Storage element. Default = 90.

DSS property name: %EffDischarge, DSS property index: 29.

pctIdlingkW: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage of rated kW consumed by idling losses. Default = 1.

DSS property name: %IdlingkW, DSS property index: 30.

pctPMinNoVars: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Minimum active power as percentage of kWrated under which there is no vars production/absorption. Defaults to 0 (disabled).

DSS property name: %PMinNoVars, DSS property index: 17.

pctPMinkvarMax: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Minimum active power as percentage of kWrated that allows the inverter to produce/absorb reactive power up to its maximum reactive power, which can be either kvarMax or kvarMaxAbs, depending on the current operation quadrant. Defaults to 0 (disabled).

DSS property name: %PMinkvarMax, DSS property index: 18.

pctR: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Equivalent percentage internal resistance, ohms. Default is 0. Placed in series with internal voltage source for harmonics and dynamics modes. Use a combination of %IdlingkW, %EffCharge and %EffDischarge to account for losses in power flow modes.

DSS property name: %R, DSS property index: 32.

pctReserve: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Percentage of rated kWh Storage capacity to be held in reserve for normal operation. Default = 20. This is treated as the minimum energy discharge level unless there is an emergency. For emergency operation set this property lower. Cannot be less than zero.

DSS property name: %Reserve, DSS property index: 24.

pctStored: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Present amount of energy stored, % of rated kWh. Default is 100.

DSS property name: %Stored, DSS property index: 23.

pctX: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Equivalent percentage internal reactance, ohms. Default is 50%. Placed in series with internal voltage source for harmonics and dynamics modes. (Limits fault current to 2 pu.

DSS property name: %X, DSS property index: 33.

pctkWRated: altdss.ArrayProxy.BatchFloat64ArrayProxy#

‘property(…)’

Upper limit on active power as a percentage of kWrated. Defaults to 100 (disabled).

DSS property name: %kWRated, DSS property index: 20.

to_json(options: Union[int, dss.enums.DSSJSONFlags] = 0)#

Returns the data (as a list) of the elements in a batch as a JSON-encoded string.

The options parameter contains bit-flags to toggle specific features. See Obj_ToJSON (C-API) for more, or DSSObj.to_json in Python.

Additionally, the ExcludeDisabled flag can be used to excluded disabled elements from the output.

to_list()#
class altdss.Storage.StorageBatchProperties#

Bases: typing_extensions.TypedDict

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

AmpLimit: Union[float, altdss.types.Float64Array]#

None

AmpLimitGain: Union[float, altdss.types.Float64Array]#

None

Balanced: bool#

None

BaseFreq: Union[float, altdss.types.Float64Array]#

None

Bus1: Union[AnyStr, List[AnyStr]]#

None

ChargeTrigger: Union[float, altdss.types.Float64Array]#

None

Class: Union[int, altdss.types.Int32Array]#

None

Conn: Union[AnyStr, int, altdss.enums.Connection, List[AnyStr], List[int], List[altdss.enums.Connection], altdss.types.Int32Array]#

None

ControlMode: Union[AnyStr, int, altdss.enums.InverterControlMode, List[AnyStr], List[int], List[altdss.enums.InverterControlMode], altdss.types.Int32Array]#

None

Daily: Union[AnyStr, altdss.LoadShape.LoadShape, List[AnyStr], List[altdss.LoadShape.LoadShape]]#

None

DebugTrace: bool#

None

DischargeTrigger: Union[float, altdss.types.Float64Array]#

None

DispMode: Union[AnyStr, int, altdss.enums.StorageDispatchMode, List[AnyStr], List[int], List[altdss.enums.StorageDispatchMode], altdss.types.Int32Array]#

None

Duty: Union[AnyStr, altdss.LoadShape.LoadShape, List[AnyStr], List[altdss.LoadShape.LoadShape]]#

None

DynOut: List[AnyStr]#

None

DynaDLL: Union[AnyStr, List[AnyStr]]#

None

DynaData: Union[AnyStr, List[AnyStr]]#

None

DynamicEq: Union[AnyStr, altdss.DynamicExp.DynamicExp, List[AnyStr], List[altdss.DynamicExp.DynamicExp]]#

None

EffCurve: Union[AnyStr, altdss.XYcurve.XYcurve, List[AnyStr], List[altdss.XYcurve.XYcurve]]#

None

Enabled: bool#

None

Kp: Union[float, altdss.types.Float64Array]#

None

Like: AnyStr#

None

LimitCurrent: bool#

None

Model: Union[int, altdss.types.Int32Array]#

None

PF: Union[float, altdss.types.Float64Array]#

None

PFPriority: bool#

None

PITol: Union[float, altdss.types.Float64Array]#

None

Phases: Union[int, altdss.types.Int32Array]#

None

SafeMode: bool#

None

SafeVoltage: Union[float, altdss.types.Float64Array]#

None

Spectrum: Union[AnyStr, altdss.Spectrum.Spectrum, List[AnyStr], List[altdss.Spectrum.Spectrum]]#

None

State: Union[AnyStr, int, altdss.enums.StorageState, List[AnyStr], List[int], List[altdss.enums.StorageState], altdss.types.Int32Array]#

None

TimeChargeTrig: Union[float, altdss.types.Float64Array]#

None

UserData: Union[AnyStr, List[AnyStr]]#

None

UserModel: Union[AnyStr, List[AnyStr]]#

None

VMaxpu: Union[float, altdss.types.Float64Array]#

None

VMinpu: Union[float, altdss.types.Float64Array]#

None

VarFollowInverter: bool#

None

WattPriority: bool#

None

Yearly: Union[AnyStr, altdss.LoadShape.LoadShape, List[AnyStr], List[altdss.LoadShape.LoadShape]]#

None

__contains__()#

True if the dictionary has the specified key, else False.

__delattr__()#

Implement delattr(self, name).

__delitem__()#

Delete self[key].

__dir__()#

Default dir() implementation.

__format__()#

Default object formatter.

Return str(self) if format_spec is empty. Raise TypeError otherwise.

__ge__()#

Return self>=value.

__getattribute__()#

Return getattr(self, name).

__getitem__()#

Return self[key].

__getstate__()#

Helper for pickle.

__gt__()#

Return self>value.

__init__()#

Initialize self. See help(type(self)) for accurate signature.

__ior__()#

Return self|=value.

__iter__()#

Implement iter(self).

__le__()#

Return self<=value.

__len__()#

Return len(self).

__lt__()#

Return self<value.

__ne__()#

Return self!=value.

__new__()#

Create and return a new object. See help(type) for accurate signature.

__or__()#

Return self|value.

__reduce__()#

Helper for pickle.

__reduce_ex__()#

Helper for pickle.

__repr__()#

Return repr(self).

__reversed__()#

Return a reverse iterator over the dict keys.

__ror__()#

Return value|self.

__setitem__()#

Set self[key] to value.

__sizeof__()#

D.sizeof() -> size of D in memory, in bytes

__str__()#

Return str(self).

__subclasshook__()#

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.subclasscheck(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

clear()#

D.clear() -> None. Remove all items from D.

copy()#

D.copy() -> a shallow copy of D

get()#

Return the value for key if key is in the dictionary, else default.

items()#

D.items() -> a set-like object providing a view on D’s items

kV: Union[float, altdss.types.Float64Array]#

None

kVA: Union[float, altdss.types.Float64Array]#

None

kVDC: Union[float, altdss.types.Float64Array]#

None

kW: Union[float, altdss.types.Float64Array]#

None

kWRated: Union[float, altdss.types.Float64Array]#

None

kWhRated: Union[float, altdss.types.Float64Array]#

None

kWhStored: Union[float, altdss.types.Float64Array]#

None

keys()#

D.keys() -> a set-like object providing a view on D’s keys

kvar: Union[float, altdss.types.Float64Array]#

None

kvarMax: Union[float, altdss.types.Float64Array]#

None

kvarMaxAbs: Union[float, altdss.types.Float64Array]#

None

pctCharge: Union[float, altdss.types.Float64Array]#

None

pctCutIn: Union[float, altdss.types.Float64Array]#

None

pctCutOut: Union[float, altdss.types.Float64Array]#

None

pctDischarge: Union[float, altdss.types.Float64Array]#

None

pctEffCharge: Union[float, altdss.types.Float64Array]#

None

pctEffDischarge: Union[float, altdss.types.Float64Array]#

None

pctIdlingkW: Union[float, altdss.types.Float64Array]#

None

pctPMinNoVars: Union[float, altdss.types.Float64Array]#

None

pctPMinkvarMax: Union[float, altdss.types.Float64Array]#

None

pctR: Union[float, altdss.types.Float64Array]#

None

pctReserve: Union[float, altdss.types.Float64Array]#

None

pctStored: Union[float, altdss.types.Float64Array]#

None

pctX: Union[float, altdss.types.Float64Array]#

None

pctkWRated: Union[float, altdss.types.Float64Array]#

None

pop()#

D.pop(k[,d]) -> v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()#

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault()#

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update()#

D.update([E, ]**F) -> None. Update D from dict/iterable E and F. If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()#

D.values() -> an object providing a view on D’s values

class altdss.Storage.StorageProperties#

Bases: typing_extensions.TypedDict

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

AmpLimit: float#

None

AmpLimitGain: float#

None

Balanced: bool#

None

BaseFreq: float#

None

Bus1: AnyStr#

None

ChargeTrigger: float#

None

Class: int#

None

Conn: Union[AnyStr, int, altdss.enums.Connection]#

None

ControlMode: Union[AnyStr, int, altdss.enums.InverterControlMode]#

None

Daily: Union[AnyStr, altdss.LoadShape.LoadShape]#

None

DebugTrace: bool#

None

DischargeTrigger: float#

None

DispMode: Union[AnyStr, int, altdss.enums.StorageDispatchMode]#

None

Duty: Union[AnyStr, altdss.LoadShape.LoadShape]#

None

DynOut: List[AnyStr]#

None

DynaDLL: AnyStr#

None

DynaData: AnyStr#

None

DynamicEq: Union[AnyStr, altdss.DynamicExp.DynamicExp]#

None

EffCurve: Union[AnyStr, altdss.XYcurve.XYcurve]#

None

Enabled: bool#

None

Kp: float#

None

Like: AnyStr#

None

LimitCurrent: bool#

None

Model: int#

None

PF: float#

None

PFPriority: bool#

None

PITol: float#

None

Phases: int#

None

SafeMode: bool#

None

SafeVoltage: float#

None

Spectrum: Union[AnyStr, altdss.Spectrum.Spectrum]#

None

State: Union[AnyStr, int, altdss.enums.StorageState]#

None

TimeChargeTrig: float#

None

UserData: AnyStr#

None

UserModel: AnyStr#

None

VMaxpu: float#

None

VMinpu: float#

None

VarFollowInverter: bool#

None

WattPriority: bool#

None

Yearly: Union[AnyStr, altdss.LoadShape.LoadShape]#

None

__contains__()#

True if the dictionary has the specified key, else False.

__delattr__()#

Implement delattr(self, name).

__delitem__()#

Delete self[key].

__dir__()#

Default dir() implementation.

__format__()#

Default object formatter.

Return str(self) if format_spec is empty. Raise TypeError otherwise.

__ge__()#

Return self>=value.

__getattribute__()#

Return getattr(self, name).

__getitem__()#

Return self[key].

__getstate__()#

Helper for pickle.

__gt__()#

Return self>value.

__init__()#

Initialize self. See help(type(self)) for accurate signature.

__ior__()#

Return self|=value.

__iter__()#

Implement iter(self).

__le__()#

Return self<=value.

__len__()#

Return len(self).

__lt__()#

Return self<value.

__ne__()#

Return self!=value.

__new__()#

Create and return a new object. See help(type) for accurate signature.

__or__()#

Return self|value.

__reduce__()#

Helper for pickle.

__reduce_ex__()#

Helper for pickle.

__repr__()#

Return repr(self).

__reversed__()#

Return a reverse iterator over the dict keys.

__ror__()#

Return value|self.

__setitem__()#

Set self[key] to value.

__sizeof__()#

D.sizeof() -> size of D in memory, in bytes

__str__()#

Return str(self).

__subclasshook__()#

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.subclasscheck(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

clear()#

D.clear() -> None. Remove all items from D.

copy()#

D.copy() -> a shallow copy of D

get()#

Return the value for key if key is in the dictionary, else default.

items()#

D.items() -> a set-like object providing a view on D’s items

kV: float#

None

kVA: float#

None

kVDC: float#

None

kW: float#

None

kWRated: float#

None

kWhRated: float#

None

kWhStored: float#

None

keys()#

D.keys() -> a set-like object providing a view on D’s keys

kvar: float#

None

kvarMax: float#

None

kvarMaxAbs: float#

None

pctCharge: float#

None

pctCutIn: float#

None

pctCutOut: float#

None

pctDischarge: float#

None

pctEffCharge: float#

None

pctEffDischarge: float#

None

pctIdlingkW: float#

None

pctPMinNoVars: float#

None

pctPMinkvarMax: float#

None

pctR: float#

None

pctReserve: float#

None

pctStored: float#

None

pctX: float#

None

pctkWRated: float#

None

pop()#

D.pop(k[,d]) -> v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()#

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault()#

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update()#

D.update([E, ]**F) -> None. Update D from dict/iterable E and F. If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()#

D.values() -> an object providing a view on D’s values