modelREECCU1

Electrical control model for utility scale battery energy storage

Extends from OpenIPSL.Electrical.Renewables.PSSE.ElectricalController.BaseClasses.BaseREECC (Base renewable energy electrical controller model C).

Information

The REECCU1 component is an augmented version of the existing renewable energy electrical control (REECA1) model, and can be utilized to represent both type 3 and type 4 wind turbine electrical controllers as well as photovoltaic electrical controllers. The REECCU1 component can be connected to the plant controller (REPCA1). This electrical controller provides real (Ipcmd) and reactive (Iqcmd) current commands to the REGCA1 component, which are the outputs of this component.

For initialization purposes, there are 5 inputs that are derived from the inverter component: initial real and reactive injection currents (IP0 and IQ0), initial terminal voltage (v_0), and initial active and reactive power injections (p_0 and q_0).

In terms of connectivity with other components to form the renewable source, the REECCU1 component has six inputs, three of which are connected to the inverter component (for instance REGCA1), two more that can either be constant values from the power flow initialization or come from the connection to the plant controller, and an auxiliary input variable that is rarely used (usually constant and zero). The three REECCU1 inputs that take in values from the output of the inverter model are Vt, Pgen, and Qgen while the two inputs that could potentially be constant valued or come from the plant controller are Pref, and Qext.

The modelling of such devices is based, mainly, on the following references:

Parameters

TypeNameDefaultDescription
OpenIPSL.Types.PerUnitVdip-99Low voltage threshold to activate reactive current injection logic (0.85 - 0.9)
OpenIPSL.Types.PerUnitVup99Voltage above which reactive current injection logic is activated (>1.1)
OpenIPSL.Types.TimeTrv0.01Filter time constant for voltage measurement (0.01 - 0.02)
OpenIPSL.Types.PerUnitdbd10Voltage error dead band lower threshold (-0.1 - 0)
OpenIPSL.Types.PerUnitdbd20Voltage error dead band upper threshold (0 - 0.1)
RealKqv0Reactive current injection gain during over and undervoltage conditions (0 - 10)
OpenIPSL.Types.PerUnitIqh11Upper limit on reactive current injection Iqinj (1 - 1.1)
OpenIPSL.Types.PerUnitIql1-1Lower limit on reactive current injection Iqinj (-1.1 - 1)
OpenIPSL.Types.PerUnitvref01User defined voltage reference (0.95 - 1.05)
OpenIPSL.Types.TimeTp0.01Filter time constant for electrical power (0.01 - 0.1)
OpenIPSL.Types.PerUnitQmax1Upper limits of the limit for reactive power regulator (0.4 - 1.0)
OpenIPSL.Types.PerUnitQmin-1Lower limits of the limit for reactive power regulator (-1.0 - -0.4)
OpenIPSL.Types.PerUnitVmax1.1Maximum limit for voltage control (1.05 - 1.1)
OpenIPSL.Types.PerUnitVmin0.9Lower limits of input signals (0.9 - 0.95)
RealKqp0Reactive power regulator proportional gain (No predefined range)
RealKqi0.1Reactive power regulator integral gain (No predefined range)
RealKvp0Voltage regulator proportional gain (No predefined range)
RealKvi40Voltage regulator integral gain (No predefined range)
OpenIPSL.Types.TimeTiq0.01Time constant on lag delay (0.01 - 0.02)
RealdPmax99Power reference maximum ramp rate (No predefined range)
RealdPmin-99Lower limits of input signals (No predefined range)
OpenIPSL.Types.PerUnitPmax1Maximum power limit
OpenIPSL.Types.PerUnitPmin0Minimum power limit
OpenIPSL.Types.PerUnitImax1.1Maximum limit on total converter current (1.1 - 1.3)
OpenIPSL.Types.TimeTpord0.02Power filter time constant (0.01 - 0.02)
OpenIPSL.Types.PerUnitVq10.2Reactive Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIq10.75Reactive Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVq20.5Reactive Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIq20.75Reactive Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVq30.75Reactive Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIq30.75Reactive Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVq41Reactive Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIq40.75Reactive Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVp10.2Real Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIp11.11Real Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVp20.5Real Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIp21.11Real Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVp30.75Real Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIp31.11Real Power V-I pair, current (user defined)
OpenIPSL.Types.PerUnitVp41Real Power V-I pair, voltage (user defined)
OpenIPSL.Types.PerUnitIp41.11Real Power V-I pair, current (user defined)
Modelica.Units.SI.TimeT999Battery discharge time
OpenIPSL.Types.PerUnitSOCini0.5Initial state of charge
OpenIPSL.Types.PerUnitSOCmax0.8Maximum allowable state of charge
OpenIPSL.Types.PerUnitSOCmin0.2Minimum allowable state of charge
Control
Booleanpfflag (from BaseREECC)trueConstant output value
Booleanvflag (from BaseREECC)trueConstant output value
Booleanqflag (from BaseREECC)trueConstant output value
Booleanpqflag (from BaseREECC)trueConstant output value

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInputip0 (from BaseREECC)Initial Active Current
Modelica.Blocks.Interfaces.RealInputiq0 (from BaseREECC)Initial Reactive Current
Modelica.Blocks.Interfaces.RealOutputIqcmd (from BaseREECC)Reactive Command Current
Modelica.Blocks.Interfaces.RealOutputIpcmd (from BaseREECC)Active Command Current
Modelica.Blocks.Interfaces.RealInputv0 (from BaseREECC)Initial Terminal Voltage Magnitude
Modelica.Blocks.Interfaces.RealInputp0 (from BaseREECC)Initial Active Power
Modelica.Blocks.Interfaces.RealInputq0 (from BaseREECC)Initial Reactive Power
Modelica.Blocks.Interfaces.RealInputVt (from BaseREECC)Terminal Voltage Magnitude
Modelica.Blocks.Interfaces.RealInputPe (from BaseREECC)Electrical Power
Modelica.Blocks.Interfaces.RealInputQext (from BaseREECC)Reactive Power Reference
Modelica.Blocks.Interfaces.RealInputQgen (from BaseREECC)Reactive Power Generated
Modelica.Blocks.Interfaces.RealInputPref (from BaseREECC)Active Power Reference
Modelica.Blocks.Interfaces.RealInputPaux (from BaseREECC)Auxiliary Signal for Active Power

Components

TypeNameDefaultDescription
IntegerVoltage_dip
Modelica.Blocks.Math.Divisiondivision1
Modelica.Blocks.Nonlinear.Limiterlimiter5
Modelica.Blocks.Math.Addadd8
Modelica.Blocks.Nonlinear.Limiterlimiter7
Modelica.Blocks.Continuous.Integratorintegrator3
Modelica.Blocks.Nonlinear.Limiterlimiter8
Modelica.Blocks.Sources.RealExpressionVt_filt3
Modelica.Blocks.Math.Addadd7
Modelica.Blocks.Nonlinear.VariableLimitervariableLimiter2
Modelica.Blocks.Sources.RealExpressionIPMAX
Modelica.Blocks.Sources.RealExpressionIPMIN
Modelica.Blocks.Math.Productproduct2
Modelica.Blocks.Math.Productproduct3
Modelica.Blocks.Sources.RealExpressionSOC_ipmax
Modelica.Blocks.Sources.RealExpressionSOC_ipmin
Modelica.Blocks.Sources.RealExpressionPELEC
Modelica.Blocks.Continuous.Integratorintegrator1
Modelica.Blocks.Math.Addadd1
Modelica.Blocks.Nonlinear.Limiterlimiter1
OpenIPSL.Electrical.Renewables.PSSE.ElectricalController.BaseClasses.StateOfChargeLogicsOC_logic
Modelica.Blocks.Sources.BooleanConstantPfFlag_logic
Modelica.Blocks.Logical.SwitchPfFlagConstant Q (False) or PF (True) local control.
Modelica.Blocks.Nonlinear.Limiterlimiter2
Modelica.Blocks.Math.Addadd2
Modelica.Blocks.Continuous.Integratorintegrator
Modelica.Blocks.Math.Gaingain
Modelica.Blocks.Math.Addadd3
Modelica.Blocks.Sources.RealExpressionfrzState
Modelica.Blocks.Math.Productproduct1
Modelica.Blocks.Nonlinear.Limiterlimiter3
Modelica.Blocks.Sources.BooleanConstantVflag_logic
Modelica.Blocks.Logical.SwitchVFlagConstant Q (False) or PF (True) local control.
Modelica.Blocks.Sources.RealExpressionVReF0
Modelica.Blocks.Nonlinear.Limiterlimiter4
Modelica.Blocks.Math.Addadd5
Modelica.Blocks.Sources.RealExpressionVt_filt2
Modelica.Blocks.Math.Gaingain1
Modelica.Blocks.Continuous.Integratorintegrator2
Modelica.Blocks.Math.Addadd6
Modelica.Blocks.Math.Productproduct4
Modelica.Blocks.Sources.RealExpressionfrzState1
Modelica.Blocks.Nonlinear.VariableLimitervariableLimiter1
Modelica.Blocks.Sources.RealExpressionIQMAX_
Modelica.Blocks.Sources.RealExpressionIQMIN_
Modelica.Blocks.Logical.SwitchQFlag
Modelica.Blocks.Sources.BooleanConstantQFLAG
Modelica.Blocks.Math.Addadd9
Modelica.Blocks.Nonlinear.VariableLimitervariableLimiter
Modelica.Blocks.Sources.RealExpressionIQMIN
Modelica.Blocks.Sources.RealExpressionIQMAX
Modelica.Blocks.Math.Addadd10
Modelica.Blocks.Continuous.Integratorintegrator4
Modelica.Blocks.Math.Productproduct5
Modelica.Blocks.Sources.RealExpressionVt_filt1
Modelica.Blocks.Nonlinear.Limiterlimiter6
Modelica.Blocks.Math.Divisiondivision
Modelica.Blocks.Tables.CombiTable1DsVDL1
Modelica.Blocks.Tables.CombiTable1DsVDL2
OpenIPSL.Electrical.Renewables.PSSE.ElectricalController.BaseClasses.CurrentLimitLogicREECCccl_reecc
Modelica.Blocks.Sources.RealExpressionIQCMD
Modelica.Blocks.Sources.BooleanConstantPQFLAG
Modelica.Blocks.Sources.RealExpressionIPCMD
NonElectrical.Continuous.SimpleLagsimpleLag
Modelica.Blocks.Math.Addadd
Modelica.Blocks.Nonlinear.Limiterlimiter
Modelica.Blocks.Sources.RealExpressionVREF0
Modelica.Blocks.Nonlinear.DeadZonedbd1_dbd2
Modelica.Blocks.Math.Gaingain2
NonElectrical.Continuous.SimpleLagsimpleLag1
Modelica.Blocks.Math.Tantan1
Modelica.Blocks.Math.Productproduct6
Modelica.Blocks.Sources.RealExpressionPFAREF
Modelica.Blocks.Math.Productproduct7
Modelica.Blocks.Sources.RealExpressionfrzState2
Modelica.Blocks.Sources.ConstantSOC